Table des matières

Configuration VPN ARN Wireguard

Sur Yunohost

Sur Linux (NetworkManager)

Sur Linux (systemd-networkd version > 250)

La configuration suivante résultera en la redirection de tout le flux internet via le VPN ARN

######################################
# /etc/systemd/network/10-wg0.netdev #
######################################
[NetDev]
Kind=wireguard
MTUBytes=1450
Name=wg0

[WireGuard]
# Doit être accessible par le groupe systemd-network
PrivateKeyFile=/run/keys/wireguard-privkey
# Crée automatiquement une route par défaut dans une table secondaire
RouteTable=2468
# Marque les paquets d'infra Wireguard pour les envoyer sur l'interface physique
FirewallMark=1234

[WireGuardPeer]

AllowedIPs=0.0.0.0/0
AllowedIPs=::/0
Endpoint=89.234.141.83:8095
PersistentKeepalive=15
# Doit être accessible par le groupe systemd-network
PresharedKeyFile=/run/keys/wireguard-psk.key
PublicKey=t3+JkBfXI1uw8fa9P6JfxXJfTPm9cOHcgIN215UHg2g=
#######################################
# /etc/systemd/network/10-wg0.network #
#######################################
[Match]
Name=wg0

[Network]
# A remplacer par ses IP attribuées
Address=X.X.X.X/32
Address=X:X:X:X::X/128

# Règle qui envoie tout le trafic dans le VPN
# Traduction en commande ip rule:
#     ip rule add not fwmark 1234 table 2468
#
[RoutingPolicyRule]
# Conditions en mode not
InvertRule=true
# La marque que seul Wireguard lui-même utilise
# et qui indique les paquets qui ne doivent pas
# être envoyés dans le tunnel
FirewallMark=1234
# Envoi du trafic IPv4 et IPv6 dans le tunnel
Family=both
Table=2468
Priority=10

# Envoi du traffic local dans la table de routage par défaut
# Traduction en commande ip rule:
#     ip rule add table main suppress_prefixlength 0
#
[RoutingPolicyRule]
SuppressPrefixLength=0
Family=both
Priority=9

Troubleshoot

ip a

La commande ip doit montrer une nouvelle interface wg0 qui porte l'IP donnée par ARN

journalctl -xeu systemd-networkd

Le journal de systemd-networkd peut contenir des informations en cas de problème (exemple: la version de networkd est trop ancienne et ne supporte pas les options utilisées)

wg show

La commande wg permet de voir l'état du tunnel. Si la valeur received de la ligne transfer est nulle cela indique un soucis (configuration, réseau, …).

Vérifiez les différents paramètres (votre adresse, vos clés de connexion, les chemins des clés, les droits d'accès aux clés) contenus dans vos fichiers /etc/systemd/network/10-wg0.*

Configuration VPN ARN OpenVPN

Configuration sur un système GNU/Linux

  1. Installer openvpn
  2. Extraire l'archive vpn123.zip téléchargé sur votre espace adhérent
  3. Copier le fichier vpn123.conf dans /etc/openvpn/
  4. sudo service openvpn restart
  5. ip a –> Si l'interface réseau « tun0 » n'apparait pas au bout de quelques minutes, écrivez à contact@arn-fai.net ou sur le chat.

Nota : vpn123 est l'identifiant de votre VPN, (ancien format 1ère lettre du prénom + nom)

Anciennes instructions plus détaillées/avancées

Il faut installer OpenVPN de la manière dont vous installez un logiciel d'habitude : apt-get, aptitude, logithèque,… Exemple avec apt-get :

sudo apt-get install openvpn

Il faut télécharger ce fichier de configuration et le stocker dans /etc/openvpn/ . Il faut évidemment les droits root pour faire ça. Vous pouvez le renommer mais le nom doit obligatoirement terminer par « .conf ». À l'intérieur du fichier, il faut remplacer « $login » par votre login personnel sur le VPN.

Il faut également déplacer les fichiers que nous vous fournissons (login.{crt,key} et ca.crt) dans /etc/openvpn/. Il faut évidemment les droits root pour faire ça.

Pour démarrer l'application, un simple sudo service openvpn restart devrait suffire.

Sur un système équipé de systemd (comme Debian Jessie), la commande ci-dessus n'est pas bonne. Il faut faire :

systemctl enable openvpn@openvpn.service
systemctl restart openvpn@openvpn.service

Attention, si vous avez changé le nom du fichier de configuration (openvpn.conf par défaut), il faudra adapter les deux commandes ci-dessus en remplaçant le « openvpn » après le « @ » par le nom que vous avez donné. Exemple :

systemctl enable openvpn@arn.service
systemctl restart openvpn@arn.service

Note pour Mageia

Contrairement à Debian, la distribution Mageia d'openpvn ne contient apparemment pas de méthode pour mettre à jour la liste des résolveurs de noms (/etc/resolv.conf); le plus simple est d'ajouter un petit script qui insère le resolveur de noms d'ARN (89.234.141.66) au moment du démarrage du VPN. Pour cela, créer (avec les droits d'administrateur) un fichier /etc/openvpn/arn-up.sh, qui contient:

#!/bin/sh
echo "nameserver  89.234.141.66" > /run/resolvconf/interface/tun0
resolvconf -u

puis donner à ce fichier les droits d'exécution:

sudo chmod +x /etc/openvpn/arn-up.sh

et indiquer ce script dans le fichier /etc/openvpn/openvpn.conf, en décommentant/modifiant les 2 lignes à la fin du paragraphe commençant par ; DNS:

; script-security 2 ; pour autoriser les exécutions de programmes externes
; route-up /etc/openvpn/client-handler

pour les remplacer par:

script-security 2
route-up "/etc/openvpn/arn-up.sh"

Tutoriel pour Mac OS X

Télécharger TunnelBlick (Alternative OpenVPN pour Mac) ici : https://tunnelblick.net et l'installer.

Créer un dossier qui contiendra les fichiers de configuration.

Télécharger le fichier de configuration (clic droit sur le lien, « Enregistrer la cible du lien sous » ou équivalent) : https://sans-nuage.fr/file/s/N688PAB3kYtiAQK&download et le placer dans le dossier créé précédemment.

Copier les fichiers personnels fournis dans l'espace adhérent.

Éditer le fichier openvpn-win.ovpn. Lignes 15 et 16, remplacer « $login » par votre login. Exemple :

Enregistrer le fichier.

Faire glisser le fichier modifié sur l'icône de TunnelBlick dans la barre de menu.

Enjoy !

Tutoriel pour Windows

Télécharger et Installer OpenVPN depuis https://openvpn.net/index.php/open-source/downloads.html

Depuis votre espace adhérent, vous avez du récupérer votre matériel cryptographique sous forme d'un .zip. Ce .zip contient un fichier “.conf” qu'il convient de copier dans C:\Program Files\OpenVPN\config\ et de renommer l'extension “.conf” en “.ovpn”.

Puis, dans le menu démarrer (ou sur le bureau), clic droit sur l'icône “OpenVPN GUI” → Exécuter en tant qu'administrateur.

Clic droit sur l'icône OpenVPN dans la zone de notification de la barre des tâches → Connecter.

Tutoriel pour YunoHost ou une Brique Internet

Le fichier .cube inclut votre certificat et votre clé privée. Attention donc de ne pas le stocker n'importe où, à la légère. En dernier recours un admin d'ARN peut vous le re-donner ou en générer un nouveau.

Attention également : nos certificats ont une durée de vie limitée (max un an). Votre .cube sera donc obsolète passé ce délai.

Plus d'information :

Pistes de debug

Oct 28 12:03:27 localhost ovpn-arn[27909]: PLUGIN_INIT: could not load plugin shared object 
/usr/lib/openvpn/openvpn-plugin-down-root.so: /usr/lib/openvpn/openvpn-plugin-down-root.so: 
cannot open shared object file: No such file or directory
Oct 28 12:03:27 localhost ovpn-arn[27909]: Exiting due to fatal error
Oct 28 12:03:27 localhost /etc/init.d/openvpn.arn[27908]: start-stop-daemon: failed to start `/usr/sbin/openvpn'
Oct 28 12:03:27 localhost /etc/init.d/openvpn.arn[27879]: WARNING: openvpn.arn has started, but is inactive