Nftables apmācība

Nftables Apmaciba



Šajā apmācībā ir izskaidrots, kā strādāt ar Nftables Linux ugunsmūri. Šis saturs ir optimizēts gan pieredzējušiem Linux lietotājiem, gan jauniem lietotājiem.

Nftables ir Linux kodola sastāvdaļa, kas nodrošina ugunsmūra funkcijas. Tā ir Iptables aizstāšana.







Pēc šīs apmācības izlasīšanas jūs sapratīsit Nftables noteikumus un varēsit izveidot savu ugunsmūri. Jums nav nepieciešamas iepriekšējas zināšanas par Iptables.



Visos šīs apmācības piemēros ir ietverti ekrānuzņēmumi, kas atvieglo to izpratni un ieviešanu visiem Linux lietotājiem neatkarīgi no viņu zināšanu līmeņa.



Darba sākšana ar Nftables

Pirms darba sākšanas izveidojiet un atveriet failu, izmantojot teksta redaktoru, piemēram, nano vai vi, lai sāktu rakstīt pirmās Nftables kārtulas, pamatojoties uz šo piemēru. Nekopēt-ielīmēt; ierakstiet visu.





nano firewall.nft

Šīs apmācības piemērs ir diezgan vienkāršs un parāda ierobežojošu ugunsmūri, kurā tiek pārtraukta visa IPv4 trafika, izņemot cilpu un noteiktus portus.



Iepriekšējā ekrānuzņēmumā es izmantoju pirmo rindiņu, lai definētu savu vietējo tīklu (192.168.0.0/16) kā LinuxHintNet.

definējiet LinuxHintNet = 192.168.0.0 / 16

Otrajā rindā es definēju portu grupu (80 443 un 22). Es saucu šo grupu par AllowPorts, jo plānoju caur tiem atļaut trafiku. AllowPorts ir patvaļīgs nosaukums.

definējiet AllowPorts = { 80 , 443 , 53 , 22 }

Pēc tam es pievienoju tabulu, kas ir ķēžu un noteikumu konteiners vai grupa; tie abi ir izskaidroti tālāk. Tabulas palīdz sakārtot noteikumus un ķēdes. Tabulu piemērā nosaucu par “Ierobežojošu”, jo tajā ir ietverta ierobežojoša politika un tās nosaukums ir patvaļīgs.

IP pirms tabulas nosaukuma norāda, ka que tabulas noteikumi tiks piemēroti tikai IPv4 trafikam. Varat izmantot inet, nevis IP, lai piemērotu noteikumus IPv4 un IPv6 protokoliem. Vai arī varat aizstāt IP ar ip6 tikai IPv6.

Atcerieties, ka Ierobežojošs ir nosaukums, kuru es definēju patvaļīgi. Jūs varat nosaukt tabulu, kā vēlaties.

Manā gadījumā es piemēroju noteikumus tikai IPv4, kā parādīts tālāk.

pievienot tabulu ip Ierobežojošs

Abiem protokoliem izmantojiet tālāk norādīto.

pievienot tabulu inet Ierobežojošs

Tad mēs pievienojam pirmo bāzes ķēdi, kuru es patvaļīgi nosaucu par ienākošo, jo tā ir saistīta ar ienākošo trafiku. Tomēr jūs varat to nosaukt, kā vēlaties.

Tālāk norādītā bāzes ķēde pēc noklusējuma atmet visu ienākošo trafiku:

  • pievienot ķēdi ip ierobežojoši ienākošie: šajā sadaļā tiek pievienota ierobežojošā ienākošā ķēde, kas jāpiemēro IPv4.
  • tipa filtrs: ķēdes veids tiek definēts kā filtrs, jo tas filtrēs trafiku. Citi iespējamie ķēdes veidi ir maršruts vai NAT
  • āķa ievade: attiecas uz ienākošajām paketēm
  • prioritāte 0: Bāzes ķēdes prioritāte nosaka bāzes ķēžu secību
  • politikas nomešana: nomešanas politika pēc noklusējuma atmet visas paketes
Pievienojiet ķēdi ip Ierobežojošie ienākošie { veids filtra āķa ievades prioritāte 0 ; politikas kritums; }

Kā redzat nākamajā ekrānuzņēmumā, es izveidoju divas citas bāzes ķēdes, kas ir līdzīgas iepriekšējai, Ierobežojoša novirzīšana un Ierobežojoša izejošā. Atšķirība ir katram noteiktajam āķim (āķa uz priekšu un āķa izvade). To skaidrošana atkārtojas.

Pēc trim bāzes ķēdēm mēs varam turpināt izmantot Nftables noteikumus, lai atļautu atpakaļcilpas trafiku.

Es pievienoju šādas rindas ienākošajai un izejošajai trafikai cilpas saskarnē.

pievienot noteikumu ip Ierobežojoši ienākošie iifname lo counter pieņemt

pievienot noteikumu ip Ierobežojoši ienākošie oifname lo counter pieņemt

Tagad es pievienoju četrus noteikumus, kas pieņem izejošo un ienākošo TCP un UDP trafiku caur visiem portiem, kas iekļauti faila sākumā definētajā mainīgajā $AllowPorts.

pievienot noteikumu ip Ierobežojošs ienākošo tcp sports $AllowPorts counter pieņemt

pievienot noteikumu ip Ierobežojošs izejošo tcp dport $AllowPorts counter pieņemt

pievienot noteikumu ip Ierobežojošs ienākošais udp sports $AllowPorts counter pieņemt

pievienot noteikumu ip Ierobežojošs izejošo udp dport $AllowPorts counter pieņemt

Pilnu skriptu varat redzēt zemāk.

Kad esat pabeidzis rakstīt tabulas, ķēdes un kārtulas, aizveriet dokumentu un saglabājiet izmaiņas.

# Pirmajās divās rindās es definēju savu vietējo tīklu (LinuxHintNet) un portu kopu (80,
#443,22), lai tālāk norādītajos noteikumos iespējotu satiksmi caur tām.
definējiet LinuxHintNet = 192.168.0.0 / 16
definējiet AllowPorts = { 80 , 443 , 53 , 22 }
#Es paziņoju par jaunu tabulu, kurā būs ķēdes un noteikumi. Es šo tabulu saucu par 'ierobežojošu'.
#“IP” noteikumus piemēro tikai IPv4. IPv6 izmantojiet tikai 'ip6' un abiem protokoliem izmantojiet 'inet'.
pievienot tabulu ip Ierobežojošs
# Pēc tabulas izveidošanas es izveidoju trīs ķēdes: ienākošā, novirzīt un izejošā,
#Viņu vārdi ir patvaļīgi. Visi tie pēc noklusējuma samazina ienākošo, izejošo un pārsūtīšanas trafiku.
pievienot ķēdi ip Ierobežojošie ienākošie { veids filtra āķa ievades prioritāte 0 ; politikas kritums; }
pievienot ķēdi ip Ierobežojoša novirzīšana { veids filtra āķa priekšu prioritāte 0 ; politikas kritums; }
pievienot ķēdi ip Ierobežojoši izejošie { veids filtra āķa izvades prioritāte 0 ; politikas kritums; }
# Es ieviešu divus noteikumus, lai atļautu cilpas trafiku.
pievienot noteikumu ip Ierobežojoši ienākošie iifname lo counter pieņemt
pievienot noteikumu ip Ierobežojoši ienākošie oifname lo counter pieņemt
# Es ieviešu noteikumus, lai atļautu trafiku caur portiem, kas definēti mainīgajā AllowPorts.
pievienot noteikumu ip Ierobežojošs ienākošo tcp sports $AllowPorts counter pieņemt
pievienot noteikumu ip Ierobežojošs izejošo tcp dport $AllowPorts counter pieņemt
pievienot noteikumu ip Ierobežojošs ienākošais udp sports $AllowPorts counter pieņemt

pievienot noteikumu ip Ierobežojošs izejošo udp dport $AllowPorts counter pieņemt

Lai aktivizētu ugunsmūri, palaidiet šādu komandu:

sudo nft -f firewall.nft

Varat pārbaudīt savus noteikumus, izpildot šādu komandu:

sudo nft saraksta noteikumu kopa

Tas ir pamata ierobežojošs ugunsmūris.

Secinājums:

Kā redzat, Nftables ir daudz draudzīgākas nekā Iptables, un lietotāji var apgūt Nftables ātrāk nekā Iptables. Tā kā Iptables darbība tiek pārtraukta, un daudzi izplatījumi izmanto Nftables kā noklusējuma ugunsmūri, tostarp Debian. Pieredzējuši Iptables lietotāji, iespējams, vēlēsies apskatīt rīku Iptables-nftables-compat, kas pārvērš Iptables uz Nftables. Tas viņiem var palīdzēt izprast atšķirības.

Profesionāli lietotāji, piemēram, sistēmas administratori, mēdz turpināt strādāt ar Iptables; izvairieties no Nftables ignorēšanas, lai ietaupītu laiku, vienlaikus uzlabojot filtrēšanu. Es ceru, ka šis raksts bija pietiekami vienkāršs, lai pārliecinātu jūs izmēģināt Nftables.