19:27:47.782291 98:9b:cb:: > ff:ff:ff:ff:ff:ff, ethertype Unknown (0x88e1), length 60:
0x0000: 0000 a000 b052 38e5 d57f 0000 0000 0000 .....R8.........
0x0010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0020: 0000 0000 0000 0000 0000 0000 0000 ..............
19:27:47.782293 98:9b:cb:: > ff:ff:ff:ff:ff:ff, ethertype Unknown (0x8912), length 60:
0x0000: 0170 a000 0000 1f84 e5a3 97a2 5553 bef1 .p..........US..
0x0010: fcf9 796b 5214 13e9 e200 0000 0000 0000 ..ykR...........
0x0020: 0000 0000 0000 0000 0000 0000 0000 ..............
Мой маршрутизатор отправляет этот мусор в мою сеть, и я хотел бы заблокировать его, так как отключить его нельзя. Это делается через iptables
оказалось сложнее, чем я думал:
root@fw:~ # iptables -A INPUT -m mac --mac-source 98:9b:cb:: -p 0x88e1 -j DROP
iptables v1.8.2 (nf_tables): unknown protocol "0x88e1" specified
Try `iptables -h' or 'iptables --help' for more information.
Есть ли способ заблокировать неверный тип эфира?
Почему вы хотите отбросить эти рамки? Что это меняет? Их все равно сбрасывают ...
Причина, по которой ваш iptables
подход не работает в том, что вы смешиваете уровни протокола. Тип Ethernet (имеется в виду: протокол более высокого уровня) 0x0800 - IP (см. /etc/ethertypes
). Другими словами: это не IP-пакет. Как следствие, Netfilter никогда его не видит, поскольку обрабатывает только пакеты IPv4 и IPv6. По этой причине в Netfilter нет возможности сопоставить тип эфира.
Даже не ebtables
похоже, здесь помогает, поскольку у него нет теста на ethertype.
Может быть есть (трудное) «решение» (для этой не проблемы) злоупотребление формированием трафика (tc
) и его псевдосетевой интерфейс промежуточного функционального блока (ifb). Обычно формирование трафика используется только для исходящего трафика. С ifb
его можно применить к входящему трафику (я никогда этого не делал). Я думаю, что это может предложить подход, потому что tc
предлагает фильтры, выходящие за рамки логики протокола. Вы можете просто посмотреть определенные байты в пакете. Так что, возможно, таким образом станет доступно поле ethertype входящих пакетов.
Следующая проблема: формирование трафика было сделано не для фильтрации пакетов, а для их переупорядочения. Но, возможно, некоторые из его функций могут быть использованы для отбрасывания определенных пакетов / кадров.