Nftablesi õpetus

Nftablesi Opetus



See õpetus selgitab, kuidas töötada Nftables Linuxi tulemüüriga. See sisu on optimeeritud nii Linuxi kogenud kui ka uutele kasutajatele.

Nftables on tulemüüri funktsioone pakkuv Linuxi kerneli komponent. See on Iptablesi asendamine.







Pärast selle õpetuse lugemist saate aru Nftablesi reeglitest ja saate luua oma tulemüüri. Te ei vaja Iptablesi kohta eelnevaid teadmisi.



Kõik selle õpetuse näited sisaldavad ekraanipilte, mis muudab nende mõistmise ja rakendamise kõikidel Linuxi kasutajatel nende teadmiste tasemest sõltumata lihtsaks.



Nftablesiga alustamine

Enne alustamist looge ja avage fail, kasutades tekstiredaktorit (nt nano või vi), et alustada järgmise näite põhjal esimeste Nftablesi reeglite tippimist. Ärge kopeerige-kleebi; tippige kõik.





nano firewall.nft

Selle õpetuse näide on üsna lihtne ja näitab piiravat tulemüüri, milles kogu IPv4-liiklus katkestatakse, välja arvatud loopback ja teatud pordid.



Eelmises ekraanipildis kasutasin esimest rida, et määratleda oma kohtvõrk (192.168.0.0/16) kui LinuxHintNet.

määrake LinuxHintNet = 192.168.0.0 / 16

Teisel real määratlen portide rühma (80 443 ja 22). Nimetan seda rühma AllowPortideks, kuna kavatsen lubada liiklust nende kaudu. AllowPorts on suvaline nimi.

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

Seejärel lisan tabeli, mis on ahelate ja reeglite konteiner või rühm; neid mõlemaid selgitatakse allpool. Tabelid aitavad reegleid ja ahelaid korrastada. Nimetasin näites olevale tabelile 'Piiratsev', kuna see sisaldab piiravat poliitikat ja selle nimi on meelevaldne.

IP tabeli nime ees näitab, et que tabelireegleid rakendatakse ainult IPv4 liiklusele. Reeglite rakendamiseks IPv4 ja IPv6 protokollidele saate IP asemel kasutada inetit. Või võite asendada IP ip6-ga ainult IPv6 jaoks.

Pidage meeles, et piirav on nimi, mille määrasin meelevaldselt. Saate tabelile nime anda nii, nagu soovite.

Minu puhul rakendan reegleid ainult IPv4 jaoks, nagu allpool näidatud.

lisa tabel ip Piirav

Mõlema protokolli jaoks kasutage järgmist.

lisa tabel inet Piirav

Seejärel lisame esimese baasahela, mille ma nimetan meelevaldselt sissetulevaks, kuna see on seotud sissetuleva liiklusega. Kuid võite seda nimetada nii, nagu soovite.

Järgmine baasahel katkestab vaikimisi kogu sissetuleva liikluse:

  • lisa ahel ip piirav sissetulev: see jaotis lisab IPv4-le rakendatava piirava sissetuleva ahela
  • tüübifilter: see määratleb ahela tüübi filtrina, kuna see filtreerib liiklust. Teised võimalikud ahelatüübid on marsruut või NAT
  • konksusisend: viitab sissetulevatele pakettidele
  • prioriteet 0: baasahela prioriteet määrab baasahelate järjekorra
  • poliitika langus: vaikimisi loobub loobumispoliitikast kõik paketid
Lisa kett ip Piirav sissetulek { tüüp filtrikonksu sisendi prioriteet 0 ; poliitika langus; }

Nagu näete järgmisel ekraanipildil, lõin kaks teist baasahelat, mis on sarnased eelmisega, Restrictive Redirect ja Restrictive Outgoing. Erinevus on iga jaoks määratletud konks (konksu edasi ja konksu väljund). Nende selgitamine on korduv.

Pärast kolme põhiahelat saame jätkata Nftablesi reeglitega, et lubada tagasiliiklust.

Lisan loopback-liidese sissetuleva ja väljamineva liikluse jaoks järgmised read.

lisa reegel ip Piirav sissetulev iifname lo counter aktsepteerida

lisa reegel ip Piirav sissetulev oifname lo counter aktsepteerida

Nüüd lisan neli reeglit, mis aktsepteerivad väljaminevat ja sissetulevat TCP- ja UDP-liiklust kõigi portide kaudu, mis sisalduvad faili alguses määratletud muutujas $AllowPorts.

lisa reegel ip Piirav sissetulev tcp sport $AllowPorts vastu võtma

lisa reegel ip Piirav väljuv tcp dport $AllowPorts vastu võtma

lisa reegel ip Piirav sissetulev udp sport $AllowPorts vastu võtma

lisa reegel ip Piirav väljuv udp dport $AllowPorts vastu võtma

Täielikku skripti näete allpool.

Kui olete tabelite, kettide ja reeglite tippimise lõpetanud, sulgege dokument ja salvestage muudatused.

# Kahel esimesel real määratlen oma kohaliku võrgu (LinuxHintNet) ja portide komplekti (80,
#443,22), et võimaldada nende kaudu liiklust allolevates reeglites.
määrake LinuxHintNet = 192.168.0.0 / 16
defineeri AllowPorts   = { 80 , 443 , 53 , 22 }
#Ma kuulutan välja uue tabeli, mis sisaldab ahelaid ja reegleid. Ma nimetan seda tabelit 'piiravaks'.
#„IP” rakendab reegleid ainult IPv4 jaoks. IPv6 puhul kasutage ainult 'ip6' ja mõlema protokolli jaoks 'inet'.
lisa tabel ip Piirav
# Pärast tabeli loomist loon kolm ahelat: Sissetulev, Ümbersuunamine ja Väljuv,
#Nende nimed on meelevaldsed. Kõik need vähendavad vaikimisi sissetulevat, väljaminevat ja edastatavat liiklust.
lisada kett ip Piirav sissetulek { tüüp filtrikonksu sisendi prioriteet 0 ; poliitika langus; }
lisada kett ip Piirav ümbersuunamine { tüüp filtri konksu edasi prioriteet 0 ; poliitika langus; }
lisada kett ip Piirav väljaminev { tüüp filtrikonksu väljundi prioriteet 0 ; poliitika langus; }
# Rakendan tagasisilmusliikluse lubamiseks kaks reeglit.
lisa reegel ip Piirav sissetulev iifname lo counter aktsepteerida
lisa reegel ip Piirav sissetulev oifname lo counter aktsepteerida
# Rakendan reegleid, et lubada liiklust muutujas AllowPorts määratletud portide kaudu.
lisa reegel ip Piirav sissetulev tcp sport $AllowPorts vastu võtma
lisa reegel ip Piirav väljuv tcp dport $AllowPorts vastu võtma
lisa reegel ip Piirav sissetulev udp sport $AllowPorts vastu võtma

lisa reegel ip Piirav väljuv udp dport $AllowPorts vastu võtma

Tulemüüri aktiveerimiseks käivitage järgmine käsk:

sudo nft -f firewall.nft

Saate oma reegleid kontrollida, käivitades järgmise käsu:

sudo nft loendi reeglid

See on põhiline piirav tulemüür.

Järeldus:

Nagu näete, on Nftables palju sõbralikum kui Iptables ja kasutajad saavad Nftablesi õppida kiiremini kui Iptables. Kuna Iptablesi tootmine lõpetatakse ja paljud distributsioonid kasutavad vaiketulemüürina Nftablesi, sealhulgas Debian. Iptablesi kogenud kasutajad võivad soovida vaadata tööriista Iptables-nftables-compat, mis tõlgib Iptablesi Nftables-i. See võib aidata neil erinevusi mõista.

Professionaalsed kasutajad, nagu süsteemiadministraatorid, kipuvad jätkama tööd Iptablesiga; vältige Nftablesi ignoreerimist, et säästa aega ja parandada filtreerimist. Loodan, et see artikkel oli piisavalt lihtne, et veenda teid Nftablesi proovima.