Skip to the content.

PortSentry

Qu’est ce que PortSentry ?

PortSentry est un outil de détection et de réponse aux scans de port conçu pour améliorer la sécurité des systèmes en surveillant les connexions réseau suspectes. Il peut identifier les tentatives de scan de port sur un système et réagir en bloquant les adresses IP des attaquants, empêchant ainsi les intrusions potentielles.

Fonctionnalités principales de PortSentry

  1. Détection de scans de port : PortSentry surveille les tentatives de connexion sur les ports ouverts ou fermés pour détecter les scans de port effectués par des attaquants
  2. Réponse active : lorsqu’un scan de port est détecté, PortSentry peut réagir en bloquant l’adresse IP de l’attaquant en temps réel, souvent en ajoutant des règles de pare-feu ou en modifiant les fichiers de configuration réseau
  3. Modes de fonctionnement : il peut fonctionner en plusieurs modes, notamment le mode “stealth” où il simule des ports ouverts pour attirer et détecter les scanners, et le mode “advanced” où il surveille des ports spécifiques
  4. Flexibilité et configuration : il est hautement configurable, permettant aux administrateurs de définir les ports à surveiller, les actions à entreprendre en cas de détection de scan, et les niveaux de sensibilité

Services et options

Surveillance des ports

Actions de réponse

Modes de fonctionnement

Configuration

PortSentry est un outil essentiel pour renforcer la sécurité des systèmes en détectant et en réagissant aux scans de port, réduisant ainsi le risque d’intrusion par des attaquants potentiels.

Installation de PortSentry

On installe PortSentry :

sudo apt install portsentry

Configuration de PortSentry

On démarre le service :

systemctl start portsentry

On active le démarrage automatique :

systemctl enable portsentry

On vérifie que le service fonctionne :

systemctl status portsentry

On ajoute l’IP de notre serveur pour éviter de se faire bannir :

sudo nano /etc/portsentry/portsentry.ignore.static

à la fin du fichier, on y ajoute notre IP.

On configure PortSentry :

sudo nano /etc/portsentry/portsentry.conf

Ces options vous permettent d’activer les réponses automatiques pour les protocoles TCP / UDP. Cela est utile si vous souhaitez afficher des avertissements pour les connexions sur un protocole particulier (par exemple, bloquer TCP mais pas UDP). Pour éviter une attaque par déni de service (DoS) contre UDP et la détection de scan furtif pour TCP, il peut être préférable de désactiver le blocage tout en maintenant l’avertissement activé.

La troisième option permet d’exécuter uniquement une commande externe en cas de scan pour lancer un script de notification sans interrompre la route. Cela peut être utile pour les administrateurs qui veulent bloquer TCP tout en recevant seulement des alertes.

On change :

BLOCK_UDP="0"
BLOCK_TCP="0"

En :

BLOCK_UDP="1"
BLOCK_TCP="1"

On vérifie que ces options sont décommentées :

KILL_ROUTE="/sbin/route add -host $TARGET$ reject"

et

KILL_HOSTS_DENY="ALL: $TARGET$ : DENY"

à chercher dans le fichier

On change :

#KILL_RUN_CMD_FIRST = "0"

en

KILL_RUN_CMD_FIRST = "1"

Plus loin, on ajoute la 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 debug --log-prefix 'Portsentry: dropping: '"

On changé également :

SCAN_TRIGGER="0"

en

SCAN_TRIGGER="1"

Il y a deux façons d’utiliser PortSentry.

On ouvre le fichier de configuration de PortSentry :

sudo nano /etc/default/portsentry

On change :

TCP_MODE="tcp"
UDP_MODE="udp"

en

TCP_MODE="atcp"
UDP_MODE="audp"

Avec ce changement PortSentry laissera ouvert tous les ports disponibles.

sudo nano /etc/portsentry/portsentry.conf

On modifie dans le fichier de configuration :

TCP_MODE="tcp"
UDP_MODE="udp"

On peut aussi détecter les Stealth Scan en modifiant les paramètres aux valeurs suivantes, utile pour détecter les scans de ports furtifs :

TCP_MODE="stcp"
UDP_MODE="sudp"

On redémarre PortSentry :

sudo service portsentry restart

On patiente quelques minutes / heures et on peut déjà constater que PortSentry fait correctement son travail en affichant le fichier des IP bloquées :

sudo tail -f /etc/hosts.deny

ou

sudo tail -f /var/lib/portsentry/portsentry.history

on note que cette commande affiche la date, l’IP ainsi que le port

Si vous rencontrez une erreur avec une IP qui a été bannie alors qu’elle ne devrait pas l’être, on peut la retirer :

route del -host IP-PROBLÉMATIQUE reject

[ Retour à l’accueil ] [ Remonter la page ]