Вопрос или проблема
Что-то, что мне сложно понять, это взаимосвязь между поведением по умолчанию зоны firewallD и поведением цепочек IPTables-NFT по умолчанию.
Я настроил несколько прямых правил firewalld, которые были внесены в NFTables (управляемые IPTables-NFT). Насколько мне известно, приоритет правил FirewallD выглядит следующим образом:
Прямые правила FirewallD IP зоны FirewallD зоны интерфейсов. По умолчанию политика цепочек IPTables-NFT INPUT, FORWARD и OUTPUT установлена на ACCEPT, что, я думаю, означает, что все, что не соответствует правилу IPTables, будет просто принято. Однако это, похоже, не так. К тому же ни в одной из цепочек IPTables нет правил REJECT или DROP (за исключением отклонения ICMP).
У меня есть мои интерфейсы в зоне PUBLIC FirewallD без определенных сервисов, и мой публичный IP находится в зоне TRUSTED FirewallD. Базовая конфигурация, означающая, что любой сервис/протокол с моего публичного IP принимается, а все остальное отклоняется зоной PUBLIC.
Исходя из вышесказанного, если бы я пытался подключиться по SSH с любого IP, я должен был бы зайти, так как политика по умолчанию всех цепочек установлена на ACCEPT. Вместо этого это работает так, как я ожидал бы, если бы прямых правил не было вовсе (например, я могу подключиться по SSH только с моего публичного IP, а все остальное попадает в зону PUBLIC в FirewallD и отклоняется). Вот как я ожидал бы, что это будет работать… но с учетом IPTables, я не совсем уверен, почему.
Может ли кто-то объяснить мне, что на самом деле делают политики цепочек IPTables? Это скорее то, что политика ACCEPT существует просто для того, чтобы позволить трафику проходить к следующему правилу? Это действительно не имеет смысла для меня, но если это так, я бы понял, почему это работает так, как есть, поскольку трафик не с моего публичного IP будет проходить через мои прямые правила и попадать в мою зону PUBLIC FirewallD, которая отклонит его.
Ответ или решение
Взаимосвязь между FirewallD и IPTables-NFT: Подробное Разъяснение
Введение
Вопрос о взаимосвязи между настройками FirewallD и IPTables-NFT часто вызывает путаницу среди администраторов систем и специалистов в области информационных технологий. В данной статье мы подробно рассмотрим порядок обработки правил, настройки зон в FirewallD и то, как они взаимодействуют с цепочками IPTables-NFT, чтобы помочь вам лучше понять эту тему.
Понимание FirewallD И IPTables-NFT
FirewallD: Зоны и Правила
FirewallD — это динамическая система управления сетевыми правилами, использующая концепцию «зон». Каждая зона представляет собой набор правил, которые применяются к различным сетевым интерфейсам или IP-адресам. Ваша конфигурация, в которой, например, интерфейсы находятся в области PUBLIC, а ваш публичный IP-адрес — в области TRUSTED, имеет решающее значение.
- Зоны FirewallD
- PUBLIC зона — по умолчанию здесь разрешены только минимальные действия, разрешающие входящий трафик. Все, что не соответствует правилам этой зоны, будет отклонено.
- TRUSTED зона — разрешает все входящие соединения с IP-адресов, включенных в эту зону.
IPTables-NFT: Цепочки и Политики
IPTables-NFT является современным интерфейсом для управления правилами фильтрации пакетов в Linux. Стандартные политики для цепочек INPUT, FORWARD и OUTPUT установлены на ACCEPT, что может вызвать недоразумение.
- Политики IPTables
- INPUT: отвечает за входящие соединения.
- FORWARD: управляет пересылаемыми соединениями.
- OUTPUT: контролирует исходящие соединения.
При настроенных политиках на ACCEPT, это не означает, что все пакеты будут автоматически разрешены. Это всего лишь предустановка, позволяющая пакетам проходить в следующую цепочку, где могут применяться дополнительные правила.
Приоритизация Правил
Когда мы говорим о последовательности, в которой обрабатываются правила, правильный порядок следующий:
- Прямые правила (Direct rules) в FirewallD.
- Правила зон в FirewallD (включая интерфейсные зоны).
- Политики IPTables.
Из-за настройки прямых правил FirewallD они первыми обрабатывают входящие пакеты, и если они соответствуют заданным условиям, будут применены соответствующие действия. Если правила не срабатывают, неправильный трафик проверяется на соответствие правилу PUBLIC или TRUSTED зоны.
Причины Проблемы
В вашем случае, когда вы подключаетесь по SSH с IP, не попадающим в TRUSTED зону, трафик проходит через вашу прямую конфигурацию и зону PUBLIC. Даже если IPTables-NFT цепочки имеют политику ACCEPT, прямые правила FirewallD и зоновые правила могут привести к тому, что трафик будет отклонен.
-
Проверка и Журналирование:
Следует убедиться, что в интерфейсе FirewallD все правила записаны корректно и не конфликтуют друг с другом. Вы можете использовать команды для проверки и отладки:firewall-cmd --list-all
sudo iptables -L -n -v
-
Тестирование Правил:
Проверьте, принимаются ли пакеты на каждом этапе — особенно обратите внимание на прямые правила перед выходом к IPTables.
Заключение
Взаимодействие между FirewallD и IPTables-NFT требует глубокого понимания, как механизмы фильтрации чат и взаимодействуют друг с другом. Несмотря на то что IPTables-NFT цепочки могут иметь политику ACCEPT, они не отменяют правила, заданные в FirewallD, которые могут корректирующе действовать на проходящие пакеты.
Для успешного управления безопасностью вашего сервера и сети используйте преимущества обоих инструментов, применяя их функциональность в зависимости от конкретных сценариев. Наблюдайте за настройками и всегда тестируйте новые правила для понимания их воздействия на сетевой трафик, обеспечивая надёжную защиту ваших ресурсов.