이제는 각 서비스 별로 서비스를 열고 닫을 호스트를 정해준다. 이는 hosts.allow hosts.deny를 수정하면 된다. 파일을 수정하는 방법은 다음과 같다.
shell> vi hosts.allow
/etc/inetd.conf에서 현재 시스템에서 작동 중인 인터넷 서비스를 확인하고 그 데 몬의 이름을 확인한다. 시스템에서 사용하지 않은 데몬이 있을 경우는 hosts.allow 파일에 # 를 붙인다.그리고, 각 데몬의 이름을 /etc/inetd.conf에서 확인하여 정확히 바꾸어 준다. 다음은 서비스별로 deny 할 호스트를 지정한다. 기본적으로 ALL 로서 allow하고, deny 할 호스트를 EXPECT 다음에 지정한다. 이 때, DNS name보다는 ip address를 사용하기 권장한다.
shell> cp /etc/inetd.conf /etc/indetd.conf.org # /etc/inetd.conf 백업 shell> vi /etc/inetd.conf # /etc/inetd.conf 수정
Wrapper를 통한 서비스만을 수정하는데, 원래의 설정을 그대로 복사한 후, #기호를 붙이고 /usr/sbin/ftpd 등의 각 서비스를 /usr/sbin/tcpd -디렉토리는 해당 디렉토리-로 바꾼다. 그리고, 마지막에 그 전에 있던 서비스를 기입한다. 아래 예를 잘 참고하자.
-d: use allow/deny files in current directory -i: location of inetd.conf file
[root@gaya /root]# tcpdmatch ftpd bomun warning: ftpd: no such process name in /etc/inetd.conf warning: bomun: hostname alias warning: (official name: bomun.kaist.ac.kr) client: hostname bomun.kaist.ac.kr client: address 143.248.1.102 server: process ftpd matched: /etc/hosts.deny line 9 access: denied [root@gaya /root]#
[root@gaya /root]# tcpdmatch telnetd yskim.kaist.ac.kr warning: telnetd: no such process name in /etc/inetd.conf client: hostname yskim.kaist.ac.kr client: address 143.248.1.24 server: process telnetd matched: /etc/hosts.allow line 9 access: granted [root@gaya /root]#
8. inetd의 재시동
여기까지 이상이 없이 되었으면 이제는 inetd를 재시동하여 wrapper가 작동하도록 한다. 우선 ps 명령으로 pid를 찾아낸다.
shell> ps -eaf | grep inetd
root 152 1 0 8월 08 ? 2:18 /usr/sbin/inetd -s
(주의!!) PID는 시스템마다 다르므로 필히 확인하십시요.
그리고 HUP를 통해 작동시킨다.
shell> kill -HUP 152
9. 설치재확인
실험실내의 deny된 다른 호스트에서 접근 했을 때, deny가 되는지 확인한다.
shell> telnet taeback.kaist.ac.kr Trying 143.248.210.5… Connected to taeback.kaist.ac.kr. Escape character is ‘^]’. Connection closed by foreign host.