Vous êtes sur la page 1sur 37

projet de fin dtudes

Encadr : par Mr Yassine


Faek

Ralis par : Mehdi Bennai

Annes de formation
2016-2017

1/04/2004 1
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..

1/04/2004 Journes thmatiques SIARS (Marseille) 2


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

1/04/2004 Journes thmatiques SIARS (Marseille) 3


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
1/04/2004 Journes thmatiques SIARS (Marseille) 4
VPN
Un VPN (Virtual Private Network) ou Rseau Priv
Virtuel en franais est connexion inter-rseau
permettant de relier 2 rseaux locaux diffrents de
faon scuris par un protocole de tunnelisation.
La tunnelisation est un protocole permettant aux
donnes passant d'une extrmit l'autre du VPN
d'tre scurises par des algorithmes de
cryptographie.

1/04/2004 Journes thmatiques SIARS (Marseille) 5


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

1/04/2004 Journes thmatiques SIARS (Marseille) 6


Que doit assurer un
VPN ?
Authentification ( de prfrence forte )
Intgrit
Confidentialit
Protection contre le rejeu
Eventuellement compression

1/04/2004 Journes thmatiques SIARS (Marseille) 7


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

1/04/2004 Journes thmatiques SIARS (Marseille) 8


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.

1/04/2004 Journes thmatiques SIARS (Marseille) 9


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.

1/04/2004 Journes thmatiques SIARS (Marseille) 10


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).
1/04/2004 Journes thmatiques SIARS (Marseille) 11
OPENVPN schma 1
Postes nomades rseau:

1/04/2004 Journes thmatiques SIARS (Marseille) 12


OPENVPN schma 2
Rseau rseau:

1/04/2004 Journes thmatiques SIARS (Marseille) 13


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

1/04/2004 Journes thmatiques SIARS (Marseille) 14


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

1/04/2004 Journes thmatiques SIARS (Marseille) 15


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.gz
tar 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.gz
tar 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

1/04/2004 Journes thmatiques SIARS (Marseille) 16


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

1/04/2004 Journes thmatiques SIARS (Marseille) 17


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

1/04/2004 Journes thmatiques SIARS (Marseille) 18


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

1/04/2004 Journes thmatiques SIARS (Marseille) 19


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.
1/04/2004 Journes thmatiques SIARS (Marseille) 20
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

1/04/2004 Journes thmatiques SIARS (Marseille) 21


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)

1/04/2004 Journes thmatiques SIARS (Marseille) 22


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
1/04/2004 Journes thmatiques SIARS (Marseille) 23
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

1/04/2004 Journes thmatiques SIARS (Marseille) 24


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

1/04/2004 Journes thmatiques SIARS (Marseille) 25


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

1/04/2004 Journes thmatiques SIARS (Marseille) 26


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
1/04/2004 Journes thmatiques SIARS (Marseille) 27
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

1/04/2004 Journes thmatiques SIARS (Marseille) 28


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.

1/04/2004 Journes thmatiques SIARS (Marseille) 29


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).

1/04/2004 Journes thmatiques SIARS (Marseille) 30


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)

1/04/2004 Journes thmatiques SIARS (Marseille) 31


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..).

1/04/2004 Journes thmatiques SIARS (Marseille) 32


SSL Explorer

1/04/2004 Journes thmatiques SIARS (Marseille) 33


SSL Explorer

1/04/2004 Journes thmatiques SIARS (Marseille) 34


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.

1/04/2004 Journes thmatiques SIARS (Marseille) 35


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 (!)

1/04/2004 Journes thmatiques SIARS (Marseille) 36


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

1/04/2004 Journes thmatiques SIARS (Marseille) 37