Aller au contenu
  1. Articles/

Configurer un Raspberry Pi comme point d'accès WiFi sécurisé avec OpenWrt

Ixonae
Auteur
Ixonae
Sommaire

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 N avec une bande 5 GHz et un canal automatique. Si vous voulez régler les choses manuellement, vous pouvez utiliser l’Channel Analysis dans le menu Status
  • Mode : Access Point
  • Réseau : lan
  • Chiffrement : tout ce qui est WPA2 ou WPA3, chiffrement auto, 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 boot coché
  • 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 boot activé
  • 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 :

  1. lan => wan devrait avoir lan comme Covered networks, autoriser le transfert vers la destination wan, et avoir Input, Output et Forward en accepté
  2. wan => DROP devrait avoir eth0 comme Covered networks, drop pour Input et Forward, et accept pour Output

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.

Édition de la configuration OpenVPN sur OpenWrt

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 :

Interfaces réseau après la configuration VPN
Écran des zones après la configuration VPN dans Network/Firewall

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 snort que 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
#

Ressources pour le changement de partitions
#

Crédits
#