설명
Honey Pot을 통하여 해당 포트(tcp:32774)에 접근시 Port Scanning으로 판단하는 프로그램.
Port Scanning으로 판단시 Shell 스크립트를 실행하도록 설정 가능.
기본적으로 route add -host [ip] reject를 통한 라우팅 테이블을 통한 응답 거부 및 TCP Wrapper를 통한 접근 제어 가능.
TCP Wrapper는 IP 및 도메인 호스트 기반 ACL으로 /etc/hosts.deny, /etc/hosts.allow파일이 존재.
설치
apt-get install portsentry -y
설정 옵션
/etc/postsentry/postsentry.conf에 있음.
# 감지할 포트
TCP_PORTS="1,11,15,79,111,119,143,540,635,1080,1524,2000,5742,6667,12345,12346,20034,27665,31337,32771,32772,32773,32774,40421,49724,54320"
UDP_PORTS="1,7,9,69,161,162,513,635,640,641,700,37444,34555,31335,32770,32771,32772,32773,32774,31337,54321"
# 감지 시작 포트
ADVANCED_PORTS_TCP="1024"
ADVANCED_PORTS_UDP="1024"
# 스캔 탐지를 무시할 호스트가 작성된 파일
IGNORE_FILE="/etc/portsentry/portsentry.ignore"
# Log를 기록할 위치
HISTORY_FILE="/var/lib/portsentry/portsentry.history"
# 시작시 Block할 호스트가 존재하는 파일
BLOCKED_FILE="/var/lib/portsentry/portsentry.blocked"
# 차단 규칙 실행 여부
# 0 = Do not block UDP/TCP scans.
# 1 = Block UDP/TCP scans.
# 2 = Run external command only (KILL_RUN_CMD)
BLOCK_UDP="1"
BLOCK_TCP="1"
# 쉘 명령을 통한 차단규칙. 아래는 라우팅 테이블에서 호스트가 존재하지 않다고 정의하여 차단
KILL_ROUTE="/sbin/route add -host $TARGET$ reject"
# TCP Wrapper 차단 규칙
KILL_HOSTS_DENY="ALL: $TARGET$ : DENY"
Log 파일
1732176671 - 11/21/2024 17:11:11 Host: 172.16.20.15/172.16.20.15 Port: 7 UDP Blocked
1732177149 - 11/21/2024 17:19:09 Host: 172.16.13.9/172.16.13.9 Port: 111 TCP Blocked
1732178071 - 11/21/2024 17:34:31 Host: 172.16.13.9/172.16.13.9 Port: 79 TCP Blocked
1732178262 - 11/21/2024 17:37:42 Host: 172.16.13.9/172.16.13.9 Port: 119 TCP Blocked
1732178373 - 11/21/2024 17:39:33 Host: 172.16.13.9/172.16.13.9 Port: 111 TCP Blocked
1732178536 - 11/21/2024 17:42:16 Host: 172.16.20.15/172.16.20.15 Port: 143 TCP Blocked
1732179891 - 11/21/2024 18:04:51 Host: 172.16.20.15/172.16.20.15 Port: 111 TCP Blocked
1732179896 - 11/21/2024 18:04:56 Host: 172.16.13.9/172.16.13.9 Port: 111 TCP Blocked
라우팅 테이블 및 /etc/hosts.deny
# 라우팅 테이블
root@Ubuntu:/etc# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.0.1 0.0.0.0 UG 100 0 0 ens37
0.0.0.0 172.16.0.1 0.0.0.0 UG 101 0 0 ens38
0.0.0.0 172.16.0.1 0.0.0.0 UG 102 0 0 ens33
172.16.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens37
172.16.0.0 0.0.0.0 255.255.0.0 U 101 0 0 ens38
172.16.0.0 0.0.0.0 255.255.0.0 U 102 0 0 ens33
172.16.20.15 - 255.255.255.255 !H 0 - 0 -
라우팅 테이블 flag에 !H로 등록됨.
시스템이 재시작 될 시 이는 삭제되는 라우팅 테이블임
# /etc/hosts.deny
# ALL: PARANOID
ALL: 172.16.20.15 : DENY