Voilà, j'ai migré chez Free à mon domicile avec un peu de retard il y a quelques jours et voici comment j'ai sécurisé le WIFI par un VPN Roadwarrior :
* Dans la freebox pop, côté serveur j'ai configuré les VPN Ipsec et OpenVPN.
Au préalable, il est préférable de demander une IPv4 fixe et ensuite on obtient un certificat serveur. La configuration VPN de la Freebox est remarquablement simple car une même inferface permet de configurer IPSec et OpenVPN. Concernant Ipsec, j'ai réussi à configurer le client sous Linux, mais pas sous Android, qui requiert soit une PSK ou un certificat X.509 ET un mot de passe, alors que la Freebox propose uniquement un mot de passe. Sous OpenVPN, tout est okay. Mais je n'utilise pas cette solution, même si elle fonctionne (lire plus bas).
* Pour des questions de débit du VPN, je me suis tourné vers Wireguard, qui est bien supporté sur tous les systèmes d'exploitation. Wireguard n'est pas supporté par la Freebox POP, donc j'ai mis en place mon propre routeur sous OpenWRT. Il s'agit d'une machine récente, quadricoeurs armv7, achetée 80€. Elle me fournit le VPN à 250 Gb/s. Je viens de terminer la configuration pour toute la famille : 4 postes informatiques (2 sous Linux et 2 sous Mac OS X), 4 portables (2 sous Android et 2 sous iOSX). J'adapte ici la configuration, car dans les faits je me connecte sur un bypass situé à la campagne. Mais on peut très bien le faire avec une Freebox :
Voici la configuration dans OpenWRT :
10.x.y.1/24 est le subnet du VPN en IPv4
10.x.y.1 est l'adresse IPv4 du routeur sur le VPN.
10.x.y.10 est l'adresse IPv4 de mon client Linux sur le VPN.
J'ai trois délégations IPv6 /64 : l'une pour le WAN du routeur, l'autre pour le LAN du routeur et la dernière pour les IPv6 du VPN.
'2001:x:y:abcd::/64 est le subnet du VPN en IPv6 (pris dans ma délégation).
2001:x:y:abcd::1 est l'adresse IPv6 du routeur sur le VPN.
2001:x:y:abcd::10 est l'adresse IPv6 du client Linux sur le VPN.
myVPNServer : l'adresse publique IPv4 de la Freebox. J'ai redirigé le port UDP 51820 vers mon routeur.
Sur le routeur, j'ai configuré un serveur de DNS unbound qui fournit une résolutoin de nom DNSSEC en mode strict. Il est accessible sur le VPN à l'adresse 10.x.y.1
Pour chaque host (serveur ou client), il faut générer un jeu de 3 clés : une paire privée/publique et un PSK :
wg genkey | tee ./privatekey | wg pubkey > ./publickey
wg genpsk | tee ./psk
Dans /etc/config/network :
Voici comment se configure Wireguard
Côté serveur :
# Serveur
config interface 'wg0'
option proto 'wireguard'
option private_key ''
option listen_port '51820'
list addresses '10.x.y.1/24'
list addresses '2001:y:abcd::1/64'
# Un peer pour exemple :
config wireguard_wg0
option public_key ''
option preshared_key ''
option persistent_keepalive '25'
option description 'linux'
list allowed_ips '10.x.y.10/32'
list allowed_ips '2001:x:y:abcd::10/128'
Côté client, l'exemple de ma configuration Linux :
cat /etc/wireguard/wg0.conf
[Interface]
PrivateKey =
Address = 10.x.y.10/24
Address = 2001:x:y:abcd::10/64
DNS = 10.x.y.1
[Peer]
PublicKey =
PresharedKey =
Endpoint = myVPNServer:51820
AllowedIPs = 0.0.0.0/0,::/0
Le fiston qui débute ses études supérieures et se connectera à un WIFI public en permanence est désormais protégé.
Voici pour les bases de la configuration, je ferai peut-être un tuto complet dans la section VPN du forum aux prochaines vacances de la Toussaint.