Linux-verkonhallinta ja TCP/IP kehittäjille · Oppitunti

Kehittyneet palomuurisäännöt (nftables)

Siirry `iptables`-työkalusta joustavampaan ja tehokkaampaan `nftables`-työkaluun pakettien suodatusta ja verkko-osoitteiden muunnosta varten.

Oppitunti 1/411 vaihetta

Kehittyneet palomuurisäännöt (nftables) on ilmainen Linux-verkonhallinta ja TCP/IP kehittäjille-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Linux-verkonhallinta ja TCP/IP kehittäjille-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Linux-verkonhallinta ja TCP/IP kehittäjille-kurssilla on yhteensä 4 oppituntia.

Tutustuminen nftablesiin: nykyaikainen palomuuri

Tervetuloa tutustumaan nftables-järjestelmään, Linuxin nykyaikaiseen pakettien suodatuksen kehykseen! Se on suunniteltu joustavammaksi ja helppokäyttöisemmäksi kuin edeltäjänsä iptables.

Siinä missä iptables käyttää erillisiä työkaluja IPv4:lle, IPv6:lle ja siltaukselle, nftables tarjoaa yhtenäisen syntaksin. Näin kaikkia palomuurisääntöjä voi hallita yhdellä komentorivityökalulla: nft.

Järjestäminen perheisiin, tauluihin ja ketjuihin

nftables järjestää säännöt selkeäksi hierarkiaksi:

  • Perheet: Määrittävät verkkokerroksen (esimerkiksi ip IPv4:lle, ip6 IPv6:lle, bridge kerrokselle 2 ja netdev kerroksille 1 ja 2).
  • Taulut: Ketjujen säilöjä, jotka kuuluvat tiettyyn perheeseen. Tauluja voi olla useita.
  • Ketjut: Sääntöjen sarjoja, joihin paketteja verrataan. Ketjut voivat olla ”perusketjuja” (ytimen koukkujen aloituspisteitä) tai ”tavallisia ketjuja” (muiden ketjujen kutsumia).

Nykyisten nftables-sääntöjen luettelo

Voitte tarkastella järjestelmän nykyistä nftables-sääntökokoelmaa komennolla nft list ruleset. Jos järjestelmän käyttö on vasta aloitettu, sääntökokoelma saattaa olla tyhjä tai sisältää oletussääntöjä.

Tarkastellaan sitä:

nft list ruleset

Ensimmäisen palomuurin määrittäminen

Ennen sääntöjen lisäämistä tarvitsemme taulun ja ketjun. Yleinen käytäntö on luoda ip-perheelle (IPv4) taulu ja saapuvaa liikennettä varten input-niminen perusketju.

Asetamme tämän ketjun oletuskäytännöksi drop, mikä tarkoittaa, että kaikki paketit, joita ei ole nimenomaisesti sallittu, hylätään. Tämä on turvallinen ”oletusarvoisesti kiellä” -lähestymistapa.

#!/bin/bash
# Add an 'ip' family table named 'filter'
nft add table ip filter

# Add a base chain 'input' to the 'filter' table
# Type 'filter', hook 'input', priority 0, policy 'drop'
nft add chain ip filter input { type filter hook input priority 0 \; policy drop \; }

nft list ruleset

Saapuvan perusliikenteen salliminen

Nyt kun input-ketju hylkää oletusarvoisesti kaiken liikenteen, meidän on lisättävä säännöt tarpeellisen liikenteen sallimiseksi. Yleinen ensimmäinen vaihe on sallia saapuvat SSH-yhteydet (portti 22), jotta voitte hallita palvelinta etäyhteydellä.

Sallimme myös muodostetut ja niihin liittyvät yhteydet, jotta käynnissä oleva tiedonsiirto toimii. Tämä on olennaista useimmissa verkkoyhteyksissä.

#!/bin/bash
# Allow established and related connections
nft add rule ip filter input ct state established,related accept

# Allow inbound SSH traffic (TCP port 22)
nft add rule ip filter input tcp dport 22 accept

nft list ruleset

Lähtevien yhteyksien salliminen

Useimpien järjestelmien on muodostettava lähteviä yhteyksiä esimerkiksi päivitysten hakemista ja verkon selaamista varten. Yleensä luomme tätä varten output-perusketjun.

Pidetään asia yksinkertaisena luomalla output-ketju ja sallimalla kaikki lähtevä IPv4-liikenne. Tuotantoympäristössä liikennettä voidaan rajoittaa tätä tarkemmin.

#!/bin/bash
# Add a base chain 'output' to the 'filter' table
# Type 'filter', hook 'output', priority 0, policy 'accept'
nft add chain ip filter output { type filter hook output priority 0 \; policy accept \; }

nft list ruleset

Lähde-NAT (SNAT) nftablesilla

Verkko-osoitteenmuunnoksen (NAT) avulla useat yksityisen verkon laitteet voivat jakaa yhden julkisen IP-osoitteen. Lähde-NAT (SNAT) vaihtaa lähtevien pakettien lähde-IP-osoitteen.

Tätä käytetään yleisesti reitittimissä, jotta sisäverkon asiakkaat voivat käyttää internetiä. Tässä määritämme perusmuotoisen SNAT-säännön eth0-liitännän kautta lähtevälle liikenteelle ja naamioimme sen eth0-liitännän julkisella IP-osoitteella.

#!/bin/bash
# Add an 'ip' family table named 'nat'
nft add table ip nat

# Add a base chain 'postrouting' to the 'nat' table
# Type 'nat', hook 'postrouting', priority 100
nft add chain ip nat postrouting { type nat hook postrouting priority 100 \; }

# Add a rule to masquerade (SNAT) traffic leaving 'eth0'
nft add rule ip nat postrouting oifname "eth0" masquerade

nft list ruleset

Kohde-NAT (DNAT) nftablesilla

Kohde-NAT (DNAT), joka tunnetaan myös porttiohjauksena, muuttaa saapuvien pakettien kohde-IP-osoitetta ja/tai porttia. Näin ulkoiset käyttäjät voivat käyttää sisäisen palvelimen palveluita.

Voitte esimerkiksi välittää ulkoisen portin 80 sisäiselle verkkopalvelimelle osoitteessa 192.168.1.5, porttiin 80. Tämä sääntö sijoitetaan prerouting-ketjuun.

#!/bin/bash
# Add a base chain 'prerouting' to the 'nat' table
# Type 'nat', hook 'prerouting', priority -100
nft add chain ip nat prerouting { type nat hook prerouting priority -100 \; }

# Forward external TCP port 80 to internal server 192.168.1.5:80
nft add rule ip nat prerouting tcp dport 80 dnat to 192.168.1.5:80

nft list ruleset

Palomuurimääritysten tallentaminen

Suoraan komentorivillä nft-komennolla lisätyt säännöt ovat väliaikaisia ja katoavat uudelleenkäynnistyksen jälkeen. Jos haluatte säilyttää ne, ne on tallennettava määritystiedostoon.

Vakiotapa on tallentaa nykyinen sääntökokoelma tiedostoon /etc/nftables.conf ja varmistaa, että nftables-palvelu on otettu käyttöön lataamaan tiedosto käynnistyksen yhteydessä. Tämän jälkeen säännöt voidaan palauttaa komennolla nft -f /etc/nftables.conf.

#!/bin/bash
# Save the current ruleset to the default configuration file
nft list ruleset > /etc/nftables.conf

echo "Configuration saved to /etc/nftables.conf"
# On a real system, you'd typically also enable the service:
# sudo systemctl enable nftables
# sudo systemctl start nftables

Testatkaa nftables-tietonne

Olette oppineet nftables-järjestelmän rakenteen ja perussäännöt. Testataan ymmärrystänne.

nftables: nykyaikainen palomuurin hallinta

Hienoa työtä! Olette ottaneet ensimmäiset askeleenne nftables-järjestelmän, iptables-järjestelmän tehokkaan ja joustavan seuraajan, parissa.

  • Opitte sen yhtenäisen rakenteen, joka koostuu perheistä, tauluista ja ketjuista.
  • Harjoittelitte saapuvan ja lähtevän liikenteen perussuodatussääntöjen lisäämistä.
  • Tutustuitte lähde-NAT:n (SNAT) ja kohde-NAT:n (DNAT) määrittämiseen.
  • Lopuksi ymmärsitte, miten säännöt tallennetaan, jotta ne säilyvät uudelleenkäynnistysten yli.

Jatkakaa kokeiluja nftables-järjestelmällä Linux-verkon suojaamiseksi ja hallitsemiseksi!

Aloita maksutta

Opi Linux-verkonhallinta ja TCP/IP kehittäjille tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Kehittyneet palomuurisäännöt (nftables)” ilmainen?

Kyllä – oppitunnin ”Kehittyneet palomuurisäännöt (nftables)” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Linux-verkonhallinta ja TCP/IP kehittäjille-kurssin, päivitä CoddyKit PROhon. Linux-verkonhallinta ja TCP/IP kehittäjille-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Kehittyneet palomuurisäännöt (nftables)”?

Siirry `iptables`-työkalusta joustavampaan ja tehokkaampaan `nftables`-työkaluun pakettien suodatusta ja verkko-osoitteiden muunnosta varten. Harjoittelet Linux-verkonhallinta ja TCP/IP kehittäjille-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Linux-verkonhallinta ja TCP/IP kehittäjille-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Linux-verkonhallinta ja TCP/IP kehittäjille-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Kehittyneet palomuurisäännöt (nftables)”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Linux-verkonhallinta ja TCP/IP kehittäjille-oppitunnilla?

Kyllä. Jokainen Linux-verkonhallinta ja TCP/IP kehittäjille-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Kehittyneet palomuurisäännöt (nftables)
  2. VPN-käsitteet ja määritys
  3. Verkkohyökkäysten tunnistus (IDS)
  4. SSH:n koventaminen ja avainpohjainen todennus
← Takaisin: Linux-verkonhallinta ja TCP/IP kehittäjille