Iptables Administration

De EjnTricks

Dans le cadre de cet article, la machine se situe derrière un routeur que ne laisse passer que le port SSH et HTTP. Donc la description des restrictions n'est pas la plus sécurisée qu'il soit. Seule les restrictions sont configurées, tous les autres modes d'accès restent ouverts. De plus, la machine ne possède qu'une interface réseau, donc les commandes seront exécutées sans spécification de celle-ci.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Configuration Initiale

La configuration initiale est vide:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


Utilisation de Fail2ban

Le script fail2ban permet de contrôler différentes logs sur le serveur et de mettre en place automatiquement des restrictions. Lors de son installation, et sur une déclaration vierge, le contenu de la table est le suivant:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
fail2ban-ssh  tcp  --  anywhere             anywhere            multiport dports ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

Si le mode ssh est utilisé, la configuration devient:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
fail2ban-ssh  tcp  --  anywhere             anywhere            multiport dports ssh
DROP       all  --  221.232.137.202      anywhere
DROP       all  --  58.17.163.8      anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

Or ceci ne permet pas de bannir l'accès, car la règle définie dans fail2ban-ssh va autoriser l'accès dans un premier temps. Il faut donc utiliser le mode d'insertion des règles en remplaçant l'argument -A par -I et en indiquant l'emplacement d'insertion.

Paramètre Utilisation
-I Mode insertion.
INPUT X Cible dans la table où est ajoutée la règle, suivi de la position X dans celle ci.

Ici, la restriction s'applique aux connexions entrantes.

-s IP Permet d'indiquer l'addresse IP à laquelle s'applique la règle
-j DROP Les connexions seront tout simplement détruites

Les deux règles sont donc injectées avec les commandes suivantes:

#sudo iptables -I INPUT 1 -s 221.232.137.202 -j DROP
#sudo iptables -I INPUT 1 -s 58.17.163.8 -j DROP

Et la déclaration des règles devient:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  58.17.163.8      anywhere
DROP       all  --  221.232.137.202      anywhere
fail2ban-ssh  tcp  --  anywhere             anywhere            multiport dports ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

Il est également possible d'injecter les règles directement dans la "Chain" fail2ban-ssh par les commandes suivantes:

#sudo iptables -I fail2ban-ssh 1 -s 221.232.137.202 -j DROP
#sudo iptables -I fail2ban-ssh 1 -s 58.17.163.8 -j DROP


Strategy-icon.png Persistance des règles