Portsentry est une application qui permet a votre serveur de detecter un scan de ports mais aussi d’agir :
– Les attaques seront inscrites dans vos logs
– le scanneur est automatiquement bloque puisque sont ip sera rajouté dans /etc/hosts.deny
– Avec ipchains, toutes les communications venant de l’hôte « attaqueur » seront bloquées
– L’interface de communication peut être coupée en cas d’attaque.
Il est donc très utile d’installer et configurer portsentry sur votre serveur. Afin d’obtenir de meilleurs résultats il est possible de le combiner a fail2ban et a un script iptable
Pour installer le paquet lancez la commande suivante
sudo apt-get install portsentry
Lors de l’installation vous serez prévenu que par défaut portsentry ne bloque rien. Il faudra donc modifier les fichiers de configuration, mais tout d’abord occupons nous des hôtes qui seront ignorés afin de ne pas se faire soit bloquer même
sudo nano /etc/portsentry/portsentry.ignore
Ajoutons la liste des ips que vous souhaitez ne jamais bloquer
# IPs from /etc/portsentry/portsentry.ignore.static: 127.0.0.1/32 # dynamically fetched IPs(via ifconfig -a): 127.0.0.1 # mes IPs xxx.xxx.xxx.xxx
Nous pouvons maintenant nous occuper de la configurer de portsentry
sudo nano /etc/default/portsentry
Ici nous allons activer les modes audp et atcp, Portsentry va vérifier les ports utilisés et automatiquement « lier » les ports disponibles. C’est l’options la plus efficace (« a » signifie avancé). Avec cette options, portsentry établit une liste des ports d’écoute, TCP et UDP, et bloque l’hôte se connectant sur ces ports, sauf s’il est présent dans le fichier portsentry.ignore. Veillez donc a ce que votre fichier se compose de la manière suivante
# /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"
Modifions maintenant le fichier de configuration principal
sudo nano nano /etc/portsentry/portsentry.conf
Mettez en place le blocage en modifiant la section Ignore options de la façon suivante
################## # Ignore Options # ################## ... # 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
Veillez ensuite a ce que la section dropping route soit bien configurée avec la ligne suivante décommentée
KILL_ROUTE="/sbin/route add -host $TARGET$ reject"
Meme chose pour la section TCP Wrappers qui doit être configurée ainsi
KILL_HOSTS_DENY="ALL: $TARGET$ : DENY"
Ajoutez la ligne suivante comme external commande
KILL_RUN_CMD="/sbin/iptables -I INPUT -s $TARGET$ -j DROP && /sbin/iptables -I INPUT -s $TARGET$ -m limit --limit 3/minute --limit-burst 5 -j LOG --log-level debub --log-prefix 'Portsentry: dropping: '"
Vous pouvez redemarrer portsentry et qui vous protegera au mieux d’un scan de vos ports
sudo service portsentry restart