Ero sivun ”Iptables” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p
ei muokkausyhteenvetoa
p (finglish suomeksi) |
pEi muokkausyhteenvetoa |
||
Rivi 1: | Rivi 1: | ||
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}} | {{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}} | ||
'''iptables'''-työkalulla säädetään Linuxin [[Kernel|ytimessä]] olevaa [[Netfilter]]-pakettisuodatinta. Sen avulla voidaan toteuttaa esimerkiksi [[Palomuuri|palomuureja]] ja | '''iptables'''-työkalulla säädetään Linuxin [[Kernel|ytimessä]] olevaa [[Netfilter]]-pakettisuodatinta. Sen avulla voidaan toteuttaa esimerkiksi [[Palomuuri|palomuureja]] ja | ||
[[wikipedia:fi:reititin|reitittimiä.]] | [[wikipedia:fi:reititin|reitittimiä.]] iptables on ollut mukana ytimessä versiosta 2.4-alkaen. [[NFTables]] on korvaamassa ytimen 3.19 versiosta alkaen. | ||
== Peruskäsitteitä == | == Peruskäsitteitä == | ||
Rivi 13: | Rivi 13: | ||
== Yksinkertainen palomuuri == | == Yksinkertainen palomuuri == | ||
iptablesin oletuksena käsittelemässä filter-taulussa on kolme sisäänrakennettua ketjua, INPUT, FORWARD ja OUTPUT. Kun ulkomaailmasta saapuu palvelimelle paketti, siihen sovelletaan INPUT-ketjussa olevia sääntöjä. Vastaavasti jos palvelimelta lähtee ulospäin paketti, siihen sovelletaan OUTPUT-ketjussa olevia sääntöjä. FORWARD-ketjun sääntöjä sovelletaan siinä tapauksessa, että paketti saapuu palvelimelle ulkoa päin, mutta sen lopullinen kohde on jokin toinen palvelin, eli paketti on vain kauttakulkumatkalla. | |||
Jos siis halutaan vaikkapa estää palvelimelle tuleva liikenne tietystä IP-osoitteesta, täytyy lisätä uusi sääntö INPUT-ketjuun. Samoin jos halutaan estää palvelimelta yhteydet ulospäin tiettyihin portteihin, täytyy lisätä yksi tai useampi sääntö OUTPUT-ketjuun. | Jos siis halutaan vaikkapa estää palvelimelle tuleva liikenne tietystä IP-osoitteesta, täytyy lisätä uusi sääntö INPUT-ketjuun. Samoin jos halutaan estää palvelimelta yhteydet ulospäin tiettyihin portteihin, täytyy lisätä yksi tai useampi sääntö OUTPUT-ketjuun. | ||
Rivi 60: | Rivi 60: | ||
Palomuuri perustuu siihen, että tietyt paketit (tieto liikkuu Internetissä paketteina) pääsevät palomuurin läpi ja tietyt estetään. Näitä esto- ja päästösääntöjä säädetään iptablesilla. | Palomuuri perustuu siihen, että tietyt paketit (tieto liikkuu Internetissä paketteina) pääsevät palomuurin läpi ja tietyt estetään. Näitä esto- ja päästösääntöjä säädetään iptablesilla. | ||
iptablesin kanssa paketit jaetaan viiteen luokkaan: INPUT, OUTPUT, FORWARD, PREROUTING ja POSTROUTING. OUTPUT-tyyppiset paketit ovat paketteja jotka lähtevät koneeltasi Internettiin - esimerkiksi ladatessasi tämän sivun lähetit wikin palvelimelle paketin, jossa pyysit tätä sivua. Kun palvelin sitten vastaa pyyntöösi lähettäen tätä sivua paketteina, ne tulevat INPUT-tyyppisinä. FORWARD-tyyppiset paketit ovat paketteja, jotka vastaanotetaan toisesta verkosta ja lähetetään toiseen (yleensä Internetistä lähiverkkoon tai päinvastoin). | |||
Vielä yksi perusasia ennen kuin lähdemme säätelemään palomuuriamme: tehtyäsi asetukset ne eivät tallennu mihinkään, vaan seuraavan uudelleenkäynnistyken jälkeen asetukset palautuvat alkuperäisiksi. Tallentaminen onnistuu komennoilla <tt>iptables-save</tt> ja <tt>iptables-restore</tt> joista lisää myöhemmin. | Vielä yksi perusasia ennen kuin lähdemme säätelemään palomuuriamme: tehtyäsi asetukset ne eivät tallennu mihinkään, vaan seuraavan uudelleenkäynnistyken jälkeen asetukset palautuvat alkuperäisiksi. Tallentaminen onnistuu komennoilla <tt>iptables-save</tt> ja <tt>iptables-restore</tt> joista lisää myöhemmin. | ||
Rivi 82: | Rivi 82: | ||
=== Tarkempaa rajoittamista === | === Tarkempaa rajoittamista === | ||
Edellä estimme kaikki mahdolliset paketit tiettyyn osoitteeseen. | Edellä estimme kaikki mahdolliset paketit tiettyyn osoitteeseen. iptables tarjoaa kuitenkin mahdollisuuden käyttää tarkempia rajoituksia. Esimerkiksi seuraavassa estäisimme kaiken saapuvan [[SSH]]-liikenteen osoitteesta 123.456.789.123 (porttiin 22 kohdistuvan [[TCP]]-protokollaa käyttävän liikenteen). | ||
iptables -A INPUT -s 123.456.789.123 -p tcp --dport 22 -j DROP | iptables -A INPUT -s 123.456.789.123 -p tcp --dport 22 -j DROP | ||
Huomaa uudet valitsimet -p (protokolla) ja --dport (kohdeportti, <i>destination port</i>, voi olla myös alue muodossa alku:loppu). | Huomaa uudet valitsimet -p (protokolla) ja --dport (kohdeportti, <i>destination port</i>, voi olla myös alue muodossa alku:loppu). iptables ymmärtää myös portin numeron sijasta protokollien nimiä, esimerkiksi ssh (portti 22) tai http (80). | ||
=== SYN-paketit === | === SYN-paketit === | ||
Rivi 94: | Rivi 94: | ||
== Asetusten tallentaminen ja palauttaminen == | == Asetusten tallentaminen ja palauttaminen == | ||
iptablesin senhetkiset asetukset saa ulos ajamalla pääkäyttäjänä komennon | |||
iptables-save | iptables-save | ||
, joka tulostaa nykyiset asetukset (käytännössä normaaleita iptables-komentoja ilman iptables-alkuosaa). Toimivat asetukset kannattaakin [[Komentorivin perusteet#putkitus|tallentaa]] tiedostoon: | , joka tulostaa nykyiset asetukset (käytännössä normaaleita iptables-komentoja ilman iptables-alkuosaa). Toimivat asetukset kannattaakin [[Komentorivin perusteet#putkitus|tallentaa]] tiedostoon: |