Vadnica za Nftables

Vadnica Za Nftables



Ta vadnica pojasnjuje, kako delati s požarnim zidom Nftables Linux. Ta vsebina je optimizirana za izkušene in nove uporabnike Linuxa.

Nftables je komponenta jedra Linuxa, ki zagotavlja funkcije požarnega zidu. Je zamenjava za Iptables.







Ko boste prebrali to vadnico, boste razumeli pravila Nftables in boste lahko ustvarili svoj požarni zid. Ne potrebujete predznanja o Iptables.



Vsi primeri v tej vadnici vsebujejo posnetke zaslona, ​​kar olajša razumevanje in implementacijo vsem uporabnikom Linuxa, ne glede na njihovo raven znanja.



Kako začeti z Nftables

Preden začnete, ustvarite in odprite datoteko z urejevalnikom besedil, kot je nano ali vi, da začnete vnašati svoja prva pravila Nftables na podlagi naslednjega primera. Ne kopiraj-prilepi; tip vse.





nano požarni zid.nft

Primer v tej vadnici je precej preprost in prikazuje omejevalni požarni zid, v katerem je izpuščen ves promet IPv4, razen povratne zanke in določenih vrat.



Na prejšnjem posnetku zaslona sem uporabil prvo vrstico za definiranje svojega lokalnega omrežja (192.168.0.0/16) kot LinuxHintNet.

definirajte LinuxHintNet = 192.168.0.0 / 16

V drugi vrstici definiram skupino vrat (80,443 in 22). To skupino imenujem AllowPorts, ker nameravam dovoliti promet prek njih. AllowPorts je poljubno ime.

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

Nato dodam tabelo, ki je vsebnik ali skupina verig in pravil; oba sta razložena spodaj. Tabele pomagajo organizirati pravila in verige. Tabelo v primeru sem poimenoval »Omejevalna«, ker vsebuje omejevalno politiko in je njeno ime poljubno.

IP pred imenom tabele nakazuje, da bodo ta pravila tabele uporabljena samo za promet IPv4. Za uporabo pravil za protokola IPv4 in IPv6 lahko namesto IP uporabite inet. Lahko pa zamenjate IP z ip6 samo za IPv6.

Ne pozabite, Restriktivno je ime, ki sem ga določil poljubno. Tabelo lahko poimenujete, kot želite.

V mojem primeru uporabljam pravila samo za IPv4, kot je prikazano spodaj.

dodaj tabelo ip Omejevalno

Za oba protokola uporabite naslednje:

dodaj tabelo inet Restriktivno

Nato dodamo prvo osnovno verigo, ki jo poljubno imenujem Dohodna, ker je povezana z dohodnim prometom. Vendar ga lahko poimenujete, kot želite.

Naslednja osnovna veriga privzeto izpusti ves dohodni promet:

  • add chain ip Restrictive Incoming: Ta razdelek doda Restrictive Incoming verigo, ki bo uporabljena za IPv4
  • filter vrste: To definira vrsto verige kot filter, saj bo filtriral promet. Druge možne vrste verige so route ali NAT
  • hook input: Nanaša se na dohodne pakete
  • prioriteta 0: Prioriteta osnovne verige določa vrstni red osnovnih verig
  • pravilnik o izpustitvi: pravilnik o izpustitvi privzeto zavrže vse pakete
Dodajte verigo ip Omejevalni dohodni { vrsta prioriteta vnosa kljuke filtra 0 ; padec politike; }

Kot lahko vidite na naslednjem posnetku zaslona, ​​sem ustvaril dve drugi osnovni verigi, podobni prejšnji, Restriktivno preusmeritev in Restriktivno odhodno. Razlika je v definiranem kavlju za vsakega (hook forward in hook output). Njihovo razlaganje se ponavlja.

Po treh osnovnih verigah lahko nadaljujemo s pravili Nftables, da omogočimo povratni promet.

Na vmesniku povratne zanke dodam naslednje vrstice za dohodni in odhodni promet.

dodaj pravilo ip Omejitveni dohodni iifname lo števec sprejme

dodaj pravilo ip Omejevalni Incoming oifname lo counter accept

Zdaj dodam štiri pravila, ki sprejemajo odhodni in dohodni promet TCP in UDP prek vseh vrat, vključenih v spremenljivko $AllowPorts, definirano na začetku datoteke.

dodaj pravilo ip Omejevalni dohodni tcp šport $AllowPorts counter accept

dodaj pravilo ip Omejevalna odhodna tcp dport $AllowPorts counter accept

dodaj pravilo ip Omejevalni dohodni udp šport $AllowPorts counter accept

dodaj pravilo ip Omejevalni odhodni udp dport $AllowPorts counter accept

Celoten scenarij si lahko ogledate spodaj.

Ko končate s tipkanjem tabel, verig in pravil, zaprite dokument in shranite spremembe.

# V prvih dveh vrsticah definiram svoje lokalno omrežje (LinuxHintNet) in nabor vrat (80,
#443,22), da omogočite promet prek njih v spodnjih pravilih.
definirajte LinuxHintNet = 192.168.0.0 / 16
definirajte AllowPorts   = { 80 , 443 , 53 , 22 }
#Proglasim novo tabelo, ki bo vsebovala verige in pravila. To tabelo imenujem 'Restriktivna'.
#»ip« uporablja pravila samo za IPv4. Za IPv6 uporabite samo 'ip6' in uporabite 'inet' za oba protokola.
dodaj tabelo ip Omejevalno
# Po ustvarjanju tabele ustvarim tri verige, dohodno, preusmerjeno in odhodno,
#Njihova imena so poljubna. Vsi privzeto opustijo dohodni, odhodni in posredovani promet.
dodajte verigo ip Omejevalni dohodni { vrsta prioriteta vnosa kljuke filtra 0 ; padec politike; }
dodajte verigo ip Omejevalna preusmeritev { vrsta kavelj filtra prednost naprej 0 ; padec politike; }
dodajte verigo ip Omejevalni odhodni { vrsta prioriteta izhoda kavlja filtra 0 ; padec politike; }
# Implementiram dve pravili za omogočanje povratnega prometa.
dodaj pravilo ip Omejitveni dohodni iifname lo števec sprejme
dodaj pravilo ip Omejevalni Incoming oifname lo counter accept
# Implementiram pravila za dovoljenje prometa prek vrat, definiranih v spremenljivki AllowPorts.
dodaj pravilo ip Omejevalni dohodni tcp šport $AllowPorts counter accept
dodaj pravilo ip Omejevalna odhodna tcp dport $AllowPorts counter accept
dodaj pravilo ip Omejevalni dohodni udp šport $AllowPorts counter accept

dodaj pravilo ip Omejevalni odhodni udp dport $AllowPorts counter accept

Če želite aktivirati požarni zid, zaženite naslednji ukaz:

sudo nft -f požarni zid.nft

Pravila lahko preverite tako, da zaženete naslednji ukaz:

sudo nabor pravil seznama nft

To je osnovni omejevalni požarni zid.

Zaključek:

Kot lahko vidite, je Nftables veliko bolj prijazen kot Iptables in uporabniki se lahko naučijo Nftables hitreje kot Iptables. Ker je Iptables ukinjen, številne distribucije uporabljajo Nftables kot privzeti požarni zid, vključno z Debianom. Izkušeni uporabniki Iptables bodo morda želeli pogledati orodje Iptables-nftables-compat, ki prevede Iptables v Nftables. To jim lahko pomaga razumeti razlike.

Profesionalni uporabniki, kot so sistemski skrbniki, še naprej delajo z Iptables; izogibajte se ignoriranju Nftables, da prihranite čas in hkrati izboljšate filtriranje. Upam, da je bil ta članek dovolj preprost, da vas je prepričal, da preizkusite Nftables.