mercredi 12 juin 2013

Mettre en place un serveur VPN sous Ubuntu: OPENVPN

Bonjour à tous, cela fait un petit moment que je n'ai pas publié et me revoilà avec ce petit article sur les VPN.  Pourquoi

Qu'est ce qu'un VPN ? 


VPN est un acronyme pour Virtual Private Network, il s'agit d'une interconnexion entre 2 réseaux réseaux locaux à travers un réseau publique (Internet). Vous pouvez voir un VPN comme un moyen d’étendre votre réseau privée à travers internet.





Comment ça marche?


Un VPN repose sur un protocole de tunnel qui sécurise (cryptage) la liaison de bout en bout. Plusieurs protocoles de tunnels existent (PPTP, L2TP, IPsec, SSH, SSL,.... ) agissants à différents niveaux du modèle OSI et qui définissent le type du VPN.


OpenVPN


OpenVPN est un serveur d’accès utilisant le protocole SSL. Openvpn étant open source, il constitue une solution rapide et peu chère pour réaliser des interconnexions réseaux. Une riche documentation existe sur internet abordant les différents aspects de mise en oeuvre et de la  configuration. De façon générale un VPN est employé dans 2 configurations distinctes:

  •  Entre deux sites distants, on parle ici de VPN site à site.
  • Entre un site et des utilisateurs distants (Road Warriors). 
Suite à une requête spécifique, nous aborderons aujourd'hui la mise en place d'un serveur d'acces VPN destiné à l'interconnexion des road warriors.


Mise en place

Résolution des dépendances


apt-get update
apt-get build-dep openvpn




Installation openvpn



Sudo apt-get install openvpn



Installation et configuration de  openssl


Openssl est une "boîte à outils cryptographique" regroupant des bibliothèques d'algorithme de chiffrement. C'est cet ensemble de bibliothèques qui réalise le chiffrement de bout en bout des liaisons VPN. Openssl est également utilisé pour la génération des certificats serveurs et clients.
sudo mkdir  /etc/openvpn/easy-rsa

sudo mkdir /etc/openvpn/jail
sudo mkdir /etc/openvpn/clientconf
sudo  cp  –r  /usr/share/doc/openvpn/examples/easy-rsa/2.0/*  /etc/openvpn/easy-rsa 
sudo  chown  -R  $USER /etc/openvpn/easy-rsa
sudo  vi  /etc/openvpn/easy-rsa/vars


Cette derniere manipulation permet d'obtenir un certificats personnaliser avec les valeurs indiquées précédement.


Génération des clés et certificats

Les certificats sont des outils "clés" dans la mise en place de VPN en effet, ils permettent d'identifier de façon unique les différentes parties intervenant dans l'interconnexion. A l'etape précedente, nous avons copié un certain nombre de scripts (clean-all, build-dh et pkitool entre autre). L'exécution de ces scripts permettra de générer les différents certificats dont nous avons besoin.




cd   /etc/openvpn/easy-rsa
Source vars
./clean-all
./build-dh
./pkitool  --initca
./pkitool  --server  server
Sudo openvpn  --genkey  --secret  keys/ta.key
 


 


Installation des certificats



 Une fois les différents certificats générés, les certificats doivent être installés (copiés) dans le répertoire /etc/openvpn




sudo   cp /keys/ca.crt    keys/ta.key    keys/server.crt    keys/server.key    /keys/dh1024.pem  /etc/openvpn/



Configuration de openvpn 


la configuration de OpenVPN passe par l'edition de son fichier de configuration. Pardéfaut ce fichier n'existe pas, il faut donc le créer.
 

sudo vi /etc/openvpn/server.conf
 



Démarrage du service



sudo openvpn server.conf






Installation et configuration du client windows



Le client windows peut être téléchargé ici
Une fois installé, copiez les fichiers  client.ovpn, clientVPN1.crt,  clientVPN1.key et ca.crt   dans le repertoire de configuration openvpn : C:\Program Files\OpenVPN\config




            Démarrage du client Windows

 Dans la barre de lancement rapide vous trouverez l'icone du client OpenVPN, un clique droit ouvre le menu contextuel dans lequel vous trouverez l'option connect.

ATTENTION cette option ne sera disponible que si  le fichier de configuration client.ovpn est installé dans le répertoire /config.














Et voilou!!!!! votre VPN est up. Après si vous lez tunner tout ça, il suffit de jouer un peu avec le fichier de configuration. Ceci fera peut être l'objet d'un prochain article. En attendant n'hésitez pas à commenter, critiquer ou faire des propositions d'articles  à ce sujet ou sur autre chose.

@+