Documente Academic
Documente Profesional
Documente Cultură
7
Securizarea reelei
15-16 noiembrie 2016
Obiective
2
Cursul 7
6. Prezentare Aplicaie
5. Sesiune
Segmentare
Sigurana
Adresare
transmisiei
Multiplexare
Controlul Iniiere de
fluxului conexiuni
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
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 ACK
Send FIN
Receive ACK
Receive FIN
Send ACK
Receive ACK
9
Cursul 7
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
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
Input Output
M F N M F
Aciunea asupra
pachetului
20
Filtrarea pachetelor cu iptables
21
Filtrarea pachetelor cu iptables
23
Filtrarea pachetelor cu iptables
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
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?
s 192.168.0.5 j DROP
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
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:
+ =
+ =
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
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
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
42
SSH Autentificare prin cheie privat
43
Funcii SSH Integritate
Funcie realizat prin MAC
Message Authentication Code
Este de fapt un hash cu cheie
Mesaj
Algoritm
MAC 0xA0132FEE
key: student
44
Funcii SSH Integritate
Emitor Receptor
Mesaj Mesaj
Cheie Cheie
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 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)
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
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