Отношения между FirewallD и IPTables-NFT [закрыто]

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

Что-то, что я пытаюсь понять, это взаимоотношение между поведением зоны firewallD по умолчанию и поведением цепочки IPTables-NFT по умолчанию.

Я настроил несколько прямых правил firewalld, которые были введены в NFTables (управляемые IPTables-NFT). Насколько мне известно, иерархия правил FirewallD выглядит так:

Прямые правила
Зоны IP FirewallD
Зоны интерфейсов FirewallD
По умолчанию политика цепочек IPTables-NFT INPUT, FORWARD и OUTPUT установлена на ACCEPT, что, как я думаю, означает, что все, что не соответствует правилу IPTables, будет просто принято. Это, по-видимому, не так. Кроме того, ни в одной из цепочек IPTables нет правил REJECT или DROP (за исключением отклонения ICMP).

У меня есть интерфейсы в зоне FIREWALLD PUBLIC без определенных услуг, и у меня есть мой публичный IP в зоне TRUSTED FirewallD. Базовая конфигурация, означающая, что любой сервис/протокол с моего публичного IP принимается, все остальное отклоняется зоной PUBLIC.

Основываясь на вышеизложенном, если я попытаюсь подключиться по SSH с любого IP, я должен быть в состоянии войти, так как политика по умолчанию всех цепочек установлена на ACCEPT. Вместо этого, это работает так, как я бы ожидал, если прямых правил вообще не было (например, я могу подключаться по SSH только с моего публичного IP, а все остальное попадает в зону PUBLIC в FirewallD и отклоняется). Вот так я бы хотел, чтобы это работало… но с добавлением IPTables, я не совсем уверен, почему.

Может кто-то объяснить мне, что на самом деле делают политики цепочки IPTables? Может быть, ACCEPT политика там просто для того, чтобы позволить трафику переходить к следующему правилу? Это мне действительно не имеет смысла, но если это так, я пойму, почему это работает, как есть, так как трафик, не исходящий с моего публичного IP, будет проходить через мои прямые правила и оказываться в моей PUBLIC FirewallD зоне, что отклонит его.

Ответ или решение

Вопрос о взаимопонимании между firewalld и iptables-nft может быть довольно запутанным, особенно для тех, кто только начинает погружаться в мир сетевой безопасности на Linux. Ниже приведен анализ этой взаимосвязи, который поможет прояснить некоторые моменты.

Обзор архитектуры firewalld и iptables-nft

firewalld

firewalld — это интерфейс, который упрощает управление правилами сетевого экранирования. Он использует концепцию зон, которые определяют, какой трафик считается частью определенной сети, и какие правила к нему применяются. Основная логика работы firewalld основана на том, что он выделяет три уровня приоритета для своих правил:

  1. Прямые правила (Direct rules): Это правила, которые непосредственно добавляются в интерфейс и имеют наивысший приоритет.
  2. Зоны firewalld (FirewallD IP Zones): Правила, ассоциированные с конкретными зонами (например, PUBLIC, TRUSTED и т.д.).
  3. Интерфисы firewalld (FirewallD Interface Zones): Правила, привязанные к определенным сетевым интерфейсам.

iptables-nft

iptables, в свою очередь, является более низкоуровневым инструментом для настройки правил фильтрации пакетного трафика. iptables-nft использует синтаксис и структуру технологии nftables, что позволяет управлять правилами более эффективно и с меньшим временем отклика.

По умолчанию политики в цепях INPUT, FORWARD, и OUTPUT могут быть установлены в ACCEPT, что означает, что любой трафик, который не соответствует ни одному правилу, будет разрешен. Однако данная настройка может не отражать фактическое поведение из-за правил, определенных в firewalld.

Взаимосвязь между firewalld и iptables-nft

Как вы заметили, наличие правил firewalld значительно влияет на разрешение и блокировку трафика, даже если политика в цепях iptables-nft установлена как ACCEPT. Это происходит по следующим причинам:

  1. Прямые правила firewalld: Эти правила действуют на более высоком уровне по сравнению с правилами iptables. При обработке пакетов, если разрабатываются прямые правила, они будут проверены и применены до того, как трафик дойдет до правил iptables.

  2. Композиция зон firewalld: Зоны управления могут значительно ограничить доступ в зависимости от IP-адресов, что также может блокировать попытки SSH, если IP-адрес не входит в доверенные.

  3. Подход к обработке и приоритету: Даже если политики в правилах iptables установлены как ACCEPT, это подразумевает, что пакеты могут пройти до уровня следующего правила, однако firewalld будет их фильтровать на более высоком уровне.

Заключение

Таким образом, firewalld и iptables-nft могут работать в единой экосистеме, но ваша конечная конфигурация может быть сложной из-за различных уровней приоритета и управления. Ваше наблюдение, что SSH доступ возможен только с доверенного IP-адреса, абсолютно корректно, так как даже при наличии правил ACCEPT в iptables, firewalld работает как первый фильтр безопасности, что определяет, что будет обработано на более низком уровне.

Для более глубокого понимания, рекомендуем дополнительно изучить документацию по firewalld и nftables, чтобы углубить ваше знание о сетевой безопасности в Linux.

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

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