nftables je nástupce iptables s lepší syntaxí a výkonem. Oproti iptables nabízí jednotnou správu IPv4, IPv6 a ARP pravidel v jednom frameworku. Syntaxe je čitelnější a umožňuje atomické aktualizace celých sad pravidel, což eliminuje riziko nekonzistentního stavu během změn. Kernel modul nf_tables je efektivnější a podporuje nativní množiny (sets) pro hromadné porovnávání adres a portů.
nftables¶
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
nft add rule inet filter input ct state established,related accept
nft add rule inet filter input tcp dport { 22, 80, 443 } accept
nft list ruleset
Pravidla je vhodné ukládat do souboru a načítat pomocí nft -f /etc/nftables.conf. Při změnách se celá sada pravidel nahradí atomicky, takže nedochází ke krátkodobým výpadkům bezpečnosti. Pro pokročilejší scénáře lze využít mapy a verdict maps pro dynamické směrování provozu.
Firewalld¶
firewall-cmd --list-all
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
Firewalld pracuje se zónami — každé síťové rozhraní je přiřazeno k zóně s vlastní sadou pravidel. Zóna public je výchozí pro neznámé sítě, trusted povoluje vše, drop zahazuje veškerý příchozí provoz. Firewalld interně používá nftables jako backend a poskytuje vyšší abstrakci vhodnou pro správce, kteří nepotřebují granulární kontrolu.
Kdy co¶
- nftables — plná kontrola, custom pravidla, NAT, load balancing
- firewalld — jednodušší správa, RHEL/CentOS, zónový model
- iptables — legacy, migrujte na nftables
Migrujte na nftables¶
Pro nové projekty volte nftables nebo firewalld. Existující iptables pravidla lze konvertovat pomocí iptables-translate a ip6tables-translate, které generují ekvivalentní nftables syntaxi.