iptables przekazuje cały ruch do interfejsu


14

Mam dwa interfejsy eth1i eth0. Chcę, aby cały ruch eth0był przekazywany do eth1. Stworzyłem taką iptable regułę:

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

Ale to nie działa. Czy to właściwy sposób na zrobienie tego?

Odpowiedzi:


22

Jeśli jeszcze nie włączono przekazywania w jądrze, zrób to.

  • Otwarte /etc/sysctl.confi bez komentarzanet.ipv4.ip_forward = 1

  • Następnie wykonaj $ sudo sysctl -p

Dodaj następujące reguły do iptables

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

Cały przekazywany ruch będzie przechodził przez łańcuch FORWARD. Aby filtrować pakiety, musisz teraz utworzyć reguły w tym łańcuchu określające, który interfejs przychodzi / wychodzi, zamiast używać łańcuchów WEJŚCIE / WYJŚCIE.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.