Self-Improvement

TCP_Wrappers 서비스 본문

리눅스/보안

TCP_Wrappers 서비스

JoGeun 2018. 10. 23. 22:26

*TCP_Wrappers
tcp_wrapper는 finger, ftp, telnet, rlogin, rsh, exec, tftp, talk, comsat등의 네트워크 서비스를 필터링 할 수 있는 프로그램이다.

(장점) 설정이 간단함(쉽게 설정 가능), 성능 저하 거의 없음.
(단점) 모든 서비스에 대한 제어가 가능하지 않음.

TCP 제어를 위해서는 /etc/hosts.allow, /etc/hosts.deny파일을 가지고 설정한다.
(Rule 적용 순서)
- /etc/hosts.allow 파일에 정의된것은 허용이 되고,
- 만약 정의 되지 않은 내용이 있다면, /etc/hosts.deny 파일에 정의된것은 거부가 되고
- 만약 정의 되지 않은 내용이 있다면, 허용된다.
.

※TCP_Wrappers는 따로 서비스에 대한 restart할 필요가 없이 바로 적용이 된다.

*접근 제어 규칙

(파일 작성시 문법 규칙)
- 새로운 줄(줄바꿈)은 무시되고, 줄을 연장할 경우에는 백슬래쉬를 사용해야 한다.
- 빈줄 혹은 #’으로 시작되는 줄은 주석처리이다.
- 다른 모든 줄은 아래의 형식을 따라야 한다.

 () daemon_list : client_list [ : shell_command ]
   - daemon_list : 한 개 이상의 데몬(서버 프로그램) 프로세스 혹은 예약어(와일드 카드)
   - client_list : 한 개 이상의 호스트 이름, 주소, 패턴 혹은 예약어(클라이언트 이름 혹은 주소가 일치하는 것)
            (IP 주소 지정 예 ) 192.168.0.1, 10.0.0.              
            (이름으로 지정 예 ) www.redhat.com, .example.com
            (넷마스크로 지정 예) 192.168.0.0/255.255.255.0 
            (네트워크 이름으로 지정 예) @mynetwork (/etc/networks or NIS 네트워크 이름)

(예약어)
- ALL : 모든 서비스 또는 모든 호스트를 나타냄
- LOCAL : 같은 네트워크에 있는 모든 호스트
- KNOWN : 이름이 KNOWN 호스트, 혹은 이름 또는 주소를 알고 있는 호스트
- UNKNOWN : 이름이 UNKNWON 호스트, 혹은 이름이나 주소를 모르는 호스트
- PARANOID : 호스트이름이 주소와 일치되지 않는 호스트(정방향/역방향 검색이 일치하지 않는 모든 호스트)
- B EXCEPT A : 목록 B에서 A를 제외한 모든 B

(패턴형식)
 - ':'의 위치에 유념해야 하고, ALL':'은 공백이 있어야 한다.

(쉘 명령어) 
명령
- spawn : 현재 수행중인 프로세스의 자식프로세스(Child Process)로 수행
- twist : 현재 수행중인 프로세스의 이미지 교체 후 수행 (프로세스의 이미지가 교체되므로 규칙의 마지막 옵션으로 사용해야 한다.

확장 옵션
- %a (%A): 클라이언트(서버)의 주소
- %c : 클라이언트의 정보(EX: user01@example.com)
- %n (%N): 클라이언트의 이름%d : 서비스 데몬의 이름
- %h (%H): 클라이언트(서버) 이름 또는 주소
- %p : 데몬 프로세스 ID%s : 서버 정보
- %u : 클라이언트 사용자 이름


*FTP 서비스 간단 실습
192.168.20.200의 호스트만 허용하고 나머지는 거부한다

#vi /etc/hosts.allow
ftpd: 192.168.20.200

#vi /etc/hosts.deny
ftpd: ALL

*telnet 서비스 간단 실습
192.168.20.0/24 대역은 allow, 나머지는 deny

#vi /etc/hosts.allow
telnetd: 192.168.20.

#vi /etc/hosts.deny
telnetd: ALL

*ssh 서비스 간단 실습
192.168.20.200의 호스트만 allow, 나머진 deny

#vi /etc/hosts.allow
sshd: 192.168.20.200

#vi /etc/hosts.deny
sshd: ALL

*tcpd 데몬에 의해서 제어 되는 서비스 확인
#which vsftpd

#ldd /usr/sbin/vsftpd | grep libwrap
 - 출력내용이 있으면 제어가 가능한 서비스


#which httpd

#ldd /usr/sbin/httpd | grep libwrap
 - 출력내용이 없음으로 제어가 불가능한 서비스

'리눅스 > 보안' 카테고리의 다른 글

File ACL, 디렉토리의 Default ACL  (0) 2018.10.24
sudo  (0) 2018.10.23
SELinux 기초 명령어 및 실습  (0) 2018.10.23
방화벽(iptables)2 간단실습  (0) 2018.10.23
방화벽(iptables)  (0) 2018.10.23