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