Выпуск firewalld 1.0

Прадстаўлены рэліз дынамічна кіраванага міжсеткавага экрана firewalld 1.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.

Значная змена нумара версіі звязана з унясеннем змен, якія парушаюць зваротную сумяшчальнасць і змяняюць паводзіны працы з зонамі. Усе вызначаныя ў зоне параметры фільтрацыі зараз ужываюцца толькі для трафіку, адрасаванага хасту, на якім запушчаны firewalld, а для фільтравання транзітнага трафіку патрабуецца налада палітык. Найбольш прыкметныя змены:

  • Абвешчаны састарэлым бэкэнд, які дазваляў працаваць па-над iptables. Падтрымка iptables будзе захавана ў агляднай будучыні, але развівацца дадзены бэкэнд не будзе.
  • Уключаны і актываваны па змаўчанні для ўсіх новых зон рэжым intra-zone-forwarding, які дазваляе свабоднае перамяшчэнне пакетаў паміж сеткавымі інтэрфейсамі або крыніцамі трафіку ўнутры адной зоны (public, block, trusted, internal і да т.п.). Для вяртання старых паводзін і забароны перанакіравання пакетаў усярэдзіне адной зоны можна выкарыстаць каманду «firewall-cmd -permanent -zone public -remove-forward».
  • Правілы, звязаныя з трансляцыяй адрасоў (NAT), перамешчаныя ў сямейства пратаколаў "inet" (раней дадаваліся ў сямействах "ip" і "ip6", што прыводзіла да неабходнасці дублявання правіл для IPv4 і IPv6). Змена дазволіла пазбавіцца ад дублікатаў пры выкарыстанні ipset - замест трох копій запісаў ipset зараз выкарыстоўваецца адна.
  • Дзеянне "default", якое паказваецца ў параметры "-set-target", зараз эквівалентна "reject", г.зн. усе пакеты, якія не падпадаюць пад вызначаныя ў зоне правілы, па змаўчанні будуць блакавацца. Выключэнне зроблена толькі для ICMP-пакетаў, якія па-ранейшаму прапускаюцца. Для вяртання старых паводзін для публічна даступнай зоны "trusted" можна выкарыстоўваць правілы: firewall-cmd - permanent - new-policy allowforward -zone public firewall-cmd -permanent-policy allowForward -add-egress-zone trusted firewall-cmd -reload
  • Палітыкі са станоўчым прыярытэтам зараз выконваюцца непасрэдна да выканання правіла "-set-target catch-all", г.зн. у момант, які папярэднічае даданню фінальных правілаў drop, reject ці accept, у тым ліку для зон, у якіх выкарыстоўваюцца "-set-target drop|reject|accept".
  • Блакаванне ICMP зараз ужываецца толькі да адрасаваных бягучаму хасту ўваходным пакетам (input) і не закранае пакеты, якія перанакіроўваюцца паміж зонамі (forward).
  • Выдалены сэрвіс tftp-client, прызначаны для адсочвання злучэнняў для пратаколу TFTP, але які знаходзіўся ў непрыдатным для выкарыстання выглядзе.
  • Абвешчаны састарэлым інтэрфейс "direct", які дазваляе напроста падстаўляць гатовыя правілы пакетнага фільтра. Патрэба ў дадзеным інтэрфейсе знікла пасля дадання магчымасці фільтрацыі перанакіроўваемых і выходных пакетаў.
  • Дададзены параметр CleanupModulesOnExit, які па змаўчанні зменены на значэнне "no". Пры дапамозе дадзенага параметрам можна кіраваць выгрузкай модуляў ядра пасля завяршэння працы firewalld.
  • Дазволена выкарыстанне ipset пры вызначэнні мэтавай сістэмы (destination).
  • Дададзены вызначэння сэрвісаў WireGuard, Kubernetes і netbios-ns.
  • Рэалізаваны правілы аўтададатку для zsh.
  • Спынена падтрымка Python 2.
  • Скарочаны спіс залежнасцяў. Для працы firewalld, апроч ядра Linux, зараз абавязкова патрабуюцца толькі python-бібліятэкі dbus, gobject і nftables, а пакеты ebtables, ipset і iptables аднесены да апцыянальных. Сярод залежнасцяў выдаленыя python-бібліятэкі decorator і slip.

Крыніца: opennet.ru

Дадаць каментар