Insérer une règle dans IPtables
I. Présentation
Dans ce court tutoriel nous allons voir comment insérer une règle IPtables dans un ensemble de règles déjà présentes. Cela permet d'éviter de tout supprimer puis de tout réécrire ce qui peut poser des difficultés sur les environnements en production.
II. Procédure
Il existe sous IPtables une option qui permet de faire cela, on doit dans un premier temps lister nos règles pour y afficher un numéro ce qui nous permettra d'être plus précis lors de l'insertion de notre règle. On va pour cela utiliser la commande suivante :
iptables -L --line-number
On aura alors l'affichage des règle pour les tables INPUT, OUTPUT et FORWARD :
Pour avoir les tables PRE et POSTROUTING, il faut utiliser la commande suivante :
iptables -L -t nat --line-number
Nous savons maintenant où ajouter notre règle, par exemple si nous souhaitons la positionner entre les règles 3 et 4 de la table INPUT, on utilise la commande suivante avec l'option "-I" :
iptables -I INPUT 4 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
On utilise donc l'option "-I" pour insérer où l'on précise la table "INPUT" puis la ligne "4".
Note : Si on spécifie la ligne numéro 4, notre règle ira en ligne numéro 4 et l'ancienne règle numéro 4 deviendra la ligne numéro 5 et ainsi de suite.
Salut,
Merci pour l’option -I, je ne la connaissais pas.
Par contre sur un serveur en « prod » ça reste quand même dangereux, le mode « test » pour les scripts ou « iptables-apply » sont à privilégier!!!
Une erreur de commande et c’est le drame…
Le mode test => 30 secondes pour tester puis reviens à la config initiale.
iptables-apply => avec un timeout si on ne répond pas avant la fin du timeout reviens à la config initiale.
Bien sure une autre bonne pratique serait d’avoir toujours cette règle en premier => iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
Qui éviterait de se faire couper l’herbe sous les pieds….après un changement …..;-)
Badmaniak.
Bonjour,
Très intéressant le iptables-apply je ne connaissait pas. Effectivement il faut être sûr de son coup pour utiliser cette manière de faire, il faut être prudent avec ce genre de commande car on a vite fait de se tromper. Merci pour les infos =)
Mickael.