Déployer un service OpenVPN¶
Cette image garantit uniquement le bon fonctionnement des fonctionnalités de base. Si vous avez la capacité de configurer vous-même, il est recommandé de le faire ou de vous référer à la méthode d'implémentation de cette image pour le réaliser. Avant de l'utiliser, vous devez avoir des connaissances de base sur Linux et Docker. Cette image a été testée avec succès sur Debian 9. Ce guide explique comment l'utiliser sur Debian 9, mais il est généralement applicable à d'autres systèmes comme Ubuntu. Le port par défaut pour ce service est 1190/UDP, veuillez vous assurer que cette règle est autorisée dans votre pare-feu.
Prérequis¶
Vous devez également effectuer les modifications suivantes sur votre serveur, exécutez la commande :
echo net.ipv4.ip_forward=1 >>/etc/sysctl.conf
sysctl -p
Si ufw est installé sur votre serveur, vous devez également ajouter le contenu suivant au début du fichier /etc/ufw/before.rules. Modifiez eth0 et le sous-réseau en fonction de l'interface et de la configuration réelles de votre serveur. Notez que cela doit être ajouté avant les règles *filter (le cas échéant).
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 172.27.27.0/24 -o eth0 -j MASQUERADE
COMMIT
Modifiez la configuration suivante dans /etc/default/ufw pour la définir sur ACCEPT.
DEFAULT_FORWARD_POLICY="ACCEPT"
Enfin, exécutez la commande suivante pour redémarrer le service de pare-feu ufw sur le serveur.
ufw reload
Si votre serveur n'a pas ufw d'installé, assurez-vous que la règle FORWARD d'iptables est sur ACCEPT, exécutez la commande suivante.
Attention
iptables -P FORWARD ACCEPT
Initialisation de la configuration¶
Maintenant, créons un répertoire pour stocker la configuration de notre service OpenVPN.
mkdir -p ~/lamda-openvpn-server
Ensuite, exécutez la commande suivante pour initialiser le service OpenVPN.
docker run -it --rm --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn ovpn-server-new
Attendez la fin de l'exécution de la commande. Vous pouvez maintenant voir la configuration du service dans le répertoire ~/lamda-openvpn-server. Le fichier de configuration est config.ovpn. Vous pouvez l'ouvrir avec un éditeur de texte, il est recommandé de ne modifier que les champs suivants.
# Le sous-réseau et le masque du VPN
server 172.27.27.0 255.255.255.0
# Le port du service VPN
port 1190
# Ou si vous avez besoin qu'une interface réseau spécifique sur le serveur soit accessible par les clients VPN
# Vous pouvez également ajouter une route, mais notez que vous ne pourrez accéder qu'à l'adresse IP de l'hôte actuel sur ce sous-réseau
# Si vous avez besoin d'un accès complet à ce sous-réseau pour les clients, des configurations supplémentaires sont nécessaires
push "route 192.168.68.0 255.255.255.0"
# Modifiez 114 par le serveur DNS de votre choix
push "dhcp-option DNS 114.114.114.114"
Création des identifiants de connexion client¶
Une fois l'édition terminée, nous allons maintenant créer un client. Vous pouvez remplacer myname par le nom de votre choix, mais il ne doit pas être dupliqué.
docker run -it --rm --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn ovpn-client-new myname
Une fois la création terminée, utilisez les commandes suivantes pour obtenir les identifiants de connexion de ce client.
# Remarque : L'adresse IP dans la configuration est l'adresse IP publique actuelle obtenue automatiquement. Si elle est incorrecte, vous devrez la modifier manuellement.
#
# Génère la configuration ovpn et la redirige vers le fichier myname.ovpn, qui peut être utilisé par des applications comme OpenVPN-Connect
docker run -it --rm --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn ovpn-client-profile ovpn myname >myname.ovpn
# Génère un OpenVPNProfile pour lamda, utilisable directement dans lamda
# Il contient une section commentée properties.local. Vous pouvez copier la configuration openvpn.*
# de cette section dans /data/usr/properties.local pour activer la connexion VPN automatique.
docker run -it --rm --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn ovpn-client-profile lamda myname
Révocation des identifiants client¶
Si vous devez révoquer les identifiants d'un client, exécutez la commande suivante. Après la révocation, il peut être nécessaire de redémarrer le service OpenVPN.
docker run -it --rm --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn ovpn-client-revoke myname
Démarrage du service OpenVPN¶
Vous pouvez maintenant exécuter la commande suivante pour démarrer le service OpenVPN en premier plan. Cela vous permettra de voir directement les journaux de connexion des clients et de diagnostiquer les erreurs.
docker run -it --rm --name openvpn-server --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn run
Une fois que vous avez confirmé que tout fonctionne correctement, il est recommandé de l'exécuter en arrière-plan. Utilisez cette commande pour démarrer le service en arrière-plan.
docker run -d --rm --name openvpn-server --privileged --net host -v ~/lamda-openvpn-server:/etc/openvpn rev1si0n/openvpn run
Documents de référence¶
Documentation de base : https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/
Configuration du routage : https://community.openvpn.net/openvpn/wiki/BridgingAndRouting