본문 바로가기
리눅스

[Linux / Unix] 리눅스 접근통제 TCP Wrapper

by 공대냥이 2018. 8. 21.
반응형

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.allow
 
ALL : 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  서버의 정보 
%%  하나의 %문자 

반응형