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?

użytkownik110
źródło

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.

zatoczka
źródło