iptables

Ubuntu Iptables Kuinka hallita verkkoliikennettä iptablesin avulla?

Ubuntu Iptables Kuinka hallita verkkoliikennettä iptablesin avulla?
"… A user-space Unix -apuohjelma, joka antaa järjestelmänvalvojille mahdollisuuden määrittää ytimen verkkosuodatinmoduulin toteuttamat IP-pakettien suodatussäännöt.” Iptables toimii palomuurina käyttämällä pakettisuodatussääntöjä, jotka perustuvat useisiin kriteereihin, kuten IP-osoite, portti ja protokollat.

Tässä oppaassa kerrotaan, kuinka määrität ja kuinka iptables-sääntöjä käytetään Ubuntu-järjestelmässä verkon suojaamiseksi. Olitpa aloittelija Linux-käyttäjä tai kokenut järjestelmänvalvoja, tästä oppaasta ja tavalla tai toisella opit jotain hyödyllistä iptablesista.

Iptables on esiasennettu Ubuntuun ja useimpiin Debian-pohjaisiin jakeluihin. Ubuntu myös pakkaa GUFW-palomuurin, graafisen vaihtoehdon, jota voit käyttää työskennellessäsi iptablesin kanssa.

MERKINTÄ: Tarvitset iptablesin käyttöä ja määritystä varten sudo-oikeudet järjestelmässäsi. Voit oppia lisää sudosta seuraavasta opetusohjelmasta.

Nyt kun tiedät mikä Iptables on, sukelkaamme sisään!

Kuinka iptablesia käytetään IPv4-liikenteen hallintaan?

Jos haluat käyttää Iptablesia IPv4-verkon ja liikenteen hallintaan, sinun on ymmärrettävä seuraava:

Iptables-komento

Iptables tarjoaa valikoiman vaihtoehtoja, joiden avulla voit mukauttaa ja virittää iptables-sääntöjä. Keskustellaan joitain näistä parametreista ja katsotaan, mitä ne tekevät.

MERKINTÄ: Voit määrittää joukon sääntöjä, jotka hallitsevat tiettyä osajoukkoa, joka tunnetaan nimellä iptables-ketjut.

Iptables-parametrit

Ennen kuin aloitamme iptables-sääntöjen luomisen ja määrittämisen, meidän on ensin ymmärrettävä iptablesin perusteet, kuten yleinen syntakse ja oletusargumentit.

Harkitse alla olevaa komentoa:

sudo iptables -I SYÖTTÖ ​​-sarja 192.168.0.24 -j DROP

Yllä oleva komento käskee iptablesia luomaan säännön ketjuun. Sääntö pudottaa kaikki paketit IP-osoitteesta 192.168.0.24.

Tutkitaan komentoa rivi riviltä ymmärtääksesi sen paremmin.

Iptables tarjoaa valikoiman parametreja, joiden avulla voit määrittää erilaisia ​​sääntöjä. Eri parametreja, joita voit käyttää iptables-sääntöjen määrittämiseen, ovat:

Iptables-säännön parametri Kuvaus
-s -lähde Määritä lähde, joka voi olla osoite, isäntänimi tai verkon nimi.
-p -protokolla Määrittää yhteysprotokollan; esimerkiksi TCP, UDP jne.
-d-määränpää Määrittää kohteen, joka voi olla osoite, verkon nimi tai isäntänimi.
-j -hypätä Asettaa toiminnan, jonka iptables on suoritettava paketin löytämisen jälkeen.
-o -out-käyttöliittymä Asettaa käyttöliittymän, jonka kautta iptable lähettää paketin.
-i -liitännässä Asettaa verkkopakettien muodostamiseen käytetyn rajapinnan.
-c -set-laskurit Antaa järjestelmänvalvojan asettaa tavu- ja pakettilaskurit määritetylle säännölle.
-g -goto-ketju Parametri määrittää, että käsittelyä tulisi jatkaa käyttäjän asettamassa ketjussa palautuksen jälkeen.
-f-fragmentti Käskee iptablesia soveltamaan sääntöä vain fragmentoitujen pakettien toiseen ja seuraavaan fragmenttiin.

Iptables-asetukset

Iptables-komento tukee monenlaisia ​​vaihtoehtoja. Joitakin yleisiä ovat:

Vaihtoehto Kuvaus
-A -liite Lisää säännön määritetyn ketjun loppuun
-D -poista Poistaa säännön määritetystä ketjusta
-F -huuhtelu Poistaa kaikki säännöt yksi kerrallaan
-L-lista Näyttää kaikki määritetyn ketjun säännöt
-Minä -aseta Lisää sääntö määritettyyn ketjuun (välitetään numerona, kun numeroa ei ole määritetty; sääntö lisätään yläosaan)
-C-tarkista Kyselyt säännön vastaavuudesta; vaatimus tietyssä säännössä
-v -verbose Näyttää lisätietoja, kun sitä käytetään parametrin -L kanssa
-N-uusi ketju Lisää uuden käyttäjän määrittelemän ketjun
-X -poista ketju Poistaa tietyn käyttäjän määrittelemän ketjun

Iptables-taulukot

Linux-ytimessä on oletustaulukot, joihin sisältyy joukko liittyviä sääntöjä. Näissä oletustaulukoissa on joukko oletusketjuja, mutta käyttäjät voivat muokata sääntöjä lisäämällä käyttäjän määrittämiä sääntöjä.

MERKINTÄ: Oletustaulukot riippuvat suuresti ytimen kokoonpanosta ja asennetuista moduuleista.

Tässä ovat oletusarvoiset iptables-taulukot:

1: Suodataulukot

Suodatustaulukko on oletustaulukko, joka sisältää ketjut, joita käytetään verkkopakettien suodattamiseen. Joitakin tämän taulukon oletusketjuja ovat:

Ketju Kuvaus
Tulo Iptables käyttää tätä ketjua kaikkiin järjestelmään saapuviin paketteihin, ts.e., paketit menevät lähiverkon pistorasioihin.
Tuotos Iptables käyttää lähtöketjua paikallisesti tuotettuihin paketteihin, ts.e., paketit menevät ulos järjestelmästä.
Eteenpäin Tätä ketjua käyttävät Iptables järjestelmän kautta reititettävät tai edelleenlähetetyt paketit.

2: NAT-taulukot

NAT tai verkko-osoitetaulukko on reitityslaite, jota käytetään verkkopaketin lähde- ja kohde-IP-osoitteiden muokkaamiseen. NAT-taulukon pääkäyttö on kahden yksityisen osoitealueen verkon yhdistäminen julkiseen verkkoon.

NAT on kehitetty tukemaan todellisten IP-osoitteiden peittämistä, jolloin yksityiset IP-osoitealueet ulottuvat ulkopuoliseen verkkoon. Tämä auttaa suojaamaan sisäisten verkkojen yksityiskohtia julkisissa verkoissa.

NAT-taulukko otetaan käyttöön, kun paketti muodostaa uuden yhteyden.

Iptablesilla on oletustaulukko NAT-osoitteistusta varten. Tässä taulukossa on kolme pääketjua:

Ketju Kuvaus
PREROUTING Sallii pakettitietojen muokkaamisen ennen saapumista INPUT-ketjuun, jota käytetään saapuville paketeille
LÄHTÖ Varattu paikallisesti luotuihin paketteihin, ts.e., ennen verkon reititystä
JÄLKETUOTE Sallii lähtevien pakettien muokkaamisen - OUTPUT-ketjusta lähtevät paketit

Alla oleva kaavio näyttää korkean tason yleiskatsauksen tästä prosessista.

Käytä alla olevaa komentoa nähdäksesi NAT-reititystaulukot.

iptables -t nat -n -v -L

3: Mangle-taulukot

Mangle-taulukkoa käytetään pääasiassa pakettien erityiseen muokkaamiseen. Yksinkertaisesti sanottuna sitä käytetään verkkopaketin IP-otsikoiden muokkaamiseen. Pakettien muokkaaminen voi sisältää paketin TTL-arvon muuttamisen, kelvollisten verkkohyppyjen muuttamisen jne.

Taulukko sisältää seuraavat oletusketjut:

Ketju Kuvaus
PREROUTING Varattu saapuville paketeille
JÄLKITUOTE Käytetään lähteviin paketteihin
TULO Käytetään paketteihin, jotka tulevat suoraan palvelimelle
LÄHTÖ Käytetään paikallisiin paketteihin
Eteenpäin Varattu järjestelmän kautta reititetyille paketeille

4: Raaka taulukot

Raakataulukon päätarkoitus on määrittää poikkeukset paketeille, joita ei ole tarkoitettu seurantajärjestelmän käsittelemiseksi. Raakataulukko asettaa NOTRACK-merkinnän paketeille, mikä kehottaa conntrack-ominaisuutta ohittamaan paketin.

Conntrack on Linux-ytimen verkko-ominaisuus, jonka avulla Linux-ydin voi seurata kaikkia verkkoyhteyksiä, jolloin ydin pystyy tunnistamaan verkkovirran muodostavat paketit.

Raakapöydässä on kaksi pääketjua:

Ketju Kuvaus
PREROUTING Varattu verkkoliitäntöjen vastaanottamille paketeille
LÄHTÖ Varattu paikallisten prosessien käynnistämille paketeille

5: Turvallisuustaulukko

Tämän taulukon ensisijainen käyttötarkoitus on asettaa pakettiin merkitsevä sisäinen suojauksen parannus Linuxille (SELinux) suojausmekanismi. Suojausmerkki voidaan asettaa liitäntää tai pakettia kohden.

Sitä käytetään pakollisissa kulunvalvontasäännöissä ja se on toinen taulukko, jota käytetään suodatustaulukon jälkeen. Se tarjoaa seuraavat oletusketjut:

Ketju Kuvaus
TULO Varattu saapuville paketeille järjestelmään
LÄHTÖ Käytetään paikallisesti luotuihin paketteihin
ETEENPÄIN Käytetään järjestelmän kautta reititettyihin paketteihin

Tarkastellessamme oletusarvoisia Iptables-sovelluksia, mennään askeleen pidemmälle ja keskustellaan siitä, miten työskennellä iptables-sääntöjen kanssa.

Kuinka työskennellä iptables-sääntöjen kanssa?

Iptables-sääntöjä sovelletaan nousevassa järjestyksessä. Tämä tarkoittaa, että ensin sovelletaan tietyn joukon ensimmäistä sääntöä, jota seuraa toinen, sitten kolmas ja niin edelleen, kunnes viimeinen.

Tämän toiminnon takia iptables estää sinua lisäämästä sääntöjä sarjaan parametrin -A avulla; sinun on käytettävä -I, jota seuraa numero tai tyhjentämällä se lisätäksesi luettelon yläosaan.

Näytetään Iptables

Voit tarkastella iptable-komentoja käyttämällä komentoa iptables -L -v IPv4: lle ja ip6tables -L -v IPv6: lle.

Lisätään sääntöjä

Jos haluat lisätä sääntöjä sarjaan, sinun on sijoitettava ne tarkkaan järjestykseen noudattaen saman ketjun sääntöjä. Voit tarkastella iptables-sääntöjen luetteloa yllä mainitulla komennolla:

sudo iptables -L -v

Esimerkiksi, jotta voidaan lisätä sääntö, joka sallii saapuvat yhteydet porttiin 9001 TCP: n kautta, meidän on määritettävä säännön numero INPUT-ketjuun, joka noudattaa verkon liikennesääntöjä.

sudo iptables -I SYÖTTÖ ​​1 -p TCP --port 9001 -m tila --tila UUSI -j HYVÄKSY

Kun tarkastelet nykyisiä iptables-tiedostoja, sinun pitäisi nähdä uusi sääntö joukossa.

sudo iptables -L -v

Sääntöjen korvaaminen

Korvaustoiminto toimii samalla tavalla kuin lisäys, mutta se käyttää iptables -R -komentoa. Esimerkiksi, jos haluat muokata yllä olevaa sääntöä ja asettaa portin 9001 estämään, me:

sudo iptables -R INPUT 1 -p TCP --port 9001 -m-tila - state UUSI -j REJECT

Säännön poistaminen

Säännön poistamiseksi välitämme säännön numeron. Esimerkiksi yllä olevan säännön poistamiseksi voimme määrittää seuraavasti:

sudo iptables -D TULO 1

Useimmissa Linux-distroissa iptables on tyhjä joko IPv4: lle ja IPv6: lle. Siksi, jos et ole lisännyt mitään uutta sääntöä, saat samanlaisen tuloksen kuin alla on esitetty. Se on riskialtista, koska se tarkoittaa, että järjestelmä sallii kaiken saapuvan, lähtevän ja reititetyn liikenteen.

Tarkastellaan miten konfiguroidaan iptables:

Kuinka määrittää iptables?

IPptables-sääntöjen määrittämiseen on useita tapoja. Tässä osassa on esimerkkejä siitä, kuinka sääntöjä määritetään IP-osoitteiden ja porttien avulla.

Liikenteen estäminen ja salliminen satamien kautta

Voit käyttää tiettyä porttia estämään tai sallimaan kaiken liikenteen verkkoliitännässä. Harkitse seuraavia esimerkkejä:

sudo iptables -A INPUT -j ACCEPT -p TCP - määränpää-portti 1001 -i wlan0

Yllä olevat komennot sallivat liikenteen portissa 1001 TCP wlan0-liitännällä.

sudo iptables -A TULO -j DROP -p TCP --kohde-portti 1001 -i wlan0

Tämä komento tekee päinvastoin kuin yllä oleva komento, koska se estää kaiken liikenteen portissa 1001 wlan0: lla.

Tässä on komennon tarkka tarkastus:

MERKINTÄ: Iptables ei ymmärrä verkkoliitännän aliaksia. Siksi järjestelmässä, jossa on useampi kuin yksi virtuaalinen käyttöliittymä, sinun on määritettävä kohdeosoite manuaalisesti ja nimenomaisesti.

Esimerkiksi:

sudo iptables -A TULO -j DROP -p TCP --kohde-portti 1001 -i wlan0 -d 192.168.0.24

IP-osoitteiden lisääminen sallittujen luetteloon ja mustalle listalle

Voit luoda palomuurisääntöjä iptablesin avulla. Yksi esimerkki on kaiken liikenteen pysäyttäminen ja verkkoliikenteen salliminen vain eksplisiittisistä IP-osoitteista.

Esimerkki:

iptables -A SYÖTTÖ ​​-m-tila - tila PERUSTETTU, LIITTYVÄ -j HYVÄKSY
iptables -A SYÖTTÖ ​​-i lo -m kommentti - kommentti "Salli loopback-yhteydet" -j HYVÄKSY
iptables -A SYÖTTÖ ​​-p icmp -m kommentti - kommentti "Anna Pingin toimia odotetulla tavalla" -j

HYVÄKSYÄ

iptables -A SYÖTTÖ ​​-sarja 192.168.0.1/24 -j HYVÄKSY
iptables -A SYÖTTÖ ​​-sarja 192.168.0.0 -j HYVÄKSY
iptables -P INPUT DROP
iptables -P ETEENPUDOTUS

Ensimmäinen rivi asettaa säännön sallia kaikki lähteen IP-osoitteet 192: ssä.168.0.1/24 aliverkko. Voit myös käyttää CIDR: ää tai yksittäisiä IP-osoitteita. Seuraavassa komennossa asetamme säännön sallimaan kaiken olemassa oleviin yhteyksiin liitetyn liikenteen. Viimeisissä komennoissa asetamme käytölle, että INPUT ja FORWARD hylkäävät kaikki.

Iptablesin käyttäminen IPv6: lla

Iptables-komento toimii vain IPv4: ssä. Jos haluat käyttää iptablesia IPv6: ssa, sinun on käytettävä ip6tables-komentoa. Ip6tables käyttää raaka-, suodatin-, suojaus- ja mangle-taulukoita. IP6taulukoiden yleinen syntakse on samanlainen kuin iptables, ja se tukee myös yhteensopivia iptables-asetuksia, kuten liitä, poista jne.

Harkitse lisätietoja ip6tables-manuaalisten sivujen käyttämisestä.

Esimerkki iptables-verkkosuojaussääntöistä

Sopivien palomuurisääntöjen luominen riippuu pääasiassa järjestelmässä toimivasta palvelusta ja käytetyistä porteista. Tässä on kuitenkin joitain verkon kokoonpanosääntöjä, joita voit käyttää järjestelmän suojaamiseen:

1: Salli Loopback-rajapintaliikenne ja hylkää kaikki muista liitännöistä tulevat loopback-toiminnot

iptables -A SYÖTTÖ ​​-i lo -j HYVÄKSY (Voit käyttää myös ip6taulukoita)
iptables -TULO ! -minä lo -s 127.0.0.0 -j REJECT (myös ip6taulukot)

2: Hylkää kaikki ping-pyynnöt

iptables -A SYÖTTÖ ​​-p icmp -m -tila --tila UUSI --icmp-tyyppi 8 -j Hylkää

3: Salli SSH-yhteydet

iptables -A SYÖTTÖ ​​-p tcp --portti 22 -m tila --tila UUSI -j HYVÄKSY

Nämä ovat esimerkkikomentoja, joita voit käyttää järjestelmän suojaamiseen. Kokoonpano riippuu kuitenkin suuresti siitä, mitä tai kenelle haluat käyttää erilaisia ​​palveluita.

VAROITUS: Jos haluat poistaa IPv6: n kokonaan käytöstä, varmista, että poistat rivin kommentin, koska tämä hidastaa päivitysprosessia:

etusija :: ffff: 0: 0/96 100 löydetty tiedostosta / etc / gai.konf .

Tämä johtuu siitä, että APT-paketinhallinta ratkaisee peiliverkkotunnuksen IPv6: ssa apt-get-päivityksen vuoksi.

Iptables-sääntöjen käyttöönotto?

Voit ottaa iptable-tiedostot käyttöön Ubuntussa tai muussa Debian-pohjaisessa järjestelmässä aloittamalla luomalla kaksi tiedostoa, ip4 ja ip6, niiden IP-osoitteille.

Lisää kummassakin tiedostossa säännöt, jotka haluat ottaa käyttöön vastaavissa tiedostoissaan - IPv4-säännöt IP4-tiedostoon ja IPv6-säännöt IP6-tiedostoihin.

Seuraavaksi meidän on tuotava säännöt komennolla:

sudo iptables-palauta < /tmp/ip4 (replace filename for IPv6)

Sitten voit tarkistaa, ovatko säännöt sovellettu, komennolla:

sudo iptables -L -v

Pika iptables-jatkuva opas

Ubuntu ja yleiset Debian-pohjaiset jakelut sisältävät iptables-pysyvän paketin, jonka avulla voit käyttää palomuurisääntöjäsi helposti uudelleenkäynnistyksen yhteydessä. Paketti sisältää tiedostoja, joiden avulla voit asettaa sääntöjä IPv4: lle tai IPv6: lle, ja niitä voidaan käyttää automaattisesti käynnistyksen yhteydessä.

Voit myös käyttää palomuurisääntöjä UFW: n tai GUFW: n avulla. Harkitse seuraavaa opetusohjelmaa oppiakseen UFW: n käytöstä.

Kuinka asentaa iptables-persistent?

Varmista, että järjestelmään on asennettu iptables-persistent. Käytä dpkg tarkistaaksesi, onko paketti asennettu.

Jos ei, käytä seuraavaa komentoa:

sudo apt-get install iptables-persistent

Sinua pyydetään kahdesti tallentamaan sekä nykyiset IPv4- että IPv6-säännöt. Tallenna molemmat säännöt napsauttamalla Kyllä.

Napsauta kyllä ​​tallentaaksesi IPv6.

Kun asennus on valmis, tarkista, että sinulla on iptables-alihakemisto, kuten alla olevassa kuvassa näkyy.

Nyt voit käyttää sääntöjä.v4 ja säännöt.v6 lisätäksesi iptables-sääntöjä, ja iptables-persistent käyttää niitä automaattisesti. Tiedostot ovat yksinkertaisia ​​tekstitiedostoja, joita voit helposti muokata millä tahansa valitsemallasi tekstieditorilla.

Johtopäätös

Tässä opetusohjelmassa olemme käsittäneet iptablesin perusteet. Aloitetaan työskentelystä iptablesin, peruskomentojen, oletusarvoisten iptables-taulukoiden ja parametrien kanssa.

Opitun perusteella sinun pitäisi pystyä käyttämään iptablesia luomaan palomuurisääntöjä, jotka auttavat suojaamaan järjestelmääsi.

How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...