Назад | Перейти на главную страницу

brctl-мост пересылает пакеты на случайные интерфейсы

У меня в Linux есть два беспорядочных интерфейса сниффинга:
eth0 подключен к внешнему мосту vlan
eth1 подключен к внутреннему мосту vlan

с помощью eth0 я могу прослушивать весь трафик в моей «внешней сети» с помощью eth1 я могу прослушивать весь трафик в моей «внутренней сети»

Затем я создал мост с помощью brctl (br0) и добавил к нему оба интерфейса.
Теперь я могу обнюхивать все пакеты, появляющиеся на eth1 и eth2, прямо из br0, избавляя меня от необходимости запускать два экземпляра snort.

Моя проблема в том, что теперь пакеты arp и multicast, которые появляются на eth0, копируются на br0 и перенаправляются на eth1.

Есть ли способ заставить оба этих интерфейса копировать все пакеты на br0, но никогда не позволять br0 пересылать какие-либо пакеты, а eth0 или eth1 не отвечать на них?

По своей конструкции мост Linux действует точно так же, как простой коммутатор NWay Ethernet. Он ведет собственную таблицу ARP / MAC-адресов и пересылает пакеты в соответствии с этой таблицей. Таким образом, многоадресная передача и ARP, как и в обычном сетевом коммутаторе, поступают на каждый порт независимо от их происхождения.

Чтобы предотвратить такое поведение, вы должны настроить брандмауэр, не используя iptables, который заботится об уровне 3+ в модели OSI, но ebtables который заботится о трафике уровня 2.

Предполагая, что вы используете дистрибутив на основе Debian / Debian, вы можете выполнить:

apt-get install ebtables

apt-get install arptables

Для дополнительной документации выполните:

man 8 ebtables

Вот краткий пример использования ebtables для многоадресной рассылки:

ebtables -A FORWARD -o eth0 --pkttype-type multicast -j DROP
ebtables -A OUTPUT -o eth0 --pkttype-type multicast -j DROP
ebtables -A FORWARD -o eth1 --pkttype-type multicast -j DROP
ebtables -A OUTPUT -o eth1 --pkttype-type multicast -j DROP

Как хорошая отправная точка для обучения ebtables, который фактически копирует iptables синтаксис, вот официальная документация: http://ebtables.sourceforge.net/documentation/docs.html