Création d’un serveur OpenVPN
par Faiçal le 05.mai, 2010, dans la catégorie Linux, Mes Cours, Réseaux, Sécurité, Tutoriels Informatique
Sous Linux (Ubuntu)
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
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...@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
Nous devons générer les paramètres Diffie-Hellman (cryptage) 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 de la clée de cryptage
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 (cryptages, 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