iptables : quelques trucs utiles
Table des matières
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.
Bien souvent, en début de script c'est intéressant de supprimer toutes les éventuelles entrées déjà créées :
Pour lister les règles :
Le retour donné est :
Avec un niveau de détail plus élevé, utiliser -v en plus :
Ce qui donne :
Pour bloquer un réseau (DROPPER les paquets) :
Autoriser par exemple le trafic web (HTTP) sur l'interface eth0 :
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 :
Le serveur linux en sortie de réseau est un proxy ? Vous avez besoin de NATER ? Voici la solution :
Au lieu d'ajouter une règle comme vu ci-dessus à la suite, on peut l'insérer à une position donnée. Exemple en position 1 :
Pour supprimer une règle, par exemple la troisième de la liste du iptables -L de la chaine INPUT, saisir :
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
Avec un niveau de détail plus élevé, utiliser -v en plus :
Code BASH :
iptables -vL
Ce qui donne :
Code TEXT :
Chain INPUT (policy ACCEPT 15600 packets, 1272K bytes) pkts bytes target prot opt in out source destination 18M 1583M f2b-SSH tcp -- any any anywhere anywhere tcp dpt:italk 973 58380 DROP all -- any any 46.161.9.0/24 anywhere 0 0 DROP all -- any any 46.161.9.32 anywhere 0 0 DROP all -- any any 46.161.9.31 anywhere Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 17629 packets, 10M bytes) pkts bytes target prot opt in out source destination Chain f2b-SSH (1 references) pkts bytes target prot opt in out source destination 18M 1583M RETURN all -- any any 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
Ajouter une règle à un endroit donné
Au lieu d'ajouter une règle comme vu ci-dessus à la suite, on peut l'insérer à une position donnée. Exemple en position 1 :
Code BASH :
iptables -I INPUT 1 -s 46.161.9.0/24 -j DROP
Supprimer une règle
Pour supprimer une règle, par exemple la troisième de la liste du iptables -L de la chaine INPUT, saisir :
Code BASH :
iptables -D INPUT 3