Utiliser un VPN sur l’iPad via un serveur Debian

Je vais expliquer ici comment installer un serveur VPN WireGuard sur Debian et l’utiliser depuis un iPad.

1. Serveur Debian

Sur le serveur, on installe WireGuard avec apt install wireguard -y.

2. Générer la clé privée et publique du serveur

Pour cela, on va faire :

sudo wg genkey | sudo tee /etc/wireguard/server_private.key
sudo cat /etc/wireguard/server_private.key | sudo wg pubkey | sudo tee /etc/wireguard/server_public.key

On retrouvera nos clés dans les fichiers /etc/wireguard/server_private.key et /etc/wireguard/server_public.key

3. Générer la clé privée et publique du client

Sur le serveur Debian, on va générer des clés pour le client :

wg genkey | tee client_private.key
cat client_private.key | wg pubkey | tee client_public.key

On retrouvera nos clés dans les fichiers ./client_private.key et ./client_public.key

4. Configuration du serveur

On va entrer la configuration suivante dans le fichier /etc/wireguard/wg0.conf :

[Interface]
Address = 10.0.0.1/24
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = PRIVATE_KEY_DU_SERVEUR

[Peer]
PublicKey = PUBLIC_KEY_DU_CLIENT
AllowedIPs = 10.0.0.2/32
PersistentKeepalive = 25

5. Activer le transfert IP sur le serveur

Éditer le fichier /etc/sysctl.conf afin d’avoir :

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

Et on applique les changements avec la commande sudo sysctl -p

6. Démarrage de WireGuard

Pour démarrer le serveur VPN on tape sudo systemctl start wg-quick@wg0

On peut voir le statut avec la commande sudo systemctl status wg-quick@wg0

7. Configuration du client

Sur notre client (ici un iPad), on installe l’application WireGuard depuis le App Store.

Ensuite, sur notre serveur, on va créer le fichier de configuration client.conf qui sera utilisé par le client, avec le contenu suivant :

[Interface]
PrivateKey = PRIVATE_KEY_DU_CLIENT
Address = 10.0.0.2/32
DNS = 8.8.8.8, 8.8.4.4 # on utilise les DNS de Google

[Peer]
PublicKey = PUBLIC_KEY_DU_SERVEUR
Endpoint = mon_serveur.debian.home:51820 # on indique l'IP/hostname de notre serveur VPN
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

Afin de transmettre cette configuration à l’iPad, on peut générer un QR code. Pour cela on installe ce qu’il faut : sudo apt install qrencode, puis on génère avec qrencode -t ansiutf8 < client.conf

Sur l'iPad, on ouvre l'application WireGuard puis on ajoute un client en utilisant le QR Code généré.

8. Vérification

En activant le VPN sur l'iPad, on peut tester si tout fonctionne comme prévu en vérifiant l'adresse IP de l'iPad.
Sur le serveur, on peut utiliser la commande wg show pour voir un peu ce qu'il se passe.

Leave a Reply

Your email address will not be published. Required fields are marked *

*