Installer un VPN compatible iOS avec Docker
Avec Docker tout est plus simple, avant pour installer un VPN il fallait passer par tout un tas de commandes, de renseignement de fichier de conf et toutes les règles de firewall qui pouvaient entrer en conflit avec les votre.
Heureusement nous sommes en 2018 et monter un VPN IPsec, en moins de 5 minutes, c’est possible grace à Docker.
Je tiens d’abord à préciser que je n’ai rien inventé, je suis tombé sur ce GitHub complètement pas hasard, seulement je trouvais important de partager l’information.
Le seul pré-requis pour que cela fonctionne est d’avoir un serveur qui dispose du module kernel af_key
.
Chargement du module af_key
sudo modprobe af_key
On vérifie ensuite qu’il est bien chargé :
sudo lsmod |grep af_key
af_key 36864 0
xfrm_algo 16384 7 ah4,ah6,esp4,esp6,af_key,xfrm_user,xfrm_ipcomp
Creation de l’arborescence du projet
mkdir myvpnserver
Dans ce dossier nous allons juste créer un fichier dans lequel nous allons renseigner nos credentials.
VPN_IPSEC_PSK
: votre passphraseVPN_USER
: votre loginVPN_PASSWORD
: votre password
vpn.env
VPN_IPSEC_PSK=fredgrnd_github_io
VPN_USER=fredgrnd
VPN_PASSWORD=PassW0RD
Démarrage du VPN
Il ne vous reste plus qu’a démarrer votre container
docker run \
--name ipsec-vpn-server \
--env-file ./vpn.env \
--restart=always \
-p 500:500/udp \
-p 4500:4500/udp \
-v /lib/modules:/lib/modules:ro \
-d --privileged \
hwdsl2/ipsec-vpn-server
Vous avez surement remarqué que nous avons lancé le container en mode privilégié, ce mode est nécessaire car le container doit pouvoir interagir avec l’hôte.
Commandes utiles
Voici quelques commandes qui peuvent vous être utile :
Vérifier le status du VPN
docker exec -it ipsec-vpn-server ipsec status
Afficher les connections :
docker exec -it ipsec-vpn-server ipsec whack --trafficstatus
Il ne vous reste plus qu’a configurer votre client, pour cela je vous renvoie directement vers la doc de l’auteur de cette images. Si sont projet vous intéresse n’hésitez pas à vous abonner à son dépôt.