iptables je aplikacija za podešavanje kontrole filtriranja mrežnih paketa u Linux 2.4 i višim. Kernel 2.4 (2.4.5 točnije) je prvi koji je ovo uveo u Slackware (kao opciju) u verziji 8.0 te je postao zadani standard (default) u 8.1. Ovaj odlomak pokriva samo osnove korištenja iptables, za više detalja trebali bi pogledati http://www.netfilter.org/. Ove naredbe trebale bi biti upisane u /etc/rc.d/rc.firewall, koji mora biti označen kao izvršna datoteka da bi ova pravila imala efekta prilikom podizanja sustava. Imajte na umu da vam nepravilne iptables naredbe doslovno mogu onemogućiti pristup vlastitom računalu. Ukoliko niste 100% sigurni u vaše vještine uvijek osigurajte nekakav lokalni pristup.
Prva stvar koju bi većina ljudi trebala uraditi je podesiti zadano pravilo za svaki dolazni lanac na DROP (odbaci):
# iptables -P INPUT DROP # iptables -P FORWARD DROP |
Sada kad je sve odbijeno, možete početi dozvoljavati pojedine stvari. Prva stvar koju bi trebalo dozvoliti je bilo kakav promet za sesije koje su već uspostavljene:
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT |
Da se ne bi ometala bilo koja aplikacija koja komunicira koristeći loopback adresu, mudro je postaviti i ovakvo pravilo:
# iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT |
Ovo pravilo dozvoljava bilo kakav promet od i do 127.0.0.0/8 (127.0.0.0 - 127.255.255.255) na loopback (lo) sučelju. Tijekom pisanja pravila dobra je praksa biti što konkretniji, kako bi se osigurali da vaša pravila nenamjerno ne dozvole ništa zlo. Dakle, pravila koja dozvoljavaju premalo znače više pravila i više tipkanja.
Slijedeća stvar je dozvoljavanje pristupa određenim servisima na vašem računalu. Primjerice želite li izvršavati web poslužitelj, koristit će te pravilo slično ovome:
# iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT |
Ovo će dozvoliti pristup sa svakog računala na port 80 vašeg računala preko ppp0 sučelja. Možda će te željeti dozvoliti pristup ovom servisu samo određenim računalima. Ovo pravilo dozvoljava pristup vašem web poslužitelju samo sa IP adrese 64.57.102.34:
# iptables -A INPUT -p tcp -s 64.57.102.34 --dport 80 -i ppp0 -j ACCEPT |
Dozvoljavanje ICMP prometa može biti korisno za dijagnostičke svrhe. Da bi ovo uradili, koristili bi pravilo poput:
# iptables -A INPUT -p icmp -j ACCEPT |
Većina ljudi će željeti podesiti Prevođenje Mrežnih Adresa (Network Address Translation, NAT) na svojem računalu koje služi kao poveznik (gateway), tako da druga računala u mreži mogu pristupiti Internetu "kroz" njega. To bi postigli koristeći sljedeću naredbu:
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE |
Također treba uključiti prosliješivanje IP adresa (IP forwarding). Privremeno ovo možete uraditi koristeći slijedeću naredbu:
# echo 1 > /proc/sys/net/ipv4/ip_forward |
Da bi se proslijeđivanje IP adresa uključilo za stalno (tj. da promjena ostane nakon ponovnog pokretanja sustava), morat će te otvoriti datoteku /etc/rc.d/rc.inet2 u vašem omiljenom uređivaču teksta te izmjeniti slijedeću liniju:
IPV4_FORWARD=0 |
...u:
IPV4_FORWARD=1 |
Za više podataka o NAT-u, pogledajte NAT HOWTO.
tcp omotači (tcpwrappers) kontroliraju pristup daemona na aplikacijskoj razini, prije nego na IP razini. Ovo može pružiti dodatan sloj zaštite u trenutcima kada kontrole pristupu IP razini (npr. Netfilter) ne funkcioniraju ispravno. Na primjer, ukoliko ponovno prevedete (compile) jezgru (kernel), ali zaboravite uključiti podršku za iptables, vaša zaštita na IP razini neće funkcionirati ispravno ali tcp omotači će i dalje pomagati pri zaštiti vašeg sustava.
Pristup servisima koje štite tcp omotači može se kontrolirati korištenjem datoteka /etc/hosts.allow i /etc/hosts.deny.
Većina ljudi će imati samo jednu liniju u svojoj /etc/hosts.deny datoteci, koja će braniti pristup svim daemon-ima. Ta linija bi bila:
ALL : ALL |
S time urađenim, možete se koncentrirati na dozvoljavanje pristupa servisima specifičnim računalima, domenama ili opsegu IP adresa. To se može uraditi uređivanjem datoteke /etc/hosts.allow koja poštuje isti format.
Mnogi će započeti dozvoljavanjem svih veza od strane localhost-a. To se može postići korištenjem:
ALL : 127.0.0.1 |
Da bi dopustili pristup SSH daemon-u sa opsega 192.168.0.0/24, može se koristiti jedno od slijedećih pravila:
sshd : 192.168.0.0/24 sshd : 192.168.0. |
Također je moguće ograničiti pristup računalima u određenim domenama. To se može uraditi korištenjem slijedećeg pravila (imajte na umu da se ovo oslanja na unos reverznog DNS-a kako bi se osiguralo da je računalo koje se spaja baš to za kojeg se izdaje, stoga je preporučljivo da se ova metoda ne koristi na računalima koja su povezana na Internet):
sshd : .slackware.com |
| Prethodno | Na početak | Sljedeće |
| Sigurnost | Iznad | Ostajanje u toku |