Kotisivu » miten » Aloitusopas iptablesille, Linux-palomuuri

    Aloitusopas iptablesille, Linux-palomuuri

    Iptables on erittäin joustava palomuuriohjelma, joka on rakennettu Linux-käyttöjärjestelmille. Olitpa aloittelija Linux geek tai järjestelmänvalvoja, on luultavasti jotakin, että iptables voi olla sinulle suuri käyttö. Lue, kun näytämme kuinka monipuolisin Linux-palomuuri määritetään.

    Kuva: ezioman.

    Tietoja iptablesista

    iptables on komentorivipalvelinohjelma, joka käyttää toimintaketjuja liikenteen sallimiseksi tai estämiseksi. Kun yhteys yrittää muodostaa itsensä järjestelmään, iptables etsii luettelosta sääntöä, joka vastaa sitä. Jos se ei löydy, se siirtyy oletustoimintoon.

    iptables on lähes aina valmiiksi asennettu mihin tahansa Linux-jakeluun. Päivitä / asenna se vain noutamalla iptables-paketti:

    sudo apt-get asenna iptables

    On olemassa GUI-vaihtoehtoja iptablesille, kuten Firestarter, mutta iptables ei ole todella kovaa, kun sinulla on muutama komento. Haluat olla äärimmäisen varovainen määrittäessäsi iptables-sääntöjä, varsinkin jos olet SSH-palvelin, koska yksi väärä komento voi pysäyttää sinut pysyvästi, kunnes se on manuaalisesti kiinnitetty fyysiseen laitteeseen.

    Ketjutyypit

    iptables käyttää kolmea eri ketjua: tulo, eteenpäin ja ulostulo.

    panos - Tätä ketjua käytetään ohjaamaan saapuvien yhteyksien käyttäytymistä. Jos käyttäjä esimerkiksi yrittää SSH: ta tietokoneeseen / palvelimeen, iptables yrittää sovittaa IP-osoitteen ja portin syöttöketjun sääntöön.

    Eteenpäin - Tätä ketjua käytetään saapuviin yhteyksiin, joita ei toimiteta paikallisesti. Ajattele reititintä - dataa lähetetään aina sille, mutta harvoin itse reitittimeen; tiedot välitetään juuri sen tavoitteeseen. Jos et tee jonkinlaista reititystä, NATingia tai jotain muuta järjestelmässäsi, joka vaatii edelleenlähetystä, et edes käytä tätä ketjua.

    On yksi varma tapa tarkistaa, käyttääkö järjestelmää eteenpäin / tarvitsee eteenpäin tulevan ketjun.

    iptables -L -v

    Yllä oleva kuvakaappaus on palvelin, joka on ollut käynnissä muutaman viikon ajan eikä sillä ole rajoituksia saapuville tai lähteville yhteyksille. Kuten näette, syöttöketju on käsitellyt 11 Gt paketteja ja lähtöketju on käsitellyt 17 Gt: aa. Etuketju ei sitä vastoin ole tarvinnut käsitellä yhtä pakettia. Tämä johtuu siitä, että palvelin ei suorita minkäänlaista välittämistä tai sitä käytetään pass-through-laitteena.

    ulostulo - Tätä ketjua käytetään lähteviin yhteyksiin. Jos esimerkiksi yrität ping howtogeek.comia, iptables tarkistaa tulostusketjunsa nähdäkseen, mitä sääntöjä ping ja howtogeek.com koskee ennen kuin päätät sallia tai kieltää yhteydenottotestin.

    Varoitus

    Vaikka ulkoisen isännän pingointi näyttää olevan jotain, joka tarvitsee vain kulkea lähtöketjun läpi, pitää mielessä, että tietojen palauttamiseksi käytetään myös syöttöketjua. Kun käytät iptables-järjestelmää lukitaksesi järjestelmän, muista, että monet protokollat ​​edellyttävät kaksisuuntaista viestintää, joten sekä tulo- että lähtöketjut on konfiguroitava oikein. SSH on yleinen protokolla, jonka ihmiset unohtavat sallia molemmilla ketjuilla.

    Politiikkaketjun oletusasetus

    Ennen kuin siirryt ja määrität tiettyjä sääntöjä, haluat päättää, mitä haluat kolmen ketjun oletuskäyttäytymisen. Toisin sanoen, mitä haluat iptablesin tehdä, jos yhteys ei vastaa olemassa olevia sääntöjä?

    Jos haluat nähdä, mitä toimintaketjuja on tällä hetkellä määritetty tekemään vertaansa vailla olevaan liikenteeseen, suorita iptables -L komento.

    Kuten näette, käytimme myös grep-komentoa antamaan meille puhtaampaa tuotantoa. Tässä kuvakaappauksessa ketjujamme katsotaan hyväksyvän liikenteen.

    Enemmän kuin haluat, haluat, että järjestelmä hyväksyy yhteydet oletusarvoisesti. Jollei olet muuttanut käytäntöketjun sääntöjä aiemmin, tämä asetus on jo määritettävä. Joko niin, tässä on komento hyväksyä yhteydet oletusarvoisesti:

    iptables --politiikka INPUT ACCEPT
    iptables - politiikka OUTPUT ACCEPT
    iptables - politiikka FORWARD ACCEPT

    Oletusarvoisesti hyväksymissääntöön voit käyttää iptablesia kieltämään tiettyjä IP-osoitteita tai porttinumeroita ja hyväksymään samalla kaikki muut yhteydet. Saamme nämä komennot minuutin kuluttua.

    Jos haluat mieluummin kieltää kaikki yhteydet ja määritellä manuaalisesti, mitkä haluat sallia yhteyden, sinun pitäisi muuttaa ketjujen oletuskäytäntöä pudottamalla. Tämän tekeminen olisi luultavasti hyödyllistä vain sellaisille palvelimille, jotka sisältävät arkaluonteisia tietoja, ja vain silloin, kun niillä on sama IP-osoite.

    iptables --politiikka INPUT DROP
    iptables --politiikka OUTPUT DROP
    iptables - politiikka FORWARD DROP

    Yhteyskohtaiset vastaukset

    Kun olet määrittänyt oletusketjupolitiikkasi, voit aloittaa sääntöjen lisäämisen iptablesiin, jotta se tietää, mitä tehdä, kun se kohtaa yhteyden tiettyyn IP-osoitteeseen tai -porttiin. Tässä oppaassa käydään läpi kolme kaikkein tavallisinta ja yleisimmin käytettyä "vastausta".

    Hyväksyä - Salli yhteys.

    Pudota - Pudota yhteys, toimi kuten se ei koskaan tapahtunut. Tämä on parasta, jos et halua, että lähde ymmärtää järjestelmänne olemassaolon.

    Hylätä - Älä salli yhteyttä, vaan lähetä takaisin virhe. Tämä on parasta, jos et halua, että tietty lähde muodostaa yhteyden järjestelmään, mutta haluat, että ne tietävät, että palomuuri on estänyt ne.

    Paras tapa näyttää ero näiden kolmen säännön välillä on näyttää, miltä näyttää siltä, ​​kun tietokone yrittää pingata Linux-koneen, jossa iptables on määritetty jokaiselle näistä asetuksista.

    Yhteyden salliminen:

    Yhteyden pudottaminen:

    Yhteyden hylkääminen:

    Tiettyjen yhteyksien salliminen tai estäminen

    Kun käytät toimintaketjuasi, voit nyt määrittää iptablesin sallimaan tai estämään tietyt osoitteet, osoitealueet ja portit. Näissä esimerkeissä asetamme yhteydet PUDOTA, mutta voit vaihtaa ne HYVÄKSYÄ tai HYLÄTÄ, riippuen tarpeistasi ja siitä, miten olet määrittänyt toimintaketjut.

    Huomautus: Näissä esimerkeissä aiomme käyttää iptables -A lisätä sääntöjä olemassa olevaan ketjuun. iptables alkaa luettelonsa yläreunasta ja kulkee kunkin säännön läpi, kunnes se löytää sen, jonka se vastaa. Jos haluat lisätä säännön toisen yläpuolelle, voit käyttää sitä iptables -I [ketju] [numero] määrittää numeron, joka sen pitäisi olla luettelossa.

    Yhteydet yhdestä IP-osoitteesta

    Tämä esimerkki näyttää, miten kaikki yhteydet voidaan estää IP-osoitteesta 10.10.10.10.

    iptables -A INPUT -s 10.10.10.10 -j DROP

    Yhteydet eri IP-osoitteista

    Tämä esimerkki näyttää, kuinka kaikki IP-osoitteet voidaan estää 10.10.10.0/24 -verkkoalueella. Voit määrittää IP-osoitteiden vaihteluväliä verkon peitto- tai tavallisella viivalla.

    iptables -A INPUT-s 10.10.10.0/24 -j DROP

    tai

    iptables -A INPUT-s 10.10.10.0/255.255.255.0 -j DROP

    Yhteydet tiettyyn porttiin

    Tämä esimerkki osoittaa, miten SSH-yhteydet voidaan estää 10.10.10.10 alkaen.

    iptables -A INPUT -p tcp --portti ssh -s 10.10.10.10 -j DROP

    Voit korvata ”ssh” -asetuksen millä tahansa protokollalla tai porttinumerolla. -p tcp osa koodista kertoo iptablesille, millainen yhteys protokollaa käyttää. Jos estät protokollan, joka käyttää pikemminkin UDP: tä kuin TCP: tä -p udp olisi tarpeen.

    Tämä esimerkki näyttää, miten SSH-yhteydet voidaan estää mistä tahansa IP-osoitteesta.

    iptables -A INPUT -p tcp -dport ssh -j DROP

    Yhteysvaltiot

    Kuten aiemmin mainitsimme, monet protokollat ​​edellyttävät kaksisuuntaista viestintää. Jos esimerkiksi haluat sallia SSH-yhteydet järjestelmään, tulo- ja lähtöketjut tarvitsevat niihin lisätyn säännön. Mutta mitä jos haluat vain SSH: n saapuvan järjestelmäänne? Jos lisäät sääntöä tuoteketjuun, sallitaan myös lähtevät SSH-yritykset?

    Tällöin tulevat yhteystilat, jotka antavat sinulle mahdollisuuden kaksisuuntaisen viestinnän sallimiseen, mutta sallivat vain yhdensuuntaiset yhteydet. Katsokaa tätä esimerkkiä, jossa SSH-yhteydet 10.10.10.10 alkaen ovat sallittuja, mutta SSH-yhteydet 10.10.10.10 eivät ole. Järjestelmän sallitaan kuitenkin lähettää SSH: n tietoja takaisin niin kauan kuin istunto on jo luotu, mikä tekee SSH-viestinnästä mahdolliseksi näiden kahden isännän välillä..

    iptables -A INPUT -p tcp - siirto ssh -s 10.10.10.10 -m tila - state NEW, ESTABLISHED -j ACCEPT

    iptables -A OUTPUT -p tcp - liikenne 22 -d 10.10.10.10 -m tila - osavaltio ESTABLISHED -j ACCEPT

    Muutosten tallentaminen

    Iptables-sääntöjen tekemät muutokset hylätään seuraavan kerran, kun iptables-palvelu käynnistetään uudelleen, ellet suorita komentoa muutosten tallentamiseksi. Tämä komento voi vaihdella jakelusi mukaan:

    ubuntu:

    sudo / sbin / iptables-save

    Red Hat / CentOS:

    / sbin / service iptables tallenna

    Tai

    /etc/init.d/iptables tallenna

    Muut komennot

    Luettele tällä hetkellä määritetyt iptables-säännöt:

    iptables -L

    Lisääminen -v vaihtoehto antaa paketti- ja tavutiedot ja lisää -n luetteloi kaiken numeerisesti. Toisin sanoen - isäntänimet, protokollat ​​ja verkot luetellaan numeroina.

    Voit poistaa kaikki tällä hetkellä määritetyt säännöt antamalla huuhtelukomennon.

    iptables -F