У меня есть Linux-машина (моя рабочая станция). Оттуда я могу пинговать другие локальные машины, скажем 192.168.1.22. Допустим, я хочу запретить связь с 192.168.1.22 по его MAC-адресу. Я пробую простое правило:
ebtables -I INPUT -s 00:24:1d:c9:0a:27 -j DROP
Но все же я могу пинговать этот хост. Ограничивается ли ebtables фильтрацией трафика только на интерфейсах моста?
Да, ebtables работает только с фреймами, проходящими через интерфейсы моста. Однако вы можете сделать хорошее нарушение многоуровневости и использовать параметр -m mac --mac-source iptables.
Когда я делаю что-нибудь сложное с netfilter, я держу эту диаграмму под рукой: http://jengelh.medozas.de/images/nf-packet-flow.png
Тор, то, что ты предлагаешь, правильно и работает. Я только что проверил это.
Вам может потребоваться обновить маршруты, заменив мостовые интерфейсы самим интерфейсом моста, чтобы убедиться, что вы не обходите мост.
ip route del 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1
ip route add 192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1