The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск межсетевого экрана firewalld 2.4.0

07.11.2025 09:04

Сформирован выпуск динамически управляемого межсетевого экрана firewalld 2.4.0, реализованного в форме обвязки над пакетными фильтрами nftables и iptables. Firewalld запускается в виде фонового процесса, позволяющего динамически изменять правила пакетного фильтра через D-Bus, без необходимости перезагрузки правил пакетного фильтра и без разрыва установленных соединений. Проект уже применяется во многих дистрибутивах Linux, включая RHEL 7+, Fedora 18+ и SUSE/openSUSE 15+. Код firewalld написан на языке Python и распространяется под лицензией GPLv2.

Для управления межсетевым экраном используется утилита firewall-cmd, которая при создании правил отталкивается не от IP-адресов, сетевых интерфейсов и номеров портов, а от названий служб (например, для открытия доступа к SSH нужно выполнить "firewall-cmd --add --service=ssh", для закрытия SSH - "firewall-cmd --remove --service=ssh"). Для изменения конфигурации межсетевого экрана также может использоваться графический интерфейс firewall-config (GTK) и апплет firewall-applet (Qt). Поддержка управления межсетевым экраном через D-BUS API firewalld имеется в таких проектах, как NetworkManager, libvirt, podman, docker и fail2ban.

Ключевые изменения:

  • Добавлен набор правил "gateway", охватывающий функциональность типового домашнего маршрутизатора (включает NAT, conntrack-обработчики и перенаправление трафика между зонами). Пример настройки шлюза с внутренним и внешним сетевыми интерфейсами при помощи набора правил "gateway":
     
       firewall-cmd --permanent --zone internal --add-interface eth0
       firewall-cmd --permanent --zone external --add-interface eth1
       firewall-cmd --permanent --policy-set gateway --remove-disable
       firewall-cmd --reload
    
  • Реализован флаг "disable", который можно использовать в XML-настройках, утилите командной строки или через DBus для отключения отдельных правил и наборов правил (policy set).
  • Максимальный размер имён правил увеличен с 17 до 128 символов.
  • Добавлен сервис gitea для одноимённой платформы совместной разработки (TCP-порт 3000).
  • Добавлен сервис syslog-ng для одноимённой системы ведения логов (порты 514, 601 и 6514).
  • Добавлен сервис proxy-http для прокси HTTP/HTTPS, типа Squid (TCP-порт 3128).
  • Добавлен сервис socks для прокси-серверов с реализацией протокола SOCKS (TCP-порт 1080).


  1. Главная ссылка к новости (https://github.com/firewalld/f...)
  2. OpenNews: Выпуск межсетевого экрана firewalld 2.3.0
  3. OpenNews: Доступен межсетевой экран OpenSnitch 1.6.0
  4. OpenNews: Опубликован межсетевой экран приложений Portmaster 1.0
  5. OpenNews: Выпуск пакетного фильтра nftables 1.1.0
  6. OpenNews: Выпуск пакетного фильтра iptables 1.8.11
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64197-firewalld
Ключевые слова: firewalld
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (16) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, сисадмин (?), 09:21, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > firewall-cmd --reload

    Ага, в случае с nftables не работает.
    Только systemctl restart firewalld.service.

     
     
  • 2.14, Аноним (14), 11:09, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что ты ожидаешь от тех, кто в третьем десятилетии 21 века до сих пор не умеет в строки?

    > Максимальный размер имён правил увеличен с 17 до 128 символов

     

  • 1.2, Shellpeck (?), 09:24, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    firewalld - бесполезное нагромождение.
    Разработчики позиционируют его как реализацию концепции Zonebased Firewall.\
    При этом Zonebased firewall предназначен для систем с более, чем 1 интерфейсом.
    идея заключается в описании зон с включением туда соответствующих интерфейсов
    и правил взаимодействия между зонами, что упрощает и ускоряет разработку правил firewall.
    Идея firewalld заключается в том, чтобы оградить неокрепшую психику от "сложных правил nftables".
    В документации к firewalld вплоть до 9 верссии RHEL разработчики указывали, что firewalld
    не подходит для маршрутизаторов и сложных инсталляций. С 10 версии скромно указывают, что
    это подходит не для всех случаев.
    Zero trust - не, не слышали, у нас default policy accept.
    По факту же в настройках firewalld не найти механизмов описания правил взаимодействия зон друг с другом,
    а типичное применение firewalld подразумевает простое открытие или блокирование входящих
    соединений на локальные порты системы. Если требуется организовать полноценные списки доступа
    для входящих соединений от хостов/сетей источников на определённые локальные порты, то добро
    пожаловать в rich rules - т.е. изучайте nftables, но сначала изучите синтаксис firewalld.
    При этом firewald лишает вас счётчиков, а нагромождение цепочек и бесполезных правил обфусцирует
    путь прохождения пакета. Т.е. отладка и оптимизация правил по использованию становится практически невозможной.
    Вы думаете, "изобретатели" firewalld написали нему что-то вроде packet-tracer/capture? Держите карман шире.
    Фактически же firewalld можно заменить конструкцией, покрывающей большинство применений firewalld:
    define IF_INT = { eth0 }
    table ip filter {
        set tcp_ports {
            type inet_service
            flags interval
            elements = { 22, 80, 443 }
        }        
        set udp_ports {
            type inet_service
            flags interval
            elements = { 53, 123 }
        }
        chain INPUT {
            type filter hook forward priority filter; policy drop;
            iif "lo" accept
            ct state vmap { established : accept, related : accept, invalid : drop }

    iif $IF_INT ct state new tcp dport @tcp_ports counter accept
    iif $IF_INT ct state new udp dport @udp_ports counter accept

            icmp type timestamp-request counter drop
            ip protocol icmp counter accept
        }
    }
    При этом порты можно добавить командой:
    nft add element filter tcp_ports '{2}'
    удалить:
    nft delete element filter tcp_ports '{2}'
    Просмотреть:
    nft list set filter tcp_ports
    Посмотреть все правила:
    nft list ruleset

    Сложно?

    Сравните это с монструозным firewalld. Ради этого стоило его городить?
    Выводы:
    1. firewalld - нефункционален,
    2. firewalld - вреден,
    3. Не умеете nftables - "не доверяйте ребёнку мужскую работу".
    nftables - это мощный, функциональный и точный инструмент, который стоит изучать,
    а не прятать за кучу нагромождений, которая ничего не может, а только мешает.
    firewalld не привнёс ничего нового, а "с водой выплеснул и ребёнка".

     
     
  • 2.3, Аноним (3), 09:43, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Те, кому требуется более сложная настройка межсетевого экрана, могут отказаться от firewalld и использовать только nftables. Однако большинству пользователей будет удобнее настраивать межсетевой экран через графический интерфейс firewall-config. Этот инструмент отлично подходит для простых задач, таких как открытие bittorrent-lsd.
     
     
  • 3.6, Аноним (6), 09:58, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Такое ощущение, что разработчики не знали, куда ещё можно пухтон пристроить.
     
  • 2.5, Аноним (5), 09:56, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Спасибо. Вот за такие крупицы мудрости опытных людей - я и люблю опеннет.
     
  • 2.8, leap42 (ok), 10:03, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    К сожалению докер не поддерживает пока nftables. Если по работе нужно - приходится сидеть на firewalld 🤷‍♂️
     
  • 2.10, Ан333ним (?), 10:46, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Какой смысл обвинять надстройку для нубов в том, что она не подходит для продвинутых пользователей.
     
  • 2.16, Соль земли2 (?), 11:41, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Идея firewalld заключается в том, чтобы оградить неокрепшую психику от "сложных правил nftables".

    Это идея ufw. А firewalld только добавляет сложности с зонами.

     
  • 2.18, User (??), 11:51, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Оно ээээ... "из коробки":
    - container ready и нормально сосуществует с миллионом автогенеренных докером-куб-прокси-чертом-в-ступе правил, чего в общем нельзя сказать про произвольную конфигурацию iptables\nftables
    - (кои)как-то (через CNI-плагин или вот network-manager) отрабатывает ситуацию с дохреналлионом созаваемых "налету" CNI-интерфейсов (Но лучше-б не умел, т.к. сколько-нибудь нормально все одно, не работает при использовании network-policy, так - фланельку прикрыть от безопасника - от атакующего уже не спасёт)
    - умеет применять правила "налету" без разрыва соединений (Чего нельзя было сказать про iptables per se)
    - некоторым образом упрощает конфигурёж в самых простых случаях: не нужно ВООБЩЕ ничего знать об дополнительных абстракциях (IP|NF)tables (Таблицы, цепочки) - даже базового представления о "tcp\ip" - не надо "разреши SSH" и пофиг на tcp, udp, port, handshake\state и т.д. - при этом этих самых "простых" в жизни абсолютнейшее большинство, так-то
    - обладает чуть более человековменяемым синтаксисом (Вкусовщина, да) в _простых_ случаях. В непростых - объем невменоза удваивается, есс-сна
    - абстрагирует от конкретного бэкенда, если у тебя !вдруг! зачем-то унутре iptables - ты об этом и не узнаешь
    - больмень интегрируется с внешним тулингом для желающих централизовано порулить зоопарком

    Может и еще чего полезного делает, но мне в голову не приходит ).

     
     
  • 3.19, Shellpeck (?), 12:06, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Женособаки подтянулись?
    [quote]- container ready и нормально сосуществует с миллионом автогенеренных докером-куб-прокси-чертом-в-ступе правил, чего в общем нельзя сказать про произвольную конфигурацию iptables\nftables[/quote]
    Фактически - отломано и выброшено. Открыть порт "всем ветрам" - это не задача firewall. Зачастую стоит задача открыть сервис для доступа для определенного списка адресов. То, как это сделали декерасты - лучше бы вообще не делали. Отношение - "а после нас хоть потоп".
    [quote]- умеет применять правила "налету" без разрыва соединений (Чего нельзя было сказать про iptables per se)[/quote]
    Чего iptables не умеет? Добавить, заменить, удалить правило? Может это не iptables не умеет? А куча пихтонокала, которая юзает iptables чудесным образом умеет?
    [quote]- обладает чуть более человековменяемым синтаксисом (Вкусовщина, да) в _простых_ случаях. В непростых - объем невменоза удваивается, есс-сна[/quote]
    Сломать функционал ради извращённых вкусов? Где тут разум и целеполагание?
    [quote]- больмень интегрируется с внешним тулингом для желающих централизовано порулить зоопарком"[/quote]
    "То, что мертво, умереть не может"
    Суть firewalld - "сами не можем и другим не дадим".
     
     
  • 4.20, User (??), 12:25, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Неа Я уже слишком стар для этой фигни - но если что, бороду-в-свитере поносить ... большой текст свёрнут, показать
     
  • 2.22, Аноним (22), 14:02, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > При этом Zonebased firewall предназначен для систем с более, чем 1 интерфейсом.

    Почему это? Например, ноутбук бывает в разных местах и ему полезны разные профили для разных сетей. У той же Ubuntu с ufw это придется делать через костыли.

     

  • 1.11, Аноним (14), 10:59, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > реализованного в форме обвязки над пакетными фильтрами nftables и iptables

    И чем оно отличается от 100500 других "фаерволов"?

     
     
  • 2.12, Аноним (14), 11:05, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ufw default deny incoming
    ufw allow ssh

    как-то куда проще, чем сабж.

     

  • 1.21, Ананоним (?), 13:53, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Где взять для Linux элементарный Personal Firewall с GUI? Чтобы это ловило все попытки любых приложений лезть в сеть и покказывало диалог для решений пользователя "пущать или не пущать". Скучаю по виндовым персональным файрволам из 2005 года.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру