Firewall je hardware alebo software, ktor�ho �lohou je kontrolova� tok d�t v sieti medzi z�nami s rozdielnou d�veryhodnos�ou (napr. vn�torn� sie� podniku vs. Internet). Mus� zamedzi� takej komunik�cii, ktor� je v rozpore s bezpe�nostnou politikou.
Network adress translation je prepisovanie zdrojovej alebo cie�ovej adresy (pr�p. aj portov) v IP paketoch pri ich prechode cez router alebo firewall. V��inou sa pou��va, aby sa stroje v priv�tnej sieti (192.168.x.x, 10.x.x.x a pod.) mohli pripoji� k Internetu pomocou jedinej verejnej IP adresy. �iasto�ne sa takto rie�i nedostatok verejn�ch IP adries. Nev�hodou je, �e tak�to rie�enie poskytuje len jednosmern� konektivitu, a to zvn�tra priv�tnej siete von (�o ale zas v ur�it�ch prostrediach poskytuje vy��iu bezpe�nos�).
________ _____ _________ / \ / \ / \ pr�ch�dza-->|PREROUTING|-->[smrrovacie]---->|FORWARD|---->|POSTROUTING|--> odch�dzaj�ce pakety \________/ [rozhodnutie] \_____/ \_________/ pakety | ^ v ____ | _|_ / \ | / \ |OUTPUT|-->[smerovac�e ] |INPUT| \____/ [rozhodnutie] \___/ ^ | | `--> lok�lny proces --'
V kerneli rady 2.0 2.0 sa pou��val ipfwadm
.
Ipfwadm
obsahovalo �tyri moduly (input, output, forward a
accounting), v ktor�ch boli jednotliv� pravidl�, pod�a ktor�ch sa riadil
tok d�t. Ke�e ipfwadm
neumo��ovalo pracova� s jednotliv�mi
fragmentami paketov a in�mi protokolmi ako TCP, UDP a ICMP, v jadre rady
2.2 bol prep�san� a nahraden� ipchains
. Okrem toho m�
ipchains
jednoduch�iu konfigur�ciu a umo��uje re�azi�
pravidl�.
Probl�m s ipchains
je v tom, �e je to st�le bezstavov�
firewall. Toto rie�i netfilter/iptables
, ktor� je v jadre
pr�tomn� od verzie 2.4. netfilter
m� tie� prepracovanej��
NAT subsyst�m a vylep�il mechanizmus re�azen� pravidiel t�m, �e re�azce
pravidiel s� ulo�en� v tabu�k�ch.
V BSD syst�moch je situ�cia jednoduch�ia. V OpenBSD sa pou��va
PF (Packet Filter)
, v minulosti sa pou��val
IPFilter
Darrena Reeda, ktor� bol ale nahraden� kv�li
licen�n�m probl�mom. Vo FreeBSD syst�moch sa dnes pou��va
ipfw (ipfirewall)
.
Netfilter
je n�zov projektu a z�rove� n�zov celej sady
kernel modulov a user-space programov umo��uj�cich manipul�ciu s
paketmi. Iptables
je n�zov user-space programu, ktor�m sa
cel� firewall konfiguruje. Ako iptables sa tie� �asto ozna�uje cel�
bal�k netfilter/iptables.
Aby sme mohli pou��va� iptables, mus� by� v jadre zakompilovan� podpora
pre netfilter, a to bu� priamo v jadre alebo ako moduly. Hlavn� modul m�
n�zov ip_tables
a na �om z�visia ostatn� moduly (napr.
ip_conntrack
, ipt_state
,
iptable_filter
...).
Networking --> Networking options --> [*] Network packet filtering (replaces ipchains) --> IP: Netfilter Configuration --> <M> Connection tracking (required for masq/NAT) (+ moduly, ktor� potrebujeme) <M> IP tables support (required for filtering/masq/NAT) (+ moduly, ktor� potrebujeme)
Riadenie toku paketov prebieha v sie�ovej vrstve na �rovni jadra. V jadre s� ulo�en�
tabu�ky (tables) filter
, nat
,
mangle
a raw
. Ka�d� tabu�ka obsahuje re�azce
pravidiel (chains), ktor� s� bu� preddefinovan�, alebo u��vatelom
definovan�. Preddefinovan� re�azce m� ka�d� tabu�ka svoje (napr.
INPUT
, OUTPUT
, FORWARD
v tabu�ke
filter
, PREROUTING
, OUTPUT
,
POSTROUTING
v tabu�ke nat
). Okrem nich si
u��vate� m��e definova� svoje vlastn� re�azce pravidiel, ktor� m��e
vola� z preddefinovan�ch podobne ako subrutinu v programe. Ka�d� re�azec
obsahuje zoznam pravidiel (rules), ktor� ur�uj�, �o sa bude s
paketmi robi�.
Ka�d� paket, ktor� chce by� odoslan� alebo prijat� z/na sie�ov� rozhranie po��ta�a, mus� prejs� cez proces overovania v pr�slu�nej tabu�ke a re�azci pravidiel. Pravidl� sa vyberaj� sekven�ne v porad�, v akom sa nach�dzaj� v tabu�ke. Ak paket vyhovie nejak�mu pravidlu, �alej sa nepokra�uje a vykon� sa definovan� oper�cia (target), napr. prijatie/zahodenie paketu. Ak paket nevyhovie �iadnemu pravidlu v re�azci, vykon� sa implicitn� oper�cia, ktor� m� ka�d� re�azec definovan� (policy).
Netfilter/iptables nemaj� �iadny konfigura�n� s�bor v tradi�nom zmysle.
Na konfigur�ciu sl��i program iptables
, pomocou ktor�ho sa
manipuluje s pravidlami jednotliv�ch tabuliek. Pri pou��van� programu
iptables
sa ako parameter uv�dza tabu�ka a re�azec
pravidiel, s ktor�mi chceme pracova�, typ oper�cie a �pecifik�cia
pravidla.
Niektor� parametre programu iptables | |
---|---|
-t | tabu�ka, s ktorou budeme pracova� |
-A | pridanie pravidla na koniec re�azca |
-D | zmazanie pravidla z re�azca |
-F | vymazanie v�etk�ch pravidiel v tabu�ke alebo re�azci |
-P | nastav� politiku re�azca (�o sa m� urobi�, ak paket nevyhovie �iadnemu pravidlu) |
-L | vyp��e obsah tabu�ky |
-N | vytvor� nov� u��vate�om definovan� re�azec pravidiel |
-s | zdrojov� IP adresa paketu |
-d | cie�ov� IP adresa paketu |
-i | zdrojov� sie�ov� rozhranie (eth0,...) |
-o | cie�ov� sie�ov� rozhranie |
-p | protokol (z /etc/procotols) |
-m | pou�ije sa roz�iruj�ci modul, ktor� m��e ma� vlastn� parametre |
-j | �o sa m� s paketom urobi�, ak vyhovie tomuto pravidlu (napr. ACCEPT, DROP, u��vate�om definovan� re�azec pravidiel) |
... |
Pr�klady tabuliek a re�azcov pravidiel:
Tabu�ka filter |
|
---|---|
INPUT |
pravidl� v tomto re�azci pravidiel sa vyhodnocuj� na paketoch prich�dzaj�cich pre tento po��ta�. |
OUTPUT |
pravidl� v tomto re�azci sa vyhodnocuj� na paketoch odch�dzaj�cich z tohto po��ta�a. |
FORWARD |
pravidl� v tomto re�azci sa vyhodnocuj� na paketoch, ktor� prech�dzaj� cez tento po��ta�. |
Tabu�ka nat |
|
OUTPUT | lok�lne generovan� pakety |
PREROUTING | prich�dzaj�ce pakety |
POSTROUTING | odch�dzaj�ce pakety |
Ka�d� pravidlo mus� �pecifikova�, �o sa m� s paketom urobi�, ak vyhovie jeho podmienkam.
Pr�klady oper�cii | |
---|---|
ACCEPT | paket sa pust� �alej |
DROP | paket sa zahod� |
REJECT | paket sa zahod� a odosielatelovi sa o tom po�le spr�va (vo forme ICMP paketu) |
DNAT | platn� len v tabu�ke nat , modifikuje cie�ov� adresu a port,
na ktor� sa paket �alej odo�le, pod�a parametru
--to-destination
|
SNAT | platn� len v tabu�ke nat , modifikuje zdrojov� adresu paketu
pod�a parametru --to-source
|
MASQUERADE | platn� len v tabu�ke nat . Podobne ako SNAT men�
zdrojov� adresu a port paketu, ale IP adresu nastav� na
adresu firewallu a port pod�a parametru
--to-ports . Pou��va sa pri dynamicky
pride�ovan�ch IP adres�ch (dialup).
|
REDIRECT | platn� len v tabu�ke nat . Men� cie�ov� IP
adresu na adresu firewallu a port pod�a parametru
--to-ports .
|
RETURN | v u��vatekskom re�azci, zastav� sa preh�ad�vanie aktu�lneho re�azca a pokra�uje sa �al��m pravidlom vo volaj�com re�azci. |
Detailn� dokument�cia je v iptables(8)
.
Ma� zapnut� ochranu pred IP spoofingom (fal�ovanie zdrojov� IP adresy). To znamen�,
�e blokuje pr�chodzie pakety z tak�ch adries, ktor� by mali pod�a routovacej tabulky (route)
pr�js� z in�ho rozhrania.
echo "1" > /proc/sys/net/ipv4/conf/eth0/rp_filterPri konfigurovan� siln�ho firewallu, je dobr� nastavit implicitn� politiky a explicitne povolova� v�nimky. Implicitn� politiky sa vytv�raj� len pre vstavan� re�azce ( INPUT, OUTPUT, FORWARD ).
iptables -P INPUT DROP # v�echny p��choz� pakety budeme zahazovat iptables -P OUTPUT ACCEPT # v�echny odchoz� pakety budeme pou�t�t iptables -P FORWARD DROP # v�echny p�epos�lan� pakety budeme zahazovatv�etky prich�dzaj�ce pakety, ktor� s� s��as�ou, alebo nejako s�vis� s u� vytvoren�mi spojeniami povolit.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Nezabudn�� povolit loopback (zpetn� rozhranie lo )
iptables -A INPUT -i lo -j ACCEPT�alej povoli� pr�chodzie spojenia, pod�a gusta. Z alphi nezabudn�� povoli� forwardovanie.
# Zahod� v�etky pakety z 10.0.0.1 do 10.0.40.2 $ iptables -t filter -A FORWARD -s 10.0.0.1 -d 10.0.40.2 -j DROP # Zobraz� tabu�ku filter $ iptables -t filter -L # Vlo�� na za�iatok re�azca pravidlo o prep���an� ICMP paketov $ iptables -t filter -I FORWARD 1 -p icmp -j ACCEPT # Vyma�e druh� pravidlo z tabu�ky filter z re�azca FORWARD $ iptables -t filter -D FORWARD 2 # Povol� http protokol $ iptables -t filter -I FORWARD 2 -s 10.0.0.1 -d 10.0.50.2 -p tcp -m \ state --state NEW,ESTABLISHED -m tcp --dport http -j ACCEPT # Presmeruje v�etky spojenia na port 8080 na 10.0.40.2:80 $ iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT \ --to-destination 10.0.50.2:80
Aby sme tieto pr�kazy nemuseli p�sa� st�le dokola, existuj� programy
iptables-save
a iptables-restore
.
iptables-save
vyp��e obsah v�etk�ch tabuliek vo form�te
prep�na�ov programu iptables. V�stup tohoto programu sa d� pou�i� ako
vstup programu iptables-restore
, ktor� pod�a tohoto s�boru
nastav� iptables.
Nev�hoda tohoto pr�stupu je, �e ak m�me napr. 200 podobn�ch pravidiel,
ktor� sa l��ia len v nejakom jednom ��sle, tak vo v�stupe programu
iptables-save
bude 200 podobn�ch riadkov. Preto je niekedy
lep�ie nap�sa� si vlastn� skript (napr. v bashi), ktor� bude vola�
program iptables
. Tak�to skript m��e obsahova� r�zne cykly
a podmienky, tak�e tento sp�sob konfigur�cie je ove�a flexibilnej��.