Beginner's Guide to iptables, Linux-palomuuri

Sisällysluettelo:

Beginner's Guide to iptables, Linux-palomuuri
Beginner's Guide to iptables, Linux-palomuuri

Video: Beginner's Guide to iptables, Linux-palomuuri

Video: Beginner's Guide to iptables, Linux-palomuuri
Video: Lonely (short version) - YouTube 2024, Huhtikuu
Anonim
Iptables on erittäin joustava palomuuriohjelma, joka on rakennettu Linux-käyttöjärjestelmille. Olitpa aloittelija Linux geek tai järjestelmän pääkäyttäjä, on luultavasti jollain tavalla, että iptables voi olla hyvä käyttää sinua. Lue, kun osoitamme, kuinka konfiguroit monipuolisimmat Linux-palomuurit.
Iptables on erittäin joustava palomuuriohjelma, joka on rakennettu Linux-käyttöjärjestelmille. Olitpa aloittelija Linux geek tai järjestelmän pääkäyttäjä, on luultavasti jollain tavalla, että iptables voi olla hyvä käyttää sinua. Lue, kun osoitamme, kuinka konfiguroit monipuolisimmat Linux-palomuurit.

Kuvaaja ezioman.

Tietoja iptablesista

iptables on komentorivipalomuuriohjelma, joka käyttää käytäntöketjuja sallimaan tai estämään liikennettä. Kun yhteys yrittää muodostaa itsensä järjestelmään, iptables etsii luettelonsa sääntöä vastaamaan sitä. Jos se ei löydä sitä, se käyttää oletustoimintoa.

iptables lähes aina esiasennettuna mihinkään Linux-jakeluun. Päivitä / asenna se vain hakeaksesi iptables-paketin:

sudo apt-get install iptables

Guta-vaihtoehtoja on iptables kuten Firestarter, mutta iptables ei ole kovin vaikeaa, kun sinulla on muutama komento alas. Haluat olla erittäin varovainen määrittäessäsi iptables-sääntöjä, varsinkin jos olet SSH'd palvelimelle, koska yksi väärä käsky voi lopettaa sinut pysyvästi, kunnes se on manuaalisesti kiinnitetty fyysiseen koneeseen.

Ketjutyypit

iptables käyttää kolmea eri ketjua: syöttö, eteenpäin ja ulostulo.

panos - Tätä ketjua käytetään ohjaamaan tulevien yhteyksien toimintaa. Jos käyttäjä esimerkiksi yrittää tehdä SSH: n tietokoneeseesi / palvelimellesi, iptables yrittää sovittaa IP-osoitteen ja portin syöttöketjun sääntöön.

Eteenpäin - Tätä ketjua käytetään tuleviin yhteyksiin, joita ei todellisuudessa toimiteta paikallisesti. Ajattele reitittimiä - tietoja lähetetään aina, mutta harvoin tosiasiallisesti tarkoitettu reitittimeen; tiedot siirretään vain kohteeseensa. Jollei teet jonkinlaista reititystä, NATingia tai jotain muuta järjestelmääsi, joka vaatii välittämistä, et edes käytä tätä ketjua.

On olemassa yksi varma tapa tarkistaa, tarvitsetko järjestelmää eteenpäin vai ketkä tarvitset eteenpäin.

iptables -L -v

Yllä oleva kuvakaappaus on palvelin, joka on ollut käytössä muutaman viikon ajan eikä sillä ole rajoituksia tulevia tai lähteviä yhteyksiä varten. Kuten näette, syöttöketju on käsitellyt 11 gigatavua pakettia ja lähtöketjussa on käsitelty 17 gigatavua. Lähtöketjun toisaalta ei ole tarvinnut käsitellä yhtä pakettia. Tämä johtuu siitä, että palvelin ei tee minkäänlaista edelleenlähetystä tai sitä käytetään pass-through-laitteena.
Yllä oleva kuvakaappaus on palvelin, joka on ollut käytössä muutaman viikon ajan eikä sillä ole rajoituksia tulevia tai lähteviä yhteyksiä varten. Kuten näette, syöttöketju on käsitellyt 11 gigatavua pakettia ja lähtöketjussa on käsitelty 17 gigatavua. Lähtöketjun toisaalta ei ole tarvinnut käsitellä yhtä pakettia. Tämä johtuu siitä, että palvelin ei tee minkäänlaista edelleenlähetystä tai sitä käytetään pass-through-laitteena.

ulostulo - Tätä ketjua käytetään lähtöyhteyksiin. Jos yrität esimerkiksi ping howtogeek.com, iptables tarkistaa sen tuotantoketjun nähdäksesi, mitä sääntöjä koskevat ping ja howtogeek.com ennen päätöksen tekemistä tai kieltämistä yhteysyrityksestä.

Varoitus

Vaikka ulkoisen isäntän pingaaminen näyttää jotain, joka tarvitsee vain ylittää tuotantoketjun, muista, että tietojen palauttamiseksi syöttöketjua käytetään myös. Kun käytät iptablesia järjestelmän lukitsemiseen, muista, että monet protokollat edellyttävät kaksisuuntaista viestintää, joten syöttö- ja lähtöketjut on määritettävä oikein. SSH on yhteinen protokolla, jonka ihmiset unohdetaan sallia molemmissa ketjuissa.

Politiikan ketjun oletuskäyttäytyminen

Ennen kuin menet ja määrität tiettyjä sääntöjä, sinun on päätettävä, mitkä haluat kolmen ketjun oletuskäyttäytymisestä. Toisin sanoen, mitä haluat iptablesilta, jos yhteys ei vastaa olemassa olevia sääntöjä?

Jos haluat nähdä, mitä käytäntöjasi on tällä hetkellä määritetty tekemättä vertaansa vailla olevaa liikennettä, avaa

iptables -L

komento.

Kuten näette, käytimme myös grep-komentoa antamaan meille puhtaampaa tuotos. Tässä kuvakaappauksessa ketjut katsotaan tällä hetkellä hyväksyvän liikenteen.
Kuten näette, käytimme myös grep-komentoa antamaan meille puhtaampaa tuotos. Tässä kuvakaappauksessa ketjut katsotaan tällä hetkellä hyväksyvän liikenteen.

Joskus enemmän kuin koskaan, sinun on hyvä, että järjestelmä hyväksyy yhteydet oletuksena. Ellet ole aiemmin tarkistanut käytäntöjen ketjun sääntöjä, tämä asetus olisi jo määritettävä. Joka tapauksessa, tässä on komento, jolla oletusarvoisesti hyväksy yhteydet:

iptables --policy INPUT ACCEPT

iptables --policy OUTPUT ACCEPT

iptables --policy FORWARD ACCEPT

Hyväksymissääntöä noudattaen voit käyttää iptablesia kieltämään tietyt IP-osoitteet tai porttinumeroita samalla, kun hyväksyvät edelleen kaikki muut yhteydet. Saamme nämä komennot hetken kuluttua.

Jos haluat mieluummin kieltää kaikki yhteydet ja määrittää manuaalisesti, mitkä yhteydet haluat sallia, sinun on muutettava ketjujen oletuskäytäntöä pudotettavaksi. Tämän tekeminen olisi luultavasti hyödyllistä vain palvelimille, jotka sisältävät arkaluonteisia tietoja ja joilla on vain samat IP-osoitteet.

iptables --policy INPUT DROP

iptables --policy OUTPUT DROP

iptables --policy FORWARD DROP

Yhteyskohtaiset vastaukset

Oletusketjupolitiikan asetusten mukaisesti voit aloittaa sääntöjen lisäämisen iptablesille, jotta se tietää, mitä tehdä, kun se havaitsee yhteyden tietystä IP-osoitteesta tai portista. Tässä oppaassa aiomme mennä läpi kolme kaikkein yksinkertaisinta ja yleisemmin käytettyä "vastausta".

Hyväksyä - Salli yhteys.

Pudota - Pudota yhteys, toimi niin kuin koskaan tapahtui. 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ä virheen uudelleen. Tämä on parasta, jos et halua tietyltä lähteeltä yhteyttä järjestelmään, mutta haluat että he tietävät, että palomuuri estää heidät.

Paras tapa näyttää ero näiden kolmen säännön välillä on osoittaa, miltä näyttää, kun tietokone yrittää pingata Linux-koneeseen, jossa on jokin näistä asetuksista iptables.

Yhteyden salliminen:

Yhteyden hylkääminen:
Yhteyden hylkääminen:
Image
Image

Erityisten yhteyksien salliminen tai estäminen

Jos olet määrittänyt toimintoketjunsa, voit nyt määrittää iptables-sovelluksen sallimaan tai estämään tietyt osoitteet, osoitealueet ja portit. Näissä esimerkeissä asetamme yhteydet

DROP

mutta voit vaihtaa ne

ACCEPT

tai

REJECT

riippuen tarpeista ja siitä, miten olet määrittänyt toimintoketjunsa.

Huomaa: Näissä esimerkeissä aiomme käyttää

iptables -A

liittää sääntöjä olemassa olevaan ketjuun. iptables alkaa luettelonsa yläosasta ja kulkee kunkin säännön läpi, kunnes se löytää sen, että se vastaa. Jos haluat lisätä jonkin toisen säännön, voit käyttää sitä

iptables -I [chain] [number]

määrittää sen numeron, jonka pitäisi olla luettelossa.

Yhdistä yhdestä IP-osoitteesta

Tämä esimerkki näyttää, miten estetään kaikki IP-osoitteen 10.10.10.10 yhteydet.

iptables -A INPUT -s 10.10.10.10 -j DROP

Yhteydet useista IP-osoitteista

Tämä esimerkki näyttää, kuinka kaikki IP-osoitteet estetään 10.10.10.0/24-verkon alueella. Voit määrittää IP-osoitteiden alueen käyttämällä verkkopeaa tai vakiota viivaa.

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 satamaan

Tämä esimerkki näyttää, kuinka SSH-yhteydet estetään 10.10.10.10.

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

Voit korvata "ssh" millä tahansa protokolla- tai portinumerolla.

-p tcp

osa koodista kertoo iptablesille minkälainen yhteys protokolla käyttää. Jos olit estänyt protokollan, joka käyttää UDP: tä pikemminkin kuin TCP: tä, sitten

-p udp

olisi sen sijaan tarpeen.

Tämä esimerkki näyttää, kuinka estetään SSH-yhteydet mistä tahansa IP-osoitteesta.

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

Liitäntävaltiot

Kuten aiemmin mainitsimme, monet protokollat vaativat kaksisuuntaista viestintää. Jos haluat esimerkiksi sallia SSH-yhteydet järjestelmään, syöttö- ja tulostiketjut tarvitsevat lisäämään sääntöjä niihin. Mutta mitä vain haluat, että SSH tulee järjestelmäänsi sallimaan? Eikö lisäämällä sääntöä tuotantoketjuun sallivat myös lähtevät SSH-yritykset?

Siinä yhteydessä yhteysstatukset tulevat sisään, mikä antaa sinulle mahdollisuuden antaa kaksisuuntaista viestintää, mutta sallia vain yhden tapayhteyden muodostamisen. Katsokaa tätä esimerkkiä, jossa SSH-yhteydet 10.10.10.10 lähtien sallitaan, mutta SSH-yhteydet 10.10.10.10 eivät ole. Järjestelmä voi kuitenkin lähettää takaisin SSH: n tietoja niin kauan kuin istunto on jo vahvistettu, mikä mahdollistaa SSH-viestinnän näiden kahden isännän välillä.

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

iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m state --state ESTABLISHED -j ACCEPT

Tallenna muutokset

Muutokset, jotka teet iptables -sääntöihisi, romahtavat seuraavan kerran, kun iptables-palvelu käynnistyy uudelleen, ellet suorita komentokehotetta muutosten tallentamiseksi. Tämä komento voi vaihdella jakelusi mukaan:

ubuntu:

sudo /sbin/iptables-save

Red Hat / CentOS:

/sbin/service iptables save

Tai

/etc/init.d/iptables save

Muut komennot

Luettelo nykyisistä konfiguroiduista iptables-sääntöistä:

iptables -L

Lisäämällä

-v

vaihtoehto antaa sinulle pakettia ja tavua koskevia tietoja ja lisää

-n

luetellaan kaikki numeerisesti. Toisin sanoen - palvelimen nimet, protokollat ja verkot luetellaan numeroina.

Kaikkien tällä hetkellä määritettyjen sääntöjen tyhjentämiseksi voit antaa huuhtelukomennon.

iptables -F

Suositeltava: