Ero sivun ”Iptables” versioiden välillä
(17 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä) | |||
Rivi 25: | Rivi 25: | ||
iptables -L -v | iptables -L -v | ||
− | + | <!--T:39--> | |
+ | Iptablesiin voi lisätä sääntöä komentoina tai kirjoittamalla tiedostoon. On suositeltavaa kirjoittaa tiedostoon sillä kun Linux sammuu, se tyhjentää iptablesin kaikki säännöt. Tallentaminen onnistuu esimerkiksi iptables-persistent paketilla. | ||
− | + | <!--T:40--> | |
+ | Säännön lisääminen komentoina. Esimerkiksi sallitaan paikallinen liikenne: | ||
− | + | <!--T:41--> | |
− | + | iptables -A INPUT -i lo -j ACCEPT | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === Peruspalomuurisäännöt === <!--T:42--> | |
− | + | ||
− | + | Aluksi tyhjennä palomuuri turhista säännöistä | |
− | + | ||
− | + | iptables -F | |
− | + | ||
− | + | Muuta oletussäännöksi että estetään kaikki sisällepäin liikenne sekä forwardoiva. Ulospäin on kaikki sallittua. '''Huomaa ennen kuin estät sisällepäin liikenteen varmista ettet käytä SSH:ta sillä tämä yhteys katkeaa!''' Lisää ensin SSH auki ennen kuin estät kaikki liikenteen. | |
− | + | ||
− | + | iptables -P INPUT DROP | |
− | + | iptables -P FORWARD DROP | |
− | - | + | |
− | - | + | Sallitaan lookback (paikallinen) liikenne |
− | + | ||
− | + | iptables -A INPUT -i lo -j ACCEPT | |
− | + | ||
− | -A INPUT - | + | Sallitaan sisällepäin liikenne kun on otettu ensiksi ulospäin yhteyttä |
− | + | ||
− | + | iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT | |
− | + | ||
− | -A INPUT | + | Sallitaan SSH liikenne |
− | + | ||
− | + | iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT | |
− | + | ||
− | + | Estetään muut sisällepäin tulevat pyynnöt. | |
− | -A INPUT -p tcp --dport 22 | + | |
− | + | iptables -A INPUT -j DROP | |
− | + | ||
− | + | Sallitaan ulospäin liikenne | |
− | -A INPUT | + | |
− | + | iptables -A OUTPUT -j ACCEPT | |
− | + | ||
− | -A | + | Tallennetaan |
− | + | ||
− | + | iptables-save > /etc/iptables.rules | |
+ | |||
+ | Näytä palomuuri säännöt | ||
+ | |||
+ | iptables -L | ||
=== Palomuuri asetusten tallennus tiedostoon ja palautus === <!--T:26--> | === Palomuuri asetusten tallennus tiedostoon ja palautus === <!--T:26--> | ||
Rivi 108: | Rivi 95: | ||
=== Automaattinen palomuuriasetuksen lataus tiedostosta käynnistäessä === <!--T:33--> | === Automaattinen palomuuriasetuksen lataus tiedostosta käynnistäessä === <!--T:33--> | ||
+ | |||
+ | <!--T:45--> | ||
+ | Iptables-persisten paketti on Wheezyssä, Jessiessä se löytyy nimellä netfilter-persistent. | ||
<!--T:34--> | <!--T:34--> | ||
Rivi 113: | Rivi 103: | ||
<!--T:35--> | <!--T:35--> | ||
− | [[apt-get]] install iptables-persistent | + | [[apt-get]] install netfilter-persistent iptables-persistent |
− | + | <!--T:46--> | |
+ | Palomuuria voi konfiguroida täältä. Vain tänne tallennetut latautuvat käynnistyksen yhteydessä: | ||
− | + | <!--T:47--> | |
+ | nano /etc/iptables/rules.v4 | ||
+ | <!--T:48--> | ||
+ | nano /etc/iptables/rules.v6 | ||
+ | |||
+ | <!--T:49--> | ||
+ | Tallenna käytössä oleva palomuuri tiedostoon | ||
+ | |||
+ | <!--T:50--> | ||
+ | service iptables-persistent save | ||
+ | |||
+ | <!--T:51--> | ||
+ | Lataa tiedostosta | ||
+ | |||
+ | <!--T:52--> | ||
+ | service iptables-persistent reload | ||
+ | |||
+ | === Esimerkki === | ||
+ | |||
+ | Esimerkki palomuurin jonka voit huolettaa importtaa järjestelmääsi. Tässä on sallittu varmuuden vuoksi SSH yhteydet. | ||
+ | |||
+ | <pre> | ||
+ | :INPUT DROP [0:0] | ||
+ | :FORWARD ACCEPT [0:0] | ||
+ | :OUTPUT ACCEPT [0:0] | ||
+ | -A INPUT -i lo -j ACCEPT | ||
+ | -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP | ||
+ | -A INPUT -f -j DROP | ||
+ | -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP | ||
+ | -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP | ||
+ | -A INPUT -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/sec --limit-burst 2 -j ACCEPT | ||
+ | -A INPUT -s 169.254.0.0/16 -j DROP | ||
+ | -A INPUT -s 127.0.0.0/8 -j DROP | ||
+ | -A INPUT -s 224.0.0.0/4 -j DROP | ||
+ | -A INPUT -d 224.0.0.0/4 -j DROP | ||
+ | -A INPUT -s 240.0.0.0/5 -j DROP | ||
+ | -A INPUT -d 240.0.0.0/5 -j DROP | ||
+ | -A INPUT -s 0.0.0.0/8 -j DROP | ||
+ | -A INPUT -d 0.0.0.0/8 -j DROP | ||
+ | -A INPUT -d 239.255.255.0/24 -j DROP | ||
+ | -A INPUT -d 255.255.255.255/32 -j DROP | ||
+ | -A INPUT -p icmp -m icmp --icmp-type 17 -j DROP | ||
+ | -A INPUT -p icmp -m icmp --icmp-type 13 -j DROP | ||
+ | -A INPUT -p icmp -m icmp --icmp-type 10 -j DROP | ||
+ | -A INPUT -p icmp -m limit --limit 2/sec -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT | ||
+ | -A INPUT -m state --state ESTABLISHED -j ACCEPT | ||
+ | -A INPUT -j DROP | ||
+ | -A FORWARD -j DROP | ||
+ | -A OUTPUT -j ACCEPT | ||
+ | </pre> | ||
+ | |||
+ | == IPv6 == <!--T:53--> | ||
+ | |||
+ | <!--T:54--> | ||
+ | Ip6tables on Linuxilla palomuuri IPv6 verkkoon. | ||
+ | |||
+ | <!--T:55--> | ||
+ | Tässä on esimerkki palomuuriasetus jokaiselle. | ||
+ | |||
+ | <!--T:56--> | ||
+ | <pre> | ||
+ | -A INPUT -i lo -j ACCEPT | ||
+ | -A INPUT -m rt --rt-type 0 --rt-segsleft 0 -j DROP | ||
+ | -A INPUT -s fe80::/10 -j ACCEPT | ||
+ | -A INPUT -d ff00::/8 -j ACCEPT | ||
+ | -A INPUT -p ipv6-icmp -j ACCEPT | ||
+ | -A INPUT -p tcp -m tcp --dport 22 -j DROP | ||
+ | -A INPUT -m state --state ESTABLISHED -j ACCEPT | ||
+ | -A INPUT -j DROP | ||
+ | -A FORWARD -m rt --rt-type 0 --rt-segsleft 0 -j DROP | ||
+ | -A OUTPUT -m rt --rt-type 0 --rt-segsleft 0 -j DROP | ||
+ | -A OUTPUT -s fe80::/10 -j ACCEPT | ||
+ | -A OUTPUT -d ff00::/8 -j ACCEPT | ||
+ | -A OUTPUT -p ipv6-icmp -j ACCEPT | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | == NAT == <!--T:62--> | ||
+ | |||
+ | <!--T:63--> | ||
+ | Määritä Linuxille kaksi verkkokorttia jossa molemmissa IP-osoitteet. Sisäverkon kortissa (eth0) tulee olla kiinteä IP-osoite. Tämä toimii verkon gateway:na. Julkisella kortilla (eth1) voi olla dynaaminen IP-osoite. | ||
+ | |||
+ | <!--T:64--> | ||
Salli IPv4 forwarders: | Salli IPv4 forwarders: | ||
− | nano /etc/sysctl.conf | + | <!--T:65--> |
+ | nano /etc/sysctl.conf | ||
+ | <!--T:66--> | ||
poistamalla risuaita: | poistamalla risuaita: | ||
− | net.ipv4.ip_forward=1 | + | <!--T:67--> |
+ | net.ipv4.ip_forward=1 | ||
+ | |||
+ | <!--T:68--> | ||
+ | Ota muutokset käyttöön komennolla | ||
− | + | <!--T:69--> | |
+ | sysctl -p /etc/sysctl.conf | ||
− | + | <!--T:70--> | |
+ | Kirjoita seuraava rivi iptables sääntöihin. Suosittelemme käyttämään iptables-persistet pakettia. | ||
− | + | <!--T:71--> | |
+ | -A POSTROUTING -o eth1 -j MASQUERADE | ||
− | Sisä interface sallitaan forwardoiminen eth0:sta eth1 interfaceen kunhan tila on related / established | + | <!--T:72--> |
+ | Sisä interface sallitaan forwardoiminen eth0:sta eth1 interfaceen kunhan tila on related / established . Muuten liikenne estetään. | ||
− | + | <!--T:73--> | |
+ | -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT | ||
+ | -A FORWARD -i eth0 -i eth1 -m state --state INVALID -j DROP | ||
== Lähde == <!--T:36--> | == Lähde == <!--T:36--> |
Nykyinen versio 9. marraskuuta 2016 kello 17.18
Iptables on pakettisuodatin. Tällä voidaan toteuttaa reitittimiä ja palomuureja.
Sisällysluettelo
Käyttö
Näytetään palomuuri säännöt
iptables -L
Näytetään estetyt palomuurista esim. fail2ban
iptables -L -n
Lista tarkemmin
iptables -L -v
Iptablesiin voi lisätä sääntöä komentoina tai kirjoittamalla tiedostoon. On suositeltavaa kirjoittaa tiedostoon sillä kun Linux sammuu, se tyhjentää iptablesin kaikki säännöt. Tallentaminen onnistuu esimerkiksi iptables-persistent paketilla.
Säännön lisääminen komentoina. Esimerkiksi sallitaan paikallinen liikenne:
iptables -A INPUT -i lo -j ACCEPT
Peruspalomuurisäännöt
Aluksi tyhjennä palomuuri turhista säännöistä
iptables -F
Muuta oletussäännöksi että estetään kaikki sisällepäin liikenne sekä forwardoiva. Ulospäin on kaikki sallittua. Huomaa ennen kuin estät sisällepäin liikenteen varmista ettet käytä SSH:ta sillä tämä yhteys katkeaa! Lisää ensin SSH auki ennen kuin estät kaikki liikenteen.
iptables -P INPUT DROP iptables -P FORWARD DROP
Sallitaan lookback (paikallinen) liikenne
iptables -A INPUT -i lo -j ACCEPT
Sallitaan sisällepäin liikenne kun on otettu ensiksi ulospäin yhteyttä
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Sallitaan SSH liikenne
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Estetään muut sisällepäin tulevat pyynnöt.
iptables -A INPUT -j DROP
Sallitaan ulospäin liikenne
iptables -A OUTPUT -j ACCEPT
Tallennetaan
iptables-save > /etc/iptables.rules
Näytä palomuuri säännöt
iptables -L
Palomuuri asetusten tallennus tiedostoon ja palautus
Tallenna palomuuriasetukset
iptables-save > /etc/iptables/rules.v4
Palauta palomuuriasetukset tiedostosta
iptables-restore < /etc/iptables/rules.v4
Tallenna IPv6 palomuuriasetukset tiedostoon
ip6tables-save > /etc/iptables/rules.v6
Automaattinen palomuuriasetuksen lataus tiedostosta käynnistäessä
Iptables-persisten paketti on Wheezyssä, Jessiessä se löytyy nimellä netfilter-persistent.
Asenna pakettihallinnasta.
apt-get install netfilter-persistent iptables-persistent
Palomuuria voi konfiguroida täältä. Vain tänne tallennetut latautuvat käynnistyksen yhteydessä:
nano /etc/iptables/rules.v4
nano /etc/iptables/rules.v6
Tallenna käytössä oleva palomuuri tiedostoon
service iptables-persistent save
Lataa tiedostosta
service iptables-persistent reload
Esimerkki
Esimerkki palomuurin jonka voit huolettaa importtaa järjestelmääsi. Tässä on sallittu varmuuden vuoksi SSH yhteydet.
:INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -f -j DROP -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP -A INPUT -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/sec --limit-burst 2 -j ACCEPT -A INPUT -s 169.254.0.0/16 -j DROP -A INPUT -s 127.0.0.0/8 -j DROP -A INPUT -s 224.0.0.0/4 -j DROP -A INPUT -d 224.0.0.0/4 -j DROP -A INPUT -s 240.0.0.0/5 -j DROP -A INPUT -d 240.0.0.0/5 -j DROP -A INPUT -s 0.0.0.0/8 -j DROP -A INPUT -d 0.0.0.0/8 -j DROP -A INPUT -d 239.255.255.0/24 -j DROP -A INPUT -d 255.255.255.255/32 -j DROP -A INPUT -p icmp -m icmp --icmp-type 17 -j DROP -A INPUT -p icmp -m icmp --icmp-type 13 -j DROP -A INPUT -p icmp -m icmp --icmp-type 10 -j DROP -A INPUT -p icmp -m limit --limit 2/sec -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -m state --state ESTABLISHED -j ACCEPT -A INPUT -j DROP -A FORWARD -j DROP -A OUTPUT -j ACCEPT
IPv6
Ip6tables on Linuxilla palomuuri IPv6 verkkoon.
Tässä on esimerkki palomuuriasetus jokaiselle.
-A INPUT -i lo -j ACCEPT -A INPUT -m rt --rt-type 0 --rt-segsleft 0 -j DROP -A INPUT -s fe80::/10 -j ACCEPT -A INPUT -d ff00::/8 -j ACCEPT -A INPUT -p ipv6-icmp -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j DROP -A INPUT -m state --state ESTABLISHED -j ACCEPT -A INPUT -j DROP -A FORWARD -m rt --rt-type 0 --rt-segsleft 0 -j DROP -A OUTPUT -m rt --rt-type 0 --rt-segsleft 0 -j DROP -A OUTPUT -s fe80::/10 -j ACCEPT -A OUTPUT -d ff00::/8 -j ACCEPT -A OUTPUT -p ipv6-icmp -j ACCEPT
NAT
Määritä Linuxille kaksi verkkokorttia jossa molemmissa IP-osoitteet. Sisäverkon kortissa (eth0) tulee olla kiinteä IP-osoite. Tämä toimii verkon gateway:na. Julkisella kortilla (eth1) voi olla dynaaminen IP-osoite.
Salli IPv4 forwarders:
nano /etc/sysctl.conf
poistamalla risuaita:
net.ipv4.ip_forward=1
Ota muutokset käyttöön komennolla
sysctl -p /etc/sysctl.conf
Kirjoita seuraava rivi iptables sääntöihin. Suosittelemme käyttämään iptables-persistet pakettia.
-A POSTROUTING -o eth1 -j MASQUERADE
Sisä interface sallitaan forwardoiminen eth0:sta eth1 interfaceen kunhan tila on related / established . Muuten liikenne estetään.
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i eth0 -i eth1 -m state --state INVALID -j DROP
Lähde
http://www.thomas-krenn.com/en/wiki/Saving_Iptables_Firewall_Rules_Permanently