nftables – nowoczesny firewall Linux zamiast iptables
Linux

nftables – nowoczesny firewall Linux zamiast iptables

nftables – nowoczesny firewall Linux zamiast iptables

Przez wiele lat administratorzy Linuxa konfigurowali zaporę sieciową głównie za pomocą iptables. Narzędzie to stało się standardem w świecie serwerów, ale z czasem jego architektura zaczęła pokazywać ograniczenia.

W odpowiedzi powstał nftables – nowoczesny framework filtrowania pakietów w jądrze Linux, który zastąpił rodzinę starszych narzędzi:

  • iptables,
  • ip6tables,
  • arptables,
  • ebtables.

Obecnie nftables jest domyślnym rozwiązaniem firewall w wielu dystrybucjach Linux, między innymi:

  • Debian,
  • Ubuntu,
  • Fedora,
  • Red Hat Enterprise Linux,
  • Rocky Linux,
  • AlmaLinux.

Czym jest nftables?

nftables to mechanizm kontroli ruchu sieciowego działający bezpośrednio z infrastrukturą Netfilter w jądrze Linux.

Jego zadaniem jest:

  • filtrowanie pakietów,
  • kontrola połączeń,
  • translacja adresów NAT,
  • przekierowanie portów,
  • ochrona usług sieciowych.

Schemat:

Pakiet sieciowy

        ↓

   Netfilter Kernel

        ↓

    nftables rules

        ↓

 ACCEPT / DROP / REJECT

Dlaczego powstało nftables?

iptables przez lata rozwijał się poprzez dokładanie kolejnych narzędzi.

Problem:

Dla IPv4:

iptables

Dla IPv6:

ip6tables

Dla ARP:

arptables

Dla bridge:

ebtables

Administrator musiał znać kilka różnych systemów konfiguracji.

nftables uprościł architekturę:

                 nft

                  |

             Netfilter

                  |

              Kernel Linux

Jedno narzędzie obsługuje różne rodzaje ruchu.


Architektura nftables

nftables składa się z kilku elementów:

Kernel subsystem

Odpowiada za faktyczne filtrowanie pakietów.


nft command

Narzędzie administracyjne:

nft

Służy do:

  • dodawania reguł,
  • usuwania reguł,
  • sprawdzania konfiguracji.

Ruleset

Zbiór wszystkich reguł firewalla.

Sprawdzenie:

nft list ruleset

Podstawowe elementy nftables

Hierarchia wygląda następująco:

Table

 └── Chain

       └── Rule

Tables – tablice

Tabela jest najwyższym poziomem organizacji.

Przykład:

nft add table inet firewall

Rodzina:

inet

obsługuje jednocześnie:

  • IPv4,
  • IPv6.

Chains – łańcuchy

Chain określa miejsce, gdzie reguły są wykonywane.

Najważniejsze:

input

Ruch przychodzący do serwera.

Przykład:

Internet

↓

Serwer

output

Ruch wychodzący.

Serwer

↓

Internet

forward

Ruch przekazywany przez host.

Przykład:

LAN

↓

Router Linux

↓

Internet

Hooks – punkty zaczepienia

nftables integruje się z Netfilter poprzez hooks.

Najważniejsze:

Hook Zastosowanie
prerouting przed routingiem
input ruch do hosta
forward przekazywanie
output ruch generowany lokalnie
postrouting po routingu

Pierwszy firewall nftables

Przykład prostego bezpiecznego serwera:

Tworzymy tabelę:

nft add table inet filter

Chain input:

nft add chain inet filter input {
 type filter hook input priority 0;
 policy drop;
}

Domyślnie:

DROP

czyli wszystko blokujemy.


Dodajemy zezwolenie na localhost:

nft add rule inet filter input iif lo accept

Pozwalamy na istniejące połączenia:

nft add rule inet filter input ct state established,related accept

SSH:

nft add rule inet filter input tcp dport 22 accept

HTTP:

nft add rule inet filter input tcp dport 80 accept

HTTPS:

nft add rule inet filter input tcp dport 443 accept

Connection Tracking (conntrack)

Jedna z ważniejszych funkcji nftables.

Pozwala rozpoznawać stan połączenia.

Stany:

NEW

ESTABLISHED

RELATED

INVALID

Przykład:

Użytkownik otwiera stronę:

Klient → Serwer

Firewall zapamiętuje połączenie.

Odpowiedź:

Serwer → Klient

jest automatycznie dozwolona.


Typowa reguła:

ct state established,related accept

jest praktycznie obowiązkowa na serwerach.


nftables i NAT

nftables obsługuje również NAT.

Przykład:

Masz Linux jako router.

Tworzenie NAT:

nft add table ip nat

Masquerading:

nft add rule ip nat postrouting oif eth0 masquerade

Efekt:

Sieć LAN

192.168.1.x

↓

Linux Router

↓

Internet

Sety w nftables – ogromna przewaga

Jedną z największych zalet nftables są sets.

iptables:

10 reguł

10 adresów IP

nftables:

1 reguła

+
 
lista IP

Przykład:

set blacklist {
 type ipv4_addr;
 elements = {
 192.168.1.10,
 192.168.1.20
 }
}

Blokowanie:

ip saddr @blacklist drop

Mapy w nftables

nftables pozwala tworzyć mapowania.

Przykład:

Port

↓

Usługa

Można budować bardziej zaawansowane konfiguracje niż w iptables.

 

nftables – nowoczesny firewall Linux zamiast iptables
nftables – nowoczesny firewall Linux zamiast iptables

Logowanie zdarzeń

Przykład:

nft add rule inet filter input log prefix "NFT DROP: "

Pozwala analizować:

  • skany,
  • próby włamań,
  • nietypowy ruch.

Logi:

journalctl -k

nftables vs iptables

Cecha nftables iptables
Nowoczesność ⭐⭐⭐⭐⭐ ⭐⭐
Jedno narzędzie IPv4/IPv6 Tak Nie
Czytelność Lepsza Gorsza
Sets Bardzo dobre Ograniczone
Wydajność Lepsza Starsza architektura
Przyszłość Linux Tak Tryb zgodności

nftables w systemd

Na wielu dystrybucjach działa usługa:

systemctl status nftables

Automatyczne uruchomienie:

systemctl enable nftables

Konfiguracja:

/etc/nftables.conf

nftables i kontenery

W środowiskach:

  • Docker,
  • Kubernetes,
  • Podman,

nftables często współpracuje z:

  • bridge networking,
  • CNI,
  • firewallem hosta.

Administrator musi pamiętać, że kontenery mogą automatycznie dodawać własne reguły.


Najczęstsze błędy administratorów

1. Brak polityki domyślnej DROP

Źle:

ALLOW wszystko

+
blokowanie wyjątków

Lepiej:

DROP wszystko

+
zezwól tylko potrzebne

2. Odcięcie SSH

Klasyczny problem.

Administrator robi:

policy drop

i traci dostęp.

Przed zmianami zawsze:

  • zostaw aktywną sesję SSH,
  • testuj w drugiej.

3. Brak zapisu konfiguracji

Reguły dodane ręcznie:

nft add rule

mogą zniknąć po restarcie.

Należy zapisać:

/etc/nftables.conf

Przykładowa polityka bezpiecznego serwera

Założenia:

  • SSH,
  • HTTPS,
  • DNS,
  • ping.

Logika:

DROP wszystko

↓

ALLOW

localhost

↓

ALLOW

existing connections

↓

ALLOW

SSH

↓

ALLOW

HTTPS

↓

LOG reszta

TIP administratora

Przy migracji z iptables do nftables nie warto kopiować starych reguł 1:1.

Lepsze podejście:

  1. przeanalizować wymagane usługi,
  2. stworzyć nową politykę,
  3. wykorzystać możliwości nftables:
    • sets,
    • maps,
    • rodziny inet,
    • lepsze logowanie.

Podsumowanie

nftables jest obecnie podstawowym mechanizmem budowania firewalli w Linux.

Jego największe zalety:

  • jedna architektura dla IPv4 i IPv6,
  • prostsza konfiguracja,
  • większa elastyczność,
  • lepsza wydajność,
  • integracja z nowoczesnymi środowiskami.

Dla administratora Linux znajomość nftables jest dziś równie ważna jak znajomość:

  • systemd,
  • namespaces,
  • cgroups v2,
  • SELinux/AppArmor,
  • SSH hardening.

W nowoczesnej infrastrukturze firewall nie jest już tylko „blokadą portów”. To element większej architektury bezpieczeństwa, która razem z izolacją procesów i kontrolą uprawnień tworzy warstwową ochronę systemu.

Polecane wpisy
Jak usunąć pliki lub foldery starsze niż 30 dni w BASH
Jak usunąć pliki lub foldery starsze niż 30 dni w BASH

Jak usunąć pliki lub foldery starsze niż 30 dni w BASH Usuwanie starych plików i folderów jest niezbędne do utrzymania Czytaj dalej

Automatyczne backupy i rotacja kopii z rsnapshot – kompletna konfiguracja w Linuksie
Automatyczne backupy i rotacja kopii z rsnapshot – kompletna konfiguracja w Linuksie

🔄 Automatyczne backupy i rotacja kopii z rsnapshot – kompletna konfiguracja w Linuksie rsnapshot to potężne, a jednocześnie bardzo lekkie Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.