Iptables on erittäin joustava palomuuri-apuohjelma, joka on rakennettu Linux-käyttöjärjestelmille. Olitpa aloittelija Linux-nörtti tai järjestelmänvalvoja, iptablesilla on todennäköisesti jokin tapa hyödyntää sinua. Lue, kun näytämme sinulle kuinka monipuolisin Linux-palomuuri määritetään.
Tietoja iptablesista
iptables on komentorivin palomuuriohjelma, joka käyttää käytäntöketjuja liikenteen sallimiseksi tai estämiseksi. Kun yhteys yrittää muodostaa itsensä järjestelmässäsi, iptables etsii luettelosta sääntöä vastaamaan sitä. Jos se ei löydä sitä, se käyttää oletustoimintoa.
iptables on melkein aina esiasennettu mihin tahansa Linux-jakeluun. Päivitä / asenna se hakemalla vain iptables-paketti:
sudo apt-get install iptables
Iptables-kaltaisille on GUI-vaihtoehtoja Firestarter , mutta iptables ei todellakaan ole niin vaikeaa, kun sinulla on muutama komento alas. Haluat olla äärimmäisen varovainen määrittäessäsi iptables-sääntöjä, varsinkin jos olet SSH-palvelimessa, koska yksi väärä komento voi lukita sinut pysyvästi, kunnes se on korjattu manuaalisesti fyysisessä koneessa.
Ketjujen tyypit
iptables käyttää kolmea eri ketjua: syöttö, eteenpäin ja lähtö.
Tulo - Tätä ketjua käytetään ohjaamaan saapuvien yhteyksien toimintaa. Esimerkiksi, jos käyttäjä yrittää SSH: tä tietokoneellesi / palvelimellesi, 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 tosiasiallisesti toimiteta paikallisesti. Ajattele reititintä - tietoja lähetetään aina siihen, mutta harvoin tosiasiallisesti se on tarkoitettu itse reitittimelle; tiedot välitetään juuri kohteeseen. Ellet tee järjestelmässäsi jonkinlaista reititystä, NAT-koodausta tai jotain muuta, mikä edellyttää edelleenlähetystä, et edes käytä tätä ketjua.
On yksi varma tapa tarkistaa, käyttääkö järjestelmäsi / ei tarvitse etuketjua.
iptables -L -v
Yllä oleva kuvakaappaus on palvelimesta, joka on ollut käynnissä muutama viikko, eikä sillä ole rajoituksia saapuville tai lähteville yhteyksille. Kuten näette, syöttöketju on käsitellyt 11 Gt paketteja ja ulostuloketju 17 Gt. Toisaalta eteenpäin suuntautuvaa ketjua ei ole tarvittu yhden paketin käsittelemiseen. Tämä johtuu siitä, että palvelin ei tee mitään edelleenlähetystä tai että sitä käytetään läpivirtauslaitteena.
Tuotos - Tätä ketjua käytetään lähteviin yhteyksiin. Esimerkiksi, jos yrität pingata howtogeek.com-sivua, iptables tarkistaa sen ketjun ja tarkistaa, mitä sääntöjä pingiin ja howtogeek.comiin liittyy, ennen kuin se tekee päätöksen yhteysyrityksen sallimisesta tai estämisestä.
Varoitus
Vaikka ulkoisen isännän pingaus näyttää olevan jotain, joka tarvitsee vain kulkea ulostuloketjussa, muista, että tietojen palauttamiseksi käytetään myös syöttöketjua. Kun käytät järjestelmän lukitsemiseksi iptablesia, muista, että monet protokollat edellyttävät kaksisuuntaista viestintää, joten sekä tulo- että lähtöketjut on määritettävä oikein. SSH on yleinen protokolla, jonka ihmiset unohtavat sallia molemmissa ketjuissa.
Käytäntöketjun oletuskäyttäytyminen
Ennen kuin menet sisään ja määrität tiettyjä sääntöjä, sinun on päätettävä, mitä haluat kolmen ketjun oletuskäyttäytymisen olevan. Toisin sanoen, mitä haluat iptablesin tekevän, jos yhteys ei vastaa mitään olemassa olevia sääntöjä?
Suorita., Jos haluat nähdä, mitä käytäntöketjut ovat tällä hetkellä määritetty tekemään verraton liikenne
iptables -L
komento.
Kuten näette, käytimme myös grep-komentoa antamaan meille puhtaamman tuotoksen. Tuossa kuvakaappauksessa ketjut ovat nyt ajatelleet hyväksyvän liikenteen.
Useammin kuin ei, haluat, että järjestelmä hyväksyy yhteydet oletuksena. Ellet ole 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 oletuksena:
iptables --politiikka SYÖTTÖ HYVÄKSY
iptables --politiikka TULOSTEN HYVÄKSYMINEN
iptables - politiikka EDELLINEN HYVÄKSYMINEN
Oletusarvoisesti hyväksymissääntöä käyttämällä voit kieltää tietyt IP-osoitteet tai porttinumerot iptablesin avulla ja hyväksyä samalla kaikki muut yhteydet. Pääset näihin komentoihin hetkessä.
Jos haluat mieluummin kieltää kaikki yhteydet ja määrittää manuaalisesti, mitkä haluat sallia yhteyden muodostamisen, sinun tulisi muuttaa ketjujen oletuskäytäntö pudottamaan. Tämän tekeminen olisi todennäköisesti hyödyllistä vain palvelimille, jotka sisältävät arkaluontoisia tietoja ja joilla on aina samat IP-osoitteet.
iptables --politiikka INPUT DROP
iptables --politiikka LÄHTÖPISTE
iptables - politiikka ETEENPUDOTUS
Yhteyskohtaiset vastaukset
Kun oletusketjukäytännöt on määritetty, voit aloittaa sääntöjen lisäämisen iptablesiin, jotta se tietää, mitä tehdä, kun se kohdistaa yhteyden tiettyyn IP-osoitteeseen tai porttiin. Tässä oppaassa käydään läpi kolme perustavanlaatuisinta ja yleisimmin käytettyä vastausta.
Hyväksyä - Salli yhteys.
Pudota - Katkaise yhteys, toimi kuten ei koskaan tapahtunut. Tämä on parasta, jos et halua lähteen ymmärtävän, että järjestelmäsi on olemassa.
Hylätä - Älä salli yhteyttä, mutta lähetä virhe. Tämä on parasta, jos et halua tietyn lähteen muodostavan yhteyttä järjestelmään, mutta haluat heidän tietävän, että palomuuri estää heidät.
Paras tapa näyttää ero näiden kolmen säännön välillä on näyttää, miltä näyttää, kun tietokone yrittää pingata Linux-konetta kullekin näistä asetuksista määritetyillä iptables-tiedostoilla.
Yhteyden salliminen:
Yhteyden katkaiseminen:
Yhteyden hylkääminen:
Tiettyjen yhteyksien salliminen tai estäminen
Kun käytäntöketjut on määritetty, voit nyt määrittää iptables sallimaan tai estämään tietyt osoitteet, osoitealueet ja portit. Näissä esimerkeissä määritämme yhteydet
PUDOTA
, mutta voit vaihtaa ne tilaan
HYVÄKSYÄ
tai
HYLÄTÄ
, riippuen tarpeistasi ja siitä, miten määritit käytäntöketjut.
Huomaa: Näissä esimerkeissä aiomme käyttää
iptables -A
lisätä sääntöjä olemassa olevaan ketjuun. iptables alkaa luettelonsa yläosasta ja käy läpi jokaisen säännön, kunnes löytää sopivan. Jos haluat lisätä säännön toisen yläpuolelle, voit käyttää sitä
iptables -I [chain] [number]
määrittää numero, jonka sen pitäisi olla luettelossa.
Yhteydet yhdestä IP-osoitteesta
Tämä esimerkki näyttää, kuinka kaikki yhteydet estetään IP-osoitteesta 10.10.10.10.
iptables -A SYÖTTÖ -s 10.10.10.10 -j DROP
Yhteydet useilta IP-osoitteilta
Tämä esimerkki osoittaa, kuinka kaikki IP-osoitteet estetään 10.10.10.0/24-verkkoalueella. Voit määrittää IP-osoitteiden alueen verkkomaskilla tai tavallisella kauttaviivalla.
iptables -A SYÖTTÖ -s 10.10.10.0/24 -j DROP
tai
iptables -A SYÖTTÖ -s 10.10.10.0/255.255.255.0 -j DROP
Yhteydet tiettyyn porttiin
Tämä esimerkki osoittaa, kuinka SSH-yhteydet estetään 10.10.10.10.
iptables -A SYÖTTÖ -p tcp --port ssh -s 10.10.10.10 -j DROP
Voit korvata “ssh” millä tahansa protokollalla tai portin numerolla.
-p tcp
osa koodista kertoo iptablesille, millaista yhteyttä protokolla käyttää. Jos estit protokollan, joka käyttää UDP: tä TCP: n sijaan, niin
-p udp
olisi sen sijaan tarpeen.
Tämä esimerkki osoittaa, kuinka SSH-yhteydet voidaan estää mistä tahansa IP-osoitteesta.
iptables -A SYÖTTÖ -p tcp --port ssh -j DROP
Yhteystilat
Kuten aiemmin mainitsimme, monet protokollat edellyttävät kaksisuuntaista viestintää. Esimerkiksi, jos haluat sallia SSH-yhteydet järjestelmään, tulo- ja lähtöketjut tarvitsevat säännön. Mutta entä jos haluat vain, että järjestelmään saapuva SSH sallitaan? Eikö säännön lisääminen lähtöketjuun salli myös lähteviä SSH-yrityksiä?
Siellä syntyvät yhteystilat, jotka antavat sinulle mahdollisuuden sallia kaksisuuntaisen viestinnän, mutta vain yhdensuuntaiset yhteydet. Katsotaanpa tätä esimerkkiä, jossa SSH-yhteydet FROM 10.10.10.10 ovat sallittuja, mutta SSH-yhteydet kohtaan 10.10.10.10 eivät ole sallittuja. Järjestelmä saa kuitenkin lähettää takaisin tietoja SSH: n kautta, kunhan istunto on jo muodostettu, mikä tekee SSH-viestinnästä mahdollista näiden kahden isännän välillä.
iptables -A SYÖTTÖ -p tcp --port ssh -s 10.10.10.10 -m tila --tila UUSI, ASETETTU -j HYVÄKSY
iptables -A LÄHTÖ -p tcp --urheilu 22 -d 10.10.10.10 -m tila --tila ESTABLISHED -j HYVÄKSY
Muutosten tallentaminen
Iptables-sääntöihin tekemäsi muutokset hylätään seuraavan kerran, kun iptables-palvelu käynnistetään uudelleen, ellet tee komentoa muutosten tallentamiseksi. Tämä komento voi vaihdella jakelusi mukaan:
Ubuntu:
sudo / sbin / iptables-save
Red Hat / CentOS:
/ sbin / service iptables tallentaa
Tai
/etc/init.d/iptables tallenna
Muut komennot
Luettele tällä hetkellä määritetyt iptables-säännöt:
iptables -L
Lisäämällä
-
Vaihtoehto antaa sinulle paketti- ja tavutiedot sekä lisäyksen
-n
luetteloi kaiken numeerisesti. Toisin sanoen - isäntänimet, protokollat ja verkot luetellaan numeroina.
Voit tyhjentää kaikki tällä hetkellä määritetyt säännöt antamalla huuhtelukomennon.
iptables -F