Généralités système Linux

iptables : quelques trucs utiles

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières


Présentation



iptables est un logiciel libre de l'espace utilisateur Linux grâce auquel l'administrateur système peut configurer les chaînes et règles dans le pare-feu.
Je liste ici quelques commandes qui me sont utiles.

Les commandes



Vidage des tables et des règles



Bien souvent, en début de script c'est intéressant de supprimer toutes les éventuelles entrées déjà créées :
Code BASH :
iptables -F # Nettoie la chaîne sélectionnée. Ceci équivaut à effacer toutes les règles une par une.
iptables -X # Efface la chaîne spécifiée définie par l'utilisateur. 
iptables -t nat -F #Efface toutes les règles une par une de la table nat.
iptables -t nat -X # Efface la chaîne spécifiée définie par l'utilisateur de la table nat. 


Lister les règles



Pour lister les règles :
Code BASH :
iptables -L

Le retour donné est :
Code TEXT :
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
f2b-SSH    tcp  --  anywhere             anywhere            tcp dpt:italk 
DROP       all  --  46.161.9.0/24        anywhere            
 
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
 
Chain f2b-SSH (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere  

Bloquer un réseau



Pour bloquer un réseau (DROPPER les paquets) :
Code BASH :
iptables -A INPUT -s 46.161.9.0/24 -j DROP


Autoriser un prot et un protocole sur une interface



Autoriser par exemple le trafic web (HTTP) sur l'interface eth0 :
Code BASH :
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT

Redirection de port



Si on a un serveur en frontal qui sert de proxy ou routeur, il peut être utile de rediriger un port sur un serveur en interne, ou sur la même machine si on a un Proxmox ou des conteneurs LXC :
Code BASH :
#Rediriger le port 80 en entrée sur enp0s3 sur la machine 192.168.122.2, port 80
iptables -t nat -A PREROUTING -j DNAT -i enp0s3 -p tcp --dport 80 --to-destination 192.168.122.2:80
 


Faire du NAT



Le serveur linux en sortie de réseau est un proxy ? Vous avez besoin de NATER ? Voici la solution :
Code BASH :
#NATER tout ce qui sort par enp0s3 (cas d'un routeur avec enp0s3 sur l'Internet)
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE