Erinevus lehekülje "Iptables puust ja punaseks" redaktsioonide vahel

Allikas: Kuutõrvaja
(Ahelad ja reeglid)
55. rida: 55. rida:
 
Teisisõnu blokeerib antud reegel kogu sissetuleva võrguliikluse eth0 võrguliidesel.
 
Teisisõnu blokeerib antud reegel kogu sissetuleva võrguliikluse eth0 võrguliidesel.
  
 +
====Eelmise peatüki jätkuna lihtne tulemüür serverile====
 +
 +
<source lang=bash>
 +
#  Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
 +
-A INPUT -i lo -j ACCEPT
 +
-A INPUT -i lo -d 127.0.0.0/8 -j REJECT
 +
 +
#  Accepts all established inbound connections
 +
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 +
 +
#  Allows all outbound traffic
 +
#  You can modify this to only allow certain traffic
 +
-A OUTPUT -j ACCEPT
 +
 +
# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
 +
-A INPUT -p tcp --dport 80 -j ACCEPT
 +
-A INPUT -p tcp --dport 443 -j ACCEPT
 +
 +
#  Allows SSH connections
 +
#
 +
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
 +
#
 +
-A INPUT -p tcp -m state --state NEW --dport 30000 -j ACCEPT
 +
 +
# Allow ping
 +
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
 +
 +
# log iptables denied calls
 +
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
 +
 +
# Reject all other inbound - default deny unless explicitly allowed policy
 +
-A INPUT -j REJECT
 +
-A FORWARD -j REJECT
 +
</source>
  
 
hetkel tulemüürile teada olevate seansside tabel asub /proc/net/ip_conntrack
 
hetkel tulemüürile teada olevate seansside tabel asub /proc/net/ip_conntrack

Redaktsioon: 12. august 2011, kell 18:55

Mis see on?

Iptables on töövahend linuxi kernelisse ehitatud filtreerimismehanismi kasutamiseks.

Kernel ja moodulid

Iptablesi kasutamiseks peavad olema laetud vastavad kerneli moodulit. Näiteks kui soovime kasutada enda reeglites LOG, REJECT ja MASQUERADE targeteid (ja need pole kernelisse kompileeritud), peame laadima järgnevad moodulid.

# /sbin/insmod ipt_LOG
# /sbin/insmod ipt_REJECT
# /sbin/insmod ipt_MASQUERADE

Iptablesi moodulid, koos kirjeldustega, leiab siit lingilt http://www.tummy.com/journals/entries/jafo_20050717_164535

Laaditud iptablesi moodulid leiab failist /proc/net/ip_tables_matches

# cat /proc/net/ip_tables_matches
helper
limit
state
udplite
udp
tcp
icmp

Paigaldatud netfilteri mooduleid näeb käsuga

# ls /lib/modules/`uname -r`/kernel/net/ipv4/netfilter

Ahelad ja reeglid

Iptablesi üheks olulisemaks punktiks on ahelad (chains). Pakett liigub mööda ahelaid seni kuni mõni reegel ühildub paketiga. Näiteks lubab selle või kustutab.

Image001.gif

Lihtsustatult on olemas kaks peamist ahelat mida paketid läbivad INPUT ja OUTPUT. Tegelikult juba nagu ülemiselt skeemilt näha on peamisi ahelaidki veel. Näiteks Prerouting ja Postrouting, mis rakenduvad enne ja peale ruutingu otsuse tegemist (lisaks saab ahelaid ka ise juurde luua). Aga hetkel lihtsustamise mõttes vaatleme vaid kahte.

Igal ahelaga saab siduda reegleid. Näiteks tekitame järgneva reegli:

iptables -A INPUT -i eth0 -j REJECT 

See reegel on seotud INPUT ahelaga (ehk sissetulevad paketid) ja kehtib ainult pakettide kohta, mis tulevad eth0 võrguliidesele. Lisaks ütleb, et need paketid lükatakse tagasi.

Lubame SSH ühenduse

iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT

Teisisõnu blokeerib antud reegel kogu sissetuleva võrguliikluse eth0 võrguliidesel.

Eelmise peatüki jätkuna lihtne tulemüür serverile

#  Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -i lo -d 127.0.0.0/8 -j REJECT

#  Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allows all outbound traffic
#  You can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allows SSH connections
#
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
#
-A INPUT -p tcp -m state --state NEW --dport 30000 -j ACCEPT

# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

# Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT

hetkel tulemüürile teada olevate seansside tabel asub /proc/net/ip_conntrack

Kasutatud: http://math.ut.ee/~mroos/turve/praks/iptables.html