요즘 포트 스캔 탐지 도구를 좀 알아보니, 크게 3가지가 있었다..
portsentry, scanlogd, psad
셋다 포트스캔을 탐지하는 도구인데, 각각의 특징이 있다..
portsentry와 psad는 iptables와 연동되어 포트스캔이 탐지되면 자동으로 룰을 등록해서 차단한다.
하지만 scanlogd는 syslogd와 연동되어 scan에 대한 로그를 남긴다.
내가 하고자 하는 것은 탐지만이지 차단까지는 아니기 때문에 scanlogd를 설치해보고 테스트를 해보았다.
설치는 매우 간단했다..
1 2 3 4 5 |
]# wget http://www.openwall.com/scanlogd/scanlogd-2.2.6.tar.gz ]# tar xvzf scanlogd-2.2.6.tar.gz ]# cd scanlogd-2.2.6 ]# make linux ]# cp scanlogd /usr/local/sbin/ |
하면 끝~
그리고 scanlogd를 사용할 user를 등록해줘야 한다.(로그인 false 설정 포함)
1 2 |
]# useradd scanlogd ]# usermod -s /bin/false scanlogd |
다음은 syslogd와 연동을 위해 syslog.conf의 마지막 라인에 로그를 남길 위치를 지정한다.
1 2 3 4 5 6 7 8 9 |
]# cat /etc/syslog.conf ... daemon.alert /var/log/scanlog ]# service syslog restart 커널관련 기록을 종료 중: [ OK ] 시스템 기록을 종료 중: [ OK ] 시스템 기록을 시작 중: [ OK ] 커널관련 기록을 시작: [ OK ] |
그리고 scanlogd 프로세스를 시작~
1 2 3 4 |
]# /usr/local/sbin/scanlogd ]# ps -ef | grep scanlogd scanlogd 7237 1 0 00:16 ? 00:00:00 /usr/local/sbin/scanlogd root 7247 6461 0 00:17 pts/3 00:00:00 grep scanlogd |
자 이제 nmap 을 이용해서 scan을 해보자..
1 |
]# nmap -sS -v 234.xxx.xx.xxx |
스캔이 탐지 되었는지 확인해보면…
1 2 |
]# cat scanlog Oct 7 15:24:05 hostname scanlogd: 119.xx.xx.xxx to 234.xxx.xx.xxx ports 443, 3306, 80, 256, 53, 21, 554, 5900, ..., f??pauxy, TOS 00 @00:24:05 |
와우~ 신기
119.xx.xx.xxx 가 스캔을 시도한 ip이며, 234.xxx.xx.xxx 가 스캔 대상 ip이다..
port는 오픈이 안된 포트도 같이 나오기는 하지만..(서버에는 80과 3306만 열려있는 상태)
일단, 특정IP에서 스캔시도가 있었다는 사실은 알 수 있으므로 성공적이다^^