Nftables opetusohjelma

Nftables Opetusohjelma



Tämä opetusohjelma selittää, kuinka Nftables Linux -palomuuria käytetään. Tämä sisältö on optimoitu sekä Linuxin kokeneille että uusille käyttäjille.

Nftables on osa Linux-ytimen palomuurin toimintoja. Se korvaa Iptablesin.







Luettuasi tämän opetusohjelman ymmärrät Nftablesin säännöt ja pystyt luomaan palomuurisi. Et tarvitse aiempaa tietoa Iptablesista.



Kaikki tämän opetusohjelman esimerkit sisältävät kuvakaappauksia, joiden avulla kaikkien Linux-käyttäjien on heidän tietotasostaan ​​riippumatta helppo ymmärtää ja toteuttaa niitä.



Nftablesin käytön aloittaminen

Ennen kuin aloitat, luo ja avaa tiedosto tekstieditorilla, kuten nanolla tai vi:lla, aloittaaksesi ensimmäisten Nftables-sääntöjen kirjoittamisen seuraavan esimerkin perusteella. Älä kopioi ja liitä; kirjoita kaikki.





nano firewall.nft

Tämän opetusohjelman esimerkki on melko yksinkertainen ja näyttää rajoittavan palomuurin, jossa kaikki IPv4-liikenne pudotetaan, lukuun ottamatta takaisinkytkentää ja tiettyjä portteja.



Edellisessä kuvakaappauksessa käytin ensimmäistä riviä määrittääkseni paikallisverkkoni (192.168.0.0/16) LinuxHintNetiksi.

määrittele LinuxHintNet = 192.168.0.0 / 16

Toisella rivillä määritän ryhmän portteja (80,443 ja 22). Kutsun tätä ryhmää AllowPorteiksi, koska aion sallia liikenteen niiden kautta. AllowPorts on mielivaltainen nimi.

määrittele AllowPorts   = { 80 , 443 , 53 , 22 }

Sitten lisään taulukon, joka on ketjujen ja sääntöjen säilö tai ryhmä; molemmat selitetään alla. Taulukot auttavat sääntöjen ja ketjujen järjestämisessä. Kutsuin esimerkin taulukkoa 'rajoittavaksi', koska se sisältää rajoittavan käytännön ja sen nimi on mielivaltainen.

IP-osoite ennen taulukon nimeä osoittaa, että que-taulukkosääntöjä sovelletaan vain IPv4-liikenteeseen. Voit käyttää inetiä IP:n sijasta sääntöjen soveltamiseen IPv4- ja IPv6-protokolliin. Tai voit korvata IP:n ip6:lla vain IPv6:lle.

Muista, että rajoittava on nimi, jonka määritin mielivaltaisesti. Voit nimetä taulukon haluamallasi tavalla.

Omassa tapauksessani käytän sääntöjä vain IPv4:ään, kuten alla on esitetty.

lisää taulukko ip Rajoittava

Käytä molemmille protokollille seuraavaa:

lisää taulukko inet Restrictive

Sitten lisäämme ensimmäisen perusketjun, jonka nimeän mielivaltaisesti Saapuvaksi, koska se liittyy saapuvaan liikenteeseen. Voit kuitenkin nimetä sen haluamallasi tavalla.

Seuraava perusketju pudottaa kaiken saapuvan liikenteen oletuksena:

  • lisää ketju ip Rajoitettu saapuva: Tämä osio lisää rajoittavan saapuvan ketjun käytettäväksi IPv4:ssä
  • tyyppisuodatin: Tämä määrittää ketjun tyypin suodattimeksi, koska se suodattaa liikenteen. Muita mahdollisia ketjutyyppejä ovat reitti tai NAT
  • hook input: Viittaa saapuviin paketteihin
  • prioriteetti 0: Perusketjun prioriteetti määrittää perusketjujen järjestyksen
  • Policy drop: Pudotuskäytäntö hylkää oletusarvoisesti kaikki paketit
Lisää ketju ip Rajoitettu saapuminen { tyyppi suodatinkoukun syöttöprioriteetti 0 ; politiikan lasku; }

Kuten seuraavassa kuvakaappauksessa näet, loin kaksi muuta perusketjua, jotka ovat samanlaisia ​​kuin edellinen, Restrictive Redirect ja Restrictive Outgoing. Ero on kullekin määritetty koukku (koukun eteenpäin ja koukun lähtö). Niiden selittäminen on toistuvaa.

Kolmen perusketjun jälkeen voimme jatkaa Nftables-säännöillä salliaksemme takaisinkytkentäliikenteen.

Lisään seuraavat rivit saapuvalle ja lähtevälle liikenteelle loopback-rajapinnassa.

lisää sääntö ip Rajoitettu saapuva iifname lo counter hyväksyä

lisää sääntö ip Rajoittava saapuva oifname lo counter hyväksyä

Nyt lisään neljä sääntöä, jotka hyväksyvät lähtevän ja saapuvan TCP- ja UDP-liikenteen kaikkien tiedoston alussa määritellyn $AllowPorts-muuttujan porttien kautta.

lisää sääntö ip Rajoittava saapuva tcp-urheilu $AllowPorts vasta hyväksyä

lisää sääntö ip Rajoittava lähtevä tcp dport $AllowPorts vasta hyväksyä

lisää sääntö ip Rajoittava saapuva udp-urheilu $AllowPorts vasta hyväksyä

lisää sääntö ip Rajoittava lähtevä udp dport $AllowPorts vasta hyväksyä

Näet koko käsikirjoituksen alta.

Kun olet kirjoittanut taulukot, ketjut ja säännöt, sulje asiakirja ja tallenna muutokset.

# Kahdella ensimmäisellä rivillä määritän paikallisverkkoni (LinuxHintNet) ja joukon portteja (80,
#443,22) salliaksesi liikenteen niiden läpi alla olevissa säännöissä.
määrittele LinuxHintNet = 192.168.0.0 / 16
määrittele AllowPorts   = { 80 , 443 , 53 , 22 }
# Ilmoitan uuden taulukon, joka sisältää ketjuja ja sääntöjä. Kutsun tätä taulukkoa 'rajoittavaksi'.
#'IP' soveltaa sääntöjä vain IPv4:ään. Käytä IPv6:ssa vain 'ip6' ja käytä 'inet' molemmissa protokollissa.
lisää taulukko ip Rajoittava
# Taulukon luomisen jälkeen luon kolme ketjua, saapuva, ​​uudelleenohjaus ja lähtevä,
#Heidän nimensä ovat mielivaltaisia. Kaikki ne poistavat saapuvan, lähtevän ja edelleenlähettävän liikenteen oletuksena.
lisää ketju ip Rajoitettu saapuminen { tyyppi suodatinkoukun syöttöprioriteetti 0 ; politiikan lasku; }
lisää ketju ip Rajoittava uudelleenohjaus { tyyppi suodatin koukun etusijalla 0 ; politiikan lasku; }
lisää ketju ip Rajoittava lähtevä { tyyppi suodatinkoukun lähtöprioriteetti 0 ; politiikan lasku; }
# Otan käyttöön kaksi sääntöä paluuliikenteen sallimiseksi.
lisää sääntö ip Rajoitettu saapuva iifname lo counter hyväksyä
lisää sääntö ip Rajoittava saapuva oifname lo counter hyväksyä
# Otan käyttöön säännöt sallimaan liikenteen AllowPorts-muuttujassa määritettyjen porttien kautta.
lisää sääntö ip Rajoittava saapuva tcp-urheilu $AllowPorts vasta hyväksyä
lisää sääntö ip Rajoittava lähtevä tcp dport $AllowPorts vasta hyväksyä
lisää sääntö ip Rajoittava saapuva udp-urheilu $AllowPorts vasta hyväksyä

lisää sääntö ip Rajoittava lähtevä udp dport $AllowPorts vasta hyväksyä

Aktivoi palomuuri suorittamalla seuraava komento:

sudo nft -f firewall.nft

Voit tarkistaa säännöt suorittamalla seuraavan komennon:

sudo nft-luettelon säännöt

Se on rajoittava peruspalomuuri.

Johtopäätös:

Kuten näet, Nftables on paljon ystävällisempi kuin Iptables, ja käyttäjät voivat oppia Nftablet nopeammin kuin Iptables. Koska Iptables lopetetaan ja monet jakelut käyttävät Nftablesia oletuspalomuurina, mukaan lukien Debian. Kokeneet Iptables-käyttäjät saattavat haluta tarkastella Iptables-nftables-compat -työkalua, joka kääntää Iptables-sovellukset Nftablesiksi. Tämä voi auttaa heitä ymmärtämään erot.

Ammattikäyttäjät, kuten järjestelmänvalvojat, jatkavat työskentelyä Iptablesin kanssa; vältä Nftablesin huomioimista säästääksesi aikaa ja parantaaksesi suodatusta. Toivon, että tämä artikkeli oli tarpeeksi yksinkertainen vakuuttamaan sinut kokeilemaan Nftablesia.