반응형
TCP Wrapper 는 외부에서 들어오는 클라이언트에 대해 접근통제 기능을 제공한다.
TCP Wrapper를 사용하면 /etc/inetd.conf파일 내 실행경로 설정이 변경된다.
구분 | 서비스 | 소켓 타입 | 프로토콜 | 플래그 | 사용자 | 실행경로 | 실행인수 |
사용 전 | Telnet | stream | TCP | nowait | root | /usr/sbin/in.telnetd | in.telnetd |
사용 후 | Telnet | stream | TCP | nowait | root | /usr/sbin/tcpd | in.telnetd |
- TCP Wrapper를 사용할 경우 해당 서비스의 실행 경로에 "/usr/sbin/tcpd"를 명시한다. inetd데몬은 외부로부터 서비스 요청이 올 경우 inetd.conf파일을 참조하여 실행경로에 설정된 /usr/sbin/tcpd 를 실행한다.
- tcpd는 hosts.allow 및 hosts.deny 파일을 참조하여 접근제어를 수행한 후 실행 인수로 설정된 서비스를 실행
접근 허용 및 차단
- /etc/hosts.allow, /etc/hosts.deny 파일에 정의된 호스트 정보를 기준으로 한다.
- default는 모든 접근을 허용하며 allow파일에 호스트 정보가 있다면 해당 호스트만 접근을 허용한다.
- deny와 allow 모두 호스트 정보가 있다면 allow가 우선된다.
문법 | service_list : client_list [ : shell_command ] | |
옵션 | service_list | 한 개 이상의 네트워크 서비스명 또는 예약어로 구분자 , 로 구분한다. |
client_list | 한 개 이상의 호스트명, 도메인명, IP 주소, 네트워크ID, 또는 예약어로 구분자 , 로 구분한다. | |
shell_command | 일치하는 것이 있을 때 선택적으로 tcpd가 실행하는 쉘 명령이다. |
예시) (hosts.deny 의 설정은 ALL:ALL일 경우)
hosts.allowALL : 192.168.56.2 192.168.56.2 IP 주소에 대해 모든 서비스 허용ALL : 192.168.56.0/255.255.255.0 192.168.56.0 대역 네트워크에 속한 모든 호스트 허용ALL EXCEPT in.telnetd : ALL 모든 호스트에 대해 Telnet 서비스를 제외한 모든 서비스 허용intelnetd : .test.com EXCEPT www.test.com www.test.com을 제외한 test.com 도메인의 모든 호스트에대해 Telnet서비스만 이용 가능
Shell_command
- shell_command에 정의한 쉘 명령은 일반적으로 hosts.deny파일에 설정하여 차단된 호스트에게 경고 메세지를 보내는
용도로 사용한다.
- 쉘 명령어를 실행하는 방법으로는 twist, spawn이 있다.
- twist는 명령의 결과를 클라이언트에게 전송하기 때문에 클라이언트에게 메시지를 보낼 때 유용하다.
- spawn은 명령의 결과를 클라이언트에게 전송하지 않는다.
예시)
in.telnetd : 192.168.56.12 : twist /bin/echo [ message ]
in.telnetd : 192.168.56.12 : spawn /bin/mail -s "%a is denied" root
shell_command 특수문자 | 내용 |
%a | 클라이언트의 IP주소 |
%A | 서버의 IP 주소 |
%c | 클라이언트의 정보 |
%d | 서비스명 |
%h | 클라이언트의 호스트명 또는 IP주소 |
%n | 클라이언트의 호스트명 |
%u | 클라이언트의 사용자 이름 |
%p | 서비스 데몬 프로세스 |
%s | 서버의 정보 |
%% | 하나의 %문자 |
반응형
'리눅스' 카테고리의 다른 글
[Linux/CentOS7] Chrony 리눅스 시간 동기화 (NTP) (0) | 2018.09.03 |
---|---|
[Linux / CentOS] CentOS 점검 명령어 모음 (0) | 2018.08.27 |
[Linux] Logrotate 리눅스 로그 순환 관리 (0) | 2018.08.22 |
[Linux] 리눅스 주요 로그 파일 정리 (0) | 2018.08.22 |
[Linux] 리눅스 유저 관리 명령어 (0) | 2018.08.17 |
[Linux] 리눅스 NAT : SNAT & DNAT (0) | 2018.08.17 |
[CentOS7] firewall-cmd 리눅스 방화벽 사용법 정리 (firewalld) (1) | 2018.08.17 |
[Linux] 리눅스 방화벽 Iptables 개념정리 (0) | 2018.08.14 |