Ero sivun ”Iptables” versioiden välillä
(vähän lisää) |
Ei muokkausyhteenvetoa |
||
Rivi 7: | Rivi 7: | ||
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. Tämä voidaan estää tallentamalla asetukset komennolla <tt>/sbin/iptables-save.</tt> Tallennetut asetukset palautetaan komennolla <tt>/sbin/iptables-restore</tt>. | 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. Tämä voidaan estää tallentamalla asetukset komennolla <tt>/sbin/iptables-save.</tt> Tallennetut asetukset palautetaan komennolla <tt>/sbin/iptables-restore</tt>. | ||
=== Pakettien estäminen === | === Pakettien estäminen === | ||
Tietystä osoitteesta tulevia paketteja voidaan estää iptables-komennoilla joiden syntaksi on seuraavanlainen: | Tietystä osoitteesta tulevia paketteja voidaan estää iptables-komennoilla joiden syntaksi on seuraavanlainen: | ||
Rivi 23: | Rivi 23: | ||
iptables -A INPUT -s 123.456.789.123 -p tcp –destination-port 22 -j DROP | iptables -A INPUT -s 123.456.789.123 -p tcp –destination-port 22 -j DROP | ||
Huomaa uudet valitsimet -p (protokolla) ja -destination-port (kohdeportti). Iptables ymmärtää myös portin numeron sijasta protokollien nimiä, esimerkiksi ssh (portti 22) tai http (80). | Huomaa uudet valitsimet -p (protokolla) ja -destination-port (kohdeportti). Iptables ymmärtää myös portin numeron sijasta protokollien nimiä, esimerkiksi ssh (portti 22) tai http (80). | ||
== Pikamuuri == | |||
Tässä ohjeet yksinkertaisen palomuurin pystyttämiseen, joka suojaa konetta riittävästi normaalissä käytössä: | |||
Ensin säädetään perusasetukset: kaikki sisään tuleva estetään ja ulos menevä sallitaan | |||
iptables -P INPUT DROP | |||
iptables -P FORWARD DROP | |||
iptasles -P OUTPUT ACCEPT | |||
Seuraavaksi sallitaan loopback-liikenne | |||
iptables -A INPUT -i lo -j ACCEPT | |||
Estetään liikenne private-portteihin | |||
iptables -A INPUT -p tcp --dport 0:1023 -j DROP | |||
iptables -A INPUT -p udp --dport 0:1023 -j DROP | |||
Estetään SYN-paketit ja ICMP-liikenne | |||
iptables -A INPUT -p tcp --syn -j DROP | |||
iptables -A INPUT -p icmp -j DROP | |||
Sallitaan kaikki "takaisin palaava" liikenne | |||
iptables -A INPUT -p TCP -m state --state RELATED,ESTABLISHED -j ACCEPT | |||
iptables -A INPUT -p UDP -m state --state RELATED,ESTABLISHED -j ACCEPT | |||
Lopuksi estetään loput | |||
iptables -A INPUT -j DROP | |||
== Katso myös == | == Katso myös == |
Versio 18. toukokuuta 2006 kello 18.10
Iptables-työkalulla säädetään Linuxin ytimessä olevaa Netfilter-pakettisuodatinta. Sen avulla voidaan toteuttaa esimerkiksi palomuureja. Iptables on ollut mukana ytimessä versiosta 2.4-alkaen.
Pakettien rajoittaminen
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 kolmeen luokkaan: INPUT, OUTPUT ja FORWARD. 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. Tämä voidaan estää tallentamalla asetukset komennolla /sbin/iptables-save. Tallennetut asetukset palautetaan komennolla /sbin/iptables-restore.
Pakettien estäminen
Tietystä osoitteesta tulevia paketteja voidaan estää iptables-komennoilla joiden syntaksi on seuraavanlainen:
iptables -s osoite -A INPUT -j DROP
Parametri -s tarkoittaa osoitetta, josta paketit tulevat (engl. source). Osoite voi olla joko IP-osoite (123.345.456.578) tai DNS-nimi (esim. wiki.linux.fi).
-A tarkoittaa paketin tyyppiä, tässä tapauksessa sisään tulevaa pakettia. -j kertoo, mitä paketille tehdään. Tässä tapauksessa se pudotetaan (engl. drop), eli sitä ei päästetä palomuurin läpi.
Vastaavasti tiettyyn osoitteeseen lähetettävät paketit voitaisiin estää komennolla
iptables -d osoite -A OUTPUT -j DROP
Huomaa, että pakettilähteen (-s) tilalla käytetään nyt pakettien kohdetta -d (engl. destination). Lisäksi pakettien tyyppi -A on nyt OUTPUT.
Tarkempaa rajoittamista
Edellä estimme kaikki mahdolliset paketit tiettyyn osoitteeseen. Iptables tarjoaa kuitenkin mahdollisuuden käyttää tarkempia rajoituksia. Esimerkiksi seuraavassa rajoittaisimme kaiken SSH-liikenteen (porttiin 22 kohdistuvan TCP-protokollaa käyttävän liikenteen).
iptables -A INPUT -s 123.456.789.123 -p tcp –destination-port 22 -j DROP
Huomaa uudet valitsimet -p (protokolla) ja -destination-port (kohdeportti). Iptables ymmärtää myös portin numeron sijasta protokollien nimiä, esimerkiksi ssh (portti 22) tai http (80).
Pikamuuri
Tässä ohjeet yksinkertaisen palomuurin pystyttämiseen, joka suojaa konetta riittävästi normaalissä käytössä:
Ensin säädetään perusasetukset: kaikki sisään tuleva estetään ja ulos menevä sallitaan
iptables -P INPUT DROP iptables -P FORWARD DROP iptasles -P OUTPUT ACCEPT
Seuraavaksi sallitaan loopback-liikenne
iptables -A INPUT -i lo -j ACCEPT
Estetään liikenne private-portteihin
iptables -A INPUT -p tcp --dport 0:1023 -j DROP iptables -A INPUT -p udp --dport 0:1023 -j DROP
Estetään SYN-paketit ja ICMP-liikenne
iptables -A INPUT -p tcp --syn -j DROP iptables -A INPUT -p icmp -j DROP
Sallitaan kaikki "takaisin palaava" liikenne
iptables -A INPUT -p TCP -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p UDP -m state --state RELATED,ESTABLISHED -j ACCEPT
Lopuksi estetään loput
iptables -A INPUT -j DROP