Wydanie firewalld 1.0

Wydano wydanie dynamicznie zarządzanego zapory sieciowej firewalld 1.0, zrealizowanego w formie nakładki nad filtrami pakietów nftables i iptables. Firewalld działa jako proces w tle, pozwalający na dynamiczną zmianę zasad filtracji pakietów przez D-Bus, bez potrzeby ponownego ładowania zasad filtracji i bez zrywania aktywnych połączeń. Projekt jest już stosowany w wielu dystrybucjach Linux, w tym RHEL 7+, Fedora 18+ oraz SUSE/openSUSE 15+. Kod firewalld napisany jest w języku Python i jest udostępniany na licencji GPLv2.

Do zarządzania zaporą sieciową służy narzędzie firewall-cmd, które przy tworzeniu reguł opiera się nie na adresów IP, interfejsów sieciowych i numerów portów, a także nazw usług (na przykład, aby otworzyć dostęp do SSH, trzeba wykonać «firewall-cmd —add —service=ssh», a aby zamknąć SSH — «firewall-cmd —remove —service=ssh»). Do zmiany konfiguracji zapory sieciowej można także używać graficznego interfejsu firewall-config (GTK) oraz apletu firewall-applet (Qt). Wsparcie dla zarządzania zaporą sieciową przez D-BUS API firewalld jest dostępne w takich projektach, jak NetworkManager, libvirt, podman, docker i fail2ban.

Znacząca zmiana numeru wersji wiąże się z wprowadzeniem zmian łamiących zgodność wstecz oraz zmieniających zachowanie pracy z obszarami. Wszystkie parametry filtrowania określone w obszarze są teraz stosowane tylko do ruchu adresowanego do hosta, na którym działa firewalld, a do filtrowania ruchu tranzytowego wymagana jest konfiguracja polityk. Najbardziej zauważalne zmiany:

  • Ogłoszono przestarzałym backend, który pozwalał na działanie nad iptables. Wsparcie dla iptables będzie zachowane w przewidywalnej przyszłości, ale ten backend nie będzie rozwijany.
  • Włączono i aktywowano domyślnie dla wszystkich nowych stref tryb intra-zone-forwarding, umożliwiający swobodne przesyłanie pakietów między interfejsami sieciowymi lub źródłami ruchu w obrębie jednej strefy (public, block, trusted, internal itp.). Aby przywrócić stare zachowanie i zakazać przekierowywania pakietów wewnątrz jednej strefy, można użyć polecenia „firewall-cmd —permanent —zone public —remove-forward”.
  • Zasady dotyczące translacji adresów (NAT) przeniesiono do rodziny protokołów „inet” (wcześniej były dodawane do rodzin „ip” i „ip6”, co skutkowało koniecznością duplikowania zasad dla IPv4 i IPv6). Zmiana ta pozwoliła na pozbycie się duplikatów przy użyciu ipset — zamiast trzech kopii wpisów ipset teraz wykorzystywana jest jedna.
  • Działanie „default”, wskazywane w parametrze „—set-target”, jest teraz równoważne „reject”, co oznacza, że wszystkie pakiety, które nie spełniają określonych reguł w strefie, będą domyślnie blokowane. Wyjątek stanowią pakiety ICMP, które są wciąż przepuszczane. Aby przywrócić starsze zachowanie dla publicznie dostępnej strefy „trusted”, można użyć reguł: firewall-cmd —permanent —new-policy allowForward firewall-cmd —permanent —policy allowForward —set-target ACCEPT firewall-cmd —permanent —policy allowForward —add-ingress-zone public firewall-cmd —permanent —policy allowForward —add-egress-zone trusted firewall-cmd —reload
  • Polityki o dodatnim priorytecie są teraz wykonywane bezpośrednio przed wykonaniem reguły „—set-target catch-all”, to znaczy w momencie poprzedzającym dodanie końcowych reguł drop, reject lub accept, w tym dla stref, w których używane są „—set-target drop|reject|accept”.
  • Blokada ICMP jest teraz stosowana tylko do pakietów przychodzących adresowanych do bieżącego hosta (input) i nie dotyczy pakietów przekazywanych między strefami (forward).
  • Usunięto usługę tftp-client, przeznaczoną do śledzenia połączeń dla protokołu TFTP, która była jednak w stanie nieprzydatnym do użytku.
  • Ogłoszono przestarzałym interfejs „direct”, pozwalający na bezpośrednie wstawianie gotowych reguł filtrowania pakietów. Potrzeba tego interfejsu zniknęła po dodaniu możliwości filtrowania pakietów przekazywanych i wychodzących.
  • Dodano parametr CleanupModulesOnExit, który domyślnie został zmieniony na wartość „no”. Dzięki temu parametrowi można zarządzać załadunkiem modułów jądra po zakończeniu pracy firewalld.
  • Zezwolono na użycie ipset przy definiowaniu celu (destination).
  • Dodano definicje usług WireGuard, Kubernetes i netbios-ns.
  • Zrealizowano reguły autouzupełniania dla zsh.
  • Wsparcie dla Pythona 2 zostało zakończone.
  • Skrócono listę zależności. Aby działał firewalld, poza jądrem Linux, wymagane są teraz tylko biblioteki python dbus, gobject oraz nftables, a pakiety ebtables, ipset i iptables zostały uznane za opcjonalne. Z listy zależności usunięto biblioteki python decorator oraz slip.

Źródło: opennet.ru

Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS - ProHoster