Iptables-parametrit. Testaus ja virheenkorjaus. Näytä nykyinen kokoonpano

Luotettava palomuuri on yksi tärkeimmistä tekijöistä minkä tahansa nykyaikaisen käyttöjärjestelmän suojaamisessa. Useimmat Linux-jakelut sisältävät useita erilaisia ​​soittimia palomuuri. Tämä opas on omistettu yhdelle suosituimmista - iptablesista.

Eli iptables on tavallinen palomuuri, joka sisältyy oletuksena useimpiin Linux-jakeluihin (nftablesia kehitetään korvaamaan se). Itse asiassa iptables on käyttöliittymä netfilter-järjestelmän hallintaan, joka puolestaan ​​hallitsee Linux-verkkopinoa. iptables vertaa jokaista saapuvaa pakettia vahvistettuihin sääntöihin ja päättää sitten, mitä sille tehdään seuraavaksi.

Keskustelu oli siitä, miten iptables tarkalleen toimii. Tämä artikkeli keskittyy käytännön esimerkkeihin, jotka osoittavat, kuinka luodaan perussäännöt Ubuntu 14.04 -palvelimelle.

Iptablesin peruskomennot

Tämä osio sisältää peruskomentoja, joilla voit luoda monimutkaisia ​​sääntöjä ja hallita iptables-käyttöliittymää kokonaisuutena.

Muistaa: iptables-komennot on suoritettava pääkäyttäjän oikeuksilla. Tämä tarkoittaa, että sinun on tehtävä jokin seuraavista:

  • kirjaudu sisään pääkäyttäjänä;
  • käytä su tai sudo -i:tä laajentaaksesi juurikuorta;
  • aloita kaikki komennot sudolla (suositeltu tapa Ubuntussa).

IN tämä käsikirja Viimeinen vaihtoehto pätee.

Joten ensin sinun on tarkasteltava nykyisten luetteloa iptablesin säännöt. Käytä tätä varten -L-lippua:

sudo iptables -L
Ketju INPUT (käytäntö ACCEPT)


kohde prot opt ​​lähdekohde
Ketju OUTPUT (käytäntö ACCEPT)
kohde prot opt ​​lähdekohde

Kuten näet, luettelo sisältää kolme oletusketjua (INPUT, OUTPUT ja FORWARD), joista jokaisella on oletuskäytäntö asetettu (tällä hetkellä ACCEPT). Voit myös nähdä sarakkeiden nimet. Mutta tämä luettelo ei sisällä itse sääntöjä, koska Ubuntun mukana ei tule oletussääntöjoukkoa.

Käyttämällä -S-lippua tätä luetteloa voidaan tarkastella eri muodossa, joka kuvastaa sääntöjen ja käytäntöjen aktivoimiseen tarvittavia komentoja:

sudo iptables -S
-P INPUT ACCEPT
-P HYVÄKSY ETEENPÄIN
-P OUTPUT ACEPT

Jos haluat replikoida määrityksiä, sinun tarvitsee vain kirjoittaa sudo iptables jokaisen tulosrivin alkuun. (Asetuksistasi riippuen tämä toimenpide voi olla hieman monimutkaisempi etäyhteyden muodostamisessa. Jos nykyisen yhteyden sallivia sääntöjä ei ole vielä asetettu, DROP-käytäntöä ei pidä asettaa.)

Voit nollata nykyiset säännöt (jos sellaisia ​​on) kirjoittamalla:

sudo iptables -F

Jälleen päälle tässä vaiheessa Oletuskäytäntö on erittäin tärkeä, koska edellinen komento ei muuta sitä, vaikka kaikki säännöt poistetaan ketjuista.

Ennen kuin nollaat etäyhteyden säännöt, sinun on varmistettava, että ACCEPT-käytäntö on asetettu INPUT- ja OUTPUT-ketjuissa. Tämä tehdään näin:

sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F

Kun olet luonut säännöt, jotka sallivat etäyhteydet, voit määrittää DROP-käytännön. Joten siirrytään sääntöjen luomiseen.

Iptables-sääntöjen luominen

Kuten edellä mainittiin, tämä opetusohjelma keskittyy työskentelemään INPUT-ketjun kanssa, koska se vastaa saapuva liikenne. Ensinnäkin meidän on otettava huomioon jo mainittu sääntö - sääntö, joka sallii nykyisen SSH-yhteyden.

Se näyttää tältä:

sudo iptables -A INPUT -m conntrack --ctstate PERUSTETTU, LIITTYVÄ -j HYVÄKSY

Tietysti se voi aluksi tuntua uskomattoman monimutkaiselta; Ymmärtääksesi tämän säännön, tutustu sen osiin:

  • -TULO: lippu -A lisää ( liittää) sääntö ketjun loppuun asti. Tämä komennon osa käskee iptablesia lisäämään säännön INPUT-ketjun loppuun.
  • -m conntrack: perustoimintojen lisäksi iptablesissa on myös joukko laajennuksia tai moduuleja, jotka vastaavat palomuurin lisäominaisuuksista. Tämä komennon osa osoittaa, että käyttäjä tarvitsee pääsyn conntrack-moduulin toimintoihin. Tämän moduulin avulla voit käyttää komentoja, jotka päättävät, mitä paketille tehdään sen suhteen perusteella, miten se on suhteessa aikaisempiin yhteyksiin.
  • --ctstate: yksi komennoista, jotka ovat käytettävissä kutsuttaessa conntrack-moduulia. Tämän komennon avulla voit seurata pakettien suhdetta muihin aiemmin katseltuihin paketteihin. Se on asetettu arvoon ESTABLISHED (joka hyväksyy paketit, jotka ovat osa olemassa olevaa yhteyttä) ja RELATED (hyväksyy paketit, jotka liittyvät jo muodostettuun yhteyteen). Tämä säännön osa on vastuussa nykyisestä SSH-istunnosta.
  • jHYVÄKSYÄ: Määrittää toiminnon (kohteen), joka suoritetaan sääntöä vastaavalle paketille. Tässä tapauksessa iptables hyväksyy paketit, jotka täyttävät edelliset ehdot.

Tämä sääntö on sijoitettava alkuun varmistaakseen, että olemassa olevat yhteydet vastaavat sääntöjä, hyväksytään ja poistuvat ketjusta saavuttamatta DROP-sääntöjä.

Pyydämällä sääntöluettelon näet muutokset:

sudo iptables -L
Ketju INPUT (käytäntö ACCEPT)
kohde prot opt ​​lähdekohde
HYVÄKSY kaikki -- missä tahansa ja missä tahansa ctstate LIITTYVÄ, PERUSTETTU
Ketju Eteenpäin (käytäntö HYVÄKSY)
kohde prot opt ​​lähdekohde
Ketju OUTPUT (käytäntö ACCEPT)
kohde prot opt ​​lähdekohde

Kun olet perehtynyt perussyntaksiin, luo vielä muutama sääntö, jotka hyväksyvät yhteyden.

Muiden tärkeiden yhteyksien hyväksyminen

Aiemmin iptables sai komennon olla nollaamatta kaikkea nykyiset liitännät, sekä hyväksyä kaikki niihin liittyvät yhteydet. Nyt sinun on luotava säännöt, jotka hyväksyvät yhteydet, jotka eivät täytä yllä olevia ehtoja.

Jätä kaksi porttia auki: SSH-portti(Tämä opas käyttää oletusporttia 22; jos annettu arvo on muuttunut, älä unohda kirjoittaa uutta arvoa); Lisäksi oletetaan, että näin on tämä tietokone Web-palvelin toimii oletuksena portissa 80 (älä lisää tätä sääntöä, jos se ei ole).

Joten rivit, joita sinun on käytettävä tällaisten sääntöjen luomiseen, näyttävät tältä:

sudo iptables -A INPUT -p tcp --dport 22 -j HYVÄKSY
sudo iptables -A INPUT -p tcp --dport 80 -j HYVÄKSY

Kuten näet, ne ovat hyvin samanlaisia ​​kuin ensimmäinen sääntö; ehkä niillä on vielä yksinkertaisempi rakenne. Uudet vaihtoehdot:

  • stcp: tämä vaihtoehto sallii TCP:tä (useimpien sovellusten käyttämä virtaussuuntautunut protokolla, koska se tarjoaa luotettavan tiedonsiirron) käyttävien pakettien kulkemisen läpi.
  • dport: Tämä vaihtoehto on käytettävissä käytettäessä -p tcp -lippua. Se määrittää saapuvan portin, jota paketin portin tulee vastata. Ensimmäinen sääntö ohitetaan TCP-paketteja, joka on suunnattu porttiin 22, ja toinen sääntö hyväksyy TCP-liikenteen porttiin 80.

Nyt meidän on luotava toinen ACCEPT-sääntö varmistaaksemme, että palvelin toimii odotetulla tavalla. Tyypillisesti palvelut kommunikoivat vaihtamalla paketteja; Tätä varten he käyttävät verkon pseudo-rengasliitäntää - niin kutsuttua loopback-laitetta, joka ohjaa liikenteen takaisin lähteeseensä, ei muihin tietokoneisiin.

Eli jos palvelun 1 on muodostettava yhteys palvelun 2 kanssa, joka kuuntelee yhteyksiä portissa 4555, palvelu 1 lähettää paketin porttiin 4555 silmukkalaitteen avulla. Tämä käytös on sallittava, koska se on tärkeä ehto monien ohjelmien oikea toiminta.

Voit tehdä tämän lisäämällä seuraavan säännön:

sudo iptables -I INPUT 1 -i lo -j HYVÄKSY

Se on hieman erilainen kuin aiemmat säännöt; katso tarkemmin:

  • minäTULO 1: -I-lippu käskee iptablesia lisäämään säännön. Tämä lippu eroaa -A-lipusta (joka yksinkertaisesti lisää säännön ketjun loppuun); se määrittää ketjun, johon sääntö lisätään, ja säännön sijainnin siinä. Tässä tapauksessa sääntö on lisättävä aivan INPUT-ketjun alkuun, minkä seurauksena kaikki säännöt siirtyvät yhden kohdan. Tämä sääntö tulisi sijoittaa ketjun alkuun, koska se on yksi pääsäännöistä eikä sen pitäisi riippua muista.
  • ilo: Tämä sääntökomponentti sallii paketit, jotka käyttävät lo-liitäntää ("lo" on toinen nimi silmukalle). Tämä tarkoittaa, että mikä tahansa paketti, joka käyttää tämä käyttöliittymä, on hyväksyttävä.

Voit tarkastella voimassa olevia sääntöjä käyttämällä -S-lippua, koska -L-lippu ei tulosta joitakin tietoja (esimerkiksi käyttöliittymää, johon sääntö on sidottu, mikä on erittäin tärkeää viimeisen säännön tapauksessa):

sudo iptables -S
-P INPUT ACCEPT
-P HYVÄKSY ETEENPÄIN
-P OUTPUT ACEPT
-A INPUT -i lo -j HYVÄKSY
-A INPUT -m conntrack --ctstate LIITTYVÄ, PERUSTETTU -j HYVÄKSY
-A TULO -p tcp -m tcp --dport 22 -j HYVÄKSY
-A TULO -p tcp -m tcp --dport 80 -j HYVÄKSY

DROP-sääntöjen luominen

Joten tällä hetkellä on luotu 4 sääntöä, jotka hyväksyvät paketteja tiettyjen kriteerien perusteella. Palvelin ei kuitenkaan tällä hetkellä estä muita paketteja.

Jos paketti kulkee INPUT-ketjun läpi eikä täytä mitään neljästä säännöstä, suoritetaan oletuskäytäntö (ACCEPT), joka hyväksyy paketin tavalla tai toisella. Nyt se on muutettava.

Tämä voidaan tehdä kahdella tavalla, joilla on melko merkittäviä eroja.

Ensimmäinen tapa on muokata INPUT-ketjun oletuskäytäntöä; tehdäksesi tämän tyypin:

sudo iptables -P INPUT DROP

Tämä käytäntö valvoo ja pudottaa kaikki paketit, jotka eivät vastaa mitään INPUT-ketjusääntöä. Tämän tyyppisen suunnittelun yksi seuraus on, että se pudottaa paketteja, vaikka itse säännöt on nollattu.

Tämä tietysti lisää palvelimen suojaustasoa; Tällä voi kuitenkin olla vakavia seurauksia, jos käyttäjällä ei ole muuta tapaa muodostaa yhteyttä palvelimeen. Useimmiten isännöintipalveluntarjoajat tarjoavat verkkokonsolin muodostaakseen yhteyden palvelimeen tällaisten ongelmien ilmetessä. Tämä konsoli toimii virtuaalisena konsolina paikallinen yhteys, joten iptables ei vastaa siihen.

Voit asettaa palvelimen nollaamaan yhteyden automaattisesti, jos säännöt poistetaan. Tämä tekee palvelimesta turvallisemman ja vaikeammin käytettävän. Tämä tarkoittaa myös sitä, että voit lisätä sääntöjä ketjun loppuun, jolloin kaikki ei-toivotut paketit hylätään.

Vaihtoehtoinen lähestymistapa on lisätä ketjun loppuun sääntö, joka hylkää kaikki paketit, jotka eivät täsmää, mutta säilyttää ACCEPT-käytännön.

Voit palauttaa ACCEPT-käytännön INPUT-ketjuun kirjoittamalla:

sudo iptables -P INPUT ACCEPT

Nyt voit lisätä tämän ketjun loppuun säännön, joka pudottaa kaikki yhteensopimattomat paketit:

sudo iptables -A INPUT -j DROP

Normaaleissa käyttöolosuhteissa tulos on täsmälleen sama kuin käytettäessä DROP-käytäntöä. Tämä sääntö pudottaa jokaisen sen saavuttavan paketin, mikä estää paketteja, jotka eivät vastaa sääntöjä, pääsemästä palvelimelle.

Pohjimmiltaan toista lähestymistapaa käytetään, kun on tarpeen säilyttää liikennettä hyväksyvä ACCEPT-käytäntö. Eli vaikka kaikki säännöt nollattaisiin, käyttäjä voi silti käyttää konetta verkossa. Tämän lähestymistavan avulla voit suorittaa oletustoiminnot ilman, että sinun tarvitsee muuttaa tyhjään ketjuun sovellettavaa käytäntöä.

Tämä tarkoittaa tietysti myös sitä, että ketjun loppuun lisättävän säännön on tultava ennen nollaussääntöä. Tämä voidaan tehdä joko poistamalla tilapäisesti nollaussääntö:

sudo iptables -D INPUT -j DROP
sudo iptables -A INPUT uusi_sääntö
sudo iptables -A INPUT -j DROP

tai lisäämällä uusi sääntö ketjun loppuun (mutta ennen nollaussääntöä), määrittämällä rivin numero. Kirjoita sääntö riville 4 kirjoittamalla:

sudo iptables -I INPUT 4 new_sääntö

Jos sääntöjä on monia, rivinumeron manuaalinen laskeminen on melko ongelmallista; tässä tapauksessa iptables voi numeroida rivit:

sudo iptables -L --rivinumerot
Ketju INPUT (käytäntö DROP)

1 HYVÄKSY kaikki – missä tahansa
2 HYVÄKSY kaikki -- missä tahansa, missä tahansa ctstate LIITTYVÄ, PERUSTETTU
3 HYVÄKSY tcp - missä tahansa tcp dpt:ssh
4 HYVÄKSY tcp -- missä tahansa tcp dpt:http
Ketju Eteenpäin (käytäntö HYVÄKSY)
num target prot opt ​​lähdekohde
Ketju OUTPUT (käytäntö ACCEPT)
num target prot opt ​​lähdekohde

Näin voit varmistaa, että sääntö on syötetty oikealle riville.

iptables-asetusten tallentaminen

Oletuksena kaikki tallentamattomat säännöt pysyvät voimassa seuraavaan palvelimen uudelleenkäynnistykseen asti. Välittömästi uudelleenkäynnistyksen jälkeen tallentamattomat säännöt menetetään.

Joissakin tapauksissa tämä on hyödyllistä, koska sen avulla käyttäjät, jotka ovat vahingossa estäneet itsensä, pääsevät palvelimeen. Useimmissa tapauksissa on kuitenkin kätevämpää tallentaa säännöt ja ladata ne palvelimen käynnistyessä.

Tämä voidaan tehdä useilla tavoilla; Yksinkertaisin on käyttää iptables-persistent-pakettia, joka voidaan ladata oletusarvoisesta Ubuntu-arkistosta:

sudo apt-get päivitys
sudo apt-get install iptables-persistent

Asennuksen aikana paketti määrittää, pitääkö nykyiset säännöt tallentaa myöhempää käyttöä varten. automaattinen lataus; Jos nykyiset säännöt on testattu (sallivat SSH-yhteydet) ja täyttävät kaikki vaatimukset, ne voidaan tallentaa.

Kun asennus on valmis, näkyviin tulee uusi palvelu nimeltä iptables-persistent, joka käynnistyy, kun palvelin käynnistetään uudelleen, ja jatkaa asennettujen sääntöjen noudattamista.

Tulokset

Tämä opas auttaa sinua määrittämään palomuurin käyttäjän vaatimusten mukaisesti. Tietenkin samankaltaisia ​​apuohjelmia on paljon enemmän, ja jotkut niistä voivat olla helpompia käyttää; Silti iptables on yksi parhaista työkaluista, jo pelkästään siksi, että se esittelee joitain netfilterin perusrakenteita ja sisältyy moniin järjestelmiin.

Tunnisteet: ,

Tässä artikkelissa kerromme, kuinka iptables määritetään Linuxissa. Opit mikä se on ja miksi sinun on määritettävä tämä toiminto. Iptablesin asettaminen Linuxille on melko yksinkertainen.

Iptablesin määrittäminen Linuxissa: Mikä iptables on?

Iptables on komentorivin palomuuriapuohjelma, joka käyttää ketjutettua käytäntöä liikenteen sallimiseen tai estoon. Kun yhteys yrittää vakiinnuttaa itsensä järjestelmääsi, iptables etsii luettelostaan ​​sitä vastaavan säännön. Jos se ei löydä sitä, se turvautuu oletustoimintoon.

Iptables tulee melkein aina esiasennettuna mihin tahansa Linux-jakeluun. Päivitä/asenna se lataamalla iptables-paketti:

sudo apt-get install iptables

Iptablesille on GUI-vaihtoehtoja, kuten Firestarter, mutta iptables ei ole niin monimutkainen, jos suoritat vain muutaman komennon. Ole erittäin varovainen määrittäessäsi iptables-sääntöjä, varsinkin jos käytät palvelimella SSH'd:tä, koska yksi väärä komento voi sulkea sinut ulos pitkäksi aikaa, kunnes se sitoutuu manuaalisesti fyysiseen koneeseen.

Iptablesin asettaminen Linuxille tutteja varten

Olemme muuten puhuneet tästä jo aiemmin. Ehkä tämä kiinnostaa myös sinua. Linkki löytyy ylhäältä.

Kuten edellä totesimme, iptablesin määrittäminen Linuxissa on melko yksinkertaista. Mutta ennen kuin aloitat määrityksen, sinun on tutustuttava vaihtoehdon yleisiin käsitteisiin.

Piirityypit

Iptables käyttää kolmea erilaista piiriä: tulo, eteenpäin ja lähtö.

Syöte- Tätä ketjua käytetään ohjaamaan saapuvien yhteyksien käyttäytymistä. Jos käyttäjä esimerkiksi yrittää SSH:ta 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 varsinaisesti toimiteta paikallisesti. Ajattele reititintä - tiedot lähetetään aina siihen, mutta niitä on harvoin tarkoitettu itse reitittimelle; Tiedot yksinkertaisesti ohjataan aloitussivulle. Et edes käytä tätä ketjua, ellet tee järjestelmässäsi reititystä, NAT:ia tai mitään muuta, joka vaatii edelleenlähetystä.

On yksi luotettava tapa tarkista, käyttääkö järjestelmäsi eteenpäin ketjua tai tarvitseeko se sitä.

Tämä kuvakaappaus on palvelimesta, joka on ollut käynnissä useita viikkoja ja jolla ei ole rajoituksia saapuville tai lähteville yhteyksille. Kuten näet, syöttöketju käsitteli 11 Gt paketteja ja lähtöketju 17 Gt. Toisaalta eteenpäin ketjutuksen ei tarvitse käsitellä yhtä pakettia. Tämä johtuu siitä, että palvelin ei suorita edelleenlähetystä tai sitä ei käytetä päästä päähän -laitteena.

Lähtö - Tätä ketjua käytetään lähteviin yhteyksiin. Jos esimerkiksi yrität pingata linuxinsider-sivustoa, iptables tarkistaa sen tulostusketjun nähdäkseen, mitkä säännöt koskevat ping- ja linuxinsideriä, ennen kuin päättää, sallitaanko vai evätäänkö yhteysyritys.

Varoitus

Vaikka ulkoisen isännän tarkistus näyttää joltain, jonka tarvitsee mennä vain tulosketjun läpi, muista, että syöttöketjua käytetään myös tietojen palauttamiseen. Kun käytät iptablesia järjestelmän lukitsemiseen, muista, että monet protokollat ​​vaativat kaksisuuntaista tiedonsiirtoa, joten sekä tulo- että lähtöketjut on määritettävä oikein. SSH on yleinen protokolla, jonka ihmiset unohtavat sallia molemmissa ketjuissa.

Käytännön oletuskäyttäytyminen

Ennen kuin aloitat tiettyjen sääntöjen määrittämisen, sinun on päätettävä, minkälainen haluat näiden kolmen ketjun oletuskäyttäytymisen olevan. Toisin sanoen, mitä haluat iptablesin tekevän, jos yhteys ei vastaa olemassa olevia sääntöjä?

Jos haluat nähdä, mitkä käytäntöketjut on määritetty käsittelemään vertaamatonta liikennettä, suorita komento iptables -L.

Kuten näet, käytimme myös grep-komentoa saadaksemme puhtaamman tuloksen. Tässä kuvakaappauksessa ketjumme on tällä hetkellä määritetty hyväksymään liikennettä.

Useammin kuin ei, haluat järjestelmän hyväksyvän yhteydet oletuksena. Ellet ole aiemmin muuttanut käytäntöketjun sääntöjä, tämän asetuksen pitäisi olla jo määritetty. Joka tapauksessa tässä on komento oletusyhteyksien hyväksymiseksi:

iptables --käytäntö INPUT ACCEPT
iptables --käytäntö OUTPUT ACCEPT
iptables --käytäntö EDELLEEN HYVÄKSY

Oletusarvoisesti hyväksymissäännössä voit käyttää iptablesia tiettyjen IP-osoitteiden tai porttinumeroiden hylkäämiseen samalla, kun jatkat kaikkien muiden yhteyksien hyväksymistä. Käsittelemme näitä komentoja hetkessä.

Jos haluat evätä kaikki yhteydet ja määrittää manuaalisesti, mitkä yhteydet haluat sallia, sinun on muutettava piirien oletuskäytäntö kieltäytyäksesi. Tämä on luultavasti hyödyllistä vain palvelimille, jotka sisältävät arkaluontoisia tietoja, ja ne ovat aina yhteydessä samoihin IP-osoitteisiin.

iptables --käytäntö INPUT DROP
iptables --politiikka OUTPUT DROP
iptables --politiikka Eteenpäin pudota

Yhteysvastaukset

Kun oletusarvoiset ketjutuskäytännöt on määritetty, 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 tarkastellaan kolmea yleisintä ja useimmin käytettyä "vastausta".

Hyväksyä- salli yhteys.

Pudota- Katkaise yhteys ja toimi ikään kuin sitä ei olisi koskaan tapahtunut. Tämä on parasta, jos et halua lähteen tietävän, että järjestelmäsi on olemassa.

Hylätä— estä yhteys, mutta lähetä virheilmoitus. Tämä on parasta, jos et halua tietyn lähteen muodostavan yhteyttä järjestelmääsi, mutta haluat heidän tietävän, että palomuurisi on estänyt 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, jossa iptables on määritetty kullekin näistä vaihtoehdoista.

Yhteyslupa:

Yhteyden poistaminen:

Yhteyden hylkääminen:

Verkkopeite tai ominaisuus, joka ilmaisee IP-osoitteiden alueen.

Iptablesin määrittäminen Linuxissa: Yhteysmenetelmät

Jos puhumme aiheesta "IPtablesin määrittäminen Linuxissa", meidän on puhuttava yhteysmenetelmistä.

Salli tai estä tietyt yhteydet
Määritetyillä käytännöillä voit määrittää iptables-sovellukset sallimaan tai estämään tiettyjä osoitteita, osoitealueita ja portteja. Näissä esimerkeissä asetamme yhteydet DROP-tilaan, mutta voit vaihtaa ne HYVÄKSY- tai HYLÄTTÄ-tilaan riippuen tarpeistasi ja siitä, miten olet määrittänyt käytäntöketjut.

Huom. Näissä esimerkeissä käytämme iptables -A:ta sääntöjen lisäämiseen olemassa olevaan ketjuun. Iptables alkaa luettelon yläosasta ja käy läpi jokaisen säännön, kunnes löytää sitä vastaavan. Jos sinun on lisättävä sääntö toisen yläpuolelle, voit käyttää iptables -I:tä määrittääksesi numeron, jonka pitäisi olla luettelossa.

Yhteydet samasta IP-osoitteesta

Tämä esimerkki näyttää, kuinka estetään kaikki yhteydet IP-osoitteesta 10.10.10.10.

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 verkkoalueella 10.10.10.0/24. Voit määrittää IP-osoitteiden alueen verkkopeiteellä tai tavallisella vinoviivalla.

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

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

Liitännät tiettyyn porttiin

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

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

Voit korvata "ssh" millä tahansa protokollalla tai porttinumerolla. Koodin -p tcp -osa kertoo iptablesille, mitä protokollaa yhteys käyttää. Jos estät protokollan, joka käyttää UDP:tä TCP:n sijaan, sen sijaan vaaditaan -p udp.

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

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

Yhteystilat

Kuten aiemmin mainitsimme, monet protokollat ​​vaativat kaksisuuntaista viestintää. Jos esimerkiksi haluat sallia SSH-yhteydet järjestelmääsi, tulo- ja lähtöpiireihin on lisättävä sääntö. Mutta entä jos haluat, että SSH-kirjautuminen järjestelmääsi sallitaan? Eikö säännön lisääminen tuotosketjuun johtaisi myös lähteviin SSH-yrityksiin?

Tässä ovat yhteystilat, jotka antavat sinulle mahdollisuuden sallia kaksisuuntainen tiedonsiirto, mutta sallia vain yksisuuntaisten yhteyksien muodostamisen. Katso tämä esimerkki, jossa SSH-yhteydet 10.10.10.10 ovat sallittuja, mutta SSH-yhteydet 10.10.10.10 eivät ole sallittuja. Järjestelmä voi kuitenkin lähettää takaisin tietoja SSH:n kautta istunnon ollessa jo muodostettu, mikä mahdollistaa SSH-viestinnän kahden isännän välillä.

iptables -A INPUT -p tcp -dport ssh -s 10.10.10.10 -m valtio -- osavaltio UUSI, PERUSTETTU -j HYVÄKSY

iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m tila --tila PERUSTETTU -j HYVÄKSY

Tallennetaan muutoksia

Iptables-sääntöihin tekemäsi muutokset hylätään, kun iptables-palvelu käynnistetään seuraavan kerran uudelleen, ellet anna komentoa muutosten tallentamiseksi. Tämä komento voi vaihdella jakelustasi riippuen:

sudo /sbin/iptables-save

Red Hat/CentOS:

/sbin/service iptables tallentaa

/etc/init.d/iptables tallenna

Muut komennot

Luettelo tällä hetkellä määritetyistä iptables-säännöistä:

Valitsimen -v lisääminen antaa sinulle paketti- ja tavutiedot, ja -n:n lisääminen sisältää kaikki numeeriset arvot. Toisin sanoen isäntänimet, protokollat ​​ja verkot on lueteltu numeroina.

Voit tyhjentää kaikki tällä hetkellä määritetyt säännöt suorittamalla huuhtelukomennon.

Käännös erinomaisesta englanninkielisestä lähteestä HowToGeek.

Jos sinulla on vielä kysyttävää aiheesta "IPtablesin määrittäminen Linuxissa tutteja varten", voit kirjoittaa ne verkkosivustomme kommenttilomakkeeseen.

Jos löydät virheen, korosta tekstinpätkä ja napsauta Ctrl+Enter.

IPTables on apuohjelma, jota käytetään palomuurien hallintaan Linuxissa. Se on tehokas ja kätevä työkalu ei-toivotuille yhteyksille. Koko prosessi sisältyy iptables-sääntöihin, joita voidaan muokata ja tarkastella. Tarkempia tietoja on artikkelissa.

Luomisen historia

Vastaanottaja IPTables sisään Linux-järjestelmä Käytettiin IPFW-palomuuria, lainattu BSD:ltä. Sitten Linux-ytimen version 2.4 mukana se alkoi tulla Netfilter-palomuurin ja sen hallintaan tarkoitetun IPTables-apuohjelman kanssa. Työn metodologiassa kaikki näkökohdat säilytettiin ja toiminnallisesti laajennettiin hieman.

IPT-taulukoiden rakenne ja suunnittelu

Sisääntulo palomuuri, paketti käy läpi useita tarkastuksia. Se voisi olla tarkistussumma tai mikä tahansa muu ydintason analyysi. Sitten on aika käydä läpi PREROUTING-ketju. Seuraavaksi tarkistetaan, minkä mukaisesti uudelleenohjaus seuraavaan ketjuun tapahtuu. Jos paketilla ei ole osoitetta, kuten esimerkiksi TCP:ssä, se lähetetään FORWARD-ketjuun. Tapauksissa, joissa on tietty osoite, INPUT-ketju seuraa ja sitten niihin demoniin tai palveluihin, joille se on tarkoitettu. Heiltä tulevan vastauksen tulee myös kulkea useiden ketjujen läpi, esimerkiksi OUTPUT. Viimeinen lenkki tässä prosessissa on POSTROUTING-ketju.

Nyt vähän ketjuista. Jokainen niistä sisältää useita taulukoita. Heidän nimensä voivat toistua, mutta tämä ei vaikuta työhön millään tavalla, koska ne eivät liity toisiinsa.

Taulukot puolestaan ​​sisältävät useita sääntöjä. Pohjimmiltaan sääntö on tietty ehto, joka tarkastettavan pakkauksen on täytettävä. Lopputuloksesta riippuen pakkaukseen suoritetaan tietty toimenpide.

Siten, kulkeessaan verkon kaikkien vaiheiden läpi, paketti vierailee peräkkäin kaikissa ketjuissa ja jokaisessa tarkistetaan tietyn säännön ehdon noudattaminen. Jos käyttäjä ei ole luonut taulukkoa, suoritetaan oletustoiminto, periaatteessa ACCEPT, jonka avulla voit jatkaa eteenpäin, tai DROP, joka pysäyttää paketin.

Esiasetetut ketjut kuuluvat seuraaviin luokkiin:

  • ESITTELY. Kaikkien saapuvien pakettien ensimmäinen käsittely.
  • INPUT. Tämä sisältää ne paketit, jotka lähetetään suoraan paikalliseen tietokoneeseen.
  • ETEENPÄIN. Käytetään "siirtopaketteihin", jotka seuraavat reititystaulukkoa.
  • OUTPUT. Käytetään lähteville paketeille.
  • POSTROUTING. Viimeinen vaihe lähtevän paketin kulkemisessa kaikkien ketjujen läpi.

Sisäänrakennettujen ketjujen lisäksi käyttäjät voivat luoda tai poistaa omia.

Tarkastele ja hallinnoi IPTables-sääntöjä

Kuten aiemmin mainittiin, kaikki ketjut sisältävät tiettyjä ehtoja pakkauksille. IPTables-apuohjelmaa käytetään IPTables-sääntöjen katseluun ja hallintaan. Jokainen yksittäinen sääntö on rivi, joka sisältää joukon ehtoja paketeille sekä niitä koskeville toimille tuloksesta riippuen.

Komennon muoto näyttää tältä: iptables [-t käsiteltävän taulukon nimi] komento nimeltä [kriteeri] [toiminto suoritettu].

Kaikki, mitä sisältyy, voidaan jättää pois. Jos tämä on taulukon määrittävä parametri, suodatinta käytetään. Jos haluat käyttää tiettyä nimeä, sinun on lisättävä -t-kytkin. Kutsutun komennon avulla voit käynnistää vaaditun toiminnon, esimerkiksi lisätä IPTables-säännön tai poistaa sen. Kriteerit osoittavat parametrit, joilla valinta tapahtuu. Ja "toiminnassa" on toiminto, joka on suoritettava, jos ehto täyttyy.

Komennot IPTables-sääntöjen luomiseen ja katseluun

  • Liitä (-A). Kun käytät komentoa, määrität ketjun ja taulukon, johon haluat lisätä vaaditun säännön. Joukkueen arvo on, että se tekee tämän luettelon lopussa.
  • Poista (-D). Kuten nimestä voi päätellä, se poistaa säännön. Parametreiksi voit määrittää sekä koko nimen että niille määritetyt numerot.
  • Nimeä ketju uudelleen (-E). Muuttaa ketjun nimen. Komento määrittää vanhan nimen ja sitten uuden nimen.
  • Huuhtele (-F). Tietyn taulukon kaikkien sääntöjen tyhjentäminen.
  • Lisää (-I). Tämä komento lisää vaaditun säännön numeron osoittamaan paikkaan.
  • Lista(-L). Katso Iptablesin säännöt. Jos taulukkoa ei ole määritetty, käytetään oletussuodatinta.
  • Käytäntö (-P). Määritetyn ketjun oletuskäytäntöä käytetään.
  • Vaihda (-R). Muuttaa sääntöä alla määritetty numero, siihen, mikä on välttämätöntä.
  • Poista-ketju (-X). Tämä komento poistaa kaikki luodut ketjut. Vain esiasennetut jäävät jäljelle.
  • Nolla (-Z). Nollaa lähetettyjen tietojen laskurit määritetyssä ketjussa.

Hieman paketin valintaparametreista

Ne voidaan jakaa kolmeen tyyppiin:

  • Yleiset kriteerit. Ne voidaan määrittää mille tahansa säännölle. Ne eivät vaadi erityisten laajennusten ja moduulien liittämistä, eivätkä myöskään riipu käytettävästä protokollasta.
  • Ei yleiset kriteerit. Ne tulevat saataville yleisiä kriteerejä käytettäessä.
  • Selkeä. Jotta voit käyttää tätä tyyppiä, sinun on liitettävä erityiset laajennukset netfilterille. Lisäksi sinun on käytettävä -m-kytkintä komennossa.

On syytä puhua hieman pakettien analysoinnissa käytetyistä usein kohdatuista parametreista:

  • Protokolla (-p). Osoittaa protokollan.
  • Lähde(t). Tämä parametri määrittää sen lähteen IP-osoitteen, josta paketti tuli. Se voidaan määrittää useilla tavoilla. Tietty isäntä, osoite tai koko aliverkko.
  • Kohde (-d). Paketin kohdeosoite. Kuten edellinenkin, sitä voidaan kuvata monella tapaa.
  • Käyttöliittymän sisäinen (-i). Määrittää paketin saapuvan liitännän. Käytetään pääasiassa NAT:iin tai järjestelmiin, joissa on useita liitäntöjä.
  • Ulostuloliitäntä (-o). Lähtevä käyttöliittymä.

Muutamia esimerkkejä

Voit tarkastella IPTablesin nat-sääntöjä? sinun on käytettävä komentoa - "iptables -L -t nat". Selvitä palomuurin yleinen tila - "iptables -L -n -v". Lisäksi tämän komennon avulla voit tarkastella kaikkialla järjestelmässä käytettävissä olevia IPTables-sääntöjä. Lisää sääntö tiettyyn kohtaan taulukossa, esimerkiksi ensimmäisen ja toisen rivin väliin - "iptables -I INPUT 2 -s 202.54.1.2 -j DROP". Katso sitten, onko se lisätty - "iptables -L INPUT -n --line-numbers".

Tietyn osoitteen estäminen, esimerkiksi 12.12.12.12 - "iptables -A INPUT -s 12.12.12.12 -j DROP".

Apua iptablesille - "man iptables". Jos tarvitset tietoja tietystä komennosta, käytä "iptables -j DROP -h".

Lopuksi

Käyttää IPTables-komennot on tehtävä varoen, kuten väärä asetus(tietämättä) voi johtaa verkkohäiriöihin tai täydelliseen epäonnistumiseen. Siksi on syytä tutustua käsikirjoihin ja ohjeisiin yksityiskohtaisesti ennen konfigurointia. Taitavissa käsissä IPTablesista voidaan tehdä luotettava puolustaja verkkoyhteyksiä. Järjestelmänvalvojat käytä apuohjelmaa aktiivisesti yhteyksien luomiseen, jotka on eristetty luvattomalta käytöltä.

Pieni alkuskripti (säännöt, iptables faq) työpöydälle tai yksinkertaiselle palvelimelle. Tässä tapauksessa esimerkkejä työskentelystä jonkin tietokoneellasi olevan ohjelmiston porttien kanssa. Turvallisuusmääräyksiä on noudatettava kaikissa tietokoneissa. Myytti siitä, että Linux on turvallisempi, ei pidä paikkaansa, kaikki riippuu järjestelmänvalvojan käsien kömpelyydestä. On myös hyvin suojattuja Windows-järjestelmiä sekä Linux-järjestelmiä, jotka ovat avoimia melkein kaikille. Siksi sitä kannattaa vielä vähän miettiä verkon suojaus tietokone. Alla on lisätty joitain iptables-sääntöjä, jotka voivat olla hyödyllisiä aluksi.

Korvasin $IPT:n nimenomaan /sbin/iptablesilla, jos joku tarvitsee vain yhden säännön, jotta se ei muutu, hän vain kopioi sen ja suoritti sen. Tietysti täällä on vielä vähän sääntöjä, ei erilaisia ​​VPN-verkkoja jne., jos haluat, lisää.

Nämä rivit voidaan kopioida kokonaan skriptiksi ja yksinkertaisesti suorittaa. Tavallisiin tapauksiin tämä riittää. Jos jokin sovellus ei pääse verkkoon, kirjaus on lisätty erityisesti. Avaa vain tail -f /var/log/syslog (tai sinun, jos eri kuin Ubuntu) ja katso! Jos sinulla on kysyttävää, lisää ne keskusteluun, niin ratkaisemme ne yhdessä.

PS Mieti näiden sääntöjen lisäksi, mitä sinun pitäisi ottaa artikkelista TCP-optimointi.

Kuinka poistaa sääntö Iptablesissa

Lähettäjä Aleksei Ubozhenko

Olen useaan otteeseen törmännyt siihen, että jopa yleensä älykkäät ihmiset tekevät täysin anteeksiantamattomia virheitä. He esimerkiksi avaavat koko Internetiin portin, jossa tietokanta toimii.

Blogi järjestelmänhallinnasta. Artikkeleita Linuxista, Windowsista, NetApp-tallennustilasta ja virtualisoinnista.

Näin käy usein DevOps-aloittelijoille, jotka ovat kirjoittaneet koodia koko elämänsä, ja nyt heidän tehtäviinsä kuuluu myös palvelimien asentaminen. Netistä löytyy hyviä tutoriaaleja perusasetukset palomuuri Linuxissa ja muissa *nixissä, mutta usein nämä ovat arkkeja monilla näytöillä. Joten toivon, että tästä tiiviimmästä opetusohjelmasta on jollekin hyötyä.

Tärkeää! On erittäin helppoa erehdyttää koneen palomuuri niin paljon, ettei siihen enää pääse käsiksi. Tämä pätee erityisesti pilvipalveluun. Jos esimerkiksi suljet AWS:ssä kaikki portit 1024 - 65536, kone jostain syystä osoittautuu suljetuksi uudelleenkäynnistyksen jälkeen kaikkea ylipäätään portit. Jos sinua isännöidään pilvissä, on parempi määrittää palomuuri hosting-palvelun tarjoaman verkkoliittymän kautta.

Pieni huomautus terminologiasta. Linux-ytimeen rakennettu palomuuri on nimeltään Netfilter, ja iptables on apuohjelma tämän palomuurin hallintaan. Monet ihmiset uskovat virheellisesti, että palomuuria kutsutaan iptablesiksi. Tämä on väärin. Sanomalla jotain kuten "Suodatan paketit iptablesilla" osoitat muille tietämättömyytesi.

Yleisesti, millaisia ​​ongelmia voidaan ratkaista Netfilterin avulla:

  • Salli/estä saapuva liikenne tiettyihin portteihin käyttämällä tiettyjä protokollia (IPv4/IPv6, TCP/UDP) määritetyt osoitteet(IP, MAC) tai aliverkot;
  • Kaikki on sama lähtevälle liikenteelle;
  • Voit esimerkiksi jättää huomioimatta kaikki ICMP-paketit;
  • NAT:n määrittäminen, katso viesti OpenVPN:n asentamisesta ja määrittämisestä;
  • Olen kuullut, että todelliset gurut voivat ottaa käyttöön DDoS:n ja raa'an voiman suojauksen, rajoittaa pääsyä verkkoon tiettyihin sovelluksiin, käyttäjiin tai ryhmiin ja tehdä muita hulluja asioita.

Haluaisin huomauttaa, että aluksi itse koin iptables-apuohjelman erittäin hankalaksi FreeBSD:n ipfw:hen verrattuna. Onneksi, kun olet työskennellyt sen kanssa jonkin aikaa, kaikki nämä monet liput, kuten -A, -D, -j ja muut, tulevat tutuiksi, joten ole kärsivällinen. Katsotaanpa peruskomentoja.

Näytä kaikki säännöt:

Saatat huomata, että Netfilterillä on joitain "ketjuja" - ainakin INPUT, OUTPUT ja FORWARD.

Minulla on henkilökohtaisesti myös DOCKER-ketju koneessani. Ensimmäistä kertaa voit ajatella kahta ensimmäistä kaikeksi saapuvaksi ja lähteväksi liikenteeksi ja unohtaa tilapäisesti loput. Mahdollisuudet ovat hyvät, ettet koskaan tarvitse niitä ollenkaan.

Poista kaikki säännöt:

Muuta ketjun käytäntöä (oletuskäyttäytymistä):

iptables -P INPUT DROP
iptables -P INPUT ACCEPT

Estä pääsy isännältä/aliverkosta:

iptables -A INPUT -s 123.45.67.89 -j DROP
iptables -A INPUT -s 123.45.0.0/16-j DROP

Voit myös käyttää verkkotunnuksia:

iptables -A INPUT -s example.ru -j DROP

Lähtevien yhteyksien kielto:

iptables -A OUTPUT -d 123.45.67.89 -j DROP

Voit käyttää negaatioita säännöissä:

iptables -A INPUT !-s 123.45.67.89 -j DROP

Säännön poistaminen sen numerolla ketjussa:

iptables -D TULO 1

Säännön poistaminen sen perusteella, mitä se tekee:

iptables -D INPUT -s 123.45.67.89 -j DROP

Vaihtoehto -p määrittää protokollan. Voit käyttää kaikkia, icmp, tcp, udp tai protokollanumeroa hakemistosta /etc/protocols. Lippu --sport määrittää portin, josta paketti lähetettiin, ja lippu --dport määrittää kohdeportin:

iptables -A INPUT -p tcp -sport80-j HYVÄKSY
iptables -A INPUT -p tcp --dport80-j HYVÄKSY

Säännön lisääminen ketjun alkuun:

iptables - Syötän...

Tai voit määrittää tietyn sijainnin:

iptables-save >/etc/iptables.rules

Palauta säännöt:

iptables-restore

Katsotaanpa nyt joitain käytännön esimerkkejä. Esimerkiksi netsplit-emulointi näyttää tältä testissä, joka tarkistaa Akka Clusteria käyttävän sovelluksen toiminnan:

suorita(solmu1, s"iptables -A INPUT -s $solmu2 -j DROP")
suorita(solmu1, s"iptables -A INPUT -s $solmu3 -j DROP")
suorita(solmu1, s"iptables -A OUTPUT -d $solmu2 -j DROP")
suorita(solmu1, s"iptables -A OUTPUT -d $solmu3 -j DROP")

Palauttaminen tapahtuu täsmälleen samalla tavalla, vain -A-lippu korvataan -D-lipulla.

Toinen esimerkki. Sinun on selvitettävä, mitkä portit koneessa kuuntelevat ja suljettava tarpeettomat. Menemme autoon ja sanomme:

Esimerkkituloste:

Aktiiviset Internet-yhteydet (vain palvelimet)
Proto Recv-Q Send-Q Paikallinen osoite Ulkomainen osoite Tila PID/Prog name
tcp 0 0 0.0.0.0:80 0.0.0.0:* KUULU 3210/nginx
tcp 0 0 0.0.0.0:4369 0.0.0.0:* KUULU 1789/epmd
tcp 0 0 0.0.0.0:22 0.0.0.0:* KUUNTELU 797/sshd
tcp 0 0 127.0.0.1:5432 0.0.0.0:* KUUNTELU 990/postgres

Nginx ja SSHd katsovat Internetiä, tämä on normaalia. PostgreSQL kuuntelee vain paikallista käyttöliittymää, joten siinäkään ei ole ongelmia. Mutta epmd jää ulos (voit tarkistaa sen telnetillä toiselta koneelta), ja tämä ei ole hyvä. Voit sulkea vain portin 4369. Kuinka tämä tehdään, näytettiin yllä. Tai voit mennä vielä pidemmälle ja estää kaikki yhteydet ulkopuolelta porttiin 81 tai vanhempiin:

iptables -A INPUT -m moniportti \
-p tcp --dports81:65535!-s 127.0.0.0/8-j DROP

Tämä käyttää moniporttista laajennusta, jonka avulla voit määrittää porttialueet.

Tarkistetaan, että kaikki toimii. Jos OK, tallenna säännöt:

iptables-save >/etc/iptables.rules

Jotta säännöt poimitaan järjestelmän käynnistyessä, luomme uusi tiedosto/etc/network/if-pre-up.d/iptables:

iptables-restoreexit0

...ja me sanomme:

chmod +x /etc/network/if-pre-up.d/iptables

Tämä menetelmä on testattu toimivaksi Ubuntu 14.04 LTS:ssä.

Sen pitäisi toimia myös Debianissa. Löydät kuvauksen vaihtoehtoisesta tavasta palauttaa palomuurisäännöt järjestelmän käynnistyksen yhteydessä jo mainitussa OpenVPN-huomautuksessa.

Lisämateriaalia niille, jotka haluavat tietää enemmän Netfilteristä:

Kuinka asetat palomuurit palvelimille?

Tunnisteet: Linux, tietoturva, verkot.

iptables-komentorivityökalua käytetään Linux-ydinpohjaiseen järjestelmään sisäänrakennetun netfilter-palomuurin määrittämiseen.

Tämä ohje sopii sekä nukkeille, jotka haluavat ymmärtää verkkoturvallisuuden näkökohtia, että kokeneille ammattilaisille huijauslehtinä.

Asetusperiaate

Yleinen syntaksi iptablesin käytölle on:

iptables -t<таблица> <команда> <цепочка>[määrä]<условие> <действие>

<таблица>

netfilter-säännöt on jaettu 4 taulukkoon, joilla jokaisella on oma tarkoitus (lisätietoja alla). Se määritetään kytkimellä -t, mutta jos tätä parametria ei ole määritetty, toiminto suoritetaan oletustaulukolle - suodattimelle.

<команда>

Komennot osoittavat, millaisia ​​toimia suoritamme netfilterille, esimerkiksi luomme tai poistamme säännön.

<цепочка>

Jokaisessa taulukossa on ketjuja, joille jokaiselle luodaan itse säännöt. Esimerkiksi yllä olevassa suodatintaulukossa on kolme ennalta määritettyä ketjua - INPUT (saapuvat paketit), OUTPUT (lähtevät paketit) ja FORWARD (siirtopaketit).

[määrä]

Jotkut komennot edellyttävät säännön numeron määrittämistä, esimerkiksi poistamista tai muokkaamista varten.

<условие>

Ehto kuvaa kriteerit tietyn säännön laatimiseksi.

<действие>

No, itse asiassa, mitä teemme paketille, jos se täyttää ehdon kriteerit?

* Rehellisyyden nimissä on syytä huomata, että toimintoavaimen ei tarvitse olla lopussa. Se vain, että tämä muoto löytyy useimmiten ohjeista ja tekee säännöistä helpompia lukea.

iptables-avaimet ja esimerkkejä niiden käytöstä

Työskentely taulukoiden kanssa (iptables -t)

Haluan muistuttaa, että kaikki netfilterin säännöt on jaettu taulukoihin. Jos haluat työskennellä tietyn taulukon kanssa, sinun on käytettävä -t-kytkintä.

Joukkueet

Seuraavat näppäimet määrittävät iptables-apuohjelman suorittamat toimet.

Avain Kuvaus ja esimerkkejä
-A Säännön lisääminen luettelon loppuun:
iptables -A INPUT -s 192.168.0.15 -j DROP
kieltää saapuvat viestit osoitteesta 192.168.0.15.
-D Säännön poistaminen:
iptables -D INPUT 10
poista sääntö INPUT-ketjusta numerolla 10.
-Minä Säännön lisääminen luettelon tiettyyn osaan:
iptables -I INPUT 5 -s 192.168.0.15 -j DROP
lisää sääntö 5 luetteloon.
-R Korvaa säännön.
iptables -R OUTPUT 5 -s 192.168.0.15 -j HYVÄKSY
korvaa viidennen sääntömme kieltävästä sallivaksi.
-F Sääntöjen nollaus ketjussa.
iptables -F INPUT
-Z Tilastojen nollaus.
iptables -Z INPUT
-N Ketjun luominen.
iptables -N CHAINNEW
-X Ketjun poistaminen.
iptables -X CHAINNEW
-P Määritä oletussääntö.
iptables -P INPUT DROP
-E Nimeä ketju uudelleen.
iptables -E CHAINNEW CHAINOLD

Ehdot

Nämä avaimet määrittelevät säännön ehdot.

Avain Kuvaus ja esimerkkejä
-s Verkkoprotokolla. Kelvolliset vaihtoehdot ovat TCP, UDP, ICMP tai ALL.
iptables -A INPUT -p tcp -j HYVÄKSY
sallia kaikki saapuvat tcp-yhteydet.
-s Lähdeosoite - isäntänimi, IP-osoite tai aliverkko CIDR-merkinnällä.
iptables -A INPUT -s 192.168.0.50 -j DROP
kieltää saapuvat viestit solmusta 192.168.0.50
-d Kohdeosoite. Käyttöperiaate on samanlainen kuin edellisessä avaimessa -s.
iptables -A OUTPUT -d 192.168.0.50 -j DROP
estä lähtevä solmu 192.168.0.50
-i Verkkosovitin, jonka kautta paketit saapuvat (INPUT).
iptables -A INPUT -i eth2 -j DROP
poista saapuva liikenne Ethernet-liitännän eth2:lle.
-o Verkkosovitin, josta paketit lähetetään (OUTPUT).
iptables -A OUTPUT -o eth3 -j HYVÄKSY
Salli lähtevät viestit eth3 Ethernet -liitännästä.
--dport Määräsatama.
iptables -A INPUT -p tcp -dport 80 -j HYVÄKSY
Salli saapuvat puhelut portista 80.
--urheilu Lähdeportti.
iptables -A INPUT -p tcp -sport 1023 -j DROP
estävät saapuvat viestit portista 1023.

Listatut avaimet tukevat myös rakentamista merkin avulla ! .

Netfilterin asettaminen iptablesilla

Se kääntää ehdon, esim.
iptables -A INPUT -s ! 192.168.0.50 -j DROP
estää yhteyden kaikilta isänniltä paitsi 192.168.0.50.

Toiminnot

Toiminnot, jotka suoritetaan ehdon kriteerit vastaavalle paketille. Jokaisella taulukolla on omat sallitut toiminnot. Määritetty avaimella -j.

Taulukko Toiminta Kuvaus
suodattaa HYVÄKSYÄ Sallii paketin.
PUDOTA Kieltää paketin.
HYLÄTÄ Estää viestin lähettämisen lähteelle.
nat NAAMIAISET Lähteville paketeille korvaa lähteen IP-osoitteen sen rajapinnan osoitteella, josta paketti lähtee.
SNAT Samanlainen kuin MASQUERADE, mutta osoittaa tietyn verkkoliitännän, jonka osoitetta käytetään huijaukseen.
DNAT Saapuvien pakettien osoitteen korvaaminen.
OHJAUS Ohjaa pyynnön toiseen porttiin samassa järjestelmässä.
mankeli T.O.S. TOS-kentän muutos (liikenteen priorisointi).
DSCP DSCP:n muuttaminen (myös liikenteen priorisointi).
TTL Muuta TTL (paketin käyttöikä).
H.L. Samanlainen kuin TTL, mutta IPv6:lle.
MARK Pakkauksen merkintä. Käytetään myöhempään suodatukseen tai muotoiluun.
CONNMARK Liitäntämerkintä.
TCPMSS MTU-arvon muuttaminen.

Esimerkkejä yleisesti käytetyistä iptables-komennoista

Yleiset käskyt

Katso säännöt numeroineen:

iptables -L --rivinumerot

Jokaisen taulukon sääntöjä on tarkasteltava erikseen:

iptables -t nat -L --rivinumerot

Poista kaikki säännöt:

Aseta oletussäännöt:

iptables -P INPUT DROP

iptables -P OUTPUT DROP

* Näissä esimerkeissä estosääntö (DROP) toimii oletusarvoisesti kaikille saapuville (INPUT) ja lähteville (OUTPUT) paketeille.

Salli kaikki

Tapa 1: Lisäämällä säännön:

iptables -I INPUT 1 -j HYVÄKSY

iptables -I OUTPUT 1 -j HYVÄKSY

iptables -I EDELLEEN 1 -j HYVÄKSY

* nämä kolme komentoa luovat säännöt, jotka sallivat kaikki saapuvat, lähtevät ja siirtopaketit.

Menetelmä 2. Sääntöjen puhdistaminen:

* Tässä poistamme ensin kaikki säännöt (-F) ja asetamme sitten oletuskäytännön sallimaan saapuvat, lähtevät ja kuljetukset (-S).

Tapa 3. Palvelun poistaminen käytöstä (on kätevää poistaa palomuuri tilapäisesti käytöstä ongelmien diagnosoimiseksi):

Työskentely sääntöjen kanssa

Lisää sääntö luettelon loppuun:

iptables -A INPUT -p tcp -dport 25 -j HYVÄKSY

iptables -A INPUT -p tcp -s ! 192.168.0.25 —dport 993 -i eth0 -j HYVÄKSY

Lisää porttialue:

iptables -A INPUT -p tcp -dport 3000:4000 -j HYVÄKSY

* tässä tapauksessa 3000 - 4000.

Lisää sääntö:

iptables -I EDELLEEN 15 -p udp -d 8.8.8.8 --dport 53 -i eth1 -j HYVÄKSY

Portin edelleenlähetys

Konfigurointimenetelmiä on kaksi.

1. ESITTELY + POSTROUTING säännöt:

iptables -t nat -A PREROUTING -p tcp -m tcp -d 19.8.232.80 -dport 22 -j DNAT -määräpaikkaan 192.168.1.15:2222

iptables -t nat -A POSTROUTING -p tcp -m tcp -s 192.168.1.15 -sport 2222 -j SNAT -lähteeseen 19.8.232.80:22

* Missä 19.8.232.80 — osoite, jossa kuuntelemme yhteyspyyntöjä; 22 — edelleenlähetysportti; 192.168.1.15 2222 - sisäinen portti.

2. ESITTELY + ETEENPÄIN säännöt:

iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 22 -j DNAT --päähän 192.168.1.15:2222

iptables -A ETEENPÄIN -p tcp -d 192.168.1.15 -dport 22 -m tila -tila UUSI, PERUSTETTU, LIITTYVÄ -j HYVÄKSY

* Missä eth1— verkkoliitäntä, jolla kuuntelemme pyyntöjä; 22 — edelleenlähetysportti; 192.168.1.15 — sisäinen IP-osoite, johon siirrämme kaikki pyynnöt; 2222 - sisäinen portti.

Aloitetaan asennus

Salli SSH:

iptables -A INPUT -p tcp -dport 22 -j HYVÄKSY

Asetamme käytännön kieltämään saapuvat viestit ja sallimaan kaikki lähtevät viestit:

iptables -P OUTPUT ACCEPT

Luomme säännön apt-get:n normaalille toiminnalle:

iptables -A INPUT -p tcp -urheilu 80 -m tila -tila PERUSTETTU -j HYVÄKSY

Salli ICMP (suorittaa ping-komento):

iptables -A INPUT -p icmp -j HYVÄKSY

Tallennussäännöt (pysyvä)

Oletusarvoisesti kaikki säännöt lakkaavat toimimasta, kun verkko tai tietokone käynnistetään uudelleen. Sääntöjen tallentamiseen uudelleenkäynnistyksen jälkeen on useita määritysmenetelmiä.

Menetelmä 1. iptables-save

Tallenna säännöt tiedostoon:

iptables-save > /etc/iptables.rules

Avaa verkkoasetukset:

vi /etc/network/interfaces

ja lisää rivi:

valmiiksi iptables-restore< /etc/iptables.rules

Tapa 2: iptables-persistent

Asenna paketti iptables-persistent:

apt install iptables-persistent

Tallenna säännöt antamalla komento:

palvelu iptables-persistent save

Menetelmä 3. service iptables

Toimii vanhemmissa Linux-versioissa:

Tapa 4: iptables.init

Toimii CentOS:ssä:

/usr/libexec/iptables/iptables.init tallenna

Ubuntu ja CentOS

Nykyaikaisissa leikkaussaleissa Ubuntu järjestelmät ja CentOS:ssä ei ole oletuksena iptablesia.

Sinun on asennettava se tai käytettävä uudempia apuohjelmia.

CentOS:ssä

Kuten säännöllinen ohjelma palomuurihallinta käyttää palomuuri-cmd:tä. Saat lisätietoja lukemalla ohjeet palomuurin määrittämisestä CentOS:ssä.

Jos haluat käyttää iptablesia, asenna paketti apuohjelmalla:

yum asentaa iptables-services

Poista palomuuri käytöstä:

systemctl pysäyttää palomuuri

systemctl poista palomuuri käytöstä

Salli ja käynnistä iptables:

systemctl salli iptables

Ubuntussa

Palomuurin hallinta käyttää nyt ufw:tä.

Työskentele iptablesin kanssa asentamalla seuraavan paketin:

apt-get install iptables-persistent

Poista ufw käytöstä:

# Verkot# Suojaus# UNIX# Ubuntu# Linux

Oliko tästä ohjeesta apua?

"TULIMUURIN" TAKANA:
PALOMUURI (PALOMUURI) JA PORTTI INTERNETTIIN
DEBIAN GNU/LINUX 4.0 ETCH:ssa

Käytännön opas suojatun Internet-yhteyden järjestämiseen
erilliseltä tietokoneelta ja siitä paikallinen verkko Debian GNU/Linux versiossa 4.0 Etch
Vähän teoriaa

Jokainen pääsy Internetiin ei vain mahdollista yhteyden muodostamista useisiin palvelimiin ja sivustoihin, vaan se myös luo mahdollisen vaaran päästä tietokoneeseemme ulkopuolelta. Tätä vaaraa ei pidä laiminlyödä, sillä tällä hetkellä useimmat yritykset päästä käyttäjien tietokoneisiin Internetistä ovat osa hyvin organisoitua rikollista liiketoimintaa. Kun järjestelmäsi on hakkeroitu onnistuneesti, he yrittävät käyttää tietokonettasi joko roskapostin tai roskapostin lähettämiseen DoS-organisaatiot hyökkäyksiä muihin tietokoneisiin tai muihin ilkeisiin tarkoituksiin. Tämän vaaran huomiotta jättäminen paras tapaus lisää liikennekustannuksia ja hidastaa pahimmillaan tietokonettasi, se voi tahattomasti osallistua verkkoryhmien rikolliseen toimintaan.

Tilannetta pahentaa se, että joissakin (vielä) laajalle levinneissä käyttöjärjestelmissä monet portit jäävät oletusarvoisesti auki, jolloin Internetistä tuleva hyökkääjä voi muodostaa yhteyden käyttäjään tämän huomaamatta.

Estä luvattomat yhteydet ulkopuolelta ja suodattaa sisään tuleva/lähtevä liikenne käyttöjärjestelmä on käytettävä erikoisohjelmaa - palomuuri(Englannin palomuuri), joka tunnetaan myös nimellä palomuuri Ja palomuuri. Kuvattu alla helppo asennus palomuuri ilmaisessa käyttöjärjestelmässä Debian GNU/Linux 4.0.

Palomuurin käyttö tulee erityisen tärkeäksi, jos sinulla on useampi kuin yksi tietokone, mutta koti- tai toimistoverkko, jonka tietokoneet käyttävät Internetiä.

Pienikin paikallinen verkko on järjestettävä kunnolla. Oletetaan, että sinulla on nopea Internet-yhteyspiste (esimerkiksi ADSL-modeemi), jossa on Ethernet (eli verkko) -liitäntä.

On olemassa kiusaus (lukutaidottomat suositukset, kuten ADSL-modeemini ohjeissa) kytkeä modeemi suoraan kytkimeen ja sitten kytkimeen. Kaikki paikallisverkon tietokoneet. Tässä tapauksessa modeemi antaa dynaamisesti ongelmia kytkimen kautta paikalliset IP-osoitteet, mutta käy ilmi, että jokainen tietokone on jätetty yksin Internetin kanssa! Modeemi tai kytkin eivät voi olla este pahantahtoiselle. Hyökkääjä voi skannata Kaikki tällä tavalla järjestetyn paikallisverkon tietokoneita.

Looginen ja turvallinen ratkaisu on luoda este modeemin ja paikallisverkon välillä - erillisen tietokoneen muodossa, johon on määritetty "palomuuri" (palomuuri). Tässä tietokoneessa on kaksi liitäntää - toisella se "katsoi" Internetiä (eli on fyysisesti yhteydessä modeemiin), toisella se on päin paikallisverkkoa (ja on fyysisesti kytketty kytkimeen, johon myös muut tietokoneet ovat yhteydessä). kytketty). Koska palomuurilla varustettu tietokoneemme on nyt keskitin, jossa muut tietokoneet voivat käyttää Internetiä, sitä kutsutaan myös nimellä yhdyskäytävä(englanninkielinen yhdyskäytävä).

Tällaisella paikallisverkon organisaatiolla hakkeroinnin todennäköisyys pienenee merkittävästi - hyökkääjä "näkee" vain yhdyskäytävän Internetistä, ja yhdyskäytävään on asennettu palomuuri, eikä sitä ole helppo hakkeroida.

Iptablesin asettaminen Linuxille tutteja varten

Paikallisverkon tietokoneet voivat surffata Internetissä ja pysyä suhteellisen turvassa.

Palomuurin määrittäminen arno-iptables-firewall-konfiguraattorilla

Palomuurin järjestäminen GNU/Linux ohjelmaa käytetään iptables, joka yleensä asennetaan heti useimpien jakelujen asennuksen yhteydessä. IN Debian GNU/Linux Voit tarkistaa tämän suorittamalla sen järjestelmänvalvojan oikeuksilla soveltuvuus. Tarvittaessa asennamme iptables.

Kuitenkin manuaalinen konfigurointi iptables on ei-triviaali tehtävä, ja sen voivat tehdä vain alan asiantuntijat järjestelmän hallinta. Siksi palomuurin toiminnan sääntöjen määrittämiseksi on parempi käyttää erityinen konfiguraattori. IN Debian GNU/Linux tämä on ohjelma arno-iptables-palomuuri. Käynnistyksen jälkeen se kysyy joukon kysymyksiä, joiden perusteella se luo sääntöjä palomuurin toiminnalle iptables.

Kirjoita pääkäyttäjän oikeuksilla varustettuun konsoliin:

#aptitude asenna arno-iptables-firewall

Asennuksen alussa ohjelma kysyy, haluammeko todella määrittää palomuurin sen avulla. iptables:

Ensin sinun on määritettävä ulkoinen käyttöliittymä - "katsominen" Internetiin, ts. kytketty modeemiin. Liitäntäasetukset määritetään asetustiedostossa /etc/network/interfaces. Se voi näyttää esimerkiksi tältä:

# Tämä on lo-käyttöliittymä - osoittaa itse koneemme. auto lo iface lo inet loopback address 127.0.0.1 netmask 255.0.0.0 # Tämä on eth0-liitäntä, joka on yhteydessä Internetiin (ADSL-modeemi) # Sen erikoisuus on, että palveluntarjoaja määrittää sille IP-osoitteen dynaamisesti, # siksi se on asetettu dhcp vaihtoehto auto eth0 iface eth0 inet dhcp # Tämä on paikallisverkkoon päin oleva liitäntä # Paikallisen verkon osoite on 192.168.2.0/24 # Paikallisverkon turvallisuussyistä yhdyskäytävällä on staattinen IP-osoite- 192.168.2.1, # siksi staattinen vaihtoehto on asetettu # Verkkomaski - 255.255.255.0 # Verkon lähetysosoite on tässä tapauksessa 192.168.2.255 auto eth1 iface eth1 inet staattinen osoite 192.168.2.1 staattinen osoite 192.168.2.1 net.2.5 broadcast.9 broadcast.5 6255 net. .2.2 55

Eli katsotaan asetuksia /etc/network/interfaces, osoitamme palomuurin konfiguraattorille, että käyttöliittymämme on ulkoinen eth0:

Kysymykseen, annetaanko meille IP-osoite palveluntarjoajalta dynaamisesti(Käyttäen DHCP-protokollaa), vastaamme myöntävästi:

Seuraava kysymys on, mitä palveluita tietokoneeltamme tarjotaan ulkoisia käyttäjiä Internet. Meillä ei ole yhtään! Emme harjoita ammattimaista web-hosting-palvelua, emmekä aio jakaa tietoa ulkopuolisille. Jätämme rivin tyhjäksi.

Sitten on kysymys siitä, tarjoammeko palveluita UDP:n kautta. Ei myöskään - ja jätämme myös rivin tyhjäksi!

Tarvitseeko meidät pingata ulkomaailmasta (eli tarkistaa, onko yhteys tietokoneeseen, johon palomuuri on asennettu)? Meidän tapauksessamme tämä on varsin hyväksyttävää:

Tämä viimeistelee erillisen tietokoneen asennuksen, joka ei ole paikallisen verkon yhdyskäytävä. Jos aiomme käyttää tietokonetta yhdyskäytävänä, meidän on vastattava vielä muutamaan kysymykseen. Osoitamme rajapinnan, jolla yhdyskäytävä on kohti paikallisverkkoa - meidän tapauksessamme se on eth1, kuten on selvää /etc/network/interfaces(muuten, jos tietokone on "yksinäinen", jätä tämä kenttä tyhjäksi):

Kun kysyttiin, sallitaanko NAT-käännös, ts. ohjaamalla liikennettä Internetistä yhdyskäytävän kautta paikalliseen verkkoon ja takaisin, vastaamme "kyllä" - tämä on yksi tärkeimmistä tehtävistämme tässä tapauksessa:

Sitten herää kysymys: mihin paikallisverkkosegmenttiin pääsee uudelleenohjauksen kautta ulkoisiin verkkoihin? Meillä on oikeus käyttää Internetiä kaikilla paikallisen verkon tietokoneilla; osoita arvo uudelleen 192.168.2.0/24

Lopuksi vahvistamme halumme käynnistää iptables ilman lisätarkastus puolestamme konfiguraattorin automaattisesti luoman palomuurin säännöt:

Tämän jälkeen, jos kaikki meni hyvin, näkyviin tulee alla olevan kaltainen viesti. Se tulee nyt näkyviin aina, kun yhdyskäytävätietokone käynnistyy ja ilmoittaa, että palomuuri on käynnistetty onnistuneesti:

Arno's Iptables Firewall Script v1.8.8c ———————————————————————————- Sanity checks läpäissyt…OK IPTABLES-moduuli havaittu…

Ladataan lisää IPTABLES-moduuleja: Kaikki IPTABLES-moduulit ladattu! Määritetään /proc/…. asetukset: Huijauksen eston ottaminen käyttöön rp_filterillä SYN-tulva-suojauksen käyttöönotto SYN-evästeiden avulla. Marsilaisten kirjaamisen estäminen ICMP-uudelleenohjausviestien hyväksymisen estäminen. samanaikaisten yhteyksien määrä 16384:ään Suojauksen ottaminen käyttöön lähdereititetyiltä paketeilta. Oletusyhteysaikakatkaisujen asettaminen DoS-kyvyn pienentämisen mahdollistaminen Asetus Oletusarvo TTL=64 ECN:n (Explicit Congestion Notification) poistaminen käytöstä Dynaamisten IP-osoitteiden tuen ottaminen käyttöön Tyhjennysreittitaulukko /proc/setup valmis… Tyhjennyssäännöt suodatintaulukossa Oletus (suojattujen) käytäntöjen asettaminen Lokitason "info" käyttö syslogdille Palomuurisääntöjen asettaminen: —————————————————————————— - Pakettien hyväksyminen paikallissilmukkalaitteesta Maksimipaketin koon asettaminen MSS:n kautta TOS:n muokkauksen salliminen Hiljaisten tarkistusten (nmap-luettimien jne.) kirjaaminen käytössä Pakettien kirjaus, joissa on huonot TCP-liput käytössä VIRHEELLISET pakettien kirjaus pois käytöstä Hajanaisten pakettien kirjaus käytössä. pääsy varatuista osoitteista käytössä Huijauksenestosääntöjen määrittäminen Mukautettujen IPTABLES-sääntöjen lukeminen tiedostosta /etc/arno-iptables-firewall/custom-rules Ladataan (käyttäjä) laajennuksia INPUT-käytännön määrittäminen ulkoiselle verkolle (INET): DHCP:n tuen ottaminen käyttöön osoitettu IP ulkoisissa liitännöissä: eth0 Eksplisiittisesti estettyjen isäntien kirjaus käytössä Estettyjen paikallisten lähtöyhteyksien kirjaaminen käytössä Paketeista EI tarkisteta yksityisiä lähdeosoitteita Sallitaan koko maailman lähettää ICMP-pyyntöjä (ping) Poistetun ICMP-pyynnön kirjaaminen (ping)-paketit käytössä Pudotettujen muiden ICMP-pakettien kirjaaminen käytössä Mahdollisten varkaiden tarkistusten kirjaaminen käytössä (muiden) yhteysyritysten kirjaaminen ERIKOISTUihin TCP-portteihin käytössä (muiden) yhteysyritysten kirjaaminen ERIKOISTUihin UDP-portteihin käytössä (muiden) yhteysyritysten kirjaaminen ERIKOIMATTOMAT TCP-portit käytössä Kirjaaminen (muiden) yhteysyritysten kirjaamiseen EI-PRIVILEGITTÄMÄTTÖMÄÄN UDP-portteihin käytössä Muiden IP-protokollien (ei TCP/UDP/ICMP) yhteysyritysten kirjaaminen käytössä ICMP-tulvien kirjaaminen käytössä INET-käytännön soveltaminen ulkoiseen (INET) rajapintaan: eth0 ( ilman määritetty ulkoinen aliverkko) INPUT-käytännön määrittäminen sisäisille (LAN) liitäntöille: eth1 ICMP-pyyntöjen salliminen (ping) Kaikkien (muiden) protokollien salliminen FORWARD-käytännön määrittäminen sisäiselle (LAN) liitännälle: eth1 estetty LAN->INET FORWARD yhteydet käytössä LAN->INET-käytännön määrittäminen: Sallitaan ICMP-pyynnöt (ping) Sallitaan kaikki (muut) protokollat ​​Sallitaan naamiointi (NAT) ulkoisten liitäntöjen kautta: eth0 Lisätään (sisäisiä) isäntiä : 192. 168.2.0/24 Suojaus on KÄYTETTY FORWARD-ketjun ulkoisille liitännöille 16. tammikuuta 23:53:12 Kaikkia palomuurisääntöjä sovelletaan.

Huomautus 1. Useimmissa tapauksissa palomuuri käynnistyy onnistuneesti ensimmäisen yhteydenoton jälkeen konfiguraattorin kanssa. Jos jokin ei toimi, on erittäin suositeltavaa toistaa määritykset suorittamalla konfiguraattori uudelleen pääkäyttäjän oikeuksilla:

# dpkg-määritä uudelleen arno-iptables-palomuuri

Tämä eliminoi satunnaiset virheet, joita voi syntyä, kun vastaat konfiguraattorin kysymyksiin ensimmäisen kokemuksesi aikana, kun olet kommunikoinut sen kanssa. Jos tämä ei auta, voit yrittää korjata sen manuaalisesti asetustiedosto ohjelmia arno-iptables-palomuuri, nimittäin: /etc/arno-iptables-firewall/firewall.conf. Voi olla hyödyllistä vierailla tämän ohjelman luojan kotisivulla osoitteessa: http://rocky.eld.leidenuniv.nl/. Se sisältää erittäin informatiivisen oppaan ohjelman kanssa työskentelyyn, mielenkiintoisia usein kysyttyjä kysymyksiä ja lisäksi tietoa ohjelman uusista versioista.

Huomautus 2. Emme saa unohtaa sitä ei yhtään Palomuuri ei voi antaa 100 %:n takuuta tietokoneesi toiminnan turvallisuudesta Internetissä. Palomuurisuojausta ei kuitenkaan voida jättää huomiotta. Meidän on tehtävä kaikki voitavamme voidaksemme sitten luottaa Jumalan armoon. "Ellei Herra varjele kaupunkia, vartija valvoo turhaan."(Ps. 127:1).

Artikkelin lähde

Kirjoitin blogikirjoituksen perusteista Iptablesin säännöt tuotantokäyttäjälle on kauan sitten, ja sinun pitäisi luultavasti lukea se ja siihen liittyvä artikkeli Stateful Firewallista.

Mutta ennen ydintä 2.6.39 (joka sisältää ja voit käyttää sitä IP-osoitteiden lisäämiseen sallittujen luetteloon, jos sinulla on enemmän kuin 10 sallittujen listalle (jossa 10 on mielivaltainen)).

Iptablesin asettaminen tutteja varten

Ensimmäinen kahvatila, jonka tiedämme haluavamme hyväksyä tai poistaa, ja rajapinnat.

Jos haluat vain sallia vain IP:n, ei tilaa

kohtaat todennäköisesti tähän liittyviä ongelmia, ja suosittelen ehdon käyttämistä elämäsi helpottamiseksi. Esimerkiksi ei ratkaise ja aiheuttaa varmasti ongelmia tietyille sovelluksille.

Iptables on ensisijaisesti vastuussa pakettien suodatuksesta. Iptablesin määrittäminen käsin on melko vaikea tehtävä. Älä odota selvittäväsi tätä "kiireessä". Onneksi on monia työkaluja, jotka voivat auttaa sinua, jos et ole vielä keksinyt iptablesia, mutta sinun on kiireesti suojattava järjestelmä: fwbuilder, firestarter, guarddog, arno palomuuri - tämä on käytännössä iptablesin käyttöliittymä. Ei ole selkeää vastausta kumpi on parempi. Valinta on sinun. Tämän päivän artikkeli on kuitenkin omistettu nimenomaan iptablesille ja jaettu kahteen osaan: teoriaan ja käytäntöön. Kärsimättömimmät voivat suorittaa käytännön osan välittömästi loppuun, vaikka tätä lähestymistapaa ei suositellakaan.

Huomio! Kaikki iptables-toiminnot suoritetaan etuoikeutetun käyttäjän puolesta!

Teoria

iptables-merkintämuoto iptables [-t-taulukko] [komento] [toiminto] Esimerkki: iptables -t-suodatin -A INPUT ACCEPT

Toiminnot

  • HYVÄKSY - Hyväksy paketti
  • DROP - Pudota paketti
  • DNAT - Muunna kohdeosoite
  • SNAT - Muuta lähtevän IP-osoite paketin otsikossa
  • LOG - Pakettien ja tapahtumien kirjaaminen
  • MARK - Aseta merkki pakkaukseen
  • MASQUERADE - Muuta lähtevän IP-osoitteen paketin otsikossa (ero SNAT:sta - työskentelee dynaamisten IP-osoitteiden kanssa)
  • QUEUE - Aseta paketti jonoon käsittelyä varten
  • REDIRECT - Ohjaa paketti/vuo toiseen porttiin
  • hylkää - Pudota paketti + ilmoita etäjärjestelmä siitä. että hänen pakettinsa hylättiin
  • RETURN - Pysäytä pakettia liikkumasta nykyistä ketjua pitkin ja palauta se kutsuvaan ketjuun

Joukkueet

  • -A - Lisää sääntö ketjuun
  • -D - Poista sääntö ketjusta
  • -R - Korvaa yksi sääntö toisella
  • -I - Lisää uusi sääntö
  • -L - Listaa olemassa olevat säännöt
  • -F - Nollaa säännöt
  • -Z - Nollaa laskurit tietyssä ketjussa
  • -N - Luo uusi ketju annetulla nimellä
  • -X - Poista ketju
  • -P - Aseta oletuskäytäntö valitulle ketjulle
  • -E - Nimeä käyttäjäketju uudelleen

Kriteerit (yleiset)

  • -p - Määritä protokollatyyppi
  • -s - pakettilähteen IP-osoite
  • -d - paketin vastaanottajan IP-osoite
  • -j - Määritä säännön toiminto
  • -i - Liitäntä, josta paketti vastaanotettiin
  • -o - Määritä lähtöliitännän nimi
  • -f - Levitä sääntö kaikkiin paketin osiin

TCP-kriteerit:

  • –tcp-flags - Määritä pakettimaski ja liput

UDP-kriteerit:

  • –sport – Portti, josta paketti lähetettiin
  • –dport - Portti, johon paketti on osoitettu

Tarkemmat tiedot man iptablesissa

Harjoitella

Näytä nykyinen kokoonpano

$ sudo iptables -L Chain INPUT (politiikan ACCEPT) kohde prot opt ​​lähteen kohde Ketju FORWARD (politiikka ACCEPT) kohde prot opt ​​lähde kohde Ketju OUTPUT (politiikka ACCEPT) kohde prot opt ​​lähteen kohde

Jos näet jotain tällaista, se tarkoittaa, että palomuuriasi ei ole vielä määritetty ja se sallii kaiken. Korjataan tilanne.

Oletuskäytännön asettaminen

  • iptables -P INPUT DROP - estää saapuvat paketit
  • iptables -P OUTPUT ACCEPT - sallii lähtevät paketit
  • iptables -P FORWARD DROP - toiselta koneelta palvelimelle saapuneiden ja jatkolähetystä odottavien pakettien käsittely. Esimerkissä se on estetty. Tässä tapauksessa sinun on lisättävä säännöt luotetuille koneille.

Koska saapuvat INPUT-paketit estetään, kirjoitamme seuraavan säännön:

$ sudo iptables -A INPUT -m tila --tila LIITTYVÄ, PERUSTETTU -j HYVÄKSY

Tämä mahdollistaa pakettien hyväksymisen aiemmin muodostetusta yhteydestä ja tämän yhteyden luomien uusien pakettien hyväksymisen.

Tai ilmoittamalla protokollatyypin:

$ sudo iptables -A INPUT -p TCP -m tila --tila PERUSTETU, LIITTYVÄ -j HYVÄKSY $ sudo iptables -A INPUT -p UDP -m tila --tila PERUSTUVA, LIITTYVÄ -j HYVÄKSY

Nyt paikallinen käyttöliittymä:

$ sudo iptables -A INPUT -i lo -j HYVÄKSY

  • UUSI - tiedot aloittavat uuden yhteyden.
  • ESTABLISHED - paketti, joka tulee jo muodostetusta yhteydestä.
  • LIITTYVÄ - uusi datapaketti, mutta vanhan muodostetun yhteyden luoma
  • VIRHEELLINEN - joten asia on selvä

$ sudo iptables-save > /etc/iptables.up.rules

Ota nämä säännöt käyttöön:

$sudo iptables-restore< /etc/iptables.up.rules

Ja katso ero:

$sudo iptables -L

Käynnistä iptables järjestelmän käynnistyksen yhteydessä:

Luo /etc/init.d-hakemistoon tiedosto nimeltä iptables

$ sudo touch /etc/init.d/iptables

Kirjoitamme siihen seuraavat:

#!/bin/sh /sbin/iptables-restore< /etc/iptables.up.rules

Iptables-tiedoston tekeminen suoritettavaksi:

$ sudo chmod +x /etc/init.d/iptables

Lisää se automaattiseen käynnistykseen

$ sudo update-rc.d -n iptablesin oletusasetukset

Käynnistä iptables, kun olet yhteydessä verkkoon:

$ sudo echo "#! /sbin/iptables-restore" > /etc/network/if-up.d/iptables.up.rules $ sudo iptables-save >> /etc/network/if-up.d/iptables. up.rules $ sudo chmod +x /etc/network/if-up.d/iptables.up.rules

Huomautus: Voit milloin tahansa tarkistaa, ovatko säännöt latautuneet kirjoittamalla iptables-save pääkäyttäjänä

Archlinuxissa iptables-sääntöjen tallentaminen tapahtuu komennolla:

$ sudo rc.d tallenna iptables