17 December 2007 2
Firewall - Definitie"fire wall" (zid de foc) - zid ignifug cu rolul de a preveni extinderea focului dintr-o incapere catrerestul zonelor.Internetul - mediu volatil si nesigur din punct de vedere al securitatii calculatoarelor => necesitateaizolarii prin intermediul unui "firewall“
Un firewall receptioneaza, analizeaza si ia deciziipentru toate pachetele sosite inainte ca acestea saajunga ın celelalte parti ale retelei interne.
17 December 2007 3
Firewall - TopologieFirewall-ul - primul program care receptioneaza siprelucreaza traficul de intrare si ultimul care prelucreaza traficul de iesire.Firewall-ul este plasat intre reteaua interna si internet
17 December 2007 4
Firewall – DMZ (1)O configuratie tipica consta intr-o zona neutra DMZ (DeMilitarized Zone) care contine serverele care se doresc protejateDMZ-ul nu apartine retelei interne si nu esteconectata direct la Internet si este protejata de firewall-uri
17 December 2007 5
Firewall – DMZ(2)O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall)
Se poate folosi o singura adresa IP reala
17 December 2007 6
Firewall – Filtrare de pacheteDoua tipuri de firewall
la nivel aplicatie - proxy-urila nivel retea - filtrare de pachete
Firewall-ul proxy este mai eficienta pentru ca restrictioneaza aplicatii dar mai greu de implementat.Filtrarea de pachete este cea mai raspindita metodadatorita simplitatii in implemetare.Filtrarea lor se face pe baza:
Adresei sursa/destinatiePortului destinatie al accesuluiProtocolului utilizat in comunicare
17 December 2007 7
Firewall – Politici de filtrare
Filtrarea pachetelor lor se face pe baza unorreguli care se refera la:
Adresa sursa/destinatie a pachetuluiPortului destinatie al accesului (20, 22, 53, etc)Protocolului utilizat in comunicare (TCP, UDP)
In Linux firewall-ul este implementat cu comanda iptables
17 December 2007 8
Iptables – IntroducereEste un utilitar care permite interactiune intre utilizator si kernel
Fltrarea efectiva realizata in kernel (Ring 0)Regulile sint introduse de utilizator (Ring 3)Transmite regulile utilizatorului catre kernel
Permite mai multe operatiiFiltrare (implicita)Conversie a adreselor sursa/destinatieParcarea pachetelor prin modificarea unor biti din cimpul antetelorpacjetelor pt prelucrari ulterioare
Fiecare tip de operatie are alocata o tabela specifica
Fiecare tabela poate contine reguli care descriu acctiunileafectuate asupra pachetelor
Ordonare regulilor in seturi de reguli –chains sau firewall chainsFiecare regula contrine conditii si destinatii ale pachetelor
17 December 2007 9
Iptables – tabele (1)
NAT Table
Rule 1Rule 2….Rule n
POSTROUTING chain
Rule 1Rule 2….Rule n
PREROUTING chain
Rule 1Rule 2….Rule n
OUTPUT chain
Rule 1Rule 2….Rule n
User define chains
FILTER Table
Rule 1Rule 2….Rule n
FORWARD chain
Rule 1Rule 2….Rule n
INPUT chain
Rule 1Rule 2….Rule n
OUTPUT chain
Rule 1Rule 2….Rule n
User define chains
MANGLE Table
Rule 1Rule 2….Rule n
FORWARD chain
Rule 1Rule 2….Rule n
INPUT chain
Rule 1Rule 2….Rule n
OUTPUT chain
Rule 1Rule 2….Rule n
User define chains
Rule 1Rule 2….Rule n
POSTROUTING chain
Rule 1Rule 2….Rule n
PREROUTING chain
17 December 2007 10
Iptables – tabele (2)Selectia unei table : iptables –t <nume tabela>
Tabela pentru filtrare (filter)Este implicita nu necesita o selectareContine regulile prin care un pachet este rejectat sau nuContine 3 chain-uri pre-definite (INPUT, FORWARD, OUTPUT)Poate contine si chain-uri definite de utilizator
Tabela pentru modificarea adreselor (nat)Contine regulile prin care unui pachet I se modifica adresa sursasau destinatieContine 3 chain-uri pre-definite (PREROUTING, POSTROUTING, OUTPUT)Poate contine si chain-uri definite de utilizator
17 December 2007 11
Iptables – tabele (3)Selectia unei table : iptables –t <nume tabela>
Tabela pentru marcarea pachetelor (mangle)Contine regulile prin care un pachet este marcat (modificare a unirbiti in antetele pachetului)Contine 5 chain-uri pre-definite (INPUT, FORWARD, OUTPUT, PREROUTING, POSTROUTING)
17 December 2007 12
Procesarea pachetelorFiecare pachet procesat de un chain traverseaza intregul set de reguli pina cind:
Indeplineste cerintele unei reguliEste procesat conform destinatiei alese pentru fiecare regula
Se ajunge la sfirsitul chain-uluiSe aplica “politica” generala de filtrare a lantului
Politica de filtrare a unui lant – regula generala care se aplica pentru orice caz care nu este acoperit de regulile descrise intr-un chain
Este important sa specificam o politica de filtrare de respingere a pachetelor pentru un firewall sigur
17 December 2007 13
Tabela NATNAT – Network Address TranslationPoate fi de 2 feluri:
DNAT – Destination NAT – este modificata adresa destinatie a pachetuluiSNAT – Source NAT – este modificata adresa sursa a pachetuluiMASQUARADE – similar cu SNAT insa este un caz aparte pentrusituatiile cind host-ul care realizeaza NAT are o adresa alocatadinamic (DHCP)
Resteaza istoria conexiunii odata cu pierderea ei sau schimbareaadresei IP
Concept folosit pentru a reduce numarul de adrese IP alocateIntranet conectat la Internet printr-un gateway cu adresa IP reala
17 December 2007 14
Topologie pentru NAT
17 December 2007 15
“Chain”-uri NAT Seturile de reguli pentru NAT sint aplicate de kernel asupratraficului de:
intrare - prin intermediul chain-ului PREROUTINGiesire - prin intermediul chain-ului POSTROUTINGlocal - prin intermediul chain-ului OUTPUT
Incommingtraffic
NATPREROUTING
chainRoutingdecisions
NATPOSTROUTING
chain
Localproceses
NATOUTPUT
chain
Outgoingtraffic
17 December 2007 16
SNATPentru utilizarea serviciilor Internet toate pachetele trebuie saaiba o adresa IP reala (routabila)
Este inlocuita adresa privata (neroutabila) cu cea reala a gateway-luiInlocuirea are loc in ultima atapa a procesarii datelor de catre kernel - POSTROUTINGPentru traficul dinspre Intranet spre Internet se folosesteSNAT/MAQUARADE
Exemplu de SNATiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat –A POSTROUTING –o eth0 --to-source 172.16.17.130
17 December 2007 17
DNATPosibilitatea accesarii unor servicii din Intranet (retea cu adreseIP private) din spatele firewall-ului
Este inlocuita adresa routabila a gateway-lui cu adresaprivata (neroutabila) a hostului care ofera serviciul accesatInlocuirea are loc in prima etapa a procesarii datelor de catrekernel - PREROUTING
Exemplu de DNATiptables –t nat -A PREROUTING -d 172.16.17.130 -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.2
Tot traficul TCP pe portul 80 (http) catre gateway este redirectionatcatre hostul in reteaua privata 192.168.1.2
iptables –t nat -A PREROUTING -d 172.16.17.130 -i eth0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.2
Tot traficul TCP pe portul 3389 (Windows Remote conection) catregateway este redirectionat catre hostul in reteaua privata 192.168.1.2
17 December 2007 18
Topologie DNAT
17 December 2007 19
Tabela filter
Este tabela in care se realizeaza filtrarea pachetelor pe bazaregulilor de utilizator
Exista 2 posibilitati de tratare a pachetelor care verifica o anumita regula
ACCEPT – acceptarea pachetelor si procesarea lor ulterioaraDROP - eliminarea pachetelor
Politicile implicite de filtrare presupun elimnarea tuturorpachetelor de intrare si accesptarea pachetelor generate localiptables –P INPUT DROP
iptables –P FORWARD DROPIptables –P OUTPUT ACCEPT
17 December 2007 20
“Chain”-uri in tabela de filtrareSeturile de reguli pentru filtrare sint aplicate de kernel asupratraficului de:
intrare - prin intermediul chain-ului INPUTRetransmitse - prin intermediul chain-ului FORWARDlocal - prin intermediul chain-ului OUTPUT
Incomming traffic
Filter INPUT chain
Routing decisions
Filter FORWARD
chain
Local proceses
Filter OUTPUT
chain
Outgoing traffic
17 December 2007 21
Implementarea unui filtru (1)Filtrul trebuie sa permita initiere pachetelor din spatele firewall-ului siacceptarea raspunsurilor aferente acelor cereri
Pachete cu starea TCP ESTABLISHED sau RELATEDSe refera la starea unei conexiuni deja stabilitaintre cele 2 entitati
Acceptarea stabilirii unor conexiuni din exterior prin identificareaserviciului pe baza portului si al protocolului
Port 80 – trafic webPort 22 – serviciu sshCrearea unor brese in firewall
Port 80 Port 22
17 December 2007 22
Implementarea unui filtru (2)Acceptarea conexiunilor ssh catre hostul care ruleaza firewall-ul
iptables -A INPUT -d 172.16.17.130 -p tcp -m tcp --dport 22 -j ACCEPT
Acceptarea tuturor pachetelor sosite ca raspuns la cereri facute din spatele firewall-ului
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Acceptarea conexiunilor http efectuate catre serverul web din reteauainterna si a coneviunilr de tip Remote Desktop Conection
iptables -A FORWARD -d 192.168.1.2 -p tcp -m tcp --dport 80 -j ACCEPT iptables -A FORWARD -d 192.168.1.2 -i eth0 -p tcp -m tcp --dport 3389 -j ACCEPT
Acceptarea toturor conexiunilor in reteaua interna (interfata eth1) si a pachetelor facind parte dintr-o conexiune existenta
iptables -A FORWARD -i eth1 -j ACCEPTIptables -A FORWARD -m state --state RELATED, ESTABLISHED -j ACCEPT
17 December 2007 23
Firewall – Exemplu minimalExemplu de firewall pt work-station (fara servere care ofera servicii in Internet) care ruleaza Linux:
// stergem toate regulile existente
iptables –F iptables -X
// acceptam toate cererile catre exterioriptables -P OUTPUT ACCEPT // restrictionam toate cererile din exterioriptables -P FORWARD DROPiptables -P INPUT DROP
// din exterior acceptam doar raspunsurile cererilor// facute in interiorul firewall-uluiiptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
17 December 2007 24
Firewall – Exemplu minimalExemplu de firewall pt o retea intranet cu server web in interiorul reteleiprivate
// stergem toate regulile existenteiptables –F iptables –X// acceptam toate cererile catre exterioriptables -P OUTPUT ACCEPT // restrictionam toate cererile din exterioriptables -P FORWARD DROPiptables -P INPUT DROP // NATiptables -A PREROUTING -d 172.16.17.130 -i eth0 -p tcp -m tcp –dport 80
-j DNAT --to-destination 192.168.1.2 iptables -A PREROUTING -d 172.16.17.130 -i eth0 -p tcp -m tcp --dport
3389 -j DNAT --to-destination 192.168.1.2 iptabels -A POSTROUTING -o eth0 -j SNAT --to-source 172.16.17.130 // filtrareiptables -A INPUT -d 172.16.17.130 -p tcp -m tcp --dport 22 -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -d 192.168.1.2 -p tcp -m tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth1 -j ACCEPTiptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPTIptables -A FORWARD -d 192.168.1.2 -i eth0 -p tcp -m tcp --dport 3389 -
j ACCEPT
17 December 2007 25
Firewall – Pro si contraPro:
Simplitate in implementarea firewall-urilorSimplitate in configurarea politicilor de filtrare
ContraNu asigura securitate absolutaDatorita modalitatii de implementarea a politicilor de filtraredatele esential din pachete pot fi falsificate (adrese, poturi)Odata acceptat un pachet (conexiune) orice vulnerabilitate a aplicatiei sursa poate fi exploatata