iptables transfère tout le trafic vers l'interface

14

J'ai deux interfaces eth1et eth0. Je veux que tout le trafic eth0soit transféré eth1. J'ai créé une règle iptable comme celle-ci:

iptables -A FORWARD -s 0/0 -i eth0 -p tcp -o eth1 -j ACCEPT

Mais ça ne marche pas. Est-ce la bonne façon de procéder?

user110
la source

Réponses:

22

Si vous n'avez pas encore activé le transfert dans le noyau, faites-le.

  • Ouvrir /etc/sysctl.confet ne pas commenternet.ipv4.ip_forward = 1

  • Ensuite, exécutez $ sudo sysctl -p

Ajoutez les règles suivantes à iptables

sudo iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE  
sudo iptables -A FORWARD --in-interface eth0 -j ACCEPT

Tout le trafic transféré traversera la chaîne FORWARD. Pour filtrer les paquets, vous devrez maintenant créer des règles sur cette chaîne spécifiant quelle interface est entrante / sortante au lieu d'utiliser les chaînes INPUT / OUTPUT.

Ruisseau
la source