Introduction
La mise en place d'un VPN, acronyme de Virtual Private Network (réseau privé virtuel) permet de connecter des ordinateurs distants via Internet dans un "pseudo réseau privé". L'utilisation d'un VPN permet plusieurs utilisations :
- Accès à un réseau local (entreprise, maison, ...) à distance
- Interconnecter des machines distantes via Internet
- Redirection du traffic web à travers un serveur distant Nous allons voir comment mettre en place et configurer un serveur OpenVPN (version open source). A noter qu'il existe aussi maintenant une version payante de OpenVPN, appelé OpenVPN Access Server. Cette version payante propose, entre autre, une interface web graphique permettant de facilité la configuration du serveur. Mais si vous n'avez pas peur des lignes de commandes, la version gratuite open source peut vous suffire !
Installation du serveur
L'installation d'OpenVPN peut être rapidement fastidieuse. Heureuseuement, l'utilisateur Nyr maintient un script automatique très facile d'emploi sur GitHub : https://github.com/Nyr/openvpn-install. L'URL https://git.io/vpn est un raccourci vers son script.
wget https://git.io/vpn -O openvpn-install.sh
chmod +x openvpn-install.sh
sudo ./openvpn-install.sh
Au premier lancement du script vous pourrez choisir de faire l'installation d'OpenVPN.
Ajout d'un utilisateur
Lors des lancements suivant du script openvpn-install.sh
, vous pourrez ajouter ou supprimer des utilisateurs. Chaque utilisateur aura sa propre clé et son propre certificat client.
Un fichier de connexion client .ovpn
sera généré.
IP statique pour les clients VPN
Par défaut, les clients qui vont se connecter auront une IP dynamique. Il est cependant possible de fixer une ip statique selon le nom du client.
Prenons par exemple le cas d'un client qui s'appelle laptop-client
dont on veut fixer l'adresse IP à 10.8.0.100
au sein du réseau VPN.
- Premiere étape, la création du dossier de configuration
ccd
:
sudo mkdir /etc/openvpn/server/ccd
- Ensuite il faut configurer le serveur VPN pour qu'il utilise ce dossier. Pour cela on va modifier le fichier
/etc/openvpn/server/server.conf
avec la commandeclient-config-dir
:
...
server 10.8.0.0 255.255.255.0
client-config-dir /etc/openvpn/server/ccd
...
- Dernière étape, il faut créer un fichier de configuration avec exactement le nom du client dans le dossier
ccd
. Voici le contenu du fichier/etc/openvpn/server/ccd/laptop-client
:
ifconfig-push 10.8.0.100 255.255.255.0
Rediriger uniquement le traffic VPN
Par défaut, une fois le client connecté au VPN : tout son traffic (web, mail, ...) va utiliser notre serveur VPN comme passerelle Internet. Selon les cas, ce n'est pas souhaitable.
Pour désactiver cette focntionalité de passerelle il suffit de commenter ou supprimer les lignes suivantes dans le fichier /etc/openvpn/server/server.conf
:
# push "redirect-gateway def1 bypass-dhcp"
# push "dhcp-option DNS 1.1.1.1"
# push "dhcp-option DNS 1.0.0.1"
Installation d'un client Linux
L'installation se fait simplement via le paquet openvpn
:
sudo apt install openvpn
Il faudra récupérer sur la machine cliente, le fichier de connexion .ovpn
, dans notre desktop-client.ovpn
.
Ensuite deux possibilités :
- Connexion manuel au VPN
- Connexion automatique au VPN lors du lancement de la machine
Connexion manuel au VPN
sudo openvpn --client --config desktop-client.ovpn
Il sera necessaire de laisser le terminal ouvert pour que la connexion VPN reste active !
Connexion automatique au VPN
Pour une connexion automatique au lancement du service openvpn@client
, il suffit de copier le fichier .ovpn
dans le fichier /etc/openvpn/client.conf
.
sudo cp desktop-client.ovpn /etc/openvpn/client.conf
Pour désactiver le lancement automatique du service au lancement de la machine :
sudo update-rc.d -f openvpn remove