28
17 December 2007 1 VPN Razvan Jipa [email protected]

[email protected]/~jipa/mrc/curs/VPN.pdf · [email protected]. 17 December 2007 2 VPN - Definitie VPN – Virtual Private Network - retele private care folosesc o infrastructura

  • Upload
    buidieu

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

17 December 2007 1

VPN

Razvan [email protected]

17 December 2007 2

VPN - DefinitieVPN – Virtual Private Network - retele private care folosesc o infrastructura existanta pentru a realiza o conexiune point-to-point

Conexiune securizata (criptare)Folosita pentru a conecta sub-retele apartinind aceleiasiorganizatii

17 December 2007 3

VPN - SecuritatePentru asigurarea securitatii comunicatiei

Conexini prin protocoale criptate (SSL, IPSec)Autentificare (certificate digitale)Verificari a integritatii mesajelor

Asigura protectie impotriva atacurilorPasive

o Interceptari ale mesajelor fara modificarea lor– Criptare

Activeo Modificari ale mesajelor, atacuri de tip “Man in the middle”

– Autentificarea pachetelor prin semnatura digitala

17 December 2007 4

Criptografie (1)Un sistem criptografic contine:

Textul ce trebuie transmisAlgoritmul de criptareCheia de criptareMesajul criptat

Doua categorii principale de algoritimi de criptareCheie privata – AES, IDEACheie publica - RSA

17 December 2007 5

Criptografie (2)Distributia cheilor de criptare – cel mai vulnerabilprocessPentru algoritimi cu chei publice nu exista o metodainfailibila de distributie a cheilor de criptare

Centru de distibutie a cheilorGenereaza chie de sesiune pt fiecare pereche de intrlocutoriEste necesara existenta unei chei private folosite pentrucomunicareCentru de chie – cea mai importanta/vulnerabilacomponenta

Algoritmi de criptare cu cheie privataSimetriciRezistenti pe atacuri

17 December 2007 6

Criptare cu cheie publicaPermite comunicarea securizata a mesajelor intre doua entitatifara necesitatea existentei unei chie secrete sau a unui mediusecurizat pentru distributia chei secreteSistemul permite distributia unei chei secrete pentru fiecaresesiune folosind un algoritm de criptare asimetric

2 chei: publica si privataCheia publica poate fi accesata de orice si este folosita pentrucodificare mesajelorCheia privata este mentinuta local si este folosita numai pentrudecodificare mesajelorMesajul criptat cu cheia publica poate fi decriptat numai cu cheiasecreta

17 December 2007 7

Transmiterea criptata a mesajelorO sesiune de transmitere criptata a mesajelor contain urmatorii pasi

Entitatea A cere cheia publica a entitatii BEntitatea A genereaza aleator o chie privata de sesiune cu care cripteaza mesajeleCheia privata este criptata cu cheia publica a entatii BEntitatea B decripteaza cheia de sesiune folosind cheia luiprovataEntitatea B decripteaza mesajul folosind cheia de sesiune

Modalitatea de functionare a servicilor de tip PGP sau SSL

17 December 2007 8

AutentificareaSemnatura digitala

Modalitate de autentificare a unei entitatiSe aplica fiecarui mesaj transmis

Algoritmul de generare a semnaturii digitaleBazat pe algoritum RSA de criptare cu cheie publicaSe calculeaza hash-ul fiecarui mesaj transmis

o Un sir de biti care identifica unic un mesaj (MD5, SHA)Se cripteaza hash-ul mesajului cu cheia secreta a transmitatoruluiReceptorul solicita si cheia publica a transmitatoruluiSe aplica algoritmul de decriptare folosind cheia publicapentru decriptareSe obtine un mesajul hash decodatSe calculeaza pentru mesajul primit hash-ulDaca sint identice, mesajul este autentic

17 December 2007 9

Certificate digitale (1)Certificatele digitale reprezinta o modalitate de autentificare a unei entitati

Contine datele de identificare e entitatii (adresa IP, hostname, numele organizatiei, tara)Copia cheii publice a entitatiiSemnatura digitala a unei entitati care a verificat sigaranteaza validitatea datelor de autentificare

Certificate Authority (CA) este organizatia care verifica si semneaza digitatal certificatele

Detine o cheie (super)secreta folosita pentru semnaturadigitalaPrimeste cereri de autentificare a unor certificate siinvestgheaza validitatea emitatorului si a datelor de identificareExemple deastfel de organizatii : Verisin, Thawte

17 December 2007 10

Certificate digitale (2)Orice transmisiune de date incepe prin verificareacertificatului digital

Se obtine cheia publica a organizatiei autentificatoare (de obicei aceste chie sint deja incapsulate in aplicatii)Se verifica semnatura digitala a ceritficatuluiDupa autentificare se continua sesiunea

Autentificarile pe baza de certificare reprezintamodilitate principala de stabilire a unor conexiuni web securizate (e-commerce)

17 December 2007 11

Protocoale securizateProtocoale securizare pentru conexiuni point-to-point

IPSec – primul effort major de dezvoltate a unui standard pentru securizarea retelelor (’95)

o Necesita modificarea kernelului – timp de dezvoltare mareo Administrare complexa, curba de invatare lenta

SSL folosit intensiv de catre aplicatiile webo Produs matur, usorde invatao Ruleaza ca si aplicatea a user-ului, nu in kernel

17 December 2007 12

OpenVPN

17 December 2007 13

TUN/TAP interfaceTUN - adaptor de retea virtual care se comporta ca o conexiune fizica de tip punct-la-punct (conexiuneDSL)TAP – adaptor de retea virtual care se comportacaun mediu fizic cu difuzare (conexiune Eternet)Interfetele TUN/TAP

Transmit date dispre kernel catre aplicatiile user-uluiOrice aplicatie le poate folosi pentru a prelua/transmitepachete IP

17 December 2007 14

Transmitere prin VPN (1)O solutie VPN presupune transmiterea traficului generat de toate aplicatii user-ului prin retea

Incapsularea protocoalelorIP

Protocol neorientat spre conexiunePachetele de tip IP pot fi corupte sau pierdute

TCPProtocol orientat spre conexiuneAsigura rezolvarea tuturor problemelor ale conexiunilor realizatefolosind protocolul IPRetransmisii ale pachetelor pierdute sau ne-confirmate

UDPProtocol ne-orienat spre conexiunieFoarte simplue de procesatLasa in seama aplicatiei gestiunea conexiunii

17 December 2007 15

Transmitere prin VPN (2)Incapsularea unui trafic TCP intr-o conexiune TCP

Redundanta mare (effcienta mica)Pentru retele congestionate pot aparea probleme de transmisiuneFolosirea protocolului UDP

Potrivire d.p.d.v al caracteristicilor intre protocolul IP si UDP

Ne-orietate spre conexiunePresupun posibila intrerupere a conexiunilor

17 December 2007 16

VPN si UDPCrearea unor aplicatii de tip VPN care ruleaza in spatiul user-ului si sint portabile

Folosirea pachetelor IPExtragerea lor din fluxul de date de intrare prin intermediulinterfetelor virtuale tun/tapProcesarea pachetelor (criptare/decriptare si autentificare) Incapsularea lor in pachete UDP si transmiterea prin internetLa receptie se extrag pachetele IP din stream-ul UDP, se autentiufica/decripteaza si se transmit catreinterfetle virtualetun/tapPrin intermediul interfetelor virtuale tun/tap se VPN-ul estetransparent pentru aplicatiile care il folosesc

o Modificare a traficului de pachete la nivel transport

17 December 2007 17

OpenVPNFoloseste protocoale criptate detip SSL incapsulatein pachete UDP care ruleaza in spatiul utilizatorului

SSL folosit pentru schimbarea cheilor secrete de sesiuneprin intermediul algoritmului RSAFoloseste biblipotecile SSL pentru simplificarea aplicatieiAplicatie portabila pe diferite sisteme de operareSuporta NAT pentru Intranet-uri

17 December 2007 18

Tehnici pentru VPN (1)Doua tehnici pentru stabilirea unui VPN

Bridgingo Crearea unei retele LAN de dimensiuni mari care foloseste o

singura subreteaRouting

o Foloseste mai multe retele de dimensiuni mici cu routere intreele

Prin folosirea bridge-urilor:Utilizarea protocoalelor care se bazeaza pe broadcast (NetBIOS file sharing, network neighborhood)Usor de implementat (nu se configureaza rute)Nu este un model scalabil

17 December 2007 19

Tehnici pentru VPN (2)Prin folosirea router-elor:

Solutie mai eficienta (modificarea parametrilor pachetelor) siscalabilaUtilizarea protocoalelor care se bazeaza pe broadcast (NetBIOS file sharing, network neighborhood) necesitaservere specializate detip WINSTrebuie configurate rute de transfer a datelorRuleaza garantat numai cu IPV4Solutie preferata in cazul Intraneturilor raspindite in diferitezone geografice

17 December 2007 20

Configurare OpenVPNUtilitare OpenSourceStabilirea unei infrasturcturi de chei publice si privateConfigurarea serverului OpenVPNConfigurarea firewall-uluiConfigurarea clientului

17 December 2007 21

PKI – Public Key InfrastructurePrimul pas in stabilirea modalitatii de autentificareintru-un VPNPKI contine:

Perechea (cheie publica, cheie privata) pentru serverPerechea (cheie publica, cheie privata) pentru fircare clientUn certificat master (CA – Certificate Authority) folosit pentrua semna fiecare certificat al clientiilor

Se foloseste certificare bidirectionala inainte stabiliriiconexiunii

Clientul/Serverul verifica daca certificatul celeilalte entitati a fost semnat de certificatul master (CA)

Intreaga structura se salveaza in /etc/openvpn

17 December 2007 22

Certificate de autentificareFolosire certificatelor o solutie simpla si eficienta:

Serverul mentine doar propriul certificatSint acceptate conexiuni care furnizeaza certificate semnatecu un certificat master (CA)Verificara semnaturii se face numai cu cheina publica a CA deci cheia privata poate sa fie pastrata pe alt hostServerul poate restrictiona accesul pe baza unor cimpuri din certificat.

17 December 2007 23

Generarea certificatului master (CA)Folosirea unor utilitare distribuite impreuna cu OpenVPN – easy_rsa directorySe recomanda copierea in alta locatie - /etc/openvpnIntroducerea datelor de identificare (fisierul vars)

Locatia (tara, localitate)Organizatia si departamentulAdresa de mailApelare utilitarului build_ca

17 December 2007 24

Generarea certificatelorGenerate certificat pentru server

Se foloseste utilitarul: build-key-serverbuild-key-server <name_server>

Generate certificate pt clientiSe foloseste utilitarul: build-key / build-key-passbuild-key / build-key-pass <name_client>

Este necesar introducerea unui cimp “Common Name”

Folosit pentru eventualele restrictionariTrebuie sa identifice in mod unic utilizatorul certificatului

Generare parametrii Diffie-HellmanProtocol folosit pentru transmiterea unor ckie private folosindcanale nesigure

17 December 2007 25

Configurarea serveruluiConfigurare pe baza de fisier de configurare

Distributia vine cu exemple de fisiere configurare/etc/openvpn/server.confSpecificarea interfetei virtuale tun sau tapSpecificarea sub-retelei folosite pentru tunelul VPNSpecificarea cailor catre structura PKISpecificarea rutelor folosite pentru dirijarea traficului de catreclienti

o push route <addresa subretea> <masca subretea>

17 December 2007 26

Configurarea firewall-uluiPentru Intranet-uri trebuie asigurat si NAT-uliptables –t nat –A POSTROUTING –o eth0 –j SNAT –to-

source 172.16.17.130

Se deschide doar portul folosit pentru VPN (1194)iptabels –A INPUT –p udp ––dport 1194 –j ACCEPT

Se permit fluxurile dinspre interfetle virtuale tuniptabels –A INPUT –i tun+ –j ACCEPTiptabels –A FORWARD –i tun+ –j ACCEPT

Se permit conexiunile dinspre Intranetiptabels –A INPUT –i eth1 –j ACCEPTiptabels –A FORWARD –i eth1 –j ACCEPT

Se permit conexiunile deja stabiliteiptabels –A INPUT –m state –-state ESTABLISHED,

RELATED –j ACCEPTiptables –A FORWARD –m state --state ESTABLISHED,

RELATED –j ACCEPT

17 December 2007 27

Configurarea clientilorClientul de VPN are nevoie de

Fisier deconfigurareCertificatul digital master (ca.crt)Certificatul si cheia utilizatorului

Fisierul de configurareSe bazeaza pe exemple existente in distributieSpecifica calea catre certificate si cheiSpecifica aceeasi interfata virtuala ca si serverulSpecifica aceeasi metoda de compresie a datelor ca siserverul

17 December 2007 28

VPN

Razvan [email protected]