Iptables est un logiciel libre présent sous l’environnement Linux et permettant de configurer des chaînes et des règles dans le pare-feu du noyau système.

Tout comme Iptables, il existe Ip6tables, Arptables, Ebtables, respectivement pour gérer l’IPv6, les requêtes ARP et les trames Ethernet. L’ensemble de ces logiciels sont regroupés au sein de Xtables, désigné comme le pare-feu complet de l’environnement Linux.

Ces outils étant majoritairement utilisés par les administrateurs systèmes, il faudra les droits « root » afin de pouvoir les utiliser.

Dans cette petite documentation nous allons nous intéresser à iptables dans le but de travailler sur les échanges IPv4.


Commandes les plus utiles

Liste des règles :

user@serveur:~# sudo iptables -L

Liste des règles avec affichage numérique des ports et adresses :

user@serveur:~# sudo iptables -L -n

Liste des règles avec affichage numérique des ports et adresses, et numéro de ligne :

user@serveur:~# sudo iptables -L -n --line-numbers

Affichage des règles s’appliquant à XX (adresse ou protocole, sous forme numérique si option -n, sinon sous forme littérale en retirant -n) :

user@serveur:~# sudo iptables -L -n | grep XX

Suppression de la règle (INPUT ou OUTPUT ou FORWARD) avec X le numéro de la règle (on retrouve le numéro avec –line-numbers lors de l’affichage de la liste des règles) :

user@serveur:~# sudo iptables -D [INPUT / OUTPUT / FORWARD] X

Ajout d’une règle (INPUT ou OUTPUT ou FORWARD) avec X le numéro de la règle (pour définir son positionnement), toutes les options ne sont pas obligatoires :

user@serveur:~# sudo iptables -A [INPUT / OUTPUT / FORWARD] x -p PROTOCOLE -s SOURCE_IP --dport DEST_PORT --sport SOURCE_PORT -j [ACCEPT / REJECT / DROP / MARK] -d DEST_IP -t mangle --set-mark XXX

Permettre le NAT sur l’interface connecté au routeur :

user@serveur:~# sudo iptables -t NAT -A POSTROUTING -o interface -j MASQUERADE

Différence entre DROP et REJECT

DROP : Aucune réponse envoyé au client lors d’une connexion UDP. ACK/RST envoyé au client lors d’une connexion TCP. Recommandé pour les interfaces exposées sur Internet.

REJECT : Réponse « Port unavailable » envoyé au client. Pas de timeout à attendre du côté client. Recommandé pour les usages locaux.

Plus d’informations sur iptables

https://doc.ubuntu-fr.org/iptables