Bannir une adresse IP avec iptables

Lorsque nous administrons un serveur dédié, il arrive que certains malins cherchent à trouver des failles de sécurités en scannant le serveur ou tente de trouver mot login/mot de passe en utilisant une méthode de type "Brute Force".

Il faut bien sûr, qu'iptables soit installé sur votre machine

Comment bannir une seule adresse IP

En ligne de commande :

iptables -I INPUT -s xxx.xxx.xxx.xxx -j DROP

On remplace xxx.xxx.xxx.xxx par l'IP à bannir.

Comment bannir une plage d'adresses IP

En ligne de commande :

iptables -I INPUT -s xxx.xxx.xxx/xxx -j DROP

On remplace xxx.xxx.xxx/xxx par le sous-réseau et le masque à bannir, exemple :

Comment bannir une adresse IP d'un service

Ici nous allons prendre comme exemple de bannir une adresse IP du service Apache2. Apache2 utilise 2 ports d'entrée, le port 80 pour http: et le port 443 pour https:

iptables -I INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 80,443 -j DROP

On remplace xxx.xxx.xxx.xxx par l'IP à bannir. L'attribut -p permet de préciser le protocole (tcp ou udp). L'attribut –dport, les ports à bloquer

Avec cette commande, l'IP xxx.xxx.xxx.xxx ne peut plus accéder au site internet présent sur votre serveur mais peut continuer à utiliser FTP par exemple ou le service de mails.

Allez plus loin avec iptables

  • Lister les adresses IP bloquées
iptables -L INPUT -v -n | grep DROP 
  • Débloquer une adresse IP
iptables -D INPUT ligne-regle-a-supprimer

On remplace ligne-regle-a-supprimer par la ligne de la règle que vous voulez supprimer. La liste des règles est donnée par la commande précédente.

Notes de version

  • [09/12/2017] : Création de l'article

Auteurs et sources