firewall-cmd

26 Oct 2025 15:29
henry_flower: A melancholy wolf (Default)
[personal profile] henry_flower

Всі інтерпрайзні лайнакси зроблені для постійного нагадування що життя це є виживання найпристосованіших.

ОйБіЕмівські дістро мають агента-посередника поміж кернельним файрволом та істотою з клавіятурою. Без таких прокладок інтерпрайзний лайнакс немає сенсу: раціоналізація необхідності преміяльного саппорту тоді звужується до швидкості копіпасти. Додана вартість ув якості біспоукного софтware, яке повинно генерувати додаткове технічне обслуговування, необхідна як запас води ув пустелі.

Агента-посередник називається firewalld. Це є повільна як черепаха пáйфонівська аплікація, яка виконує команди "нумо відкрити порт нумеро 1488 на інтерхфесі enp13s77". З кернелом firewalld розмовляє за допомогою С бібліотеки libnftables, а з юзерлендом по протоколу dbus.

Якщо наївний користувач, чуждий духу інтєрпрайза, додасть свою chain чи rule командою nft, то firewalld на це відреагує ніяк--ув кернелі з'явиться гуляш з інструкцій від firewalld та користувача.

Що мене завжди неймовірно дратувало ув клайнтах до firewalld це їх відраза до показу номерів портів. Наприклад, активний "сервіс" (термінологія firewalld, нічого спільного з "сервісами" від systemd) з назвою samba контролює їх 2 штуки, але ані GUI клаент, ані жахлива, повільна як черепаха (се є пáйфон) ютіліта firewall-cmd, вам їх не покажуть. Where ignorance is bliss, 'tis folly to be wise.

Свій стейт firewalld зберігає ув /etc/firewalld/ (яка є чомусь 0750 root:root, що там такого секретного?), де мапінґа сервіс-порт є відсутній.

З деяким дратування гортаючи man-сторінку firewall-cmd, можна знайти опцію --info-service:

$ sudo firewall-cmd --info-service samba | grep /
  ports: 139/tcp 445/tcp

Для групи сервісів окремої зони це треба робити руками:

$ sudo firewall-cmd --zone=home --list-services |
     xargs -n1 sudo firewall-cmd --info-service |
     grep -ie ^[a-z] -e /
dhcp
  ports: 67/udp
dhcpv6-client
  ports: 546/udp
  destination: ipv6:fe80::/64
http
  ports: 80/tcp
…

Це займає секунди 3 якщо "сервісів" > 20 (можна прискорити через xargs -P). Запити по dbus не є такими повільними per se навіть через огидний пáйфон, повільна є ютіліта firewall-cmd.

Є також варіянт з dbus. Ви часто бачите скрипти які розмовляють з ґноумівською шиною? Я--ніколи. Можливо, нарід не знає що поттерінґівське busctl може друкувати результат ув json (додали недавно, 7 років тому), або просто цим гидують.

$ cat firewall-zone-ports
#!/usr/bin/env bash

set -e -o pipefail

zone="${1:?Usage: firewall-zone-ports zone}"
call_firewall='busctl -j call org.fedoraproject.FirewallD1'

$call_firewall \
       /org/fedoraproject/FirewallD1 \
       org.fedoraproject.FirewallD1.zone \
       getServices s "$zone" |
    jq -r .data[].[] |
    while read -r service; do
        interface=`$call_firewall \
            /org/fedoraproject/FirewallD1/config \
            org.fedoraproject.FirewallD1.config \
            getServiceByName s "$service" | jq -r '.data[]'`

        echo "$service"

        $call_firewall \
            "$interface" \
            org.fedoraproject.FirewallD1.config.service \
            getPorts | jq -r '[.data[][] | join("/")] | join(",")'
    done | xargs -r -n2 printf "%-30s %s\n"

Мілий ґлазу інтерпрайз org.fedoraproject.FirewallD1.config.service справляється за 0.1 сек, але витрачати час на таку оптимізацію я не раджу.

Database maintenance

25 Oct 2025 08:42
mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
[staff profile] mark posting in [site community profile] dw_maintenance

Good morning, afternoon, and evening!

We're doing some database and other light server maintenance this weekend (upgrading the version of MySQL we use in particular, but also probably doing some CDN work.)

I expect all of this to be pretty invisible except for some small "couple of minute" blips as we switch between machines, but there's a chance you will notice something untoward. I'll keep an eye on comments as per usual.

Ta for now!

Profile

hoffmann: (Default)
hoffmann

March 2011

S M T W T F S
  12345
6 789101112
13141516171819
202122232425 26
27 28 293031  

Expand Cut Tags

No cut tags