1

У меня есть linux box с iptables. Через него проходит трафик, входящий в wlan0 и выходящий из wlan1. Я хочу разрешить проходить только определенным машинам. Я попробовал по MAC, это не удалось, затем я попытался по IP, и, к моему удивлению, это тоже не удалось.

Для обоих случаев я поставил политику FORWARD как DROP

$ iptables -P FORWARD DROP

Тогда я сделал

$ iptables -A FORWARD -i wlan0 -m mac --mac-source 76:AB:BF:80:4E:B3 -j ACCEPT

Когда это не сработало, я активировал лог с:

$ iptables -I FORWARD -i wlan0 -j LOG

kern.log показал, что мой MAC-адрес источника был MAC-адресом linux wlan0. Тогда я попробовал по IP адресу:

$ iptables -A FORWARD -s 192.168.1.10 -j ACCEPT

Это также не удалось. Затем я попытался оставить политику как принять и поставить следующее, чтобы отбросить все, после моего вышеупомянутого правила:

$ iptables -A FORWARD -j DROP 

Но это все еще не работало, поскольку мой клиент уронил свой пакет. Это работает только тогда, когда политика ACCEPT (но тогда нет фильтрации). Это заставляет меня поверить, что правило не соответствует трафику. Что я делаю неправильно?

РЕДАКТИРОВАТЬ:

Мои полные цепочки iptables:

$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             MAC 76:AB:BF:80:4E:B3
ACCEPT     all  --  192.168.1.10         anywhere           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   

0