Firewall - zariadenie proti ��reniu oh�a

Michal Be�o, xbeno@fi.muni.cz

Obsah

Motiv�cia

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.

  • Hardwarov� / Softwarov�
  • Rozdelenie Firewallow

    Firewally je mo�n� rozdeli� pod�a viacer�ch krit�ri�:
    1. paketov� filter (Packet Filter)
    2. stavov� firewall (Stateful inspection firewall)
    3. aplika�n� proxy (Application proxy firewall gateway)
    4. analyz�tor paketov
    5. NAT (Network Address Translation)

    Paketov� filter (Packet Filter)

    Je nejjednoduch��m typom firewallu. Pracuje na princ�pe kontroly hlavi�iek proch�dzaj�c�ch paketov a rozhoduje o ich da��om byt� �i nebyt�. M��e ich zahodi�, preposla� �alej, alebo inak zpracova�.

    Paketov� filter m� radu v�hod:

    r�chlos�,nen�ro�nos�
    vyu��v� velmi m�lo v�konu CPU, v��ina oper�ci� sa vykon�va jadre syst�mu
    p�isp�sobivos�
    na �ubovoln� typ protokolu
    transparentnos�
    nie je treba upravovoa� aplik�cie
    bezstavovos�
    nevytv�ra permanentn� spojenie

    Ale taktie� radu nev�hod:

    sleduje iba hlavi�ky paketov
    nevie o�et�i� data od transportnej vrstvy v���ie
    omedzen� logovacie mo�nosti
    logovanie ve�mi za�a�uje procesor
    nepodporuje autentiza�n� mechanismy
    maxim�ln� ide autentizova� pomocou IP adries
    konfigur�cia filtrov
    na nepovolen� potreb� slu�bu obvykle pr�dete, ale na povolen� nepotrebno� slu�bu nemus�te pr�s� nikdy
    zneu�it�e nedokonalosti TCP/IP protokolu

    Stavov� firewall (Stateful inspection firewall)

    V��inou nadstavba paketov�ho filtru. D�va pozor na v�etky platn� tcp spojenia a ich porty, ktor� ukl�d� do tabu�ky. V p��pade, �e doraz� paket, ktor� neodpoved� �iadnemu platn�mu spojeniu uplatn� sa nan �innost definovan� politikou(zahodenie, predanie ...).
    Nev�hoda: funguje iba na TCP/IP

    Aplika�n� proxy (Application proxy firewall gateway)

    Je br�na, ktor� prev�dza kontrolu na aplika�nej vrstve. V�etky pakety proch�zaj�ce zo siete mus�a prejs� touto br�nou.

    V�hody

    mo�nosti autentiz�cie
    je mo�n� pou��va� autentiza�n� mechanismy pre ka�d�ho u��vate�a zvlṻ
    logovacie mo�nosti
    v�etky po�iadavky prech�dzaj�ce cez proxy. Daj� se lahko kontrolova� a podrobne logovat

    Nev�hody

    �prava aplik�ci�
    tak aby se pripojovali cez proxy
    n�ro�nost na v�kon
    nutnos� ma� pre ka�d� slu�bu/aplik�ciu vlastn� proxy, stoj� nie�o z v�konu stroja na ktoromm b��, obvykle sa jednotliv� aplika�n� proxy umiest�uj� na samostatn� stroje v demilitarizovan� z�ne

    Analyz�tor paketov

    V�stupom s� v��inou logovacie, varovn� alebo chybov� spr�vy. M��e rovnako blokova� pr�stup k portom(prevencia proti port scanom). Mezi analyz�tory paketov patr� napr�klad snort alebo portsentry.

    NAT

    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�).

    Cesta paketov

                 ________                         _____         _________
                /        \                       /     \       /         \
    pr�ch�dza-->|PREROUTING|-->[smrrovacie]---->|FORWARD|---->|POSTROUTING|--> odch�dzaj�ce
    pakety      \________/    [rozhodnutie]      \_____/       \_________/     pakety
                                 |                                 ^
                                 v                    ____         |
                                _|_                  /    \        |
                               /   \                |OUTPUT|-->[smerovac�e ]
                              |INPUT|                \____/    [rozhodnutie]
                               \___/                   ^
                                 |                     |
                                 `--> lok�lny proces --'
    
    

    Firewally v Linuxe

    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/iptables

    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.

    Konfigur�cia jadra

    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)

    Ako funguje iptables

    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).

    Konfigur�cia

    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  
    OUTPUTlok�lne generovan� pakety
    PREROUTINGprich�dzaj�ce pakety
    POSTROUTINGodch�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).

    Pr�klady nastavenia, pou�itia

    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_filter
    
    Pri 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 zahazovat
    
    v�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.

    �al�ie pr�klady konfigur�cie:

    # 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��.

    Odkazy