Création d'un serveur OpenVPN

De Korben Wiki
Aller à : navigation, rechercher
Draft-128x128.png

Cet article est une ébauche.
Vous pouvez partager vos connaissances en l’améliorant :

  • Compléter l'article
  • Restructurer le contenu
  • Rajouter des illustrations
  • Créer des pages
  • Alerter dans les discussions si le sujet n'a pas lieu d'être et veiller à ce que la ligne éditoriale de ce wiki soit bien respectée

Sous Linux (Ubuntu)[modifier]

L'authentification des clients/serveur se fera par clés SSL.

Étape obligatoire… l'installation des packages :

sudo apt-get install openssl openvpn

Générations des clés SSL[modifier]

Nous commençons par générer la "Clé d'Autorité de Certification Maître" :

cp /usr/share/doc/openvpn/examples/easy-rsa ~/openvpn/ -R
cd ~/openvpn/2.0/

Il faut maintenant renseigner quelques variables dans le fichier vars. Mon éditeur préféré étant emacs…

sudo emacs vars

Puis remplir les champs "export" à votre convenance, dans mon cas :

export KEY_SIZE=1024
export KEY_COUNTRY="FR"
export KEY_PROVINCE="Haut-de-Seine"
export KEY_CITY="Boulogne"
export KEY_ORG="xxxxxx"
export KEY_EMAIL="xxxx.xxxx@gmail.com"

On lance le scripts de configuration :

source ./vars

On nettoie les clés déjà créees :

./clean-all

Et nous finissons par générer les clés (ca.crt et ca.key) qui seront stockées automatiquement dans un dossier "keys" :

./build-ca

Nous devons maintenant générer la clés d'authentification du serveur :

./build-key-server nom-au-choix

(Veillez a ne pas mettre d'espace) Puis les clés des clients :

./build-key client1

Nous devrons fournir à chaque client le ca.crt (commun à tous) ainsi qu'une .crt et un .key uniques (ici, client1.crt, client1.key).

Configuration d'OpenVPN[modifier]

Nous devons générer les paramètres Diffie-Hellman (échange de clé) qui seront utilisés par le serveur VPN :
<< Pierre : ça peut prendre très longtemps il parait

./build-dh

Il faut ensuite éditer le fichier de configuration de votre serveur :

emacs /etc/openvpn/nom-au-choix.conf

Voici, pour exemple, mon fichier de configuration :

port 500 # modification du port pas défaut pour passer par le port UDP 
proto udp #Configure le VPN en mode UDP. Si besoin, TCP fonctionne aussi.
dev tun 
ca keys/ca.crt 
cert keys/server.crt #emplacement du certificat SSL
key keys/server.key #emplacement de la clée SSL 
dh dh1024.pem # Emplacement du paramètre dh 
server 10.8.0.0 255.255.255.0 #ip désirée pour le serveur
ifconfig-pool-persist ipp.txt
keepalive 10 120 
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3 
push "redirect-gateway def1" # Définit le serveur VPN comme passerelle par défaut pour les clients.
push "dhcp-option DNS 10.8.0.1" # Définit le serveur VPN comme DNS par défaut

Je vous laisse googler le reste des options, relativement classiques (chiffrement, protocole, max client etc.)


Il ne vous reste plus qu'a copier les certificats SSL nécéssaires au serveur

mkdir /etc/openvpn/keys/

cd ~/openvpn/2.0/keys

cp ca.crt server.crt server.key /etc/openvpn/keys/

cp dh1024.pem /etc/openvpn/

Il ne vous reste plus qu'a lancer le serveur via le daemon

/etc/init.d/openvpn start
ou via le bin 
/etc/openvpn votre-fichier.conf

source: http://www.dailytechfix.net/2009/07/31/configuration-dopenvpn-server-en-full-tunnelling-sur-ubuntu/

Si vous avez choisi d'activer l'option "redirect-gateway" afin que votre serveur VPN serve de passerelle par défaut à vos clients, vous devez configurer vos interfaces réseaux ainsi que votre pare feu pour autoriser le transit du flux. Pour cela, rendez-vous ici

Sous Windows[modifier]

Avec un serveur 2008 qui possède Hyper-V, rien de plus simple... Il suffit de télécharger le disque virtuel d'openvpn serveur disponible ici (.vhd):
http://openvpn.net/index.php/access-server/download-openvpn-as-vm/202.html?osfamily=Virtual%20Appliance%20Windows%20%28VHD%29&ex=1

Créer une nouvelle machine virtuelle sans carte réseau. Une fois la machine créée ajouter une carte réseau héritée qui se connecte directement à l'Internet dans les paramètres. Démarrer la machine suivre les instructions et aller sur la page de configuration web Username: root Password: openvpnas

Changer le password de l'utilisateur openvpn

Et voilà vous pouvez accéder à votre réseau local même depuis un android (rooté avec OpenVPN settings :-))