Уровень 2-доступная DMZ: ebtables?

Я хотел бы создать топологию сети, в которой все устройства IoT (принтер, видеорегистратор, термостат, проигрыватель BluRay и т. Д.) Находятся в демилитаризованной зоне, а остальные мои устройства - в локальной сети. Обратите внимание, что использование DMZ здесь отличается от настроек DMZ на маршрутизаторах и относится к "зоне сети, в которую я помещаю устройства, которым я не доверяю, чтобы не пытаться взломать мою сеть".

Обычно это делается путем создания многоуровневых шлюзов (т. Е. Наличия шлюза в демилитаризованной зоне для защиты локальной сети) или создания собственного 3-стороннего шлюза со специальными правилами iptables. Я делал оба раньше, но оба страдают от проблемы, заключающейся в том, что они представляют собой решение уровня 3, и я ищу решение уровня 2, в первую очередь для сохранения работы mDNS и Service Discovery.

Я думаю, что хочу разрешить:

LAN - [что угодно] -> DMZ

DMZ - [установлено + трансляция +DHCP]-> локальная сеть

Тем не менее, глядя на ebtables документация, похоже, я не могу отличить установленные IP-соединения от новых IP-соединений, что является обязательной особенностью моего плана.

Итак, есть две возможности:

1) Определение, как использовать ebtables делать то, что я хочу; или же

2) Использование подхода с двойным NAT и наличие устройства (RasPi или чего-то еще) прослушивают широковещательные рассылки Service Discovery в DMZ и ретранслируют их в локальной сети.

Последний вопрос: какой подход возможен и / или прост в управлении с точки зрения того, как долго я собираюсь возиться с вещами, чтобы заставить его работать?

Примечание: пометка под iptables вместо ebtables потому что я, видимо, не могу создать этот тег...

1 ответ

Первый, ebtables является протоколом Link-Layer, и поэтому не может ничего знать о ESTABLISHED, RELATED соединения. Согласно Википедии,

Канальный уровень - это группа методов и протоколов связи, которые работают только на канале, к которому физически подключен хост.

Итак, как он может знать, что этот пакет с некоторого удаленного URL-адреса является следующим пакетом в серии, которая была инициирована локально?

Что касается вашего второго решения, мне не ясно, чего вы пытаетесь достичь. Как правило, DMZ используются для ограничения объема трафика, передаваемого между ним и локальной сетью без DMZ, именно для предотвращения обнаружения и / или зондирования сети и т. Д. Вы вместо этого пытаетесь увеличить протоколы и связи между ними.

Если вы хотите сделать это, почему бы не создать единую локальную сеть, охватывающую как DMZ, так и не DMZ, а затем проследить трафик через iptables? Таким образом, вы разрешите не-IP-трафик между ними, но можете заблокировать IP-трафик, например, сбросить все соединения ssh / telnet из одной зоны в другую.

В качестве альтернативы вы можете использовать своего рода Человек посередине, то есть компьютер с интерфейсом в не-DMZ и один в DMZ, с включенной пересылкой IPv4, но управляемой iptables, а также dhcp-relay разрешить прохождение запросов DHCP (версия предоставлена dnsmaq особенно легко настроить). Кроме того, вы можете включить Proxy-ARP на этом компьютере MIM, чтобы он отвечал на запросы ARP от имени компьютеров, находящихся в карантине.

Другие вопросы по тегам