Во-первых, ebtables
это протокол Link-Layer, и, как таковой, он не может ничего знать о ESTABLISHED, RELATED
соединениях. Согласно Википедии ,
Канальный уровень - это группа методов и протоколов связи, которые работают только на канале, к которому физически подключен хост.
Итак, как он может знать, что этот пакет с некоторого удаленного URL-адреса является следующим пакетом в серии, которая была инициирована локально?
Что касается вашего второго решения, мне не ясно, чего вы пытаетесь достичь. Как правило, DMZ используются для ограничения объема трафика, передаваемого между ним и локальной сетью без DMZ, именно для предотвращения обнаружения и / или зондирования сети и т. Д. Вы вместо этого пытаетесь увеличить протоколы и связи между ними.
Если вы хотите сделать это, почему бы не создать единую локальную сеть, охватывающую как DMZ, так и не DMZ, а затем проследить трафик iptables
? Таким образом, вы разрешите не-IP-трафик между ними, но можете заблокировать IP-трафик, например, сбросить все соединения ssh / telnet из одной зоны в другую.
В качестве альтернативы вы можете использовать своего рода Man in the Middle, то есть компьютер с интерфейсом в не-DMZ и интерфейс в DMZ, с включенной переадресацией IPv4, но управляемой iptables
и dhcp-relay
разрешающей передачу запросов DHCP (версия обеспечивается dnsmaq
особенно проста в установке). Кроме того, вы можете включить Proxy-ARP на этом компьютере MIM, чтобы он отвечал на запросы ARP от имени компьютеров, находящихся на карантине.