Взаимоотношения FirewallD и IPTables-NFT

Вопрос или проблема

Что-то, что мне сложно понять, это взаимосвязь между поведением по умолчанию зоны 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, имеет решающее значение.

  1. Зоны FirewallD
    • PUBLIC зона — по умолчанию здесь разрешены только минимальные действия, разрешающие входящий трафик. Все, что не соответствует правилам этой зоны, будет отклонено.
    • TRUSTED зона — разрешает все входящие соединения с IP-адресов, включенных в эту зону.

IPTables-NFT: Цепочки и Политики

IPTables-NFT является современным интерфейсом для управления правилами фильтрации пакетов в Linux. Стандартные политики для цепочек INPUT, FORWARD и OUTPUT установлены на ACCEPT, что может вызвать недоразумение.

  1. Политики IPTables
    • INPUT: отвечает за входящие соединения.
    • FORWARD: управляет пересылаемыми соединениями.
    • OUTPUT: контролирует исходящие соединения.

При настроенных политиках на ACCEPT, это не означает, что все пакеты будут автоматически разрешены. Это всего лишь предустановка, позволяющая пакетам проходить в следующую цепочку, где могут применяться дополнительные правила.

Приоритизация Правил

Когда мы говорим о последовательности, в которой обрабатываются правила, правильный порядок следующий:

  1. Прямые правила (Direct rules) в FirewallD.
  2. Правила зон в FirewallD (включая интерфейсные зоны).
  3. Политики IPTables.

Из-за настройки прямых правил FirewallD они первыми обрабатывают входящие пакеты, и если они соответствуют заданным условиям, будут применены соответствующие действия. Если правила не срабатывают, неправильный трафик проверяется на соответствие правилу PUBLIC или TRUSTED зоны.

Причины Проблемы

В вашем случае, когда вы подключаетесь по SSH с IP, не попадающим в TRUSTED зону, трафик проходит через вашу прямую конфигурацию и зону PUBLIC. Даже если IPTables-NFT цепочки имеют политику ACCEPT, прямые правила FirewallD и зоновые правила могут привести к тому, что трафик будет отклонен.

  1. Проверка и Журналирование:
    Следует убедиться, что в интерфейсе FirewallD все правила записаны корректно и не конфликтуют друг с другом. Вы можете использовать команды для проверки и отладки:

    • firewall-cmd --list-all
    • sudo iptables -L -n -v
  2. Тестирование Правил:
    Проверьте, принимаются ли пакеты на каждом этапе — особенно обратите внимание на прямые правила перед выходом к IPTables.

Заключение

Взаимодействие между FirewallD и IPTables-NFT требует глубокого понимания, как механизмы фильтрации чат и взаимодействуют друг с другом. Несмотря на то что IPTables-NFT цепочки могут иметь политику ACCEPT, они не отменяют правила, заданные в FirewallD, которые могут корректирующе действовать на проходящие пакеты.

Для успешного управления безопасностью вашего сервера и сети используйте преимущества обоих инструментов, применяя их функциональность в зависимости от конкретных сценариев. Наблюдайте за настройками и всегда тестируйте новые правила для понимания их воздействия на сетевой трафик, обеспечивая надёжную защиту ваших ресурсов.

Оцените материал
Добавить комментарий

Капча загружается...