Professional Documents
Culture Documents
Roland Dirlewanger
CNRS - Dlgation Aquitaine-Limousin Esplanade des Arts et Mtiers 33402 TALENCE CEDEX Roland.Dirlewanger@dr15.cnrs.fr
JoSy - 20/03/07
Sommaire
Tunnels SSH par port dans SSHv3 Tunnels Ipsec Tunnels OpenVPN
JoSy - 20/03/07
On peut se raccorder l'Internet depuis n'importe o Je peux donc accder aux ressources informatiques de mon unit d'o je veux, quand je veux
JoSy - 20/03/07
Accs la messagerie : lecture, envoi Accs intranet WWW Accs aux serveurs de fichiers Accs des bases de donnes Accs des applications Accs une bulle protge dans un rseau hostile
On peut rpondre avec une solution diffrente pour chaque besoin et chaque situation : c'est complexe Un rseau priv virtuel est une rponse homogne et transparente pour l'ensemble
6
JoSy - 20/03/07
Ide gnrale
Cre un lien virtuel point point entre le poste mobile et un quipement du labo. Route le trafic scuriser via ce lien Rseau du labo
Tunnel Internet
Rseau tiers
JoSy - 20/03/07
Pas de transit inutile via le rseau du labo Possibilit d'utiliser des ressources (imprimantes) du rseau local sur lequel est connect le poste mobile
Certaines solutions (Checkpoint, Cisco) rejettent tout trafic entrant qui ne provient pas du tunnel Le poste mobile profite de la protection du FW du labo Le poste mobile peut accder des services authentifis par adresse IP
8
JoSy - 20/03/07
VPN = Virtual Private Network Technologie rseau permettant de construire un rseau priv l'intrieur d'une infrastructure publique.
Priv : les changes transitant par ce rseau sont confidentiels pour les autres utilisateurs du rseau public. Virtuel : le rseau priv ainsi cr n'est pas matrialis par des liens physiques.
9
JoSy - 20/03/07
Solution naturelle :
Btir un tunnel avec un protocole scuris (SSH, SSL) qui s'appuie sur une connexion TCP
Les connexions vers des services (HTTP, SMTP, IMAP) utilisent elles aussi des connexions TCP qui vont passer dans le tunnel. On parle de TCP dans TCP. Sur des rseaux non saturs, tout se passe bien
10
JoSy - 20/03/07
Le problme :
La connexion TCP du tunnel peut dtecter des pertes de paquets, des congestions, etc. Elle ralentit le trafic en rallongeant les dlais de retransmission. Si une connexion TCP (exemple, l'envoi d'un message via SMTP) est demande travers le tunnel, elle dmarre avec des dlais de retransmission courts. Elle n'a aucun ACK dans ces dlais. Elle gnre des demandes de retransmission un rythme plus rapide que la connexion TCP du tunnel peut absorber Le rsultat est que la connexion TCP du tunnel est noye de demandes de retransmission. La part de trafic utile diminue fortement et donne l'impression que le tunnel est coup.
11
JoSy - 20/03/07
Tunnels SSH v3
Le protocole SSH
mis au point par Tatu Ylnen qui fonde une socit du mme nom en 1995 but : remplacer par des quivalents plus srs les commandes telnet, ftp, rlogin, rcp, etc. authentification par login/mot de passe ou cl prive cl, publique confidentialit (chiffrement ), intgrit (HMAC) transport du protocole X11 (dport d'affichage sur Unix) tunnels par ports
12
JoSy - 20/03/07
utilisation d'une base locale utilisation de certificats chec de la vrification => avertir l'utilisateur
13
JoSy - 20/03/07
L'authentification du client
Plusieurs mthodes : mot de passe, cl publique, nom de machine, Kerberos (1.5) Par mot de passe : le plus simple mettre en uvre remplacement transparent de telnet, ftp, etc. par ssh, sftp, etc. Par cl publique :
JoSy - 20/03/07
Tunnels SSH
X11 forwarding
dfinition d'un serveur X11 virtuel sur le serveur distant : DISPLAY=localhost:0.10 transmission via la connexion SSH de toute requte sur ce serveur X11 vers le serveur X11 de la machine locale
Port forwarding
association entre un port local (IP 127.0.0.1 port tcp/x) et une destination quelconque (A.B.C.D port tcp/y) toute connexion sur le port x local entrane une connexion du serveur distant vers A.B.C.D port y transmission via la connexion SSH du trafic 127.0.0.1:x vers A.B.C.D:y
15
JoSy - 20/03/07
garde-barrire
Internet
Tunnel SSH affichage X11 port TCP 6000 interdit
DISPLAY=localhost:0.10
16 JoSy - 20/03/07
Tunnel SSH
serveur SSH
Internet
connexion vers @IP 127.0.0.1 port TCP x
autre serveur
17 JoSy - 20/03/07
Serveurs
Version commerciale : www.ssh.fi Version libre : www.openssh.org mais aussi sur des quipements rseaux (cisco, ...)
Clients
openssh putty
18 JoSy - 20/03/07
Avantages :
Trs simple mettre en oeuvre Grande interoprabilit Mais ... il faut faire l'effort d'imposer une authentification par cl publique Ne fonctionne que pour une liste de ports connue l'avance Ne fonctionne pas pour le partage de fichiers, le bureau distance, les serveurs HTTP virtuels, etc. Pas vraiment transparent pour l'utilisateur
19
Inconvnients :
JoSy - 20/03/07
Tunnels IPsec
Choisir les protocoles de scurit. Choisir les algorithmes utiliss. Utiliser des clefs cryptographiques/certificats
20
JoSy - 20/03/07
Ngociation des protocoles de scurit Echanges de cls Authentification par PSK, certificats, bi-cls
Chiffrement
Authentification, intgrit
Politique de scurit
Permet d'indiquer quel trafic scuriser ou pas en fonction des adresses et des numros de ports.
21
JoSy - 20/03/07
IPsec AH et ESP
IPsec Internet
A Internet
22 JoSy - 20/03/07
Natif + ipsec-tools (racoon, implmente IKE) FreeSwan pour les noyaux Linux 2.4
Windows
Natif
Cisco
23
JoSy - 20/03/07
IPsec et NAT
IPSec n'est pas nativement prvu pour fonctionner en environnement NAT-t. Protocole AH :
Impossibilit car il authentifie des champs modifis par du NAT (adresses sources et destination).
Protocole ESP :
Cache les ports TCP/UDP utiliss pour multiplexer/dmultiplexer les connexions NAT-tes.
RFC 3948 : UDP Encapsulation of ESP IPSec Packets. RFC 3947 : Negotiation of NAT-Traversal in the IKE.
24
JoSy - 20/03/07
IPsec et NAT
Principes du NAT-Traversal :
Encapsulation de la charge ESP dans un datagramme UDP. Ajout au protocole ISAKMP pour :
Dtecter les systmes NAT sur le chemin rseau entre les 2 tiers en prsence. ngocier l'accord sur la norme de NAT-Traversal utilis.
25
JoSy - 20/03/07
But :
D'abord, authentifier la machine via un certificat Puis, authentifier l'utilisateur via ses paramtres de connexion Windows Authentification de l'utilisateur Cration d'interfaces virtuelles PPP s'appuie sur la couche liaison (niveau 2) L2TP offre un niveau 2 au dessus d'IP
26
Utilise PPP
Utilise L2TP
JoSy - 20/03/07
IPSec = protection des changes (chiffrement). L2TP = transport des trames PPP. PPP = Authentification, raddressage de la machine cliente, transport du trafic VPN. Tunnel Tunnel Tunnel L2TP IPSec PPP
Paquet IP
Paquet IP
27 JoSy - 20/03/07
Paquet initial Link IP ESP UDP L2TP PPP IP crypt authentifi 28 JoSy - 20/03/07 Donnes ESP ESP Link Trailer Auth Trailer
Les paquets UDP 500, 4500, ESP, AH sont souvent arrts par le FW du rseau qui hberge le poste mobile
Rseau du labo 29
Au dpart, SSL (Secure Socket Layer) est destin scuriser les connexions TCP entre un client et un serveur. Exemples :
HTTP / SSL entre un navigateur et un serveur WWW IMAP / SSL entre un client et un serveur de messagerie SMTP / TLS entre deux serveurs de messagerie
Stunnel (www.stunnel.org) :
Permet d'utiliser SSL lorsque l'application sur le client et/ou le serveur ne sait pas faire du SSL
Scuriser des accs des bases de donnes Scuriser rsync, LDAP, VNC, ...
30
JoSy - 20/03/07
Tunnels SSL
Autre ide : utiliser SSL en lieu et place d'IPsec pour faire des VPN Exemple : OpenVPN (www.openvpn.org)
Produit OpenSource, licence GPL Utilise les interfaces virtuelles TUN/TAP Encapsule le trafic dans une connexion SSL Utilise UDP ou TCP (port paramtrable = 1194 par dfaut)
31 JoSy - 20/03/07
OpenVPN
Le client obtient une adresse IP de la part du serveur OpenVPN. Cette adresse est dans un rseau priv. Le trafic entre le client, le serveur, le rseau de l'unit est rout via le tunnel
Le client distant est vu comme tant directement connect au rseau local de l'unit Obtient une adresse IP de la mme faon que les postes directement connects au rseau local (DHCP, statique) Les broadcasts sont achemins dans le tunnel
32
JoSy - 20/03/07
Par certificats
Accepte des certificats CNRS serveurs ou utilisateurs Fait appel un script (verify-dn) qui permet de programmer des droits d'accs aussi fins que l'on veut
33 JoSy - 20/03/07
Syntaxe identique pour client et pour serveur Syntaxe indpendante de la plateforme (Linux, MacOS, Windows) Configuration simple (~ 12 lignes) et bien documente
openvpn.se
34
JoSy - 20/03/07
OpenVPN suppose que la passerelle VPN dispose d'une adresse externe et d'une adresse dans le rseau du labo. En pratique, elle n'a qu'une interface, dans le rseau interne.
Internet
OpenVPN
Internet
OpenVPN
JoSy - 20/03/07
Bug (?) : OpenVPN en mode tunnel sur une passerelle une interface (@IP a.b.c.d) tablit le tunnel vers cette interface puis configure les tables de routage pour que tout le trafic destination du rseau interne, y compris a.b.c.d, passe par le tunnel. Deux possibilits pour contourner le problme :
Script sur le client pour mettre une route spcifique de a.b.c.d vers le routeur par dfaut du rseau qui hberge le client Configurer OpenVPN sur le serveur pour qu'il pousse vers le client des routes individuelles pour chaque serveur du rseau interne.
36
JoSy - 20/03/07
Avantages
Une seule syntaxe client/serveurs pour toutes plateformes Simplicit de la mise en oeuvre Technologies maitrises (SSL, certificats)
Inconvnients
Mode tunnel : trafic du tunnel dans le tunnel Mode pont : difficilement utilisable sur liaison lentes cause des broadcasts
37
JoSy - 20/03/07
Un ventail de solutions robustes aux ergonomies accessibles tout utilisateur L'environnement du rseau hte peut empcher une solution de fonctionner :
Blocage du trafic UDP 500, ESP, AH : IPsec Adresses prives + NAT : IPsec Blocage de UDP 1194 : OpenVPN/UDP Adresses prives + proxy HTTP : SSH, OpenVPN/TCP
38
JoSy - 20/03/07
Bibliographie
Tutoriel VPN - Protocoles et fonctionnement des rseaux privs virtuels, B. Dexheimer, R. Dirlewanger, F. Morris, JRES, Novembre 2003, Lille. http://2003.jres.org/TUTORIELS/paper.A.pdf La mobilit : quelles solutions ?, R. Dirlewanger, Sminaire RAISIN, mars 2005, Bordeaux. http://raisin.u-bordeaux.fr/article.php3?id_article=32 Why TCP Over TCP Is A Bad Idea, O. Titz, avril 2001. http://sites.inka.de/~W1011/devel/tcp-tcp.html
39
JoSy - 20/03/07