Ero sivun ”Iptables” versioiden välillä
(→IPv6) |
(Tämä versio merkittiin käännettäväksi) |
||
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. | 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: | Säännön lisääminen komentoina. Esimerkiksi sallitaan paikallinen liikenne: | ||
− | iptables -A INPUT -i lo -j ACCEPT | + | <!--T:41--> |
+ | iptables -A INPUT -i lo -j ACCEPT | ||
− | === Peruspalomuurisäännöt === | + | === Peruspalomuurisäännöt === <!--T:42--> |
+ | <!--T:43--> | ||
Tässä esimerkki palomuuri käy jokaiselle. Kopioi tämä tiedostoksi ja aja palomuurin [[Iptables#Automaattinen_palomuuriasetuksen_lataus_tiedostosta_k.C3.A4ynnist.C3.A4ess.C3.A4|palautuskomento]]. | Tässä esimerkki palomuuri käy jokaiselle. Kopioi tämä tiedostoksi ja aja palomuurin [[Iptables#Automaattinen_palomuuriasetuksen_lataus_tiedostosta_k.C3.A4ynnist.C3.A4ess.C3.A4|palautuskomento]]. | ||
+ | <!--T:44--> | ||
<pre> | <pre> | ||
*filter | *filter | ||
Rivi 118: | Rivi 123: | ||
=== 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. | Iptables-persisten paketti on Wheezyssä, Jessiessä se löytyy nimellä netfilter-persistent. | ||
Rivi 126: | Rivi 132: | ||
[[apt-get]] install iptables-persistent | [[apt-get]] install iptables-persistent | ||
+ | <!--T:46--> | ||
Palomuuria voi konfiguroida täältä. Vain tänne tallennetut latautuvat käynnistyksen yhteydessä: | Palomuuria voi konfiguroida täältä. Vain tänne tallennetut latautuvat käynnistyksen yhteydessä: | ||
− | nano /etc/iptables/rules.v4 | + | <!--T:47--> |
+ | nano /etc/iptables/rules.v4 | ||
− | nano /etc/iptables/rules.v6 | + | <!--T:48--> |
+ | nano /etc/iptables/rules.v6 | ||
+ | <!--T:49--> | ||
Tallenna käytössä oleva palomuuri tiedostoon | Tallenna käytössä oleva palomuuri tiedostoon | ||
− | service iptables-persistent save | + | <!--T:50--> |
+ | service iptables-persistent save | ||
+ | <!--T:51--> | ||
Lataa tiedostosta | Lataa tiedostosta | ||
− | service iptables-persistent reload | + | <!--T:52--> |
+ | service iptables-persistent reload | ||
− | == IPv6 == | + | == IPv6 == <!--T:53--> |
+ | <!--T:54--> | ||
Ip6tables on Linuxilla palomuuri IPv6 verkkoon. | Ip6tables on Linuxilla palomuuri IPv6 verkkoon. | ||
+ | <!--T:55--> | ||
Tässä on esimerkki palomuuriasetus jokaiselle. | Tässä on esimerkki palomuuriasetus jokaiselle. | ||
+ | <!--T:56--> | ||
<pre> | <pre> | ||
#Sallitaan paikallinen liikenne | #Sallitaan paikallinen liikenne | ||
Rivi 151: | Rivi 167: | ||
-A OUTPUT -o lo -j ACCEPT | -A OUTPUT -o lo -j ACCEPT | ||
+ | <!--T:57--> | ||
#Estä RH0 pakettien liikennöinti | #Estä RH0 pakettien liikennöinti | ||
-A INPUT -m rt --rt-type 0 -j DROP | -A INPUT -m rt --rt-type 0 -j DROP | ||
Rivi 156: | Rivi 173: | ||
-A OUTPUT -m rt --rt-type 0 -j DROP | -A OUTPUT -m rt --rt-type 0 -j DROP | ||
+ | <!--T:58--> | ||
#Salli paikallisen verkon liikenne | #Salli paikallisen verkon liikenne | ||
-A INPUT -s fe80::/10 -j ACCEPT | -A INPUT -s fe80::/10 -j ACCEPT | ||
Rivi 162: | Rivi 180: | ||
-A OUTPUT -d ff00::/8 -j ACCEPT | -A OUTPUT -d ff00::/8 -j ACCEPT | ||
+ | <!--T:59--> | ||
-A INPUT -p icmpv6 -j ACCEPT | -A INPUT -p icmpv6 -j ACCEPT | ||
-A OUTPUT -p icmpv6 -j ACCEPT | -A OUTPUT -p icmpv6 -j ACCEPT | ||
+ | <!--T:60--> | ||
#Estetään SSH portti IPv6:lla. On suositeltavaa sallia tietyistä IPv6 osoitteista tai verkoista. | #Estetään SSH portti IPv6:lla. On suositeltavaa sallia tietyistä IPv6 osoitteista tai verkoista. | ||
-A INPUT -p tcp -m tcp --dport 22 -j DROP | -A INPUT -p tcp -m tcp --dport 22 -j DROP | ||
+ | <!--T:61--> | ||
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT | -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT | ||
-A OUTPUT -m state --state INVALID -j DROP | -A OUTPUT -m state --state INVALID -j DROP | ||
</pre> | </pre> | ||
− | == NAT == | + | == 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. | 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 | Ota muutokset käyttöön komennolla | ||
− | sysctl -p /etc/sysctl.conf | + | <!--T:69--> |
+ | sysctl -p /etc/sysctl.conf | ||
+ | <!--T:70--> | ||
Kirjoita seuraava rivi iptables sääntöihin. Suosittelemme käyttämään iptables-persistet pakettia. | Kirjoita seuraava rivi iptables sääntöihin. Suosittelemme käyttämään iptables-persistet pakettia. | ||
− | -A POSTROUTING -o eth1 -j MASQUERADE | + | <!--T:71--> |
+ | -A POSTROUTING -o eth1 -j MASQUERADE | ||
+ | <!--T:72--> | ||
Sisä interface sallitaan forwardoiminen eth0:sta eth1 interfaceen kunhan tila on related / established . Muuten liikenne estetään. | 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 | + | <!--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 | -A FORWARD -i eth0 -i eth1 -m state --state INVALID -j DROP | ||
Versio 27. elokuuta 2015 kello 11.28
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
Tässä esimerkki palomuuri käy jokaiselle. Kopioi tämä tiedostoksi ja aja palomuurin palautuskomento.
*filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] # Salli pakallinen liikenne -A INPUT -i lo -j ACCEPT # Ensimmäinen paketti on SYN bitti. Jos se ei ole niin estetään yhteys. -A INPUT -p tcp ! --syn -m state --state NEW -j DROP # Estä rikkinäiset paketit -A INPUT -f -j DROP # Estä XMAS paketit -A INPUT -p tcp --tcp-flags ALL ALL -j DROP # Estä "NULL" paketit -A INPUT -p tcp --tcp-flags ALL NONE -j DROP # Rajoita TCP RST (TCP RESET). -A INPUT -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/second --limit-burst 2 -j ACCEPT # Estä kaikki virheelliset paketit -A INPUT -m state --state INVALID -j DROP -A FORWARD -m state --state INVALID -j DROP -A OUTPUT -m state --state INVALID -j DROP # Estä väärennetyt paketit -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 -j DROP # ICMP hyökkäyksen torjunta ja rajoitettu määrä pyyntöjä -A INPUT -p icmp --icmp-type address-mask-request -j DROP -A INPUT -p icmp --icmp-type timestamp-request -j DROP -A INPUT -p icmp --icmp-type router-solicitation -j DROP -A INPUT -p icmp -m limit --limit 2/second -j ACCEPT # Hyväksy SSH -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT # Estä SYN-FLOOD paketit -A INPUT -p tcp -m state --state NEW -m limit --limit 50/second --limit-burst 50 -j ACCEPT -A INPUT -p tcp -m state --state NEW -j DROP # Salli tunnetut yhteydet ja estetään INVALID paketit. -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -m state --state INVALID -j DROP COMMIT
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 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
IPv6
Ip6tables on Linuxilla palomuuri IPv6 verkkoon.
Tässä on esimerkki palomuuriasetus jokaiselle.
#Sallitaan paikallinen liikenne -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT #Estä RH0 pakettien liikennöinti -A INPUT -m rt --rt-type 0 -j DROP -A FORWARD -m rt --rt-type 0 -j DROP -A OUTPUT -m rt --rt-type 0 -j DROP #Salli paikallisen verkon liikenne -A INPUT -s fe80::/10 -j ACCEPT -A OUTPUT -s fe80::/10 -j ACCEPT -A INPUT -d ff00::/8 -j ACCEPT -A OUTPUT -d ff00::/8 -j ACCEPT -A INPUT -p icmpv6 -j ACCEPT -A OUTPUT -p icmpv6 -j ACCEPT #Estetään SSH portti IPv6:lla. On suositeltavaa sallia tietyistä IPv6 osoitteista tai verkoista. -A INPUT -p tcp -m tcp --dport 22 -j DROP -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -m state --state INVALID -j DROP
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