iptables leitet den gesamten Datenverkehr an die Schnittstelle weiter

14

Ich habe zwei Schnittstellen eth1und eth0. Ich möchte, dass der gesamte Datenverkehr an eth0weitergeleitet wird eth1. Ich habe eine iptable-Regel wie folgt erstellt:

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

Das funktioniert aber nicht. Ist das der richtige Weg, dies zu tun?

user110
quelle

Antworten:

22

Wenn Sie die Weiterleitung im Kernel noch nicht aktiviert haben, tun Sie dies.

  • Offen /etc/sysctl.confund unkommentiertnet.ipv4.ip_forward = 1

  • Dann ausführen $ sudo sysctl -p

Fügen Sie die folgenden Regeln hinzu iptables

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

Der gesamte weitergeleitete Verkehr durchläuft die FORWARD-Kette. Um Pakete zu filtern, müssen Sie jetzt Regeln für diese Kette erstellen, die angeben, welche Schnittstelle eingehend / ausgehend ist, anstatt die INPUT / OUTPUT-Ketten zu verwenden.

Bach
quelle