linux:iptables

iptables

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

Plusieurs outils existent dans le parefeu:

  • iptables
  • ip6tables
  • ebtables
  • arptables

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.

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
iptables-save
iptables -L --line-numbers -t nat

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

iptables -t nat -D POSTROUTING 1

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
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é.

sudo iptables -P FORWARD ACCEPT

Source

Installer le paquet iptables-persistent, puis:

iptables-save -f /etc/iptables/rules.v4
  • linux/iptables.txt
  • Dernière modification : 2021/11/29 22:28
  • de phsw