Portsentry
Introduction
portsentry et un programme de détection et de blocage de "scan de ports" (généralement programme qui scanne votre machine à le recherche de ports ouverts, en général dans le but de préparer une attaque).
Installation
# apt-get update # apt-get upgrade # apt-get install portsentry
Configuration
Tel qu'il est installé, portsentry ne fera rien pour vous... il va falloir le configurer pour que la détection, et le blocage soit effectif!
# nano /etc/portsentry/portsentry.conf
Choisissez ici le niveau de surveillance:
... # Un-comment these if you are really anal: #TCP_PORTS="1,7,9,11,15,70,79,80,109,110,111,119,138,139,143,512,513,514,515,540,635,1080,1524,2000,2001,4000,4001,5742,6000,6001,6667,12345,12346,2003$ #UDP_PORTS="1,7,9,66,67,68,69,111,137,138,161,162,474,513,517,518,635,640,641,666,700,2049,31335,27444,34555,32770,32771,32772,32773,32774,31337,54321" # # Use these if you just want to be aware: 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" # # Use these for just bare-bones #TCP_PORTS="1,11,15,110,111,143,540,635,1080,1524,2000,12345,12346,20034,32771,32772,32773,32774,49724,54320" #UDP_PORTS="1,7,9,69,161,162,513,640,700,32770,32771,32772,32773,32774,31337,54321" ...
Par défaut BLOCK est à 0. Laissez comme ça pour vos essais, inutile de vous bloquer vous-même... Mettez à un pour mettre "en production".
... # 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" ...
# nano /etc/default/portsentry
# /etc/default/portsentry # # This file is read by /etc/init.d/portsentry. See the portsentry.8 # manpage for details. # # The options in this file refer to commandline arguments (all in lowercase) # of portsentry. Use only one tcp and udp mode at a time. # TCP_MODE="atcp" UDP_MODE="audp"
# service portsentry restart Stopping anti portscan daemon: portsentry. Starting anti portscan daemon: portsentry in atcp & audp mode.
Autorisez les scans légitimes
Vous avez la possibilité de laisser certaines IP faire des scans de ports dans le fichier nano /etc/portsentry/portsentry.ignore.static
Pensez à mettre dans ce fichier les machines de votre réseau qui ont la permission de faire des scans... Puis de relancer portsentry:
# service portsentry restart
Test
Tel qu'il est configuré par apt, portsentry ne sera pas efficace, pas même pour faire de la détection, un nmap depuis une autre machine vous le prouvera:
root@nas:~# nmap -v -PN -p 0-2000,60000 10.9.8.2
Starting Nmap 5.00 ( http://nmap.org ) at 2011-10-27 16:08 EAT
NSE: Loaded 0 scripts for scanning.
Initiating ARP Ping Scan at 16:08
Scanning 10.9.8.2 [1 port]
Completed ARP Ping Scan at 16:08, 0.06s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 16:08
Completed Parallel DNS resolution of 1 host. at 16:08, 6.50s elapsed
Initiating SYN Stealth Scan at 16:08
Scanning sidlol.zehome.org (10.9.8.2) [2002 ports]
Discovered open port 111/tcp on 10.9.8.2
Discovered open port 80/tcp on 10.9.8.2
Discovered open port 22/tcp on 10.9.8.2
Discovered open port 143/tcp on 10.9.8.2
Discovered open port 119/tcp on 10.9.8.2
Discovered open port 635/tcp on 10.9.8.2
Discovered open port 15/tcp on 10.9.8.2
Discovered open port 1/tcp on 10.9.8.2
Discovered open port 79/tcp on 10.9.8.2
Discovered open port 1524/tcp on 10.9.8.2
Discovered open port 11/tcp on 10.9.8.2
Discovered open port 540/tcp on 10.9.8.2
Discovered open port 2000/tcp on 10.9.8.2
Discovered open port 1080/tcp on 10.9.8.2
Completed SYN Stealth Scan at 16:08, 0.12s elapsed (2002 total ports)
Host sidlol.zehome.org (10.9.8.2) is up (0.000047s latency).
Interesting ports on sidlol.zehome.org (10.9.8.2):
Not shown: 1988 closed ports
PORT STATE SERVICE
1/tcp open tcpmux
11/tcp open systat
15/tcp open netstat
22/tcp open ssh
79/tcp open finger
80/tcp open http
111/tcp open rpcbind
119/tcp open nntp
143/tcp open imap
540/tcp open uucp
635/tcp open unknown
1080/tcp open socks
1524/tcp open ingreslock
2000/tcp open callbook
MAC Address: 00:15:E9:B5:69:26 (D-Link)
Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 6.95 seconds
Raw packets sent: 2003 (88.130KB) | Rcvd: 2011 (80.594KB)
Rien dans /var/log/syslog...
En remplaçant tcp et udp par atcp et audp dans /etc/default/portsentry, vous obtinedrez de meilleurs résultats...
Oct 27 16:11:33 sidlol portsentry[4077]: attackalert: TCP SYN/Normal scan from host: 10.9.8.6/10.9.8.6 to TCP port: 135
Oct 27 16:11:33 sidlol portsentry[4077]: attackalert: Ignoring TCP response per configuration file setting.
Oct 27 16:11:33 sidlol portsentry[4077]: attackalert: TCP SYN/Normal scan from host: 10.9.8.6/10.9.8.6 to TCP port: 53
Oct 27 16:11:33 sidlol portsentry[4077]: attackalert: Host: 10.9.8.6/10.9.8.6 is already blocked Ignoring
En précisant à portsentry de bloquer les ip qui tentent des scans sur votre serveur, la protection sera bien réelle...
/etc/portsentry/portsentry.conf
... BLOCK_UDP="1" BLOCK_TCP="1"
Le résultat doit être immédiat:
cat /etc/hosts.deny ... ALL: 10.9.8.6 : DENY
Le méchant scanner de port est définitivement bloqué...
Lol 27 octobre 2011 à 08:44 (CDT)