티스토리 뷰

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 적용하고 난 뒤 반드시 외부에서 접속 테스팅을 해보도록 하자.~




자료 참고 및 출처

 

http://www.ducea.com/2006/07/02/how-to-find-out-if-a-daemon-was-build-with-tcp-wrappers-support-hostsallowhostsdeny


http://www.unixmen.com/securing-services-with-tcp-wrappers






댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함