Skip to content
VDS · Mreža, IP adresa i domeni

nftables: složenija pravila

Kada ufw više nije dovoljan: struktura nftables tabela i lanaca, gotov radni config, skupovi adresa, ograničavanje brzine i prosleđivanje portova.

Ažurirano 23. avgust 2026.

nftables je sam kernel mehanizam na kom ufw radi. Koristi ga direktno kada ti trebaju imenovani skupovi adresa, ograničavanje brzine, različite politike po interfejsu ili prosleđivanje portova — dakle kada tvoja pravila više ne staju u „dozvoli port".

Ne moraš da koristiš oba alata istovremeno: pre prelaska isključi ufw pomoću ufw disable, inače će se pravila preklapati i zbunjivati te tokom otklanjanja grešaka.

Struktura

Pravila žive u tabelama, tabele sadrže lance, a lanci sadrže pravila. Lanac je vezan za fazu obrade paketa (input, forward, output) i ima podrazumevanu politiku.

apt install -y nftables
systemctl enable --now nftables
nft list ruleset

Radna konfiguracija

Fajl /etc/nftables.conf:

#!/usr/sbin/nft -f
flush ruleset

table inet filter {
    set admins {
        type ipv4_addr
        elements = { 203.0.113.5, 198.51.100.7 }
    }

    chain input {
        type filter hook input priority 0; policy drop;

        iif lo accept
        ct state established,related accept
        ct state invalid drop

        ip protocol icmp icmp type echo-request limit rate 5/second accept

        tcp dport 22 ip saddr @admins accept
        tcp dport 22 ct state new limit rate 6/minute accept
        tcp dport { 80, 443 } accept
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

Primeni i sačuvaj:

nft -c -f /etc/nftables.conf
nft -f /etc/nftables.conf
systemctl restart nftables

Flag -c samo proverava sintaksu bez primene pravila. Uvek ga koristi: politika drop sa greškom u kucanju prekida pristup, pa ćeš morati da se vratiš preko konzole u panelu /hosting/vds/m/<id>.

Skupovi adresa i ograničavanje brzine

Imenovani skup se menja u letu, bez ponovnog učitavanja pravila:

nft add element inet filter admins { 192.0.2.10 }
nft delete element inet filter admins { 198.51.100.7 }
nft list set inet filter admins

Dinamički skup sa timeout-om je zgodan za prilagođene blokade:

set blocked {
    type ipv4_addr
    flags timeout
    timeout 1h
}

Prosleđivanje i zamena adresa

Potrebno ako se unutra vrti kontejner ili tunel:

table ip nat {
    chain prerouting {
        type nat hook prerouting priority -100;
        tcp dport 8443 dnat to 10.10.0.2:443
    }
    chain postrouting {
        type nat hook postrouting priority 100;
        oifname "eth0" masquerade
    }
}

Česte greške

GreškaPosledicaRešenje
Nema pravila ct state establishedOdgovori na odlazne zahteve se odsecajuDodaj ga kao prvo pravilo
Zaboravljen iif lo acceptLokalni servisi i baze podataka pucajuDozvoli loopback interfejs
Pravila primenjena ali nisu sačuvanaPosle restarta sve je otvorenoUpiši u /etc/nftables.conf
ufw i nftables zajednoNepredvidiv rezultatZadrži samo jedan alat

Testiraj novi skup pravila u odvojenoj sesiji bez zatvaranja radne. Jednostavna zaštita: sleep 300 && nft flush ruleset u pozadini — ako se zaključaš, pristup se sam vrati.

Ako ti ti detalji nisu potrebni, vrati se na ufw: pokriva većinu zadataka.