Table des matières

iptables

Pare-feu de Linux, voir netfilter. Tout faire en sudo.

Plusieurs outils existent dans le parefeu:

Sources à explorer:

Source l'image

On insère dans des tables des règles qui vont agir sur des chaînes.

La table filter (par défaut) contient les chaînes OUTPUT, INPUT et FORWARD. Elle permet d'accepter (-j ACCEPT) ou rejeter (-j DROP) des paquets.

La table nat contient les chaînes PREROUTING, POSTROUTING et OUTPUT. Elle permet de modifier des paquets avant de les traiter.

On indique quelle table on manipule avec le paramètre -t.

Afficher les règles en place

iptables -L
iptables -t nat -L
watch --interval=1 'sudo iptables -L -v -n | grep -v "0     0 "' # voir en temps réel les règles qui sont utilisées
iptables -S # donne les règles sous forme de commandes iptables

Exporter facilement les règles:

iptables-save

Afficher les règles de la table NAT:

iptables -L --line-numbers -t nat

Supprimer la règle n°1 en POSTROUTING de la table NAT:

(le numéro provient de la liste obtenue avec la commande précédente)

iptables -t nat -D POSTROUTING 1

Faire du SNAT

SNAT: Source NAT: transformer l'IP source en A des paquets à destination de B:

iptables -t nat -A POSTROUTING -d B -j SNAT --to-source A

Changer l'IP de destination des paquets, pour les prendre en charge

sudo iptables -t nat -A PREROUTING -s 192.168.12.2 -j DNAT --to 192.168.12.100
# ou
sudo iptables -t nat -A PREROUTING -s 192.168.12.2 -d 192.168.12.1 -j REDIRECT

Les paquets venant de 192.168.12.2 (vers 192.168.12.1) sont traités par notre machine (qui a l'IP 192.168.12.100).

PREROUTING signifie qu'on applique les changements sur le paquets dès qu'il arrive sur l'interface réseau: une règle iptables existe pour ce paquet, donc il est pris en charge par la machine et n'est pas forwardé.

Autoriser le forwarding de paquets

sudo iptables -P FORWARD ACCEPT

Persister les règles au redémarrage

Source

Installer le paquet iptables-persistent, puis:

iptables-save -f /etc/iptables/rules.v4