hosts.allow hosts.deny tcp wrapper 사용시 주의점
많은 관리자들이 iptables와 hosts.allow, hosts.deny를 이용하여 접근 제어를 한다.
그 중 hosts.allow, hosts.deny는 tcp wrapper 라는 필터링 유틸을 사용한다.
tcp wrapper 는 inetd(xinetd) 데몬에서 관리하는데
외부에서 특정 서비스로 접속할 때 필터링 역할을 해준다.
tcp wrapper 를 사용하려면 적용하려는 서비스에서도 tcp wrapper 라이브러리를 사용해야 한다.
예를 들면 host.allow/deny 에서 httpd 필터링이 동작한다면
httpd는 tcp wrapper 라이브러리를 사용하고 있는 것이다.
그럼 서비스가 tcp wrapper를 적용하는지 알아볼 수 있는 방법이 필요한데
그것은 ldd 명령어를 사용하면 확인 가능하다.
# 서비스 데몬 실행경로 찾기
whereis sshd
sshd: /usr/sbin/sshd /usr/share/man/man8/sshd.8.gz
# ldd로 서비스 데몬에서 wrap 관련 라이브러리를 검색하면
ldd /usr/sbin/sshd | grep wrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f64ef1c3000)
이렇게 libwrap.so.0 라이브러리를 사용하고 있다.
이 라이브러리를 포함하고 있는 서비스 데몬들은 tcp wrapper 가 적용된다고 보면 된다.
대부분의 유명 오픈소스들 서비스들은 tcp wrapper가 적용되지만
간혹 별로 알려지지 않은 비주류의 서비스 데몬을 사용할 때는 위 방법으로 확인하자.