4.4. 네트워크 액세스 보안
4.4.1. TCP Wrappers 및 xinetd를 사용하여 서비스 보안
TCP Wrappers는 서비스에 대한 액세스를 거부하는 것 이상으로 많은 것을 할 수 있습니다. 이 섹션에서는 연결 배너를 전송하고 특정 호스트의 공격을 경고하고 로깅 기능을 향상시키는 데 사용할 수 있는 방법을 보여줍니다. TCP Wrapper 기능 및 제어 언어에 대한 자세한 내용은 hosts_options(5) 도움말 페이지를 참조하십시오. 서비스에 적용할 수 있는 옵션 역할을 하는 사용 가능한 플래그의 xinetd.conf(5) 도움말 페이지를 참조하십시오.
4.4.1.1. TCP 래퍼 및 연결 배너
사용자가 서비스에 연결할 때 적합한 배너를 표시하는 것은 잠재적인 공격자가 시스템 관리자가 감시하고 있음을 알리는 좋은 방법입니다. 또한 사용자에게 제공되는 시스템에 대한 정보를 제어할 수 있습니다. 서비스에 대한 TCP Wrappers 배너를 구현하려면
banner
옵션을 사용합니다.
이 예제에서는 vsftpd 에 대한 배너를 구현합니다. 시작하려면 배너 파일을 만듭니다. 시스템의 모든 위치에 있을 수 있지만 데몬과 동일한 이름이 있어야 합니다. 이 예제에서는 파일을
/etc/banners/COMPLETE라고 하며
다음 행을 포함합니다.
220-Hello, %c 220-All activity on ftp.example.com is logged. 220-Inappropriate use will result in your access privileges being removed.
%c 토큰은 사용자 이름 및 호스트 이름과 같은 다양한 클라이언트 정보 또는 사용자 이름과 IP 주소를 제공하여 연결을 훨씬 더 위협적으로 만듭니다.
이 배너를 들어오는 연결에 표시하려면
/etc/hosts.allow
파일에 다음 행을 추가합니다.
vsftpd : ALL : banners /etc/banners/
4.4.1.2. TCP Wrappers 및 공격 경고
특정 호스트 또는 네트워크가 서버 공격으로 탐지된 경우 TCP Wrappers를 사용하여 generate 지시문을 사용하여 해당 호스트 또는 네트워크의 후속 공격 관리자에게 경고를 표시할 수 있습니다.
이 예에서 206.182.68.0/24 네트워크의 크래커가 서버 공격을 시도하는 것으로 탐지되었습니다.
/etc/hosts.deny
파일에 다음 행을 추가하여 해당 네트워크의 연결 시도를 거부하고 특수 파일에 대한 시도를 기록하십시오.
ALL : 206.182.68.0 : spawn /bin/echo `date` %c %d >> /var/log/intruder_alert
%d 토큰은 공격자가 액세스하려고 하는 서비스의 이름을 제공합니다.
연결을 허용하고 로깅하려면
/etc/hosts.allow
파일에 spawn 지시문을 배치합니다.
참고
spawn 지시문은 쉘 명령을 실행하기 때문에 특수 스크립트를 생성하여 관리자에게 알리거나 특정 클라이언트가 서버에 연결을 시도하는 경우 명령 체인을 실행하는 것이 좋습니다.
4.4.1.3. TCP Wrappers 및 향상된 로깅
특정 유형의 연결이 다른 연결보다 우려되는 경우 심각도 옵션을 사용하여 해당 서비스의 로그 수준을 높일 수 있습니다.
이 예에서는 FTP 서버의 포트 23(Telnet 포트)에 연결을 시도하는 모든 사람이 크래커라고 가정합니다. 이를 표시하려면 기본 플래그, 정보, 연결 거부 대신 로그 파일에 emerg 플래그를 배치합니다.
이렇게 하려면
/etc/hosts.deny
에 다음 행을 배치합니다.
in.telnetd : ALL : severity emerg
이는 기본 authpriv 로깅 기능을 사용하지만 기본 값에서 info 의 기본 값에서 emerg 로 우선 순위를 승격합니다. 이 기능은 콘솔에 로그 메시지를 직접 게시합니다.