370 likes | 594 Views
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 Journées thématiques SIARS (Marseille) 1 Solutions VPN
2. 1/04/2004 Journées thématiques SIARS (Marseille) 2 Pourquoi faire ? (1) Relier deux réseaux locaux à travers Internet en s’affranchissant des filtres en entrée de site.
C’est le cas de labos multi-sites ou en cours de déménagement.
Permettre l’accès à des services internes depuis l’extérieur:
Avec l’amélioration de l’offre FAI (Haut débits ADSL), la demande des utilisateurs est de plus en plus forte pour accéder au réseau local du laboratoire de manière transparente…
Pourquoi faire?
Consulter l’intranet du labo,
Utiliser la messagerie avec le serveur smtp du labo,
Accéder aux partages Windows,
Utiliser les logiciels avec jetons,
Accéder aux sites de bibliographie en ligne…..
3. 1/04/2004 Journées thématiques SIARS (Marseille) 3 Comment faire ? Il faut sécuriser les communications
Remplacer ou sécuriser tous les protocoles ne chiffrant pas l’authentification
ajouter éventuellement le chiffrement des données
Solution => créer une connexion chiffrée entre clients et serveurs
On parle alors de tunnels applicatifs, tunnels et VPN
4. 1/04/2004 Journées thématiques SIARS (Marseille) 4 Quelles solutions ? Chiffrer au niveau application (couche 7 )
Créer de nouvelles applications intégrant 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 réseau ( couche 3 )
Le chiffrement est effectué directement au dessus du support réseau => interface virtuelle
5. 1/04/2004 Journées thématiques SIARS (Marseille) 5 VPN VPN : Virtual private Network – Réseau privé virtuel
Consiste à faire transiter un protocole par l’intermédiaire d ’un autre
Application dans IP ( port forwarding )
IP dans IP
Ethernet, IPX, appletalk … dans IP
Généralisation du concept de tunnel
C’est la valise diplomatique de l’informatique avec tous les dangers que cela comporte
Extension du périmètre de sécurité à des machines externes
6. 1/04/2004 Journées thématiques SIARS (Marseille) 6 VPN: Types de connexions Réseau à Réseau
Equipe de recherche sur un autre site
Station de mesure
=> Routage du VPN sur chacun des sites
Machine à Réseau
Utilisateurs itinérants
=> Routage des clients VPN sur le site serveur
Machine à Machine
7. 1/04/2004 Journées thématiques SIARS (Marseille) 7 Que doit assurer un VPN ? Authentification ( de préférence forte )
Intégrité
Confidentialité
Protection contre le rejeu
Eventuellement compression
8. 1/04/2004 Journées thématiques 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 données
GRE: Generic Routing Encapsulation
établissement d ’une connexion PPP à l ’intérieur du canal de donnée éventuellement compressé et crypté
9. 1/04/2004 Journées thématiques SIARS (Marseille) 9 PPTP Protocole Ouvert M$ A n’utiliser que si c’est la seule solution
Avantages:
- Facile à installer (Windows depuis Win95 et Linux)
Inconvénients majeurs:
- Faiblesse de l’authentification (attaque du mot de passe),
- Protocole GRE/IP pas toujours traité sur les routeurs de site ce qui nécessite d’ouvrir tout IP vers le serveur VPN….
10. 1/04/2004 Journées thématiques SIARS (Marseille) 10 OpenVPN OpenVPN est un système de réseau privé virtuel développé par James Yonan (jim@yonan.net) utilisant la librairie OpenSSL.
Il permet une authentification forte des extrémités du tunnel, il supporte les certificats X509 pour authentifier la session,le protocole TLS pour échanger les clés, la possibilité d’utiliser un plugin PAM pour authentifier le client sur le serveur).
Il existe deux types de tunnels VPN dans le système proposé par James Yonan, " les tunnels IP routés" et " les tunnels par pont ethernet".
Le tunnel " Bridged " ou pont, permet de faire un pont éthernet entre deux réseaux. C’est de l’ethernet dans IP.Les interfaces VPN et LAN sont alors liées entre elles en une seule entité et permettent de communiquer entre les sous réseaux concernés.
11. 1/04/2004 Journées thématiques SIARS (Marseille) 11 OPENVPN Le tunnel « routed » consiste à transporter de l’IP dans IP , nécessite une modification du routage et de ce fait , s’implémente principalement sur des passerelles en tête de réseau.Il ne transmet pas les broadcasts et ne permet pas le partage de fichiers Windows.
Le chiffrement du tunnel peut se faire par clé partagée, bi-clés RSA ou certificats. L’utilisation en client-serveur nécessite l’utilisation de certificats.
Le tunnel utilise le port 5000(ou 1194) par défaut et le protocole UDP (on peut passer en TCP mais ce n’est pas recommandé).
12. 1/04/2004 Journées thématiques SIARS (Marseille) 12 OPENVPN schéma 1 Postes nomades à réseau:
13. 1/04/2004 Journées thématiques SIARS (Marseille) 13 OPENVPN schéma 2 Réseau à réseau:
14. 1/04/2004 Journées thématiques SIARS (Marseille) 14 OpenVPN implémentation Le mode choisi ici est un tunnel de type pont.
Les essais réalisés ont pour but de connecter les PC nomades au réseau local du laboratoire.
Le tunnel fonctionne en client-serveur avec allocation dynamique d’adresses IP par le serveur au client.
Le client s’authentifie par son certificat personnel CNRS et un login Unix sur le serveur VPN.
Les machines utilisées pour monter ce tunnel:
Serveur VPN : PC Debian Woody
Clients:PC Debian woody, PC Windows 2000
15. 1/04/2004 Journées thématiques SIARS (Marseille) 15 OpenVPN configuration Préparation du serveur
Le serveur doit valider un certain nombre de pré requis afin de pouvoir faire tourner OpenVPN correctement :
Avoir les options noyau correctement paramétrées,
Avoir la librairie LZO installée sur le système,
Avoir les outils de bridging sous Linux ( brctl de Lennert Buytenhek buytenh@gnu.org)
- Avoir la librairie OpenSSL installée (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 Journées thématiques SIARS (Marseille) 16 OPENVPN configuration Pour les autres distributions Linux/Unix :
Récupérez 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 Journées thématiques SIARS (Marseille) 17 OPENVPN configuration
Ajout des options dans le kernel si elles n’y 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 Journées thématiques SIARS (Marseille) 18 OpenVPN Installation Etapes à réaliser pour l’installation d’OPENVPN :
Compilation et installation du logiciel
Compilation du module PAM pour authentifier les clients
Implémentation des certificats CNRS
Création du fichier de configuration serveur
19. 1/04/2004 Journées thématiques SIARS (Marseille) 19 OpenVPN Compilation
Télécharger 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 dernière version
20. 1/04/2004 Journées thématiques SIARS (Marseille) 20 OpenVPN Compilation du module PAM
Ajouter, s ’il est absent, le module libpam-dev (devlopment files for PAM)
- A partir du répertoire d’installation d’openvpn, aller dans le sous répertoire plugin/auth-pam (attention cette possibilité n’existe que dans la dernière version d’OpenVPN)
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 Journées thématiques SIARS (Marseille) 21 OPENVPN Gestion des certificats Création d’un répertoire certs pour déposer clé et certificats.
Récupération du certificat et de la clé privée du serveur (à demander à la CA CNRS):
serveur.key et serveur.crt
Concaténation des CA CNRS et CNRS-Standard dans CNRS- total.crt
Création des paramètres Diffie Hellman:
openssl dhparam –out dh1024.pem 1024
22. 1/04/2004 Journées thématiques SIARS (Marseille) 22 OpenVPN Création du pont Fichier de mise en place du pont , à lancer au démarrage:
#!/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 qu’on avait avant sur eth0)
23. 1/04/2004 Journées thématiques 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 Journées thématiques 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 Journées thématiques SIARS (Marseille) 25 OPENVPN Lancement du VPN
openvpn --daemon --config br_conf.conf --log vpn.log
openvpn s’initialise en utilisant le fichier de configuration br_conf.conf et se met en attente d’une connexion cliente, les informations sont collectées dans le fichier vpn.log
Pour d’autres options de lancement:
http://openvpn.net/man.html
26. 1/04/2004 Journées thématiques SIARS (Marseille) 26 Installation du client Windows
Récupération et installation de la distribution:
openvpn-2.0_rc16-gui-1.0_rc4-install.exe
En cliquant sur l’exécutable, la distribution s’installe par défaut dans le répertoire C:\Program Files\OpenVPN et crée le device virtuel TAP.
OpenVPN GUI démarre 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.
Récupération du certificat utilisateur et les CA CNRS:
Création du fichier de configuration client .ovpn
27. 1/04/2004 Journées thématiques SIARS (Marseille) 27 Installation du Client Windows Mise en place de l’authentification forte avec les certificats CNRS Standard:
Créer un répertoire certs sous OPENVPN/config où on va mettre tout ce qui concerne l’authentification.
Récupérer les CA CNRS et CNRS-Standard sur le site de l’UREC: CNRS.crt et CNRS-Standard.crt, et concaténer les deux dans le fichier CNRS-tout.crt
Exporter à partir du navigateur concerné notre certificat personnel : lemien.p12, le séparer en deux éléments:
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 Journées thématiques 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 Journées thématiques SIARS (Marseille) 29 Installation du client Linux/Unix L’installation est identique à celle vue ci-dessus pour le serveur
La compilation du module PAM est inutile
La gestion des certificats est la même que sous Windows
Le fichier de configuration du client est le même que pour le client Windows.
30. 1/04/2004 Journées thématiques SIARS (Marseille) 30 OpenVPN Conclusions L’installation du logiciel ne présente pas de difficulté particulière sous Linux , est très facile sous Windows (à partir de 2000).
L’utilisation des certificats CNRS est un plus (durée de vie des certificats ?)
Les communications se font en UDP sur le port 5000, ce qui ne pose pas de problème d’ouverture sur les routeurs.
Il faut tester maintenant la résistance du serveur à plusieurs clients simultanés.
Attention: Le mode Bridge ne marche pas avec un VPN serveur Windows 2000 (XP ou 2003 seulement).
31. 1/04/2004 Journées thématiques SIARS (Marseille) 31 Open VPN Références
http://www.nbs-system.com/article/openvpn2_howto (en Français)
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 Journées thématiques SIARS (Marseille) 32 SSL Explorer SSL-Explorer est un logiciel libre réalisant un VPN construit sur OpenSSL et développé en JAVA (http://sourceforge.net/projects/sslexplorer)
C’est une solution ne nécessitant aucun logiciel spécifique sur les clients, un navigateur suffit (accès https sur le serveur, les plugins JAVA sur le navigateur sont nécessaires).
Fonctionnalités:
accès aux partages Windows,
accès à l’intranet par Web-forwarding,
redirection de ports,
authentification des clients sur Active-Directory ou database locale,
Management par interface Web,
Possiblité de créer différents profils utilisateurs,
Supporté sous Windows 2000/2003 et RedHat (autres Linux aussi..).
33. 1/04/2004 Journées thématiques SIARS (Marseille) 33 SSL Explorer
34. 1/04/2004 Journées thématiques SIARS (Marseille) 34 SSL Explorer
35. 1/04/2004 Journées thématiques SIARS (Marseille) 35 SSL Explorer Installation Récupérer 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 l’installer.
Récupérer 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 d’installation…
Initialisation du serveur:
Lancer <chemin d’install>setup-sslexplorer
Sous le navigateur, se connecter sur http://serveur:28080 et générer un certificat auto-signé, puis ajouter un user, etc…puis shutdown
Lancer alors sslexplorer-console et attendre un moment(…),puis ouvrir sur un navigateur https://serveur, on a accès au login/password du VPN.
36. 1/04/2004 Journées thématiques SIARS (Marseille) 36 SSL Explorer Conclusions Pas beaucoup testé pour l’instant, mais :
Avantages:
Facile à installer et utiliser (Linux et Windows),
Voisinage réseau et partages Windows accessibles,
Proxy-web pour l’intranet,
Possibilité de redirection de ports (avec le client java),…
Inconvénients:
Authentification des utilisateurs insuffisante (les certificats vont arriver dans les prochaines versions),
Impossible d’installer un certificat serveur CNRS,
Nécessiter de configurer à la main sur le client les différentes fonctionnalités ? pas transparent du tout (!)
37. 1/04/2004 Journées thématiques SIARS (Marseille) 37 VPN Conclusions C’est un outil efficace extrêmement puissant…
mais … aussi une arme redoutable ?très bien authentifier les extémités mais ça ne suffit pas (virus..)
Quelques questions :
Pour quels services ?
Ou mettre le point d’entrée dans l’architecture réseau ?
Que faut il comme sécurité sur le poste client ?
A n’utiliser que dans le cadre d’une architecture déjà sécurisée