TCP Wrapper

2006. 12. 28. 23:15IT/OS

1. TCP Wrapper 란?

인터넷 상에서의 접속은 대부분 TCP 프로토콜을 이용하여 이루어지게 됩니다. 이러한 TCP 접속에 대해 Wrap를 씌워 서버로 접근하는 불필요한(?) 접속에 대해 적절한 제한을 가해주는 것이 바로 TCP Wrapper입니다. TCP Wrapper는 그 특성상 서비스(데몬)별 및 IP별로 구분하여 설정할 수 있으며, “접속 거부”와 “접속 허용”을 적절히 제어함으로써 그 효과를 볼 수 있습니다.


① 접속 거부: /etc/hosts.deny

TCP Wrapper에서 접속 거부를 설정하는 곳입니다.

여기에 설정된 주소들은 모두 접속이 거부됩니다.

② 접속 허용: /etc/hosts.allow

TCP Wrapper에서 접속 허용을 설정하는 곳입니다.

여기에 설정된 주소들은 모두 접속이 허용됩니다.

일반적으로 hosts.deny에서 모든 접속을 차단하고, hosts.allow에서 필요한 접속을 열어주는 방식을 많이 사용합니다.

2. /etc/hosts.deny

접속 거부를 설정하는 /etc/hosts.deny에 대해 살펴보도록 하겠습니다. vi 에디터 및 텍스트 편집기 등을 사용하여 /etc/hosts.deny 파일을 열어봅니다.


#

# hosts.deny This file describes the names of the hosts which are

# *not* allowed to use the local INET services, as decided

# by the '/usr/sbin/tcpd' server.

#

# The portmap line is redundant, but it is left to remind you that

# the new secure portmap uses hosts.deny and hosts.allow. In particular

# you should know that NFS uses portmap!

ALL: ALL

※ 주석(#) 처리되어 있는 라인은 해석되지 않는 구문으로 일반적인 설명을 담고 있습니다.




TCP Wrapper 설정은...

서비스: 접속대역



위와 같은 형태로 선언을 하게 됩니다.

ALL: ALL

위와 같은 설정을 hosts.deny 파일에 하게되면, 사실상 모든 서비스에 대해 모든 IP대역이 차단됩니다. 한소프트 리눅스 제품은 보안 강화를 위해, 설치 시 기본적으로 위와 같이 외부로부터의 모든 접속을 차단하는 상태로 부팅이 됩니다. 그러므로, 리눅스 서버 설치 이후 보안 설정을 하기 전까지 외부로부터 발생할 수 있는 불법적인 침입에 대해 미연에 방지해 줄 수 있습니다.

만약 외부로부터의 모든 접근을 허용하고자 한다면, 간단히 위의 ALL: ALL 라인을 주석(#) 처리해주면 됩니다.

하지만, 이 경우 외부로 부터의 침입에 무방비 상태로 노출되게 되므로, 그전에 반드시 방화벽 등을 통해 보안설정을 구축해 두기를 권장합니다.


※ hosts.deny와 hosts.allow의 설정 및 사용방법은 동일합니다. 다만, 어느 파일에 기록되느냐에 따라 접속 허용에 대한 설정인지, 접속 차단에 대한 설정인지를 구분하게 됩니다.

좀 더 자세한 설정을 알아보기 위해, /etc/hosts.allow 파일을 확인해 보도록 합니다.

3. /etc/hosts.allow

hosts.allow는 접속 허용 대상을 선언하는 곳입니다. vi 에디터 또는 텍스트편집기를 사용하여 해당 파일을 확인해봅니다.

#

# hosts.allow This file describes the names of the hosts which are

# allowed to use the local INET services, as decided

# by the '/usr/sbin/tcpd' server.

#


초기에는 위와 같이 아무런 설정이 되어 있지 않습니다.


아래는 간단한 설정 예제입니다. 아래 내용을 보며, 하나씩 설명하도록 하겠습니다.

#

# hosts.allow This file describes the names of the hosts which are

# allowed to use the local INET services, as decided

# by the '/usr/sbin/tcpd' server.

#

ALL: 192.168.179.

ALL: 211.233.211.233

ALL: 192.168.111. EXCEPT 192.168.111.203

ALL: .haansoft.com EXCEPT hacking.haansoft.com

httpd: ALL

sshd: 192.168.179.


[접근 허용 사용 예]


ALL: 192.168.179.

==> 192.168.179.xxx IP 대역으로 부터의 모든 서비스 접근을 허용합니다.

192.168.179.0 ~ 192.168.179.255에 해당하는 256개 IP

ALL: 211.233.211.233

==> 211.233.211.233 IP로부터의 모든 서비스 접근을 허용합니다. (1개 IP)

ALL: 192.168.111. EXCEPT 192.168.111.203

==> 192.168.111.xx IP대역으로 부터의 모든 서비스 접근을 허용하지만,

192.168.111.203 IP는 여기서 제외 됩니다.

ALL: .haansoft.com EXCEPT hacking.haansoft.com

==> xxx.haansoft.com 대역 호스트로 부터의 모든 서비스 접근을 허용하지만,

hacking.haansoft.com 호스트는 여기서 제외 됩니다.

httpd: ALL

==> 아파치 웹서버(httpd) 서비스로의 모든 접근을 허용합니다. (IP 제한 없음)

(웹서버 설정에 많이 사용됩니다.)

sshd: 192.168.179.

==> SSH(보안텔넷) 서비스로의 접속을 요청하는,

192.168.179.xxx IP 대역 호스트의 접근을 허용합니다.

(서비스 및 IP 동시 제한)


TCP Wrapper는 현재 사용하고자 하는 서버 시스템의 사용 용도 및 접속 환경 등에 따라 적절히 설정하여 사용할 수 있습니다. TCP Wrapper를 통해 TCP 차원에서의 1차적인 접속제한을 설정할 수 있으나, 좀 더 철저한 보안 설정을 위해 Iptables와 같은 방화벽 설정도 같이 사용하기를 권장합니다.

'IT > OS' 카테고리의 다른 글

Solaris CD-ROM Mount 하기  (0) 2007.01.23
Opatch 사용하기  (0) 2006.12.28
유용한 Windows 단축키  (2) 2006.12.28
cron job  (0) 2006.12.28
[Linux] 일반계정 su 사용 제한  (3) 2006.12.28
Solaris CPU,MEM,NET 상태  (0) 2006.12.28
fuser, 강제로 umount...  (0) 2006.12.28
about NFS  (0) 2006.12.28