본문 바로가기

3-1. Linux

portsentry를 이용한 실시간 방어 구현

펌'd by http://www.superuser.co.kr

포트스캐닝 방어의 가장 확실한 대안이 될수있는 portsentry에 대한 설명을드릴까한다.

Ping이나 기타 다른 도구들을 이용하여 불법적인 접근을 하려고 할 때 /etc/hosts.deny 파일에 실시간으로 추가되어 서버접근 및 포트스캔을 막는 막강한 보안툴이다.

먼저, 설치부터 해보도록 하자.

다음은 Portsentry-1.1.tar.gz 를 다운 받아서 tar로 압축을 풀고 있는 작업이다.

 

압축이 다 풀린다음 portsentry-1.1 이란 디렉토리로 이동하여 생성된 파일들을 "ls �l"로 확인해 본 것이다.

그런다음 다음과 같이 make linux로 컴파일을 한 것이다.

그런다음 make install로 생성된 파일들을 적당한 위치에 설치를 한 것이다. 

 

portsentry가 제대로 설치가 되었는지를 확인한 것이다. 
기본으로 설치를 하였다면 portsentry의 설치위치는 "/usr/local/psionic/portsentry"가 된다.

 

이제 설치된 디렉토리로 와서 환경설정을 하기위해 portsentry.conf 파일을 수정한다.
수정할 내용은 portsentry가 점검할 대상 포트(port)에 대한 것으로서 필요한 점검포트들을 모두설정하거나 점검하지 않을 포트들을 빼버리면 된다. 크게 대상 포트는 TCP 포트와 UDP포트로 나위어져 있으며, 특히 Stealth 스캔에 대한 옵션에 대한 설정도 할수 있음을 유심히 보기 바란다.

 

설치의 마지막 단계로서 서버 부팅시에 portsentry 데몬을 자동으로 올리기 위하여 /etc/rc.d/rc.local 파일에 portsentry데몬을 시작하는 명령어를 넣어둔 것이다.

 

 

등록방법은 아래와 같으나 불필요한 대상 프로토콜은 빼도 무관하다. 여기서는 모든 프로토콜을 대상으로 했으나 일반적으로는 tcp와 udp만을 대상으로 하는 경우가 많다.

 

다음과 같이 portsentry 데몬을 실행시켜보자.
그리고 ps로 실행된 데몬들을 확인한 것이다.

 

위와 같이 portsentry 데몬들을 올려두고 나면 아래 보시는 예처럼 /usr/local/psionic/portsentry 방에 관련된 파일들이 개별적으로 생성이 된다. 이 파일들은 자동적으로 생성이 되며 이파일내에는 불법적인 스캔이나 접근시도가 있었을 경우에 스캔 및 접근정보를 기록하는 로그파일이다.

 

 

이제 테스트를 해보도록 하자.

Portsentry가 설치되어 있는 서버의 IP Address가 111.222.111.222이라고 가정하면 다음과 같이 원격의 PC에서 telnet으로 이 서버로의 접근을 시도해 본다.

그리고 현재 접근을 시도하는 PC의 IP Address는 168.249.30.223이다.

 

그런다음 위에서 보았던 관련 로그파일에 관련된 기록이 남겨지는 가를 확인해본 것이다.

/etc/hosts.deny에는 다음과 같은 로그기록이 남겨지게 된다.

보시는 바와 같이 /etc/hosts.deny에는 접근을 시도했던 PC의 Ip Address가 모든 서비스에 대해서 접근차단이 된 것을 볼수가 있다.

이상으로 portsentry에 대한 설명을 마치면서 실습관 개별적인 연구를 통해 이 툴의 활용가치를 높여 보도록 하자.

펌'd by  
http://www.superuser.co.kr/security/portsentry.htm