iptables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/iptables.pdf · o configuratie mai practica...

26
17 December 2007 1 Iptables Razvan Jipa [email protected]

Upload: tranque

Post on 07-Oct-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

17 December 2007 1

Iptables

Razvan [email protected]

Page 2: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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.

Page 3: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 4: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 5: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 6: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 7: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 8: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 9: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 10: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 11: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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)

Page 12: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 13: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 14: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

17 December 2007 14

Topologie pentru NAT

Page 15: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 16: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 17: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 18: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

17 December 2007 18

Topologie DNAT

Page 19: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 20: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 21: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 22: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 23: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 24: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 25: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

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

Page 26: IPTables - vega.unitbv.rovega.unitbv.ro/~jipa/mrc/curs/IPTables.pdf · O configuratie mai practica cu un singur firewall necesita doar o singura resursa HW (router + firewall) Se

17 December 2007 26

Securitatea in Internet - Firewall

Razvan [email protected]