Вопрос или проблема
У меня есть два сетевых сегмента (назовем их A @ 192.168.1.x
и B @ 192.168.2.x
), подключенных к двум отдельным сетевым картам (NIC-A
и NIC-B
).
ОС на физической машине — стандартный Ubuntu, без каких-либо настроек для создания мостов или маршрутизации. Таким образом, она может “видеть” обе сети, но две сети не могут общаться друг с другом.
У устройств в Network-B
нет назначенного шлюза по умолчанию.
Network B
не имеет доступа в интернет, и я хочу убедиться, что он остается изолированным.
Достаточно ли этого, чтобы считать данное решение относительно безопасным? Или стоит рассмотреть возможность реализации чего-то на ОС для фактической защиты этих двух сетей?
Это действительно изолировало данные и должно быть достаточно безопасным, пока ничего не создаст маршрут между сетями позже. Это не всегда легко контролировать, когда используется универсальный компьютер и ОС. Более безопасным будет реализовать сеть, используя специальное оборудование, предназначенное для этой цели.
Поскольку вы не указали уровень чувствительности или причину, по которой хотите изолировать сети, я не думаю, что можно сказать больше.
В вашей настройке, чтобы пакет переходил из одной сети в другую, ядро должно быть instruido на это (см. /proc/sys/net/ipv4/ip_forward
для текущего статуса).
Вы полагаетесь на отсутствие этого флага. Хотя сегодня вы можете установить его так, чтобы не перенаправлять, завтра может произойти что-то, что изменит это, и ваши сети станут взаимосвязанными (достаточно, чтобы скрипт временно включил перенаправление, например).
Поэтому лучше быть явным через конфигурацию брандмауэра. В этом случае вам нужно будет, так или иначе, изменить конфигурацию брандмауэра – что менее вероятно, чтобы было сделано по ошибке.
Что касается части “реализации чего-то на ОС”, я бы порекомендовал FireHOL, который в конечном итоге создает правила iptables, но более описательным образом (и, следовательно, вероятно, более безопасно, так как вы меньше склонны ошибаться, особенно в начале). Мой предыдущий выбор на протяжении многих лет был shorewall, но он стал слишком сложным (хотя это очень мощное решение).
Ответ или решение
Для изоляции трафика между двумя физическими сетями на Ubuntu с использованием двух сетевых интерфейсов (NIC-A и NIC-B) вы правильно настраиваете сети с IP-адресами 192.168.1.x и 192.168.2.x соответственно. Если у вас нет маршрутизации или мостов, создающих связь между этими сетями, они должны оставаться изолированными. Однако для обеспечения более надежной безопасности рекомендуется рассмотреть возможность конфигурации файрвола для управления и ограничения трафика.
Шаги для обеспечения безопасности
-
Проверьте статус маршрутизации:
Сначала убедитесь, что пакетная пересылка отключена. Для этого выполните следующую команду:cat /proc/sys/net/ipv4/ip_forward
Значение должно быть
0
, что означает, что пересылка отключена. Вы можете временно изменить его, выполнив:echo 0 > /proc/sys/net/ipv4/ip_forward
-
Настройте правила файрвола:
Рекомендуется использовать файрвол для управления трафиком и предотвращения случайной маршрутизации. Один из хороших инструментов для упрощения управления правилами iptables – это FireHOL, который создает более понятные и безопасные конфигурации.Установите FireHOL:
sudo apt-get update sudo apt-get install firehol
-
Создайте конфигурацию FireHOL:
Откройте файл конфигурации FireHOL, обычно это/etc/firehol/firehol.conf
, и добавьте правила для блокировки трафика между двумя сетями. Пример конфигурации:version 6 # Сети interface NIC-A inet # Разрешите только локальный трафик client all accept server all accept interface NIC-B inet # Запретите весь трафик client all drop server all drop # Запретить трафик между сетями route NIC-A -> NIC-B reject route NIC-B -> NIC-A reject
-
Запустите и активируйте FireHOL:
После редактирования файла конфигурации примените настройки:sudo firehol start
Убедитесь, что FireHOL активен и работает корректно, проверив статус:
sudo firehol status
-
Мониторинг и аудит:
Регулярно проверяйте конфигурацию и логи файрвола на наличие неожиданных изменений или попыток доступа между сетями. Убедитесь, что доступные файрволы не были отключены или изменены без вашего ведома.
Заключение
Данные меры помогут обеспечить надежную изоляцию между двумя физическими сетями на Ubuntu. Хотя отсутствие маршрутизации может обеспечивать базовую изоляцию, добавление конфигурации файрвола значительно повысит безопасность вашей системы. Таким образом, даже если кто-то попытается изменить конфигурацию, ваши правила файрвола будут блокировать нежелательный трафик.