lesta Posted February 8, 2011 Posted February 8, 2011 Здравствуйте. Имеется роутер на 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 заранее спасибо за ответ. Вставить ник Quote
Dark_Angel Posted February 8, 2011 Posted February 8, 2011 Если пакеты дропаются по IP, а по маку нет, значит мак другой для обмена по локальной сети. Посмотрите внимательно пакеты, какой мак на тразитных из сети в сеть. Если трафик внутри сети маршрутизируются, то там спокойно может быть мак роутера. Вставить ник Quote
marikoda Posted February 8, 2011 Posted February 8, 2011 (edited) Здравствуйте.Имеется роутер на 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 February 8, 2011 by marikoda Вставить ник Quote
s.lobanov Posted February 8, 2011 Posted February 8, 2011 Мне почему-то кажется, что фильтровать надо в raw PREROUTING .Также можно попробовать ebtables/arptables А Вы в курсе, что в table raw нет действий(jump) по фильтрации? Только NOTRACK и RETURN. Вставить ник Quote
Dark_Angel Posted February 9, 2011 Posted February 9, 2011 Если это роутер, который роутит инет и локалку, то в filter, FORWARD однозначно будет пакет с маком. Нужно искать, почему там мак другой и кто его меняет. Никаких raw, PREROUTING и другого не надо. Вставить ник Quote
lesta Posted February 9, 2011 Author Posted February 9, 2011 Если это роутер, который роутит инет и локалку, то в filter, FORWARD однозначно будет пакет с маком. Нужно искать, почему там мак другой и кто его меняет. Никаких raw, PREROUTING и другого не надо.Вы правы, спасибо большое.там мак этого же роутера. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.