Nie można przekazywać Internetu przez wlan za pośrednictwem eth | Polecenie przywracania iptables nie działa

0

Mam urządzenie NanoPi M1 Plus z systemem operacyjnym Ubuntu, którego używam jako routera. Urządzenie pobiera Internet przez kabel ethernetowy (interfejs eth0), a WiFi AP jest dostępny przez interfejs wlan0.

Napisałem reguły iptables, ale nie działa. I włączono IP_FORWARDING.

Również przy wykonywaniu iptables-restore > /etc/iptables.ipv4.nat polecenie zamarza, a wyjście nie jest drukowane na terminalu.

iptables.ipv4.nat

*filter
:INPUT ACCEPT [186:14306]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [131:13477]
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth0 -j ACCEPT
COMMIT

*nat
:PREROUTING ACCEPT [142:11472]
:INPUT ACCEPT [27:2092]
:OUTPUT ACCEPT [28:2049]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT

Na czym polega problem?

ron123456
źródło
„Napisałem reguły iptables” - czy masz na myśli, że dodałeś je tylko do zestawu reguł w / etc, czy też masz na myśli, że załadowałeś je także przez iptables do jądra? Pierwszy nie przyniesie żadnego efektu, dopóki nie zostanie załadowany.
grawity
Załadowałem je do jądra
ron123456

Odpowiedzi:

2

Również przy wykonywaniu iptables-restore > /etc/iptables.ipv4.nat polecenie zamarza, a wyjście nie jest drukowane na terminalu.

Czeka wkład . Celem iptables-restore jest odczytanie zestawu reguł z pliku, ale użyłeś niewłaściwego operatora przekierowania i powiedziałeś powłoce, że Napisz do ten plik. Właściwym operatorem z tym poleceniem jest <.

Zauważ, że używanie > natychmiast opróżnił poprzednią zawartość pliku, więc upewnij się, że przed ponowieniem wypełnił ją ponownie regułami.

Poza tym zestaw reguł nie ma żadnych oczywistych problemów. Możesz mieć problemy gdzie indziej, szczególnie z funkcją filtrowania uRPF, która odmawia przyjęcia pakietów z „złego” interfejsu. Upewnij się, że wyłączasz go przez sysctl, ustawiając net.ipv4.conf.all.rp_filter do 0 dla „off” (lub 2 dla „loose”).

grawity
źródło
Tak, używałem niewłaściwego operatora. Chociaż nie działało to dla eth0 do przekazywania wlan0 nawet po wyłączeniu net.ipv4.conf.all.rp_filter. Ale jeśli używam zewnętrznego interfejsu wifi wlan1 jako stacji i wprowadzam zmiany w iptables.e.using wlan1 zamiast eth0 .. iptables forwarding działa doskonale
ron123456