Sunteți pe pagina 1din 55

Cursul 7

7
Securizarea reelei
15 noiembrie 2011

Obiective

TCP i UDP pe scurt


Ce este un firewall
Filtrarea pachetelor
Iptables
SSH

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
transmisiei

Adresare
Multiplexare

Controlul
fluxului

Iniiere de
conexiuni

Atenie: nu toate protocoalele de nivel 4 au toate aceste


funcionaliti!

TCP vs UDP
TCP
Transmission Control Protocol
Orientat conexiune
Protocol sigur (reliable)
datele ajung garantat la destinaie
datele ajung n ordine la destinaie

Controlul fluxului
Controlul congestiei

UDP
User Datagram Protocol
Neorientat conexiune
Nesigur (unreliable)

segmente pierdute

Fr controlul fluxului

segmente fr ordine

Exemple

Controlul erorii

IPTV

Exemple:

VoIP

SSH

HTTP

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
Seq = x

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

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

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

ncheierea conexiunii

Send FIN

Receive FIN

Send ACK
Send FIN
Receive ACK
Receive FIN

Send ACK
Receive ACK

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
Datorit 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
Stateless firewall

Stateful firewall

Firewall de nivel aplicaie


(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 si 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
N

Forward
M

Input
M
F
nat

Postrouting
N

Output
N M
F
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

Adugare regul la final

--delete

tergerea unei reguli

--list

Afiare reguli

--flush

tergerea tuturor regulilor

--new-chain

Creat lan nou

--delete-chain

ters lan

--policy

Schimbat politic implicit


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

DHCP

LAN1

Fa0/0: DHCP

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
IP Destinaie: 10.0.0.6

Tabel: filter
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
iptables
iptables
iptables
iptables
iptables

A
A
A
A
A
A

FORWARD
FORWARD
FORWARD
FORWARD
FORWARD
FORWARD

s 192.168.0.0/16 j DROP
s 172.16.0.0/12 j DROP
s 10.0.0.0/8 j DROP
d 192.168.0.0/16 j DROP
d 172.16.0.0/12 j DROP
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, g?
p = 7, g = 3

p=7
g=3

a = 12

Genereaz a
(aleator)

Genereaz b
(aleator)

b=7
A=6

B=3
K=6

Calculeaz k

Calculeaz k

K=6
35

Funcii SSH Autentificare


Dou metode principale de autentificare:
Prin parol
Prin chei asimetrice

Autentificarea are loc dup stabilirea unui canal criptat cu DiffieHellman


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

37

SSH Autentificare prin cheie privat


Pasul 1:
Sesiunea sigur este stabilit prin Diffie-Hellman

1. DH

K=6

Diffie-Hellman

K=6

38

SSH Autentificare prin cheie privat


Pasul 2:
Clientul cere autentificarea cu user-ul foo

1. DH

2. Cerere

K=6

Diffie-Hellman

K=6

Cerere conectare: user=foo

39

SSH Autentificare prin cheie privat


Pasul 3:
Serverul trimite un challenge

1. DH

2. Cerere

3. Challenge

K=6

Diffie-Hellman

K=6

Cerere conectare: user=foo


Bun. Cripteaz-mi string-ul asdfgh

40

SSH Autentificare prin cheie privat


Pasul 4:
Clientul cripteaz challenge-ul cu cheia sa privat
Rspunsul su poart numele de authenticator

1. DH

2. Cerere

3. Challenge

K=6

Diffie-Hellman

K=6

Cerere conectare: user=foo


4. Authenticator

Bun. Cripteaz-mi string-ul asdfgh


Uite string-ul criptat: K(asdfgh)

41

SSH Autentificare prin cheie privat

1. DH

2. Cerere

3. Challenge

K=6

Diffie-Hellman

K=6

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
Algoritm
MAC

Cheie
Mesaj
MAC

Algoritm
MAC

MAC

MAC

Nu:
Mesajul e modificat

Da:
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 fiecare ticket
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
142.31.16.128/25

214.13.177.2
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

Chain: FORWARD; Policy: DROP


-i eth0 j ACCEPT

Internet

ACCEPT

LAN

Admin
142.31.16.128/25

214.13.177.2
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
s 142.31.16.128/25 p tcp --dport 80 j ACCEPT

LAN

Admin

d 142.31.16.9 p tcp --dport 80 j DROP

142.31.16.128/25

214.13.177.2
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
s 214.13.177.2 p tcp --dport 22 j ACCEPT
p tcp --dport 22 j DROP

142.31.16.9
eth1
eth0
eth2

Internet

Chain: FORWARD; Policy: ACCEPT


s 142.31.16.128/25 p tcp --dport 80 j ACCEPT
d 142.31.16.9 p tcp --dport 80 j DROP

LAN

Admin
142.31.16.128/25

214.13.177.2
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
p tcp --dport 22 j DROP

142.31.16.9
eth1
eth0
eth2

Internet

Chain: FORWARD; Policy: ACCEPT


s 142.31.16.128/25 p tcp --dport 80 j ACCEPT
d 142.31.16.9 p tcp --dport 80 j DROP

LAN

Admin

i eth0 p tcp --syn j DROP

142.31.16.128/25

214.13.177.2
54

Cuvinte cheie
DoS

Acces

TCP
Nivelul
transport

Atacuri
Recunoatere
Chei
publice/private

Autentificare

UDP
nat

filter

SSH
Integritate

Confidenialitate

Tabele

mangle

DiffieHellman
Politic

Stateful

target

Firewall
Stateless

Nivel
aplicaie

iptables
INPUT
Lanuri

OUTPUT

FORWARD
55

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