Avertissement : Cet article a été traduit de l’anglais par un LLM. La précision n’est pas garantie. Vous pouvez lire l’article original en anglais.
Je me suis récemment retrouvé dans une situation où je voulais avoir un petit point d’accès WiFi me permettant de router tout le trafic Internet à travers un VPN avec un kill-switch, et des performances correctes. Comme j’avais un Raspberry Pi inutilisé, j’ai décidé de l’utiliser avec OpenWrt pour atteindre mon objectif. Dans cet article, je documenterai la procédure pour avoir tout correctement configuré. Les instructions sont valables pour OpenWrt 21.02.3.
Faire fonctionner OpenWRT#
La première étape consiste à flasher OpenWRT sur une carte microSD. Raspberry
dispose d’un logiciel pour le faire, mais vous pouvez aussi
utiliser dd, ou n’importe quel logiciel avec lequel vous êtes à l’aise. L’image peut être trouvée
sur le site web d’OpenWrt.
Une fois cela fait, vous pouvez brancher votre Raspberry Pi et votre ordinateur sur un switch, et
démarrer la machine. Vous pourrez alors accéder à l’interface LuCI à 192.168.1.1 et vous connecter
en tant que root sans mot de passe.
Notez que par défaut, votre carte microSD ne sera formatée qu’avec des partitions de quelques centaines de Mo, donc à un moment donné, vous voudrez peut-être reformater vos partitions si vous voulez faire un usage avancé d’OpenWrt. Les différentes instructions sur Internet n’ont pas fonctionné pour moi, et je n’avais ni le temps ni le besoin d’investiguer davantage, mais je laisserai des références à la fin de l’article.
Une fois que nous avons accès à l’interface d’administration, nous voulons d’abord aller dans
System/Administration et définir un mot de passe correct. Je recommande également de modifier les
paramètres SSH pour n’autoriser la connexion qu’avec une clé SSH.
Configuration réseau de base#
Maintenant qu’OpenWrt est opérationnel, nous voulons activer le WiFi et faire une configuration réseau de base.
Dans Network/Wireless, éditez l’interface réseau sans fil :
- Vous pouvez choisir la fréquence qui convient le mieux à vos besoins. J’ai utilisé le mode
Navec une bande5 GHzet un canal automatique. Si vous voulez régler les choses manuellement, vous pouvez utiliser l’Channel Analysisdans le menuStatus - Mode :
Access Point - Réseau :
lan - Chiffrement : tout ce qui est
WPA2ouWPA3, chiffrementauto, et une clé forte - Dans les paramètres avancés, il y a aussi une option pour empêcher les communications entre clients
Ensuite, activez l’interface, et vous devriez voir votre réseau WiFi. Vous remarquerez peut-être que
vous pouvez ajouter un point d’accès WiFi supplémentaire dans la configuration radio0. Le faire ne
fera que rendre OpenWRT mécontent, et vos modifications seront automatiquement annulées.
La dernière étape avant de pouvoir utiliser le WiFi est de configurer les interfaces dans
Network/Interfaces. Par défaut, vous devriez avoir une seule interface br-lan, ou quelque chose
du genre. Nous allons éditer cette interface pour avoir les paramètres suivants :
- Protocole :
Static address - Appareil
wlan0 Bring up bootcoché- Adresse IPV4
192.168.1.1 - Masque de sous-réseau :
255.255.255.0 - Zone pare-feu :
lan - Assurez-vous que le service DHCP n’est pas désactivé
Ensuite, nous ajouterons une interface pour eth0 avec les paramètres suivants :
- Protocole
DHCP Client - Appareil
eth0 Bring up on bootactivé- Zone pare-feu :
wan
Quand tout cela est fait, la dernière étape avant de pouvoir utiliser le WiFi pour accéder à
Internet est de vérifier les paramètres du pare-feu dans Network/Firewall. Vous devriez avoir deux
zones :
lan => wandevrait avoirlancommeCovered networks, autoriser le transfert vers la destinationwan, et avoirInput,OutputetForwarden acceptéwan => DROPdevrait avoireth0commeCovered networks,droppourInputetForward, etacceptpourOutput
Vous pouvez maintenant cliquer sur Save & Apply et vous connecter à votre WiFi.
Configuration du VPN#
Configuration de base#
Dans la dernière étape de ce guide, nous utiliserons ProtonVPN avec OpenVPN, mais vous pouvez utiliser pratiquement n’importe quel fournisseur, et d’autres protocoles comme WireGuard sont également utilisables.
D’abord, nous devons installer quelques paquets. Allez dans System/Software, mettez à jour les
listes si rien n’apparaît dans les paquets disponibles, et installez openvpn-openssl et
luci-app-openvpn. Rafraîchissez votre interface, et vous devriez voir un menu VPN/OpenVPN.
Nous utiliserons ensuite l’OVPN configuration file upload, et lui donnerons le fichier de
configuration
fourni par ProtonVPN. La
configuration apparaîtra alors dans la liste des instances OpenVPN, et nous l’éditerons. Vous
devriez ajouter le chemin du fichier auth-user-pass dans le champ texte du haut, et mettre votre
nom d’utilisateur/mot de passe dans le second.

Une fois cela fait, vous pouvez retourner à la liste des instances, cocher la case Enabled, et
Save & Apply. À ce stade, l’écran devrait montrer le VPN comme démarré.
Ensuite, nous configurerons une nouvelle interface pour le VPN. Dans Network/Interface, ajoutez
une nouvelle interface tun0, avec le protocole Unmanaged, Bring up on boot, et tun0 comme
appareil. Dans Firewall Settings, créez une zone pare-feu VPN. Nous configurerons ensuite cette
zone dans Network/Firewall avec les mêmes paramètres que wan => DROP, avec la différence que
nous utiliserons lan dans Allow forward from source zones, et accept pour le Forward. Nous
irons aussi dans la zone lan => VPN et ajouterons la zone VPN dans Allow Forward. Vous devriez
maintenant avoir le résultat suivant :


Maintenant, la connexion passera par le VPN s’il est actif, mais pourra toujours atteindre Internet
si le VPN est hors service. Une dernière chose que nous voulons faire pour éviter les fuites DNS est
d’utiliser des serveurs DNS personnalisés avec l’interface eth0, et de désactiver l’option
Use DNS servers advertised by peer.
Kill Switch#
Si vous voulez configurer un “kill switch” pour le VPN (c’est-à-dire arrêter de permettre au trafic
Internet de passer si le VPN est hors service), vous pouvez le faire facilement en modifiant la zone
lan => VPN dans la configuration du pare-feu. Il suffit de retirer lan des
Allow forward to destination zones.
Si vous avez plusieurs réseaux WiFi chez vous, vous devez configurer vos machines pour qu’elles ne se connectent automatiquement qu’à votre réseau OpenWrt. Sinon, elles pourraient se connecter à un autre WiFi, et vous vous connecterez à Internet sans VPN.
Désactiver le VPN pour un appareil#
Si vous n’utilisez pas le kill-switch et que vous voulez qu’un appareil se connecte à Internet sans
utiliser le VPN, vous pouvez installer le paquet vpnbypass, configurer votre appareil pour avoir
un bail DHCP statique dans la page d’accueil d’OpenWRT, et ajouter une Local IP Address to Bypass
dans VPN/VPN Bypass.
Pour aller plus loin#
Vous avez maintenant un routeur permettant à tous les appareils connectés d’accéder à Internet via VPN, mais il y a encore des choses que vous pouvez améliorer dans la configuration. Par exemple :
- Il y a un paquet
snortque vous pourriez installer pour améliorer la sécurité de votre réseau - Vous pourriez connecter un point d’accès WiFi externe, et faire en sorte que les appareils connectés à ce point d’accès puissent accéder à Internet sans VPN, par exemple si vous voulez utiliser Netflix (je suis sûr que vous pouvez faire cela avec un seul point d’accès en jouant avec les règles du pare-feu, mais personnellement je préfère la simplicité)
- Installer un paquet adblock et le configurer pour que tous les appareils connectés puissent aussi bénéficier de l’absence de publicités (par exemple, si vous avez des appareils iOS, il n’est pas possible d’installer des extensions adblock dans le navigateur)
Références et crédits#
Références#
- OpenWrt routers and Mullvad VPN (Proton VPN)
- How to set up ProtonVPN on OpenWRT routers (Mullvad VPN)
- OpenVPN client using LuCI (OpenWrt)
- OpenWrt on x86 hardware (PC / VM / server) (OpenWrt)
Ressources pour le changement de partitions#
- https://forum.openwrt.org/t/expanding-openwrt-squashfs-image-sdcard/60606/7
- https://forum.openwrt.org/t/how-to-expand-the-space-of-overlay/74093
- https://openwrt.org/docs/guide-user/additional-software/extroot_configuration
- https://java-in-cloud.blogspot.com/2016/08/openwrt-extroot-and-multiple.html
- https://moreless.medium.com/extend-partition-and-file-system-on-raspberr-a48af9e90858
- https://linuxconfig.org/how-to-extend-lede-openwrt-system-storage-with-an-usb-device
- https://linuxconfig.org/how-to-create-loop-devices-on-linux
Crédits#
- Photo de couverture par Jainath Ponnala sur Unsplash


