티스토리 뷰
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.unixmen.com/securing-services-with-tcp-wrappers |
'Linux' 카테고리의 다른 글
dns roundrobin (0) | 2016.04.21 |
---|---|
Fatal error: Call to undefined function mysql_connect() in (0) | 2016.02.04 |
dmidecode (리눅스 하드웨어 확인) (0) | 2016.01.28 |
리눅스에서 USB 저장장치 인식 안되게 하기 (0) | 2016.01.26 |
우분투 아이피 셋팅 (0) | 2016.01.12 |
- Total
- Today
- Yesterday
- pptp
- mariadb
- 리눅스
- GeoIP
- glusterfs
- ssh
- galera
- virtualbox
- 인증서
- WAF
- L2TP
- gitlab
- iptables
- cURL
- Apache
- IPSEC
- ntp
- 베이어다이나믹
- NGINX
- mod_security
- centOS7
- php
- softether
- centos8
- MySQL
- yum
- SSL
- kvm
- HAProxy
- OpenVPN
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |