Vodič za Nftables

Vodic Za Nftables



Ovaj vodič objašnjava kako raditi s Nftables Linux vatrozidom. Ovaj je sadržaj optimiziran kako za iskusne tako i za nove korisnike Linuxa.

Nftables je komponenta Linux kernela koja pruža funkcionalnost vatrozida. To je zamjena za Iptables.







Nakon čitanja ovog vodiča, razumjet ćete pravila Nftables i moći ćete stvoriti svoj vatrozid. Ne trebate prethodno znanje o Iptablesu.



Svi primjeri u ovom vodiču sadrže snimke zaslona, ​​što svim korisnicima Linuxa, neovisno o njihovoj razini znanja, olakšava njihovo razumijevanje i implementaciju.



Početak rada s Nftables

Prije nego što započnete, izradite i otvorite datoteku pomoću uređivača teksta kao što je nano ili vi kako biste počeli upisivati ​​svoja prva Nftables pravila na temelju sljedećeg primjera. Nemojte copy-paste; tip sve.





nano vatrozid.nft

Primjer u ovom vodiču prilično je jednostavan i prikazuje restriktivni vatrozid u kojem se ispušta sav IPv4 promet osim povratne petlje i određenih priključaka.



Na prethodnoj snimci zaslona koristio sam prvi red za definiranje svoje lokalne mreže (192.168.0.0/16) kao LinuxHintNet.

definirajte LinuxHintNet = 192.168.0.0 / 16

U drugom retku definiram grupu portova (80,443 i 22). Ovu grupu zovem AllowPorts jer planiram dopustiti promet kroz njih. AllowPorts je proizvoljan naziv.

definirajte AllowPorts   = { 80 , 443 , 53 , 22 }

Zatim dodajem tablicu, koja je spremnik ili grupa lanaca i pravila; oba su objašnjena u nastavku. Tablice pomažu u organiziranju pravila i lanaca. Tablicu u primjeru sam nazvao 'Restriktivna' jer sadrži restriktivnu politiku, a naziv joj je proizvoljan.

IP ispred naziva tablice označava da će se ta pravila tablice primijeniti samo na IPv4 promet. Možete koristiti inet umjesto IP-a za primjenu pravila na IPv4 i IPv6 protokole. Ili možete zamijeniti IP s ip6 samo za IPv6.

Upamtite, Restriktivno je naziv koji sam proizvoljno definirao. Stol možete imenovati kako želite.

U mom slučaju, primjenjujem pravila samo na IPv4, kao što je prikazano u nastavku.

dodaj tablicu ip Restriktivno

Za oba protokola koristite sljedeće:

dodati tablicu inet Restriktivno

Zatim dodajemo prvi osnovni lanac, koji sam proizvoljno nazvao Dolazni jer je povezan s dolaznim prometom. Međutim, možete ga nazvati kako želite.

Sljedeći osnovni lanac ispušta sav dolazni promet prema zadanim postavkama:

  • add chain ip Restrictive Incoming: Ovaj odjeljak dodaje restriktivni dolazni lanac koji se primjenjuje na IPv4
  • filter vrste: Ovo definira vrstu lanca kao filter jer će filtrirati promet. Drugi mogući tipovi lanca su ruta ili NAT
  • hook input: Odnosi se na dolazne pakete
  • prioritet 0: Prioritet osnovnog lanca definira redoslijed osnovnih lanaca
  • pravilo ispuštanja: pravilo ispuštanja, prema zadanim postavkama, odbacuje sve pakete
Dodajte lanac ip Restriktivni dolazni { tip filter hook prioritet unosa 0 ; pad politike; }

Kao što možete vidjeti na sljedećoj snimci zaslona, ​​stvorio sam dva druga osnovna lanca slična prethodnom, Restriktivno preusmjeravanje i Restriktivno odlazno. Razlika je definirana kuka za svaku (kuka naprijed i izlaz kuke). Njihovo objašnjavanje se ponavlja.

Nakon tri osnovna lanca, možemo nastaviti s Nftables pravilima kako bismo omogućili povratni promet.

Dodajem sljedeće retke za dolazni i odlazni promet na sučelju povratne petlje.

dodaj pravilo ip Restriktivni dolazni iifname lo counter accept

dodaj pravilo ip Restriktivno Dolazno oifname lo counter accept

Sada dodajem četiri pravila koja prihvaćaju odlazni i dolazni TCP i UDP promet kroz sve priključke uključene u varijablu $AllowPorts definiranu na početku datoteke.

dodaj pravilo ip Restriktivni dolazni tcp sport $AllowPorts counter prihvatiti

dodaj pravilo ip Restriktivni odlazni tcp dport $AllowPorts counter prihvatiti

dodaj pravilo ip Restriktivni dolazni udp sport $AllowPorts counter prihvatiti

dodaj pravilo ip Restriktivni odlazni udp dport $AllowPorts counter prihvatiti

Cijeli scenarij možete vidjeti ispod.

Nakon što završite s upisivanjem tablica, lanaca i pravila, zatvorite dokument i spremite promjene.

# U prva dva retka definiram svoju lokalnu mrežu (LinuxHintNet) i skup portova (80,
#443,22) kako biste omogućili promet kroz njih prema pravilima u nastavku.
definirajte LinuxHintNet = 192.168.0.0 / 16
definirajte AllowPorts   = { 80 , 443 , 53 , 22 }
#Deklarišem novu tablicu koja će sadržavati lance i pravila. Ovu tablicu zovem 'Restriktivna'.
#'ip' primjenjuje pravila samo na IPv4. Za IPv6 koristite samo 'ip6' i koristite 'inet' za oba protokola.
dodaj tablicu ip Restriktivno
# Nakon kreiranja tablice, kreiram tri lanca, dolazni, preusmjereni i odlazni,
#Njihova imena su proizvoljna. Svi oni prema zadanim postavkama isključuju dolazni, odlazni i prosljeđujući promet.
dodati lanac ip Restriktivni dolazni { tip filter hook prioritet unosa 0 ; pad politike; }
dodati lanac ip Restriktivno preusmjeravanje { tip filter kuka unaprijed prioritet 0 ; pad politike; }
dodati lanac ip Restriktivni odlazni { tip filter hook izlazni prioritet 0 ; pad politike; }
# Implementiram dva pravila za dopuštanje povratnog prometa.
dodaj pravilo ip Restriktivni dolazni iifname lo counter accept
dodaj pravilo ip Restriktivno Dolazno oifname lo counter accept
# Implementiram pravila za dopuštanje prometa kroz portove definirane u varijabli AllowPorts.
dodaj pravilo ip Restriktivni dolazni tcp sport $AllowPorts counter prihvatiti
dodaj pravilo ip Restriktivni odlazni tcp dport $AllowPorts counter prihvatiti
dodaj pravilo ip Restriktivni dolazni udp sport $AllowPorts counter prihvatiti

dodaj pravilo ip Restriktivni odlazni udp dport $AllowPorts counter prihvatiti

Da biste aktivirali vatrozid, pokrenite sljedeću naredbu:

sudo nft -f vatrozid.nft

Svoja pravila možete provjeriti pokretanjem sljedeće naredbe:

sudo skup pravila popisa nft

To je osnovni restriktivni vatrozid.

Zaključak:

Kao što vidite, Nftables je mnogo prijateljskiji od Iptablesa, a korisnici mogu naučiti Nftables brže od Iptablesa. Budući da se Iptables ukida, mnoge distribucije koriste Nftables kao zadani vatrozid, uključujući Debian. Korisnici s iskustvom u Iptablesu možda će htjeti pogledati alat Iptables-nftables-compat, koji prevodi Iptables u Nftables. To im može pomoći da razumiju razlike.

Profesionalni korisnici poput administratora sustava imaju tendenciju da nastave raditi s Iptables; izbjegavajte ignoriranje Nftables kako biste uštedjeli vrijeme dok poboljšavate filtriranje. Nadam se da je ovaj članak bio dovoljno jednostavan da vas uvjeri da isprobate Nftables.