Jump to content
Калькуляторы

запретить транзитный трафик с помощью iptables

Здравствуйте.

Имеется роутер на asplinux 9.2. на нем два физических интрефейса, eth0 - интернет, eth1 локальная сеть. На eth1 много виланов. нужно запретить транзитный трафик с определенного mac-адреса в интернет и в локальную сеть (между виланами).

iptables -I FORWARD -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP

работает только в плане трафика между eth0 и eth1, то есть из локальной сети в интернет, внутри локальной сети между виланами не работает.

tcpdump-ом входящие/исходящие пакеты этой машины прекрасно видны. если логировать эту машину по IP-адресу -

iptables -I FORWARD -d XX.XX.XX.XX -j LOG --log-prefix "TEST "

лог выглядит таким образом (почему то нет mac-адреса)-

Jan 27 8:57:12 asp kernel: TEST IN=eth1 OUT=eth1.20 SRC=YY.YY.YY.YY DST=XX.XX.XX.XX LEN=84 TOS=0x00 PREC=0x00 TTL=126 ID=32901 PROTO=ICMP TYPE=0 CODE=0 ID=1135 SEQ=3191

по IP-адресу пакеты дропаются. в цепочке INPUT все работает. всякие ухищрения с mark тоже не работают с mac-адресом. PREROUTING ведет себя так же. всякие игры с интерфейсам - -i eth1 -o eth1.2 тоже ничего не дают. отказ от использования vlan1 тоже.

 

пробовалось на ядре 2.4.22 и 2.6.26, iptables v1.2.9 и v1.4.10

 

заранее спасибо за ответ.

Share this post


Link to post
Share on other sites

Если пакеты дропаются по IP, а по маку нет, значит мак другой для обмена по локальной сети. Посмотрите внимательно пакеты, какой мак на тразитных из сети в сеть. Если трафик внутри сети маршрутизируются, то там спокойно может быть мак роутера.

Share this post


Link to post
Share on other sites
Здравствуйте.

Имеется роутер на asplinux 9.2. на нем два физических интрефейса, eth0 - интернет, eth1 локальная сеть. На eth1 много виланов. нужно запретить транзитный трафик с определенного mac-адреса в интернет и в локальную сеть (между виланами).

iptables -I FORWARD -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP

работает только в плане трафика между eth0 и eth1, то есть из локальной сети в интернет, внутри локальной сети между виланами не работает.

tcpdump-ом входящие/исходящие пакеты этой машины прекрасно видны. если логировать эту машину по IP-адресу -

iptables -I FORWARD -d XX.XX.XX.XX -j LOG --log-prefix "TEST "

лог выглядит таким образом (почему то нет mac-адреса)-

Jan 27 8:57:12 asp kernel: TEST IN=eth1 OUT=eth1.20 SRC=YY.YY.YY.YY DST=XX.XX.XX.XX LEN=84 TOS=0x00 PREC=0x00 TTL=126 ID=32901 PROTO=ICMP TYPE=0 CODE=0 ID=1135 SEQ=3191

по IP-адресу пакеты дропаются. в цепочке INPUT все работает. всякие ухищрения с mark тоже не работают с mac-адресом. PREROUTING ведет себя так же. всякие игры с интерфейсам - -i eth1 -o eth1.2 тоже ничего не дают. отказ от использования vlan1 тоже.

 

пробовалось на ядре 2.4.22 и 2.6.26, iptables v1.2.9 и v1.4.10

 

заранее спасибо за ответ.

Мне почему-то кажется, что фильтровать надо в raw PREROUTING .

Также можно попробовать ebtables/arptables

Edited by marikoda

Share this post


Link to post
Share on other sites
Мне почему-то кажется, что фильтровать надо в raw PREROUTING .

Также можно попробовать ebtables/arptables

А Вы в курсе, что в table raw нет действий(jump) по фильтрации? Только NOTRACK и RETURN.

Share this post


Link to post
Share on other sites

Если это роутер, который роутит инет и локалку, то в filter, FORWARD однозначно будет пакет с маком. Нужно искать, почему там мак другой и кто его меняет. Никаких raw, PREROUTING и другого не надо.

Share this post


Link to post
Share on other sites
Если это роутер, который роутит инет и локалку, то в filter, FORWARD однозначно будет пакет с маком. Нужно искать, почему там мак другой и кто его меняет. Никаких raw, PREROUTING и другого не надо.
Вы правы, спасибо большое.

там мак этого же роутера.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this