(3) 이제 다시 부팅을 한 뒤 리눅스에서 eth1이
정확하게 설정되었는지 ifconfig 또는
netstat
-nr 등의 명령을 이용하여 확인합니다.
[root@server root]# netstat -nr
Kernel
IP routing table
Destination Gateway Genmask
Flags
MSS Window irtt Iface
192.168.1.1
0.0.0.0 255.255.255.255 UH
0 0
0 eth1
192.168.1.0 0.0.0.0 255.255.255.0
U 0
0 0
eth1
127.0.0.0 0.0.0.0
255.0.0.0 U
0 0
0 lo
[root@server root]#
(4) 다른 PC에서 리눅스 서버로 접속하여 받은
파일을 적당한 디렉토리에 복사해 넣습니다.
다. UDMA 66/100 커널패치 (커널 업그레이드도
병행)
(1) Red Hat 6.2 설치시 기본적으로 커널 2.2.14가
설치되므로 커널을 업그레이드 합니다.
커널
소스와 UDAM 66/100 커널 패치 파일을 받습니다.
(가) 커널 버전 2.2.17 소스파일(현재, 안정버전
2.2.18까지 나와있고, 2.4도 나왔군요.)
ftp://sunsite.unc.edu/pub/linux/kernel/v2.2/linux-2.2.17.tar.gz
(나) UDMA 66/100용 패치파일
http://www.kernel.org/pub/linux/kernel/people/hedrick/ide-2.2.17
\
/ide-2.2.17/ide.2.2.17.all.20000904.pathch.gz
(2) 커널 소스를 설치합니다. /usr/src 밑에
압축을 해제하고 linux라는 디렉토리가 생성되므로
디렉토리명을
linux-2.2.17 이런 식으로 바꾸고 linux로 링크를 걸어줍니다.
그 후 /usr/include에 있는 asm,
linux, scsi 디렉토리를 지우고 /usr/src/linux/include
밑에
있는 디렉토리로 링크를 걸어줍니다.
(3) UDMA 66/100 커널 패치 파일을 적용시킵니다.
[root@server root]# mv ./ide.2.2.17.all.20000904.patch.gz
/usr/src/
[root@server root]# cd /usr/src/linux
[root@server linux]# patch -p1 < ../ide.2.2.17.all.20000904
.patch.gz
라. 3COM 905B-TXNM 드라이버를 설치
(1) 3COM 905B-TXNM 패치 파일을 받습니다.
http://support.3com.com/infodeli/tools/nic/linux/3c90x-1.0.0i.tar.gz
(2) 3COM 905B-TXNM 패치 파일을 적용시킵니다.
[root@server root]# mv ./3c90x-1.0.0i.tar.gz
/usr/src/
[root@server root]# cd
/usr/src
[root@server src]# tar
xvfz 3c90x-1.0.0i.tar.gz
[root@server
src]# cd linux
[root@server linux]#
patch -p0 < ../3c90x-1.0.0/patch 2.2.5
마. /usr/src/linux로 이동하여 커널 컴파일
시작
(1) /usr/include에 asm, linux, scsi를 지우고
다시 링크를 걸어줍니다.
[root@server
linux]# cd /usr/include
[root@server
include]# rm -rf asm linux scsi
[root@server
include]# ln -s /usr/src/linux/include/asm-i386 asm
[root@server
include]# ln -s /usr/src/linux/include/linux linux
[root@server
include]# ln -s /usr/src/linux/include/scsi scsi
[root@server
include]# cd /usr/src/linux
[root@server
linux]# make mrproper
[root@server
linux]# make menuconfig
(2) 커널 옵션 설정에서 필요한 것을 설정
(가) Mac 연결을 위한 설정
(나) UDMA 66/100을 위한 설정
1) Code maturity level options
2) Block devices
① Include
IDE/ATA-2 DISK support
②
Include IDE/ATAPI CDROM support
③
자신의 메인보드에 맞는 칩셋(eg. CMD640 chipset bugfix/support,
CMD640
enhanced support). 칩셋은 메인보드 설명서를 보면 나옵니다.
④ Generic PCI IDE chipset support
⑤ Sharing PCI IDE chipset support
⑥ Generic PCI bus-master DMA
support
⑦ Use DMA by default
when available
⑧ Boot off-board
chipsets first support
⑨
Other IDE chipset support
(다) 3COMB-TXNM과 Realt다 8139 사용을
위한 설정
1) Network device support
가)
Ethernet (10 or 100Mbit)
①
3COM cards
② 3c90x/3c980
B/C series
"Cyclone/Hurricane/Tornado"
support (NEW)
③ RealTek
8129/8139 (not 8019/8029!) support
(라) DHCP 클라이언트 데몬 사용을 위한
설정
(마) IP Masquerading을 위한 설정
1) Code maturity level options
① Prompt fot development and/or
incompletecode/drivers
2) Loadable module support
① Enable loadable module support
3) Networking options
①
Network firewalls
② IP:
firewalling
③ IP: masquerading
④ IP: ICMP masquerading
⑤ IP: masquerading special
modules support
⑥ IP: ipportfw
masq support (EXPERIMENTAL)
(3) 커널 컴파일 및 모듈 컴파일, 설치
[root@server
linux]# make dep
[root@server linux]#
make clean
[root@server linux]#
make bzImage
[root@server linux]#
make modules
[root@server linux]#
make modules_install
(4) 커널 컴파일을 마친 후 커널 이미지를 복사합니다.
[root@server linux]# cp ./arch/i386/boot/bzImage
/boot/vmlinuz-2.2.17
[root@server
linux]# cp ./System.map /boot/System.map-2.2.17
[root@server
linux]# cd /boot
[root@server /boot]#
rm -f System.map
[root@server /boot]#
rm -f vmlinuz
[root@server /boot]#
ln -s ./System.map-2.2.17 System.map
[root@server
/boot]# ln -s ./vmlinuz-2.2.17 vmlinuz
(5) lilo.conf를 수정합니다.
[root@server /boot]# vi /etc/lilo.conf
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=linux
image=/boot/vmlinuz
label=linux
read-only
root=/dev/hde1
image=/boot/vmlinuz-2.2.14-5.0
label=linux-001216
read-only
root=/dev/hde1
[root@server /boot] lilo
Added linux *
Added linux-001216
[root@server /boot]#
(6) fstab을 수정합니다.
[root@server
/boot]# vi /etc/fstab
※ 설정되어 있는 부분을 hde로 바꿔줍니다
(7) 시스템을 종료시킨 후 UDMA용으로 커넥터를
바꿔 줍니다.
(8) 시스템을 켜고 UDMA가 정확하게 되는지 확인합니다.
(9) 설치된 모듈을 인식시켜 줍니다.
[root@server
/]# depmod -a
바. DHCP 클라이언트 실행을 위한 설정
(1) /etc/rc.d/rc.local에 다음의 내용을 적어줍니다.
/usr/sbin/dhcpcd -t 90 eth1
sleep 5
(2) DHCP 접속이 끊겼을 경우를 대비한 재접속
스크립트
(가) 우선 fping이라는 프로그램이 필요합니다.
fping은 아래의 주소에서 받을 수 있습니다.
http://www.stanford.edu/~schemers/docs/fping/fping.tar
(나) /etc에 autoreconnect라는 파일을 만들어
아래와 같이 작성합니다.
#!/bin/bash
export PATH=/bin:/sbin:/usr/sbin:/usr/bin
GATEADDR="211.110.52.1"
# fping이 실패면 then
이하 실행
#
while [ 1 ]
do
fping
$GATEADDR > /dev/null 2> /dev/null
ALIVE=$?
if [ "$ALIVE" != "0" ]
then
ifconfig
eth1 down 2> /tmp/log1
kill
-9 `ps ax | grep dhcpcd | cut -b 0-5` 2> /tmp/log1
rm -f /var/run/dhcpcd-eth1.pid
2> /tmp/log1
dhcpcd
-t 90 eth1
sleep
5
IPADDR=`ifconfig
eth1 | grep inet | cut -b 21-36`
mail
-s "$IPADDR - dhcpcd" freemir@lsa.2y.net
ifconfig
eth1 | mail -s "from dhcpcd" freemir@lsa.2y.net
else
sleep
120
fi
※ 우선 fping으로 게이트웨이에 대해 접속이
되어있는가 조사하여 접속이 끊겼다면
현재
실행 중인 dhcpcd 프로세스를 죽인 후 다시 접속하는 스크립트입니다.
fping 검사는 120초 그러니까, 2분마다
하도록 설정되어 있습니다. chmod로 권한을
755로
설정한 뒤 /etc/rc.d/rc.local의 맨 마지막에 /etc/autoreconnect
& 라고 적어줍니다.
사. IP masquerade를 위한 설정
(1) IP forwarding 설정
(가) Red Hat의 경우 /etc/sysconfig/network
파일에 아래의 내용을 적어주면 됩니다.
FORWARD_IPV4=yes
※ 그러나, 불행히도 Red Hat 6.2의 자체 버그
때문인지 아무리 적어주어도 실행이 되지
않습니다.
그리하여 직접 대입법으로 한다면 /etc/rc.d/rc.local에 아래의
내용을
적어줍니다.
echo
"1" > /proc/sys/net/ipv4/ip_forward
위의
방법은 강제로 ip_forward의 값을 1로 바꾸어 실행하도록 하는 방법입니다.
(2) IP chains 설정
(가) /etc/rc.d/rc.local에 다음의 내용을 적어줍니다.
/sbin/ipchains -P forward
DENY
/sbin/ipchains
-A forward -s 192.168.1.0/24 -j MASQ
※ 왜 192.168.1.0 다음에 /24를 해주는 것일까요?
그것은 해당 내부 네트워크 주소가
C
클래스 이므로 netmask가 255.255.255.0입니다. 각 부분이 8bit이므로
8×3=24이므로
24를 적어줍니다. 24대신
255.255.255.0를 적어도 가능합니다.
기본
방식은 255.255. 255.0으로 적어야 합니다. 몇몇 프로그램에서만
8의 배수를
인식합니다.
(3) Port forwarding 설정
(가) 다이얼 패드 같은 프로그램 사용을 위해서는
아래와 같이 설정해 줍니다.
단,
ipmasqadm 이라는 프로그램이 필요합니다. 파일은 sunsite.unc.edu
등에서
구할 수
있습니다. /etc/rc.d/rc.local에 적어주면 됩니다.
/usr/sbin/ipmasqadm
autofw -A -v -u -r udp 51200 51201 -c tcp 7175
/usr/sbin/ipmasqadm
autofw -A -v -u -r tcp 51210 51210 -c tcp 7175
(4) IP masquerading한 컴퓨터에서 irc, 리얼오디오,
ftp 등을 할 수 있도록 설정
(가) /etc/rc.d/rc.modules에 아래와 같이 추가합니다.
#!/bin/sh
insmod
ip_masq_vdolive
insmod
ip_masq_raudio
insmod
ip_masq_irc
insmod ip_masq_ftp
아. 매킨토시, MS 윈도우즈, FTP에서 사용할
디렉토리와 사용자를 등록
[root@server /]# mkdir Mac →
매킨토시에서 사용할 파일서버
[root@server /]# mkdir
pub
[root@server /]# cd pub
[root@server /]# mkdir
macfile → 외부에서 접속할 FTP 서버
[root@server /]# mkdir windows → MS 윈도우즈에서
사용할 파일서버
[root@server /]# adduser ohk →
각 디렉토리 권한을 위한 사용자 등록
※ 물론 패스워드는 각자 바꾸어 주도록 합니다.
※ 나머지 /pub/macfile과 /pub/windows도 소유자와
소유그룹을 동일하게 설정합니다.
자. Mac과의 연결을 위한 AppleTalk Protocol
설치
(1) netatalk+asun 파일을 받는다.
ftp://ftp.redhat.com/contrib/libc6/SRPMS/netatalk-1.4b2+asun2.1.4-0.src.rpm
(2) libdes 파일을 받는다.
ftp://ftp.redhat.com/contrib/libc6/SRPMS/libdes-4.04b-1.src.rpm
(3) tcp wrappers 파일을 받는다.
ftp://ftp.redhat.com/contrib/libc6/SRPMS/tcp_wrappers-7.6-5.src.rpm
※ 현재 tar.gz의 형식으로는 netatalk-1.4b2+asun2.1.3.tar.gz만이
있습니다.
이것은 본 기사의 설정이
맞지 않으므로 주의하시기 바랍니다.
데비안
사용자는 ftp://sunsite.unc.edu에서 데비안용 패키지를 찾으실
수 있습니다.
(4) 받은 소스 rpm을 설치합니다.
[root@server
root]# rpm -Uvh netatalk-1.4b2+ asun2.1.4-0.src.rpm
[root@server
root]# rpm -Uvh libdes-4.04b-1.src.rpm
[root@server
root]# rpm -Uvh tcp_wrappers-7.6-5.src.rpm
(5) netatalk+asum과 libdes 파일을 컴파일 한다.
소스 rpm을 설치하면
/usr/src/redhat/SOURCES
디렉토리 아래에 생성됩니다.
[root@server
root]# cd /usr/src/redhat/SOURCES
[root@server
SOURCES]# mv ./netatalk-1.4b2+asun2.1.4-0.tar.gz /usr/local/
[root@server SOURCES]# mv ./libdes-4.04b-1.src.rpm
/usr/local/
[root@server SOURCES]#
mv ./tcp_wrappers-7.6-5.src.rpm /usr/local/
[root@server
SOURCES]# cd /usr/local/
[root@server
local]# tar xvfz netatalk-1.4b2+asun2.1.4-0.tar.gz
[root@server
local]# tar xvfz libdes-4.04b-1.tar.gz
[root@server
local]# tar xvfz tcp_wrappers-7.6-5.tar.gz
(가) libdes를 설치합니다.
[root@server
local]# cd des
[root@server
des]# make ; ./destest ; ./rpw ; mkdir /usr/local/include
[root@server des]# make install
[root@server des]# cp des.h ../netatalk-1.4b2+asun2.1.4/include/
(나) tcp wrappers를 설치합니다.
[root@server
des]# cd ../tcp_wrappers_7.6
[root@server
tcp_wrappers_7.6]# cp tcpd.h ../netatalk-1.4b2+asun2.1.4/include/
(다) netatalk+asun의 Makefile을 수정합니다.
[root@server tcp_wrappers_7.6]#
cd ../netatalk-1.4b2+asun2.1.4
[root@server
netatalk-1.4b2+asun2.1.4]# vi Makefile
DESTDIR=/usr/local/atalk
<- 설치할 디렉토리를 적습니다.
CRYPTODIR=/usr/local/ssl
<- 만약 주석처리 되어있으면 해제합니다.
#DESDIR=/usr/local
<-
des.h 파일의 위치입니다.
기본
값인 include 디렉토리에 넣었으니 주석처리합니다.
(라) 새도우 패스워드 사용자라면 아래와 같이
수정합니다.
[root@server netatalk-1.4b2+asun2.1.4]#
cd etc/afpd
[root@server afpd]#
vi Makefile
CFLAGS= ${DEFS}
${AFSDEFS} ${OPTOPTS} ${INCPATH} -DAPPLCNAME
위의
줄 마지막 부분에 -DSHADOWPW를 추가합니다.
->
CFLAGS= ${DEFS} ${AFSDEFS} ${OPTOPTS} ${INCPATH} -DAPPLCNAME
-DSHADOWPW
(마) netatalk+asun을 설치합니다.
[root@server
afpd]# cd /usr/local/net
atalk-1.4b2+asun2.1.4
[root@server netatalk-1.4b2+asun2.1.4]#
make ; make install
(바) 아래와 같이 설정파일을 만들어 줍니다.
[root@server netatalk-1.4b2+asun2.1.4]#
cd ../atalk
[root@server atalk]#
vi ./etc/afpd.conf-guestname ohk <- 가장 마지막 줄에
추가
※ -guestname이라는 것은 해당 디렉토리에 접근할
때 가지는 권한에 대한 설정입니다.
여기서
-guestname 다음에 ohk라고 적어준 것은 guest로 접근시 ohk 사용자의
권한을
가지고 접근한다는 의미입니다.
즉, 현재 구성하는 파일서버에서 맥과 MS 윈도우즈에서
동시에
쓰고 지울 수 있는 권한을 부여하기 위해 설정한 것입니다.
[root@server
atalk]# vi ./etc/atalkd.conf
eth0
-phase 2 -net 0-65534 -addr 65280.19 <- 가장 마지막
줄에 있는지 확인
[root@server
atalk]# vi ./etc/AppleVolumes.default
/Mac
mac_server
<- /Mac이라는
디렉토리를 맥에서 mac_server라는 명칭으로 보이도록 설정
/pub/macfile output_server
<- /pub/macfile이라는 디렉토리를
맥에서 output_server라는 명칭으로 보이도록 설정
※ 물론 위의 설정들은 파일의 맨 마지막에 적어줍니다.
차. 삼바(samba)로 MS 윈도우즈와 연결
(1) 삼바 소스파일을 받습니다.
http://www.samba.org에서
받을 수 있습니다.(한국 미러사이트도 있습니다.)
본
설정에서 받은 파일은 samba-2.0.6.tar.gz이지만 현재 2.0.7버전까지
나와있습니다.
(2) 받은 소스파일의 압축을 해제합니다.
[root@server atalk]# mv ./samba-2.0.6.tar.gz
../
[root@server local]# tar
xvfz samba-2.0.6.tar.gz
(3) 소스파일을 컴파일 합니다.
[root@server
local]# cd samba-2.0.6/source
[root@server
source]# ./configure
[root@server
source]# make
[root@server
source]# make install
(4) 설정파일을 복사한 후 수정합니다.
[root@server
source]# cp./examples/smb.conf.default \
/usr/local/samba/lib/smb.conf
[root@server source]# cd /usr/local/samba/lib
[root@server lib]# vi smb.conf
#======= Global Settings =======
[global]
workgroup
= window_file <- MS 윈도우즈 네트워크 환경에서 보이는 이름
설정
guest account
= ohk <- MS 윈도우즈에서
로그인시 사용할 이름
[public]
comment = Public
Stuff
path
= /pub/windows <- MS 윈도우즈에서
사용할 디렉토리
public
= yes
writable
= yes
; printable =
no
; write list = @staff
only guest =
yes
(5) ohk라는 사용자를 등록해줍니다.
[root@server
lib]# cd ../bin
[root@server
bin]# ./smbpasswd -a ohk <- 여기서 입력한 패스워드를
기억
(6) 부팅시 실행되도록 /etc/rc.d/rc.local에
다음의 내용을 추가합니다.
/usr/local/samba/bin/smbd
-D
/usr/local/samba/bin/nmbd
-D
카. FTP 디렉토리 설정
(1) kim이라는 새로운 사용자를 등록하고 사용
디렉토리를 /pub/macfile로 합니다.
[root@server
lib]# adduser -d /pub/macfile kim
[root@server
lib]# passwd kim
[root@server
lib]# cd /pub/
[root@server
pub]# chown ohk macfile
[root@server
pub]# chgrp users macfile
(2) /etc/group에서 users에 ohk와 kim을 추가합니다.
[root@server
pub]# vi /etc/group
users:x:100:ohk,kim
(3) 위의 (가), (나) 일련의 작업이 필요한 이유
우선, 내부 네트워크의 매킨토시에서
output_server로 보이는 /pub/macfile의 권한을
내부
사용자인 ohk가 가지도록 설정하였습니다. 이것은 외부에서 사용하는
것 보다
내부에서 사용하는
것이 더 중요하기에 권한을 우선적으로 ohk에 주었기 때문입니다.
즉, 외부에서 ftp 접속시 kim으로
접속하여 작업하고, 내부에서 그 파일을 다시 작업할 수
있도록
하는 것입니다.
타. 타 운영체제에서의 설정
(1) 매킨토시에서의 설정
(가) TCP/IP에서
각각의 주소를 내부 네트워크 주소로 할당하고,
네임서버와
기본 게이트웨이를 192.168.1.1로 설정합니다.
(2) MS 윈도우즈에서의 설정
(가) 로그인시
ohk로 로그인하도록 설정하고, 패스워드는 삼바에서 설정한 패스워드와
동일하게
설정합니다.
(나) 네트워크
환경 설정
기본
게이트웨이와 네임서버를 192.168.1.1로 설정하고, 내부 네트워크
주소를 할당
(다) 전체 네트워크
전체
네트워크 검색에서 window_file이 검색되는지 확인하고 필요에 따라
링크