Sur un serveur dédié, il n’est pas rare d’avoir des adresses IP à bannir pour se débarrasser de visiteurs malveillants, de spammeurs ou de bots qui effectuent des requêtes farfelues visant à perturber le bon fonctionnement des services du serveur.
Heureusement, toutes ces petites contrariétés peuvent être résolues en quelques secondes grâce à un firewall comme iptables.
Ce petit tutoriel vous montre les quelques commandes à retenir pour lister, bannir ou débloquer des adresses IP avec iptables ainsi qu’un petit script bash qui vous permettra d’automatiser la gestion de ces trois fonctions très simplement.
Bannir une IP
Pour bannir une adresse IP avec iptables, il suffit de lancer cette commande:
iptables -I INPUT -s x.x.x.x -j DROP
Code language: CSS (css)
L’argument DROP indique que l’adresse IP indiquée (x.x.x.x) n’aura plus accès à la machine.
Lister les IP bloquées
Pour voir la liste des adresses IP bloquées, il suffit de demander à iptables la liste et de ne sélectionner que celles qui sont en DROP:
iptables -L INPUT -v -n | grep DROP
Résultat :
Chain INPUT (policy DROP 23 packets, 4122 bytes)
Débloquer une IP
Pour débloquer une IP, il faut d’abord afficher la liste des IP bannies:
iptables -L INPUT -v -n | grep DROP
Toutes les IP sont classées dans un ordre numéroté, ligne par ligne. Il suffit d’indiquer le numéro de la ligne de la règle à supprimer avec la commande:
iptables -D INPUT numero-de-la-regle
L’argument -D (pour delete) permet de supprimer la règle qui correspond à l’adresse IP que nous souhaitons supprimer. Par exemple, si on veut supprimer la règle 1, il suffit d’indiquer:
iptables -D INPUT 1
Vous aurez remarqué que toutes ces commandes sont bien fastidieuses et leurs syntaxes assez complexes à retenir.
Voyons donc comment créer un script bash qui prendrait en charge toutes ces commandes.
Script Bash pour automatiser la gestion des IP bannies dans iptables
Voici un script bash qui devrait grandement vous simplifier la gestion des IP dans iptables.
Il permet de bloquer, débloquer et lister les adresses IP en toute simplicité.