370 likes | 590 Vues
1/04/2004. Journes thmatiques SIARS (Marseille). 2. Pourquoi faire ? (1). Relier deux rseaux locaux travers Internet en s'affranchissant des filtres en entre de site.C'est le cas de labos multi-sites ou en cours de dmnagement.Permettre l'accs des services internes depuis l'extrieur:
E N D
1. 1/04/2004 Journes thmatiques SIARS (Marseille) 1 Solutions VPN
2. 1/04/2004 Journes thmatiques SIARS (Marseille) 2 Pourquoi faire ? (1) Relier deux rseaux locaux travers Internet en saffranchissant des filtres en entre de site.
Cest le cas de labos multi-sites ou en cours de dmnagement.
Permettre laccs des services internes depuis lextrieur:
Avec lamlioration de loffre FAI (Haut dbits ADSL), la demande des utilisateurs est de plus en plus forte pour accder au rseau local du laboratoire de manire transparente
Pourquoi faire?
Consulter lintranet du labo,
Utiliser la messagerie avec le serveur smtp du labo,
Accder aux partages Windows,
Utiliser les logiciels avec jetons,
Accder aux sites de bibliographie en ligne..
3. 1/04/2004 Journes thmatiques SIARS (Marseille) 3 Comment faire ? Il faut scuriser les communications
Remplacer ou scuriser tous les protocoles ne chiffrant pas lauthentification
ajouter ventuellement le chiffrement des donnes
Solution => crer une connexion chiffre entre clients et serveurs
On parle alors de tunnels applicatifs, tunnels et VPN
4. 1/04/2004 Journes thmatiques SIARS (Marseille) 4 Quelles solutions ? Chiffrer au niveau application (couche 7 )
Crer de nouvelles applications intgrant les fonctions cryptographiques
SSH
Chiffrer au niveau transport ( couche 4 )
Liaison logique entre des programmes qui chiffrent les communications.
SSL (https, pops, imaps )
Chiffrer au niveau rseau ( couche 3 )
Le chiffrement est effectu directement au dessus du support rseau => interface virtuelle
5. 1/04/2004 Journes thmatiques SIARS (Marseille) 5 VPN VPN : Virtual private Network Rseau priv virtuel
Consiste faire transiter un protocole par lintermdiaire dun autre
Application dans IP ( port forwarding )
IP dans IP
Ethernet, IPX, appletalk dans IP
Gnralisation du concept de tunnel
Cest la valise diplomatique de linformatique avec tous les dangers que cela comporte
Extension du primtre de scurit des machines externes
6. 1/04/2004 Journes thmatiques SIARS (Marseille) 6 VPN: Types de connexions Rseau Rseau
Equipe de recherche sur un autre site
Station de mesure
=> Routage du VPN sur chacun des sites
Machine Rseau
Utilisateurs itinrants
=> Routage des clients VPN sur le site serveur
Machine Machine
7. 1/04/2004 Journes thmatiques SIARS (Marseille) 7 Que doit assurer un VPN ? Authentification ( de prfrence forte )
Intgrit
Confidentialit
Protection contre le rejeu
Eventuellement compression
8. 1/04/2004 Journes thmatiques SIARS (Marseille) 8 PPTP Protocole Ouvert M$ PPTP ( Point to Point Tunneling Protocol )
RFC 1701, 1702 et 1171
Microsoft authentification MS/CHAP V2
Microsoft chiffrement MPPE (RC4 40 ou 128 bits)
PPTP ne fait aucun chiffrement
Utilise deux canaux de communication
Port 1723 TCP
protocol IP 47 (GRE) pour les donnes
GRE: Generic Routing Encapsulation
tablissement dune connexion PPP lintrieur du canal de donne ventuellement compress et crypt
9. 1/04/2004 Journes thmatiques SIARS (Marseille) 9 PPTP Protocole Ouvert M$ A nutiliser que si cest la seule solution
Avantages:
- Facile installer (Windows depuis Win95 et Linux)
Inconvnients majeurs:
- Faiblesse de lauthentification (attaque du mot de passe),
- Protocole GRE/IP pas toujours trait sur les routeurs de site ce qui ncessite douvrir tout IP vers le serveur VPN.
10. 1/04/2004 Journes thmatiques SIARS (Marseille) 10 OpenVPN OpenVPN est un systme de rseau priv virtuel dvelopp par James Yonan (jim@yonan.net) utilisant la librairie OpenSSL.
Il permet une authentification forte des extrmits du tunnel, il supporte les certificats X509 pour authentifier la session,le protocole TLS pour changer les cls, la possibilit dutiliser un plugin PAM pour authentifier le client sur le serveur).
Il existe deux types de tunnels VPN dans le systme propos par James Yonan, " les tunnels IP routs" et " les tunnels par pont ethernet".
Le tunnel " Bridged " ou pont, permet de faire un pont thernet entre deux rseaux. Cest de lethernet dans IP.Les interfaces VPN et LAN sont alors lies entre elles en une seule entit et permettent de communiquer entre les sous rseaux concerns.
11. 1/04/2004 Journes thmatiques SIARS (Marseille) 11 OPENVPN Le tunnel routed consiste transporter de lIP dans IP , ncessite une modification du routage et de ce fait , simplmente principalement sur des passerelles en tte de rseau.Il ne transmet pas les broadcasts et ne permet pas le partage de fichiers Windows.
Le chiffrement du tunnel peut se faire par cl partage, bi-cls RSA ou certificats. Lutilisation en client-serveur ncessite lutilisation de certificats.
Le tunnel utilise le port 5000(ou 1194) par dfaut et le protocole UDP (on peut passer en TCP mais ce nest pas recommand).
12. 1/04/2004 Journes thmatiques SIARS (Marseille) 12 OPENVPN schma 1 Postes nomades rseau:
13. 1/04/2004 Journes thmatiques SIARS (Marseille) 13 OPENVPN schma 2 Rseau rseau:
14. 1/04/2004 Journes thmatiques SIARS (Marseille) 14 OpenVPN implmentation Le mode choisi ici est un tunnel de type pont.
Les essais raliss ont pour but de connecter les PC nomades au rseau local du laboratoire.
Le tunnel fonctionne en client-serveur avec allocation dynamique dadresses IP par le serveur au client.
Le client sauthentifie par son certificat personnel CNRS et un login Unix sur le serveur VPN.
Les machines utilises pour monter ce tunnel:
Serveur VPN : PC Debian Woody
Clients:PC Debian woody, PC Windows 2000
15. 1/04/2004 Journes thmatiques SIARS (Marseille) 15 OpenVPN configuration Prparation du serveur
Le serveur doit valider un certain nombre de pr requis afin de pouvoir faire tourner OpenVPN correctement :
Avoir les options noyau correctement paramtres,
Avoir la librairie LZO installe sur le systme,
Avoir les outils de bridging sous Linux ( brctl de Lennert Buytenhek buytenh@gnu.org)
- Avoir la librairie OpenSSL installe (ainsi que les composants Dev)
Si vous utilisez un Linux de type Debian :
apt-get install bridge-utils openssl libssl-dev liblzo1 liblzo-dev
16. 1/04/2004 Journes thmatiques SIARS (Marseille) 16 OPENVPN configuration Pour les autres distributions Linux/Unix :
Rcuprez et installez :
La librairie LZO : http://www.oberhumer.com/opensource/lzo/download/lzo-1.08.tar.gztar zxvf lzo-1.08.tar.gz cd lzo-1.08 ./configure && make && make check && make test make install (avec le compte root)
La librairie openssl :http://www.openssl.org/source/openssl-0.9.7e.tar.gztar zxvf openssl-0.9.7e.tar.gz ./config && make && make test && make install
Brctl :http://prdownloads.sourceforge.net/bridge/bridge-utils-1.0.4.tar.gz tar zxvf bridge-utils-1.0.4.tar.gz cd bridge-utils-1.0.4 ./configure && make && make install
17. 1/04/2004 Journes thmatiques SIARS (Marseille) 17 OPENVPN configuration
Ajout des options dans le kernel si elles ny sont pas :
pour tester: modprobe tun
Localisation du driver tun dans le fichier .config :
Device Driver -> Networking support -> Networking Options -> Universal Tun/Tap device driver support -> 802.1d Ethernet Bridging
- Recompiler le noyau en validant dans .config le module ci-dessus
18. 1/04/2004 Journes thmatiques SIARS (Marseille) 18 OpenVPN Installation Etapes raliser pour linstallation dOPENVPN :
Compilation et installation du logiciel
Compilation du module PAM pour authentifier les clients
Implmentation des certificats CNRS
Cration du fichier de configuration serveur
19. 1/04/2004 Journes thmatiques SIARS (Marseille) 19 OpenVPN Compilation
Tlcharger l'archive sur openvpn.sourceforge.net :
http://prdownloads.sourceforge.net/openvpn/openvpn-2.0_rc17.tar.gz
tar zxvf openvpn-2.0_rc17.tar.gz
cd openvpn-2.0_rc17
./configure
make
make install
?Le logiciel volue beaucoup, prendre toujours la dernire version
20. 1/04/2004 Journes thmatiques SIARS (Marseille) 20 OpenVPN Compilation du module PAM
Ajouter, sil est absent, le module libpam-dev (devlopment files for PAM)
- A partir du rpertoire dinstallation dopenvpn, aller dans le sous rpertoire plugin/auth-pam (attention cette possibilit nexiste que dans la dernire version dOpenVPN)
Lancer make,
on obtient le module openvpn-auth-pam.so
Ce module va tre utilis pour identifier le client dans la base des comptes Unix du serveur.
21. 1/04/2004 Journes thmatiques SIARS (Marseille) 21 OPENVPN Gestion des certificats Cration dun rpertoire certs pour dposer cl et certificats.
Rcupration du certificat et de la cl prive du serveur ( demander la CA CNRS):
serveur.key et serveur.crt
Concatnation des CA CNRS et CNRS-Standard dans CNRS- total.crt
Cration des paramtres Diffie Hellman:
openssl dhparam out dh1024.pem 1024
22. 1/04/2004 Journes thmatiques SIARS (Marseille) 22 OpenVPN Cration du pont Fichier de mise en place du pont , lancer au dmarrage:
#!/bin/bash
modprobe tun
modprobe bridge
openvpn --mktun --dev tap0
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 tap0
ifconfig tap0 0.0.0.0 promisc up
ifconfig eth0 0.0.0.0 promisc up
ifconfig br0 194.199.99.6 netmask 255.255.255.0 broadcast 194.199.99.255 (on met l ce quon avait avant sur eth0)
23. 1/04/2004 Journes thmatiques SIARS (Marseille) 23 OpenVPN Fichier de configuration serveur Configuration du Serveur pour le mode Ethernet Bridge
#
# OpenVPN bridge config serveur Linux
port 5000
dev tap0
mode server
server-bridge 194.199.99.6 255.255.255.0 194.199.99.28 194.199.99.29
# crypto config
plugin ./openvpn-auth-pam.so other
tls-server
24. 1/04/2004 Journes thmatiques SIARS (Marseille) 24 OPENVPN Fichier de configuration serveur (suite) dh /root/vpn_essai/certs/dh1024.pem
ca /root/vpn_essai/certs/CNRS-total.crt
cert /root/vpn_essai/certs/a3-6.cnrs-mrs.fr.crt
key /root/vpn_essai/certs/a3-6.cnrs-mrs.fr.key
duplicate-cn
persist-key
persist-tun
ping-timer-rem
ping-restart 600
ping 10
comp-lzo
user nobody
group nobody
verb 3
25. 1/04/2004 Journes thmatiques SIARS (Marseille) 25 OPENVPN Lancement du VPN
openvpn --daemon --config br_conf.conf --log vpn.log
openvpn sinitialise en utilisant le fichier de configuration br_conf.conf et se met en attente dune connexion cliente, les informations sont collectes dans le fichier vpn.log
Pour dautres options de lancement:
http://openvpn.net/man.html
26. 1/04/2004 Journes thmatiques SIARS (Marseille) 26 Installation du client Windows
Rcupration et installation de la distribution:
openvpn-2.0_rc16-gui-1.0_rc4-install.exe
En cliquant sur lexcutable, la distribution sinstalle par dfaut dans le rpertoire C:\Program Files\OpenVPN et cre le device virtuel TAP.
OpenVPN GUI dmarre automatiquement et le dossier config (C:\Program Files\OpenVPN\config) est scann la recherche de fichiers .ovpn, une icone apparait dans la barre des taches.
Rcupration du certificat utilisateur et les CA CNRS:
Cration du fichier de configuration client .ovpn
27. 1/04/2004 Journes thmatiques SIARS (Marseille) 27 Installation du Client Windows Mise en place de lauthentification forte avec les certificats CNRS Standard:
Crer un rpertoire certs sous OPENVPN/config o on va mettre tout ce qui concerne lauthentification.
Rcuprer les CA CNRS et CNRS-Standard sur le site de lUREC: CNRS.crt et CNRS-Standard.crt, et concatner les deux dans le fichier CNRS-tout.crt
Exporter partir du navigateur concern notre certificat personnel : lemien.p12, le sparer en deux lments:
la cl: openssl pkcs12 -nocerts -in lemien.p12 -out lemien standard.pem
le certificat: openssl pkcs12 -clcerts -nokeys -in lemien.p12 -out lemien-standardcrt.pem
28. 1/04/2004 Journes thmatiques SIARS (Marseille) 28 Installation du client Windows Fichier de config du client Windows
#
# OpenVPN bridge config, windows client side
# OK 11-03-05
#
remote 194.199.99.6
port 5000
dev tap
client
tls-client
auth-user-pass
ca ./certs/CNRS-total.crt
cert ./certs/lemien-standardcrt.pem
key ./certs/lemien-standard.pem
up openvpn.bat
ping 10
comp-lzo
verb 4
29. 1/04/2004 Journes thmatiques SIARS (Marseille) 29 Installation du client Linux/Unix Linstallation est identique celle vue ci-dessus pour le serveur
La compilation du module PAM est inutile
La gestion des certificats est la mme que sous Windows
Le fichier de configuration du client est le mme que pour le client Windows.
30. 1/04/2004 Journes thmatiques SIARS (Marseille) 30 OpenVPN Conclusions Linstallation du logiciel ne prsente pas de difficult particulire sous Linux , est trs facile sous Windows ( partir de 2000).
Lutilisation des certificats CNRS est un plus (dure de vie des certificats ?)
Les communications se font en UDP sur le port 5000, ce qui ne pose pas de problme douverture sur les routeurs.
Il faut tester maintenant la rsistance du serveur plusieurs clients simultans.
Attention: Le mode Bridge ne marche pas avec un VPN serveur Windows 2000 (XP ou 2003 seulement).
31. 1/04/2004 Journes thmatiques SIARS (Marseille) 31 Open VPN Rfrences
http://www.nbs-system.com/article/openvpn2_howto (en Franais)
http://openvpn.net/man.html
http://openvpn.net/
http://www.pavelec.net/adam/openvpn/bridge (serveur pont Windows)
http://www.sans.org/rr/whitepapers/vpns/1459.php (crypto)
32. 1/04/2004 Journes thmatiques SIARS (Marseille) 32 SSL Explorer SSL-Explorer est un logiciel libre ralisant un VPN construit sur OpenSSL et dvelopp en JAVA (http://sourceforge.net/projects/sslexplorer)
Cest une solution ne ncessitant aucun logiciel spcifique sur les clients, un navigateur suffit (accs https sur le serveur, les plugins JAVA sur le navigateur sont ncessaires).
Fonctionnalits:
accs aux partages Windows,
accs lintranet par Web-forwarding,
redirection de ports,
authentification des clients sur Active-Directory ou database locale,
Management par interface Web,
Possiblit de crer diffrents profils utilisateurs,
Support sous Windows 2000/2003 et RedHat (autres Linux aussi..).
33. 1/04/2004 Journes thmatiques SIARS (Marseille) 33 SSL Explorer
34. 1/04/2004 Journes thmatiques SIARS (Marseille) 34 SSL Explorer
35. 1/04/2004 Journes thmatiques SIARS (Marseille) 35 SSL Explorer Installation Rcuprer le JRE 5.0 Java run time environnement)
Par exemple, sur le site Sun,le fichier
jre-1_5_0_01-linux-i586.bin et linstaller.
Rcuprer SSL-Explorer chez sourceforge.net
unzip sslexplorer_linux_gui_0_1_8_01.zip
Archive: sslexplorer_linux_gui_0_1_8_01.zip
creating: sslexplorer_setup_0_1_8/
inflating: sslexplorer_setup_0_1_8/sslexplorer_linux_0_1_8.sh
inflating: sslexplorer_setup_0_1_8/CHANGES
inflating: sslexplorer_setup_0_1_8/LICENSE.txt
inflating:sslexplorer_setup_0_1_8/SSL_Explorer_Reference_Guide.pdf
cd sslexplorer_setup_0_1_8/
.Rajouter le chemin du binaire java dans le PATH .
./sslexplorer_linux_0_1_8.sh
.interface graphique dinstallation
Initialisation du serveur:
Lancer <chemin dinstall>setup-sslexplorer
Sous le navigateur, se connecter sur http://serveur:28080 et gnrer un certificat auto-sign, puis ajouter un user, etcpuis shutdown
Lancer alors sslexplorer-console et attendre un moment(),puis ouvrir sur un navigateur https://serveur, on a accs au login/password du VPN.
36. 1/04/2004 Journes thmatiques SIARS (Marseille) 36 SSL Explorer Conclusions Pas beaucoup test pour linstant, mais :
Avantages:
Facile installer et utiliser (Linux et Windows),
Voisinage rseau et partages Windows accessibles,
Proxy-web pour lintranet,
Possibilit de redirection de ports (avec le client java),
Inconvnients:
Authentification des utilisateurs insuffisante (les certificats vont arriver dans les prochaines versions),
Impossible dinstaller un certificat serveur CNRS,
Ncessiter de configurer la main sur le client les diffrentes fonctionnalits ? pas transparent du tout (!)
37. 1/04/2004 Journes thmatiques SIARS (Marseille) 37 VPN Conclusions Cest un outil efficace extrmement puissant
mais aussi une arme redoutable ?trs bien authentifier les extmits mais a ne suffit pas (virus..)
Quelques questions :
Pour quels services ?
Ou mettre le point dentre dans larchitecture rseau ?
Que faut il comme scurit sur le poste client ?
A nutiliser que dans le cadre dune architecture dj scurise