У вас есть три вопроса в одном. Учитывая, что у меня нет полной конфигурации, я даю простые команды, которые могут работать или могут быть адаптированы к вашей конфигурации
Самоочевидно: пакеты из источника 10.0.2.0/24 никогда не могут пересекаться с 10.0.1.0/24.
как разрешить доступ к ненадежной локальной сети из защищенной локальной сети?
iptables -I FORWARD -s 10.0.2.0/24 -d 10.0.1.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD 2 -s 10.0.1.0/24 -d 10.0.2.0/24 -j ACCEPT
Обратите внимание на использование -I
чтобы эти команды помещались перед командой в ответе на первый вопрос, а 2
для сохранения обычного порядка. Вторая команда не требуется, она здесь, чтобы дать намерение, и это зависит от вашей конфигурации, если вам это нужно или нет. Первая команда позволяет ответным пакетам из ненадежных возвращаться в доверенные, запрашивая средство conntrack netfilter. Это будет работать между двумя локальными сетями только для соединений, ранее инициированных от доверенных к ненадежным. Обычно эта первая команда записывается глобально один раз (без использования -s
и -d
ограничивая ее этими двумя локальными сетями).
- Как предотвратить доступ ненадежных хостов с других ненадежных хостов в той же локальной сети?
Хотя два первых вопроса можно решить с помощью маршрутизатора, работающего на уровне 3: IP, последний вопрос не может быть решен так легко: хосты не маршрутизируются (т.е. на уровне 3) между собой в своей локальной сети, они совместно используют уровень 2 оборудование, такое как выключатель, и инструменты, работающие на этом уровне должны быть использованы. iptables
работающий на уровне 3, не может использоваться отдельно. Соответствующая реализация изоляции называется Private VLAN. Эта функция обычно реализуется непосредственно на сетевом оборудовании.
Если бы это было сделано на стандартном сервере Linux, для работы в качестве коммутатора потребовалось бы большое количество сетевых интерфейсов (управление виртуальной средой упрощается, так как интерфейсы становятся свободными для добавления). Брандмауэр на уровне 2 для этого выполняется с использованием ebtables
. Вот некоторые вопросы и ответы по этой теме:https://unix.stackexchange.com/questions/12026/private-vlans-under-linux https://serverfault.com/questions/388544/is-it-possible-to -enable-порт-изоляция-на-Linux-мосты
Если бы у сервера Linux было ограниченное количество портов, и, следовательно, он сам не выступал в качестве коммутатора, ему потребовался бы способ получения всего трафика из ненадежной локальной сети и наличие некоторого тега на каждом пакете для идентификации его источника, вероятно, требующего аномально большого числа VLAN и в любом случае конкретной конфигурации на сетевом оборудовании.