메뉴 닫기

tcp_wrappers 사용시 주의할점 (hosts.deny, hosts.allow)

2121

tcp_wrappers 사용시 주의할점 (hosts.deny, hosts.allow)

 

예전부터 리눅스 OS에서는 iptables도 많이 사용하지만 tcp_wrappers 라는 필터링 도구 사용하는 관리자들이 많이 있다.

/etc/hosts.allow 와 /etc/hosts.deny 파일에 sshd:ALL, httpd:192.168.0.1 이런식으로 접근권한을 설정하는것이다.

 

iptables 방화벽 보다 사용하기 쉽고 단순해서 많은 리눅스 유저들이 사용하고 있는것으로 알고 있다.

 

예전에 TCP_WRAPPERS 는 INETD, XINETD 인터넷 서비스 데몬 관리자에서 사용하던 필터링 도구인듯 하다. 

예전에 책에서 봤을때 일명 슈퍼데몬이 떠 있다가 외부 접속이 있을때 연결을 맺고 해당 데몬을 그때그때 실행하게 되는데

 

그 이유는 예전에 하드웨어가 비싸거나 사양이 낮았던 시절 (아마 메모리때문인듯 하다) 에 주로 사용했던것 같고 

보안적인 측면에서도 이용했다고 하는데 여튼 굳이 거기까지는 알 필요는 없을것 같다.

 

동작은 아래와 같다고 한다

client 접근 -> inetd (xinetd) -> TCP_WRAPPER 접근제어 -> 데몬 실행

 

요즘은 모든 데몬들이 STANDALONE 방식으로 많이 운영하기 때문에 iptables 방화벽과 TCP_WRAPPERS를 혼횽해서 사용하기도 한다.

최근에 /etc/hosts.deny 에 필터링이 제대로 적용되지 않아 자료를 좀 찾아보았다.

 

 

아래는 내가 /etc/hosts.deny 에 사용하고 있는것은 아래 서비스 데몬들이다. (대충 http 면 웹이니깐 httpd 그냥 끝에 d 를 붙였다)

sshd:ALL

samba:ALL

pop3:ALL

vsftpd:ALL

pptpd:ALL

httpd:ALL

mysqld:ALL

 

그리고 /etc/hosts.allow 에는 집, 사무실, 몇개의 아이피만 등록하여 사용하고 있다.

ALL:127.0.0.1

ALL:집 아이피

ALL:사무실 아이피

ALL:큰집 아이피

ALL:작은집 아이피

특정 몇개의 데몬들이 차단되지 않는것을 확인해보니  tcp_wrappers 를 지원해야 제대로 차단이 됨을 확인하였다.

 

서비스 데몬 실행파일 찾기

[root@localhost ~]# which sshd

/usr/sbin/sshd

 

sshd 가 tcp_wrapper 지원하는지 검색해보기 (다른 데몬들도 확인해보았다)

[root@localhost ~]# ldd /usr/sbin/sshd |grep libwrap

libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f79e17f3000)

 

[root@localhost ~]# ldd /usr/sbin/vsftpd |grep libwrap

libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f71d595b000)

 

[root@localhost sbin]# ldd /usr/bin/mysql |grep libwrap

 

[root@localhost sbin]# ldd /usr/sbin/httpd |grep libwrap

 

[root@localhost bin]# ldd /usr/sbin/snmpd |grep libwrap

libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fa57911d000)

 

혹은 아래 명령어로 확인해볼수 있다.

[root@localhost ~]# strings /usr/sbin/sshd | egrep “hosts.deny|hosts.allow|libwrap”

libwrap.so.0

libwrap refuse returns

 

libwrap.so.0 이라고 떠야 정상적으로 tcp_wrapper 에서 지원하는것이다.

지원하는것이 있고 지원하지 않는것이 정해져 있는가? 

 

MYSQL 5.1.40 의 경우는 소스파일을 확인해본결과 INSTALL-SOURCE 파일에 명시되어 있다.

컴파일 옵션 

   5.1.3 5.1.9

   –with-libwrap=DIR Compile in libwrap (tcp_wrappers) support

mysql 소스를 가지고 와서 컴파일 설치를 한다면 사용할수 있을듯 하다.

 

결론은 TCP-WRAPPER 에서 지원하지 않으면 기타 방화벽을 사용하여 보안 설정을 해야한다 이다.

 

TCP_WRAPPER 적용하고 난 뒤 반드시 외부에서 접속 테스팅을 하도록 하자~

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다