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
Attention il est clairement indiqué dans la documentation que la KILL_RUN_CMD est effectuée EN PLUS de la KILL_ROUTE et qu’il vaut mieux utiliser une méthode de filtrage des paquets (donc iptables) plutôt que la KILL_ROUTE que tu a utilisé La ligne à décommenter est : « KILL_ROUTE= »/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: ‘ » » Ta KILL_RUN_CMD est redondante puisque l’autre ligne est déjà présente dans le fichier Et il faut ensuite recommenter : KILL_ROUTE= »/sbin/route add -host $TARGET$… Lire la suite »
Tuto honteusement pompé de https://www.isalo.org/wiki.debian-fr/Portsentry et les ajouts sont bourrés de fautes…
En général on cite ses sources…
Bonjour Nicolas, Désolé de ne répondre que si tardivement. Effectivement je viens de consulter le lien que tu as posté. Je reconnais que il y a eu un énorme pompage seulement j’ai posté ce tutoriel après l’avoir consulté sur un forum (dont je ne donnerai pas l’adresse et qui a de toute façon depuis fermé) et après avoir demandé l’autorisation a celui qui en réclamait la paternité. J’aurais du cependant vérifier avant de le poster. Sauf oubli je cite habituellement les sources des informations que je partage. L’article sera retravaillé et bien entendu je ferai mention de la source. Merci… Lire la suite »
Merci pour ta réponse.
Je me rends compte combien mon commentaire était direct, mais comme j’ai retrouvé plusieurs fois le même contenu dans la même journée c’est tombé sur ton blog 🙂
Comme il avait l’air de valoir le coup j’ai préféré apporté une remarque.
A plus 🙂
Pas de problème et merci à toi d’avoir attiré mon attention là-dessus.
A+ 🙂