Mam dwa interfejsy eth1
i eth0
. Chcę, aby cały ruch eth0
był 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?
Mam dwa interfejsy eth1
i eth0
. Chcę, aby cały ruch eth0
był 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:
Jeśli jeszcze nie włączono przekazywania w jądrze, zrób to.
Otwarte /etc/sysctl.conf
i 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.