Table des matières
OpenVPN
Comment installer un serveur VPN et créer les fichiers .ovpn
pour les clients.
Installation
Télécharger le script :
$ wget https://git.io/vpn -O openvpn-install.sh
Lancer l'installation :
$ chmod +x openvpn-install.sh $ ./openvpn-install.sh
Bien préciser l'adresse IP et le port du serveur. On peut laisser les autres options à leur valeur par défaut.
Le programme d'installation ajoute directement les règles IPTABLES dans /etc/rc.local
, on peut vérifier son contenu, voici un exemple :
- rc.local
# Pour un accès uniquement à internet (par défaut) : iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -I FORWARD -s 10.8.0.0/24 -j ACCEPT iptables -I INPUT -p udp --dport 1194 -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to <IP_du_Serveur> # Pensez à remplacer <IP_du_Serveur> par l'adresse IP publique du serveur. # Ou, pour accéder à toutes les interfaces du serveur et à tous les réseaux locaux, # désactiver les lignes précédentes et ajouter manuellement : iptables -I INPUT -p udp --dport 1194 -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eno1 -j MASQUERADE # Pensez à remplacer eno1 par le nom de votre interface réseau principale.
Firewall
Si on utilise un pare-feu, ne pas oublier d'ouvrir le port UDP 1194.
Par exemple, avec ufw
:
$ ufw allow 1194/udp
Finalisation du serveur
On peut ajouter les éléments suivants pour parfaire la configuration du serveur :
# Nombre maximal de clients : max-clients 10 # Permettre la communication entre les clients : client-to-client # Placer les log dans un fichier différent de syslog : log-append /var/log/openvpn.log
Démarrage et Arrêt du serveur OpenVPN
Démarrer
$ service openvpn@server start
Arrêter
$ service openvpn@server stop
Redémarrer
$ service openvpn@server restart
Installation client
Remarque préalable
Il est préférable de générer un fichier de config client différent pour chaque client car ainsi chaque client aura sa propre adresse IP. Sinon, il est quand même possible de connecter plusieurs clients avec le même fichier de configuration mais ils auront tous la même adresse IP et le routage sera fait au niveau inférieur du modèle OSI, c'est à dire par les adresses mac. Cela peut poser des problèmes en cas de communications entre les clients (Option client-to-client
du fichier server.conf
).
Installation
Lors de l'installation, le script a crée un fichier <utilisateur>.ovpn
dans le dossier courant de l'utilisateur.
ATTENTION Bien protéger ce fichier car il permet de se connecter au VPN et contient les clefs.
Selon le client, installer la version adéquate pour Windows, Linux, IOS ou Android depuis https://openvpn.net/community-downloads/
Puis utiliser le fichier .ovpn
pour se connecter.
Pour vérifier, lancer un navigateur et afficher son adresse IP puis penser à vérifier qu'il n'y pas de fuite DNS en effectuant un test, par exemple sur https://www.dnsleaktest.com/ (Ou en cherchant DNS leak test
dans un moteur de recherche.)
Pour lancer le client en ligne de commande Linux :
$ openvpn <Fichier_Client.ovpn>
Puis, pour arrêter le client, rechercher l'ID du processus (le PID) avec ps
:
$ ps -ef | grep openvpn
Puis tuer le processus :
$ kill -2 <PID_du_Process>
Ajouter / supprimer des clients
Ajouter un client
Lancer à nouveau le script et choisir l'option 1 (Add a new user
) :
$ ./openvpn-install.sh Looks like OpenVPN is already installed. What do you want to do? 1) Add a new user 2) Revoke an existing user 3) Remove OpenVPN 4) Exit Select an option [1-4]: 1 Tell me a name for the client certificate. Please, use one word only, no special characters. Client name: NOM_DU_CLIENT .../... Client NOM_DU_CLIENT added, configuration is available at: /root/NOM_DU_CLIENT.ovpn
Le nouveau fichier est enregistré dans le dossier de l'utlisateur, voir la section Configuration du client pour l'utiliser.
Supprimer un client
Lancer à nouveau le script et choisir l'option 2 (Revoke an existing user
) :
$ ./openvpn-install.sh Looks like OpenVPN is already installed. What do you want to do? 1) Add a new user 2) Revoke an existing user 3) Remove OpenVPN 4) Exit Select an option [1-4]: 2 Select the existing client certificate you want to revoke: 1) client_a 2) client_b .../... n) NOM_DU_CLIENT Select one client [1-n]:
Puis confirmer la suppression.