Sunteți pe pagina 1din 55

Cursul 7

7
Securizarea reelei
15-16 noiembrie 2016
Obiective

TCP i UDP pe scurt


Ce este un firewall
Filtrarea pachetelor
Iptables
SSH

2
Cursul 7

Nivelul transport Scurt descriere


Rol
Definiia unui port
Protocoale
Exemple
Puin recapitulare

OSI TCP/IP Adresare


7. Aplicaie

6. Prezentare Aplicaie

5. Sesiune

4. Transport Transport Port

3. Reea Internet Adres IP

2. Legtur de date Adres MAC


Acces la mediu
1. Fizic
Rolurile nivelului transport

Segmentare

Sigurana
Adresare
transmisiei
Multiplexare

Controlul Iniiere de
fluxului conexiuni

Atenie: nu toate protocoalele de nivel 4 au toate aceste


funcionaliti!
TCP vs UDP

TCP UDP
Transmission Control Protocol User Datagram Protocol
Orientat conexiune Neorientat conexiune
Protocol sigur (reliable) Nesigur (unreliable)
datele ajung garantat la destinaie segmente pierdute
datele ajung n ordine la destinaie Fr controlul fluxului
Controlul fluxului segmente fr ordine
Controlul congestiei Exemple
Controlul erorii IPTV
Exemple: VoIP

SSH
HTTP

6
Antetul TCP flag-uri
Grup de 8 bii din antetul TCP
Identific diverse stri ale protocolului
Cteva flag-uri importante sunt:
ACK
activare cmp Numr de confirmare
SYN
protocolul de iniiere a conexiunii (handshake)
stabilirea/sincronizarea numerelor de secven
FIN
protocolul de ncheiere a conexiunii
ncheierea transmisiei de la FIN-sender
Iniierea conexiunii TCP

Send SYN Receive SYN


Seq = x Seq = x

Send SYN
Seq = y,
Ack = x + 1
Receive SYN
Seq = y,
Ack = x + 1

Send ACK
Seq = x+1
Ack = y + 1 Receive ACK
Seq = x+1
Ack = y + 1

8
ncheierea conexiunii

Send FIN Receive FIN

Send ACK
Send FIN

Receive ACK
Receive FIN

Send ACK

Receive ACK

9
Cursul 7

Rolul unui firewall


Definiie
Funcii n reea
Exemple
Ce este un firewall
Mecanism folosit pentru blocarea traficul nedorit din reea
Poate fi implementat:
Pe un dispozitiv de reea
Ruter Cisco
Ca un dispozitiv dedicat
Cisco ASA
Fortinet Fortigate
Pe un end-device (host sau server)
ZoneAlarm
Windows Firewall
Netfilter/iptables

11
De ce avem nevoie de firewall-uri
Internetul nu este un loc sigur
Reeaua local poate fi oricnd inta unui atac:
De recunoatere
Ping sweep
Sniffing
Port scan
De DoS (Denial of Service) sau DDoS (Distributed DoS)
Smurf attack
SYN flood
De acces
Atacarea unei parole (cu dicionar sau brute-force)
Buffer overflow
Man-in-the-middle

12
Rolul unui firewall
Atac de recunoatere
Atacatorul ncearc s descopere maini i serviciile de pe acestea
Exemplu: ICMP echo request ctre o adres de broadcast descoper toate
mainile din reea
Un Firewall poate:
Bloca porturile vulnerabile
Bloca iniierea din exterior a conexiunilor
Bloca rspunsul la ICMP echo request

13
Rolul unui firewall
Atac DoS sau DDoS
n general bazate pe generarea unei cantiti mari de trafic ce suprancarc
reeaua sau serverul
Din cauza suprancrcrii, traficul risc s fie ignorat
Un Firewall poate:
Monitoriza numrul sesiunilor TCP Half-Open ctre un server i le poate
nchide dac trec de un prag
Bloca directed broadcasts

14
Tipuri de firewall

Firewall de nivel aplicaie


Stateless firewall Stateful firewall
(Proxy firewall)

7. Aplicaie 7. Aplicaie 7. Aplicaie

6. Prezentare 6. Prezentare 6. Prezentare

5. Sesiune 5. Sesiune 5. Sesiune

4. Transport 4. Transport 4. Transport

3. Reea 3. Reea 3. Reea

2. Legtur de date 2. Legtur de date 2. Legtur de date

1. Fizic 1. Fizic 1. Fizic

15
Cursul 7

iptables
Funcii
Structur
Tabelele iptables
Lanuri predefinite
Exerciii
iptables
Utilitar Linux
Face parte din proiectul Netfilter
Permite unei maini Linux s:
Filtreze pachetele
Translateze adrese
Rescrie cmpurile unui pachet
Configurat prin scrierea de reguli
Regulile iptables sunt compuse din dou seciuni principale:
ablon ce valori trebuie s aib cmpurile din pachet pentru a se aciona
asupra lor
Aciune ce operaie va efectua maina Linux asupra pachetului

17
Tabele iptables
Filter
Conine reguli ce spun ce trafic poate s treac i ce trafic trebuie aruncat
Exemplu:
O adres extern a euat n mod repetat s se conecteze la un server Linux prin
SSH
Se adaug o regul de filtrare care blocheaz orice trafic de la adresa
respectiv
Nat
Conine reguli pentru translatarea adreselor n procesul de NAT
Exemplu:
O adres privat trebuie s acceseze un server din Internet
Se adaug o regul de NAT care rescrie adresa surs privat cu o adres public
La ntoarcere, pachetul va fi rescris invers
(Mult) mai multe detalii n cursul viitor
Mangle
Conine reguli pentru alterarea specializat a pachetelor

18
Lanuri iptables
Liste de reguli aplicate implicit unui anumit subset de trafic

Prerouting Forward Postrouting


N M M F N M

Input Output
M F N M F

nat Proces din ruter


filter
mangle
19
Filtrarea pachetelor cu iptables
Regulile sunt configurate de fapt prin comenzi iptables
ubuntu# iptables t filter A INPUT s 10.0.0.0/8 p icmp j DROP

Aciunea asupra
pachetului

Condiiile pe care trebuie s le


ndeplineasc pachetul

-A: Tipul de operaie (A = Adugare)


INPUT: Numele lanului la care se adaug

Tabela n care se adaug regula

20
Filtrarea pachetelor cu iptables

ubuntu# iptables t filter A INPUT s 10.0.0.0/8 p icmp j DROP

Tabela este implicit filter


Regula putea fi deci scurtat ca fiind:
ubuntu# iptables A INPUT s 10.0.0.0/8 p icmp j DROP

Opiunile permise pentru acest parametru sunt:


filter
nat
mangle
raw
Folosit pentru configurarea excepiilor de monitorizare a conexiunilor

21
Filtrarea pachetelor cu iptables

ubuntu# iptables t filter A INPUT s 10.0.0.0/8 p icmp j DROP


INPUT poate fi nlocuit cu orice alt lan predefinit
Pot fi create i lanuri noi de ctre administrator
Operaiile permise sunt:

A --append Adugarea unei reguli la final


D --delete tergerea unei reguli
L --list Afiarea regulilor
F --flush tergerea tuturor regulilor
N --new-chain Crearea unui lan nou
X --delete-chain tergerea unui lan
P --policy Schimbarea politicii implicite
22
Filtrarea pachetelor cu iptables

ubuntu# iptables t filter A INPUT s 10.0.0.0/8 p icmp j DROP


Selectarea traficului se face pe baza informaiilor din pachet
Fr specificarea unui protocol, se pot face reguli coninnd:
Interfaa de intrare ( -i )
Interfaa de ieire ( -o )
Adresa IP destinaie ( -d)
Adresa IP surs ( -s )

23
Filtrarea pachetelor cu iptables

ubuntu# iptables t filter A INPUT s 10.0.0.0/8 p icmp j DROP


Reprezint operaia ce va fi fcut asupra pachetului
n terminologia iptables, j vine de la jump i DROP este un target
Poate fi omis
n acest caz regula nu face nimic, ns contorul regulii va fi incrementat
Target -uri uzuale sunt:
ACCEPT: pachetul este acceptat
DROP: pachetul este aruncat
LOG: este adugat n log-urile sistemului o nregistrare

24
Exerciiul 1
S se scrie o regul iptables care permite trecerea traficului de la
staia 192.168.10.1 ctre serverul 192.168.10.40.
R: iptables A FORWARD s 192.168.10.1 d 192.168.10.40 j ACCEPT

S se scrie o regul care blocheaz orice trafic destinat ruterului


R1 de la staiile din reeaua LAN1. Traficul ce doar tranziteaz
ruterul trebuie s fie permis.
R: iptables A INPUT s 192.168.0.0/28 j DROP

DHCP Fa0/1: 192.168.0.1/28


ISP

R1 Fa0/0: DHCP
DHCP

LAN1
25
Cum funcioneaz iptables
La ntlnirea unui pachet, acesta este evaluat secvenial conform
fiecrei reguli dintr-un lan
Dac se face match pe o regul cu un target ACCEPT sau DROP,
procesarea se termin i pachetul este acceptat sau aruncat
Ce se ntmpl dac nu se face match pe nicio regul?

IP Surs: 192.168.0.1 Tabel: filter


IP Destinaie: 10.0.0.6 Lan: FORWARD

s 192.168.0.5 j DROP

s 192.168.0.1 d 10.0.0.0/30 j DROP

s 192.168.0.0/24 d 10.0.0.4/30 j ACCEPT

s 192.168.0.0/24 j ACCEPT

26
Politici iptables
Fiecare lan predefinit are o politic implicit
Lanurile create de utilizator NU pot avea politic implicit
Politica este un target ce este ales pentru fiecare pachet ce nu
face match pe niciuna din regulile lanului
Politicile implicite sunt ACCEPT
Politica unui lan poate fi modificat:
iptables P FORWARD DROP

27
Exerciiul 2
Ruterele de la marginea unei reele private implementeaz de
obicei antispoofing:
Nu permit intrarea n reea a pachetelor cu adrese private
Nu permit ieirea din reea a pachetelor cu adrese private
Configurai o politic antispoofing folosind iptables
R:
iptables A FORWARD s 192.168.0.0/16 j DROP
iptables A FORWARD s 172.16.0.0/12 j DROP
iptables A FORWARD s 10.0.0.0/8 j DROP
iptables A FORWARD d 192.168.0.0/16 j DROP
iptables A FORWARD d 172.16.0.0/12 j DROP
iptables A FORWARD d 10.0.0.0/8 j DROP

28
Extensii iptables
Adesea adresele IP i interfeele fizice nu sunt suficiente pentru a
implementa cerinele de securitate
Se poate permite accesul doar ctre serviciul de HTTP?
Se poate permite stabilirea conexiunilor TCP doar ntr-o direcie?
Se pot bloca ping-urile ctre interior pstrnd nc posibilitatea de a da
ping ctre exterior?
Iptables permite activarea de extensii, module ce ofer noi
posibiliti n specificarea regulilor
Extensiile se activeaz cu p (protocol) sau m (module)
Extensiile cele mai importante sunt:
tcp
udp
icmp

29
Extensii iptables
Extensia tcp permite filtrarea traficului dup:
Port destinaie --dport --destination-port
Port surs --sport --source-port
Flag-uri TCP (SYN, ACK, FIN, etc.) --tcp-flags, --syn
Extensia icmp permite filtrarea traficului dup:
Tipul pachetului ICMP --icmp-type <type> unde type poate fi:
echo-request
echo-reply
time-exceeded
Pentru toate valorile lui type, putei rula:
linux# iptables p icmp -h

30
Cursul 7

SSH
Rol
Etapele stabilirii unei conexiuni
Diffie-Hellman
Conectarea prin chei
SSH
Secure SHell
Protocol folosit pentru accesul sigur la distan
Permite execuia de comenzi pe maina accesat
Dou versiuni majore existente: SSH-1 i SSH-2
SSH-1 are vulnerabiliti majore
Cursul va aborda n continuare versiunea SSH-2
Rol similar cu protocolul Telnet
Funcioneaz pe portul TCP 22

32
Conceptele securitii
Autentificare
Sursa i destinaia sunt cine spun c sunt

Confidenialitate
Doar sursa i destinaia pot vizualiza
informaia

Integritate
Mesajul ajuns la destinaie nu a fost
modificat pe parcurs

33
Funcii SSH Confidenialitate
Sunt folosii algoritmi de criptare simetric
AES: Advanced Encryption Standard
3DES: Triple Data Encryption Standard
IDEA, DES, ARCFOUR, BLOWFISH, TSS
Criptare simetric = cheie comun
3DES este o variant popular
Necesit o cheie comun pe 168, 112 sau 56 de bii
Nu vrem s trimitem cheia pe canal pentru a nu fi interceptat
Trebuie stabilit o cheie comun fr ca aceasta s fie transmis
Soluie: Diffie-Hellman Key Exchange

34
Funcii SSH Confidenialitate cu DF
Serverul SSH ine o list de perechi (p, g) cu proprieti
matematice speciale
Client (Alice) Server (Bob)
p=7
g=3

p=7 p, g?
p = 7, g = 3
g=3

Genereaz a Genereaz b
a = 12 (aleator) (aleator) b=7
= = 6
A=6
= = 3
B=3

K=6 Calculeaz k Calculeaz k K=6


= =6 = =6 35
Funcii SSH Autentificare
Dou metode principale de autentificare:
Prin parol
Prin chei asimetrice
Autentificarea are loc dup stabilirea unui canal criptat cu Diffie-
Hellman
Avnd n vedere c parola este transmis printr-un canal criptat,
vedei vreo problem cu aceast metod?
R: Serverul va decripta parola pentru a valida autentificarea; dac serverul
e compromis, parola va fi descoperit
R: Parolele sigure sunt greu de inut minte
Este preferat folosirea cheilor asimetrice

36
Chei asimetrice
Se bazeaz pe perechi de chei aflate ntr-o relaie matematic:
Cheia public (+ )
Cheia privat ( )
Dndu-se un mesaj M, exist urmtoarea relaii:
+ =

+ =

Cu alte cuvinte, un client poate:


Avea configurat pe server cheia sa public + (de un administrator de
exemplu)
Cripta un mesaj cu
Serverul va putea decripta mesajul cu +
Exemplu de algoritm: RSA
37
SSH Autentificare prin cheie privat
Pasul 1:
1. DH
Sesiunea sigur este stabilit prin Diffie-Hellman

Diffie-Hellman
K=6 K=6

38
SSH Autentificare prin cheie privat
Pasul 2:
1. DH
Clientul cere autentificarea cu user-ul foo

2. Cerere

Diffie-Hellman
K=6 K=6
Cerere conectare: user=foo

39
SSH Autentificare prin cheie privat
Pasul 3:
1. DH
Serverul trimite un challenge

2. Cerere

Diffie-Hellman
K=6 K=6
3. Challenge
Cerere conectare: user=foo

Bun. Cripteaz-mi string-ul asdfgh

40
SSH Autentificare prin cheie privat
Pasul 4:
1. DH
Clientul cripteaz challenge-ul cu cheia sa privat
Rspunsul su poart numele de authenticator

2. Cerere

Diffie-Hellman
K=6 K=6
3. Challenge
Cerere conectare: user=foo

4. Authenticator Bun. Cripteaz-mi string-ul asdfgh

Uite string-ul criptat: K(asdfgh)

41
SSH Autentificare prin cheie privat
Pasul 5:
1. DH
Serverul folosete cheia public preconfigurat a
clientului i verific + =

2. Cerere

Diffie-Hellman
K=6 K=6
3. Challenge
Cerere conectare: user=foo

4. Authenticator Bun. Cripteaz-mi string-ul asdfgh

Uite string-ul criptat: K(asdfgh)


5. Reply
Totul pare n regul

42
SSH Autentificare prin cheie privat

Doar challenge-ul este criptat cu cheia privat


Cu alte cuvinte, este folosit strict pentru operaiile de autentificare

Motivul este eficiena:


Cheile asimetrice sunt ineficiente n operaiile de criptare/decriptare
Impactul criptrii asimetrice a ntregului trafic este mult prea mare

43
Funcii SSH Integritate
Funcie realizat prin MAC
Message Authentication Code
Este de fapt un hash cu cheie

Mesaj
Algoritm
MAC 0xA0132FEE

key: student

Spre deosebire de semnturi digitale, cheia folosit este comun


SHA-1 i MD5 sunt algoritmii de hashing folosii

44
Funcii SSH Integritate
Emitor Receptor

Mesaj Mesaj

Cheie Cheie

Algoritm Mesaj Algoritm


MAC MAC
MAC

MAC MAC

Nu: Da:
Mesajul e modificat Mesajul e intact
45
SSH Exemplu client
Putty este un client ssh pentru Windows, disponibil sub licena
MIT

46
SSH Captur trafic

Confidenialitate Integritate Autentificare??? 47


SSH Captur trafic

Confidenialitate Integritate 48
SSH
SSH is a big topic
Dac dorii s aflai mai multe detalii, putei ncerca:
Daniel J. Barrett, Richard E. Silverman, and Robert G. Byrnes, SSH: The
Secure Shell (The Definitive Guide), O'Reilly 2005 (2nd edition)

Are 668 de pagini

49
Exerciiul final
Fie topologia de mai jos
Ruterul este o main Linux ce a fost deja configurat cu regulile iptables
din stnga
Determinai comenzile necesare pentru a rezolva fiecareticket
Switch-ul reprezint o reea de host-uri cu adresare DHCP
Server
Chain: INPUT; Policy: ACCEPT
-i eth0 j DROP 142.31.16.9
eth1
eth0
eth2 Internet
Chain: FORWARD; Policy: DROP
-i eth0 j ACCEPT LAN
Admin
214.13.177.2
142.31.16.128/25
50
Exerciiul final
Ticket #1
Staiile din LAN nu pot comunica cu Server.
Care este motivul? Care este soluia?
linux# iptables P FORWARD ACCEPT

Server
Chain: INPUT; Policy: ACCEPT
-i eth0 j DROP 142.31.16.9
eth1
eth0
eth2 Internet
Chain: FORWARD; Policy: DROP ACCEPT
-i eth0 j ACCEPT LAN
Admin
214.13.177.2
142.31.16.128/25
51
Exerciiul final
Ticket #2
Configurai iptables a.. doar staiile din LAN s poat folosi serviciul de
HTTP de pe Server.
linux# iptables F FORWARD
linux# iptables A FORWARD s 142.31.16.128/25 p tcp --dport 80 j ACCEPT
linux# iptables A FORWARD d 142.31.16.9 p tcp --dport 80 j DROP
Server
Chain: INPUT; Policy: ACCEPT
-i eth0 j DROP 142.31.16.9
eth1
eth0
eth2 Internet
Chain: FORWARD; Policy: ACCEPT
-i eth0 j ACCEPT LAN
s 142.31.16.128/25 p tcp --dport 80 j ACCEPT Admin
d 142.31.16.9 p tcp --dport 80 j DROP
214.13.177.2
142.31.16.128/25
52
Exerciiul final
Ticket #3
Configurai iptables a.. doar Admin s poat accesa prin SSH ruterul

linux# iptables F INPUT


linux# iptables A INPUT s 214.13.177.2 p tcp --dport 22 j ACCEPT
linux# iptables A INPUT p tcp --dport 22 j DROP
Server
Chain: INPUT; Policy: ACCEPT

-i eth0 j DROP 142.31.16.9


s 214.13.177.2 p tcp --dport 22 j ACCEPT
eth1
p tcp --dport 22 j DROP
eth0
eth2 Internet
Chain: FORWARD; Policy: ACCEPT
s 142.31.16.128/25 p tcp --dport 80 j ACCEPT LAN
d 142.31.16.9 p tcp --dport 80 j DROP Admin
214.13.177.2
142.31.16.128/25
53
Exerciiul final
Ticket #4
Configurai iptables a.. sesiunile TCP din LAN s poat fi iniiate doar
dinspre interior
linux# iptables A FORWARD p tcp --syn j DROP ???
linux# iptables A FORWARD i eth0 p tcp --syn j DROP

Server
Chain: INPUT; Policy: ACCEPT
s 214.13.177.2 p tcp --dport 22 j ACCEPT 142.31.16.9
p tcp --dport 22 j DROP
eth1
eth0
eth2 Internet
Chain: FORWARD; Policy: ACCEPT
s 142.31.16.128/25 p tcp --dport 80 j ACCEPT LAN
d 142.31.16.9 p tcp --dport 80 j DROP Admin
i eth0 p tcp --syn j DROP
214.13.177.2
142.31.16.128/25
54
Cuvinte cheie
DoS
Acces TCP
Atacuri Nivelul
transport
Recunoatere
UDP
Chei
publice/private
Autentificare nat filter
SSH
mangle
Integritate Confidenialitate Tabele
Diffie-
Hellman
iptables
Politic
Stateful INPUT

Firewall target Lanuri


OUTPUT
Nivel
Stateless aplicaie FORWARD
55

S-ar putea să vă placă și