0% ont trouvé ce document utile (0 vote)
117 vues14 pages

Installer OpenVPN sur Ubuntu et Debian

OpenVPN

Transféré par

Mohammed arharbi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
117 vues14 pages

Installer OpenVPN sur Ubuntu et Debian

OpenVPN

Transféré par

Mohammed arharbi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

installer OpenVPN sur Ubuntu, Debian

7 FÉVRIER 2021 INTERNET

DERNIÈRE MODIFICATION : 26 JUIN 2022

OpenVPN est un serveur VPN libre très populaire.


On peut l’installer afin de pouvoir connecter deux réseaux entre eux à
travers un tunnel chiffré.
Cela assure une connexion sécurisée dans un MAN ou WAN.

Cet article vous guide pour installer OpenVPN sur Ubuntu 20.04, Debian
10.

Installer OpenVPN sur Debian 10


OpenVPN est donc un serveur VPN libre qui fonctionne en client et serveur.
Côté serveur, vous devez donc installer le programme et générer les
certificats qui seront à installer sur le poste client.
La connexion et l’authentification se font donc à travers des certificats
électroniques.
Cela ajoute une arborescence imposée des certificats serveurs et clients.

Pour installer OpenVPN, on utilise apt-get :

apt-get install openvpn easy-rsa

Easy-RSA et certificats serveurs


On commence par créer les certificats serveurs.

cd /usr/share/easy-rsa/

cp vars.example vars

Éditer le fichiers vars pour ajouter à la fin.

set_var EASYRSA_REQ_COUNTRY "FR"


set_var EASYRSA_REQ_PROVINCE "FRANCE"

set_var EASYRSA_REQ_CITY "Paris"

set_var EASYRSA_REQ_ORG "malekal.com"

set_var EASYRSA_REQ_EMAIL "[email protected]"

set_var EASYRSA_REQ_OU "Community"

Ensuite on créé l’arborescence.


Si celle-ci est déjà présente, il faut confirmer.

chmod+x vars

./easyrsa init-pki

puis on créé les certificats du serveur :

./easyrsa build-ca nopass


Ensuite on créé les clés publiques et privées.
Ici elles se nomment server.

./easyrsa gen-req server nopass

Enfin pour terminer on signe les clés.


On créé une clé forte Diffie-Hellman et une signature HMAC signature.
Ce dernier sécurise les échanges TLS.

./easyrsa sign-req server server

./easyrsa gen-dh

openvpn --genkey --secret ta.key


mv /usr/share/easy-rsa/keys/ta.key /usr/share/easy-rsa/pki/

Vous devez confirmer avec yes.

Configurer le serveur OpenVPN


Le fichier de configuration server est /etc/openvpn/server.conf
Sur Debian, vous avez un exemple de fichier de configuration serveur
sur /usr/share/doc/openvpn/examples
Dans l’exemple, le serveur est en TCP port 1194 avec une interface tap.

Note rapide sur la différence TCP VS UDP.

• TCP : correction d’erreur et suivi de connexion, c’est la


connexion la plus sûr.
• UDP : plus rapide car aucune vérification, les paquets sont plus
légers. Mais cela peut ne pas fonctionner, par exemple, dans le
cas où la sortie se fait sur plusieurs connexions internet
différente. Si aucun suivi, un coup vous sortirez par une IP
publique, un coup par une autre. De ce fait, la connexion ne
fonctionnera pas.
En outre, TCP permet aussi de jouer sur les blocages FW. Exemple, vous
configurez votre serveur VPN sur le port 443, initialement configuré pour du
HTTPs.
Avec un Firewall “simple”, qui vérifie que les connexions de ports, cela
fonctionnera sans problème.

Voici un autre exemple d’un fichier /etc/openvpn/server.conf.


Cela signifie que la connexion se nomme server.
En effet, on peut configurer plusieurs serveurs OpenVPN sur une même
machine physique.

local <mettre l'IP du serveur>

port 1194

proto udp

dev tun

ca ca.crt

cert server.crt

key server.key

dh dh.pem

auth SHA512

tls-crypt tc.key

topology subnet

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 10.8.0.1"

keepalive 10 120

cipher AES-256-CBC

user nobody

group nogroup

persist-key

persist-tun

status /var/log/openvpn-status.log

verb 3

crl-verify crl.pem

explicit-exit-notify

Vous avez un exemple de fichier de configuration OpenVPN dans


/usr/share/doc/openvpn/examples/sample-config-files/client.conf

Le serveur DNS distribué est celui du serveur OpenVPN.


Sur les machines OVH vous devez avoir un Bind qui tourne.

Les commandes push permettent de forcer des routes sur les postes
clients.
En outre, on créé une route 10.8.0.1 afin de faire sortir tout le trafic en 10.X
par le VPN.
Si vous désirez installer OpenVPN client sur un Android, il faut mettre dev
tun.
En effet le client Android ne supporte pas les interfaces TAP.

Afin de récupérer les clés on peut créer un lien comme ceci.

ln -s /usr/share/easy-rsa/pki /etc/openvpn/pki

Créer des certificats et clés du client


Enfin on peut créer les certificats clients.
Ici ce dernier se nomme client1

cd /usr/share/easy-rsa/

./easyrsa init-pki

./easyrsa gen-req client1 nopass

Le fichier xxx.key est créé, il s’agit de la clé privée du client.


Là aussi on signe le client :

./easyrsa sign-req client client1


Enfin on transfère les fichiers qui vont bien du côté client
Se reporter au paragraphe plus bas.

Lancer OpenVPN
Enfin tout est prêt pour connecter des clients au VPN.
Pour relancer le daemon/service openVPN :

/etc/init.d/openvpn restart

Pour relancer la connexion serveur :

sudo systemctl restart openvpn@server

De plus si on veut vérifier le statut de la connexion :

sudo systemctl status openvpn@server


Comment installer le client OpenVPN
sur Windows 10
Le projet OpenVPN fournit un GUI pour Windows qui se nomme OpenVPN
GUI.
Il permet de gérer plusierus connexions VPN et de le lancer à partir d’une
interface graphqiue.

Installez OpenVPN GUI à partir de ce lien :

Télécharger le client Windows

Le programme se présente avec une icône dans la zone de notification


(systray) et une icône OpenVPN GUI.

Vous devez ensuite récupérer les fichiers suivants, de manière confidentiel,


du serveur OpenVPN vers le poste client.
Par exemple avec WinScp, ou à travers un fichier zip avec un mot de passe :

/etc/openvpn/server/ca.crt

/etc/openvpn/easy-rsa/keys/client.crt

/etc/openvpn/easy-rsa/keys/client.key

• Placez les fichiers du client dans C:\Program


Files\OpenVPN\config
• Créez un fichier XXXX.opvn où XXX est le nom du client que
vous utilisez pour identifier votre client
• Vous pouvez appliquer le contenu suivant :
client

proto udp

dev tun

remote <adresse IP du serveur VPN>

ca ca.crt

cert client.crt

key client.key

persist-key

persist-tun

verb 3

• Dans remote, mettez l’adresse IP du serveur VPN puis


remplacez cert, key et ca par les noms de fichiers chez vous
• Fermez et relancez OpenVPN GUI.
• En effectuant un clic droit sur l’icône du systray, un
bouton Connecter et maintenant présent

• Le logs de la connexion apparaît (sinon via le bouton Afficher


Statut)
Un coup d’ipconfig /all à partir d’une invite de commandes montre
l’interface TAP avec les paramètres de notre VPN.

Si tout va bien, L’icône OpenVPN GUI apparaît alors en vert.


A partir de là, la connexion VPN est établie avec le serveur OpenVPN.
Jaune indique que vous êtes déconnectés et que le client OpenVPN tente
de se reconnecter au serveur.

Sur Debian et Ubuntu


•Installez le paquet openvpn :
apt-get install openvpn

Transférer les fichiers suivants du client :



/etc/openvpn/server/ca.crt
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key

• Puis créez le fichier de configuration dans /etc/openvpn


client
proto udp
dev tun
remote <adresse IP du serveur VPN>
ca ca.crt
cert client.crt
key client.key
persist-key
persist-tun
verb 3

• Dans remote, mettez l’adresse IP du serveur VPN puis


remplacez cert, key et ca par les noms de fichiers chez vous
• Puis pour lancer le client via systemctl :
sudo systemctl start openvpn@<nom fichier de ocnfiguration>

Par exemple, si le fichier de configuration est /etc/openvpn/supervpn.conf


alors :

sudo systemctl start openvpn@supervpn

Mais pour tester et avoir les retours directement dans la console, on peut
aussi lancer le client de cette manière :
openvpn /etc/openvpn/supervpn.conf

Vous aimerez peut-être aussi