iptables je program za podešavanje filterovanja paketa u
Linux-u 2.4 i višim. Kernel 2.4 (2.4.5, da budemo tačni) je prvi ovo uveo u
Slakcware (kao opciju) u verziji 8.0 i napravljeno je podrazumevanim u verziji Slackware
8.1. Ova sekcija pokriva samo osnove njegovog korišćenja i trebali bi pogledati
http://www.netfilter.org/ za
više detalja. Ove komande mogu biti unešene u /etc/rc.d/rc.firewall, koji mora biti postavljen kao izvršni
kako bi ova pravila bila primenjena prilikom startovanja. Zapamtite da nepravilne iptables mogu da vam bukvalno zaključaju mašinu i da vam
pristup bude zabranjen. Ukoliko niste 100% sigurni u svoje veštine, uvek osigurajte
da imate lokalni pristup mašini.
Prva stvar koju bi većina ljudi trebala da uradi je podese podrazumevano pravilo
za svaki dolazni lanac na DROP (odbaci):
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
|
Kada je sve odbijeno, možete početi dozvoljavati stvari. Prva stvar za
dozvolu je bilo kakav saobraćaj za sesije koje su već uspostavljene:
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
Iz razloga da se ne bi ometala bilo koja aplikacija koja komunicira koristeći
loopback adresu, obično je mudro da se doda 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 koji saobraćaj od i do 127.0.0.0/8 (127.0.0.0 -
127.255.255.255) na loopback (lo) interfejsu. Kada se pišu
pravila, dobra je ideja biti specifičan što je više moguće, kako bi
se osigurali da vaša pravila nenamerno ne dozvole bilo šta zlo. Time
rečeno, pravila koja dozvoljavaju premalo znače više pravila i više
kucanja.
Sledeće stvar je da se dozvoli pristup određenim servisima koji se
izvršavaju na vašoj mašini. Ako, na primer, želite da izvršavate
Web server na svojoj mašini, koristićete pravilo slično ovome:
# iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT
|
Ovo će dozvoliti pristup sa svake mašine na port 80 vašeg računara
preko ppp0 interfejsa. Možda ćete želeti da
dozvolite pristup ovom servisu samo određenim mašinama. Ovo pravilo dozvoljava
pristup vašem web servisu sa 64.57.102.34:
# iptables -A INPUT -p tcp -s 64.57.102.34 --dport 80 -i ppp0 -j ACCEPT
|
Dopuštanje ICMP saobraćaja može biti korisno za dijagnostičke
svrhe. Da biste uradili ovo, koristite ovakvo pravilo:
# iptables -A INPUT -p icmp -j ACCEPT
|
Većina ljudi će takođe želeti da podesi Prevođenje
Mrežnih Adresa (Network Address Translation, NAT) na svojim gateway mašinama,
tako da druge mašine na njihovim mrežama mogu pristupiti Internetu kroz njih.
Koristićete sledeće pravilo kako biste to postigli:
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
|
Takođe ćete trebati da uključite prosleđivanje IP-a (IP
forwarding). Ovo možete uraditi privremeno, koristeći sledeću komandu:
# echo 1 > /proc/sys/net/ipv4/ip_forward
|
Da bi se prosleđivanje IP-a uključilo za stalno (tj. da ta promena ostane
posle restarta) moraćete otvoriti fajl /etc/rc.d/rc.inet2
u vašem omiljenom editoru u promeniti sledeću liniju:
...u ovo:
Za više informacija o NAT-u, pogledajte link NAT
HOWTO.
tcp omotači (tcpwrappers) kontrolišu pristup demona
na aplikacijskom nivou, pre nego na IP nivou. Ovo može pružiti dodatni sloj
zaštite u trenutcima kada kontrole pristupa na IP nivou (npr. Netfilter) ne
funkcionišu ispravno. Na primer, ukoliko ponovo kompajlirate kernel, ali zaboravite
da uključite podršku za iptables, vaša zaštita na IP nivou neće
uspeti, ali tcp omotači će i dalje pomagati u odbrani vašeg sistema.
Pristup servisima koje štite tcp omotači može biti kontrolisan
korišćenjem /etc/hosts.allow i /etc/hosts.deny.
Većina ljudi će imati samo jednu liniju u svom /etc/hosts.deny fajlu koja će podrazumevano braniti pristup
svim demonima. Ova linija je:
Kada ste ovo uradili, možete se koncentrisati na dozvoljavanje pristupa servisima
za specifične računare, domene ili opsege IP adresa. Ovo može biti
urađeno u fajlu /etc/hosts.allow koji poštuje isti
format.
Mnogi će početi tako što će prihvatiti sve konekcije od strane localhost-a. Ovo se može postići korišćenjem:
Da biste dopustili pristup SSH demonu sa 192.168.0.0/24,
možete koristi jedno od sledećih pravila:
sshd : 192.168.0.0/24
sshd : 192.168.0.
|
Takođe je moguće ograničiti pristup računarima u određenim
domenima. To se može postići ako se koristi sledeće pravilo (zapamtite da
se ovo oslanja na unos reverznog DNS-a kako bi se osiguralo da je računar koji se
konektuje baš taj kojim se predstavlja, pa bih ja stoga preporučio da se ovaj
način ne koristi na računarima koji su povezani na Internet):