NordVPN prend-il en charge OpenWRT ?
Des rapports indiquent que les routeurs dotés du micrologiciel OpenWRT prennent en charge les VPN tels que NordVPN. Cependant, sachez que le personnel de NordVPN n'a pas testé la configuration suivante ; elle a été partagée et testée par nos merveilleux clients. NordVPN souhaite notamment remercier Unwind, un membre actif de la communauté OpenWRT, pour son aide précieuse concernant les instructions OpenWRT à jour.
Instructions pour l’interface graphique (GUI)
Ce guide vous expliquera comment configurer une connexion NordVPN sur des routeurs dotés du micrologiciel OpenWRT, par le biais de l’interface Web LuCI.
-
Vous pouvez accéder à l’interface LuCI de votre routeur OpenWRT en
saisissant son adresse IP locale dans votre navigateur Web et en
vous connectant. L’adresse IP par défaut est
192.168.1.1 et le nom
d’utilisateur est root.
REMARQUE : Le système ne définit pas de mot de passe par défaut, vous pouvez donc laisser cet emplacement vide. Toutefois, lorsque vous vous connectez, le système affiche un message vous demandant d'en définir un.
Pour ce faire, cliquez sur Système>Administration et vous pourrez y créer un mot de passe. -
Une fois connecté, sélectionnez l’onglet Système et
choisissez Logiciel.
- Cliquez sur le bouton Mettre à jour les listes, attendez que le processus se termine, puis cliquez sur Rejeter.
-
Installez les packages suivants en tapant leur nom dans le champ
Filtre et en cliquant sur
Installer...
- openvpn-openssl
- ip-full
-
luci-app-openvpn
- Cliquez sur Enregistrer et appliquer et actualisez la page du routeur. Vous devriez maintenant voir un nouvel onglet appelé VPN. Cliquez dessus et choisissez OpenVPN dans la liste déroulante.
-
Vous devez maintenant télécharger les fichiers de configuration du
client OpenVPN. Ensuite, vous pouvez vous connecter à un serveur
recommandé via votre
NordAccount. Suivez les
étapes ci-dessous pour trouver les
identifiants de service pour la configuration manuelle de la
connexion :
-
-
Connectez-vous à votre
Nord Account, cliquez sur NordVPN et, sous
Configuration manuelle, cliquez sur
Identifiants de service. Vous trouverez votre
nom d'utilisateur et votre
mot de passe, que vous devrez connecter
manuellement.
-
Vous devrez alors télécharger les fichiers de configuration du
client OpenVPN. Suivez les étapes ci-dessous pour trouver le
meilleur serveur pour votre connexion :
-
Connectez-vous à votre
Nord Account
et cliquez sur NordVPN.
-
Faites défiler vers le bas jusqu'à
Paramètres avancés et cliquez sur
Configurer NordVPN manuellement.
-
Sélectionnez l'onglet
Recommandation de serveur. Notre algorithme
vous recommandera le meilleur serveur selon votre
emplacement.
-
En cliquant sur Filtres avancés, vous
pouvez personnaliser les serveurs recommandés en
sélectionnant le Type de serveur et le
Protocole de sécurité.
Si vous souhaitez sélectionner un serveur spécifique, procédez comme suit :
-
Sous Configurer NordVPN manuellement,
sélectionnez
Fichiers de configuration OpenVPN.
-
Vous pouvez trouver le serveur auquel vous souhaitez
vous connecter en utilisant la barre
Recherche ou en faisant défiler vers le
bas. Ensuite, vous pouvez le télécharger en cliquant sur
Télécharger UDP ou
Télécharger TCP.
Dans ce guide, nous utiliserons le serveur us5104.nordvpn.com.
-
Sous Configurer NordVPN manuellement,
sélectionnez
Fichiers de configuration OpenVPN.
-
Connectez-vous à votre
Nord Account
et cliquez sur NordVPN.
-
Connectez-vous à votre
Nord Account, cliquez sur NordVPN et, sous
Configuration manuelle, cliquez sur
Identifiants de service. Vous trouverez votre
nom d'utilisateur et votre
mot de passe, que vous devrez connecter
manuellement.
-
-
Dans la section
Chargement du fichier de configuration de l'OVPN,
nommez la connexion VPN dans le champ
nom de l'instance (no_us l'avons
nommée « nordvpn_us »_). Cliquez ensuite sur le bouton
choisir un fichier, localisez le
fichier du serveur téléchargé et cliquez sur
charger.
-
Dans la section Instances OpenVPN, cliquez sur le
bouton Modifier à côté de l’instance
que vous venez de créer.
-
Entrez vos identifiants de service NordVPN, votre nom d'utilisateur et
votre mot de passe dans le champ inférieur sur des lignes séparées.
nom d’utilisateur
mot de passe
Vous trouverez vos identifiants de service NordVPN (nom d’utilisateur et mot de passe) dans le [tableau de bord de votre Nord Account] (https://my.nordaccount.com/dashboard/nordvpn/). -
Ensuite, copiez le chemin d’accès dans le fichier d’identifiants, qui
est indiqué juste au-dessus du champ contenant les identifiants, et
collez-le à côté de la ligne « auth-user-pass » dans la section
configurer le fichier au-dessus.
Cela devrait ressembler à ceci :
auth-user-pass /etc/openvpn/nordvpn_us.auth
-
Pour se connecter au serveur VPN, cliquez sur la case
Activé puis sur le bouton Démarrer à
côté de l'instance NordVPN créée.
- Cliquez sur le bouton enregistrer et appliquer en bas.
- En haut du menu de recherche, survolez Système et cliquez sur Redémarrer. Une autre page s'ouvrira. Cliquez sur le bouton Réinitialiser, puis vous devez vous reconnecter.
-
Survolez l’onglet réseau en haut de la page et
choisissez interfaces :1. Cliquez sur
Ajouter une nouvelle interface.
2. Dans la section nom, écrivez nordvpntun.
3. Cliquez sur protocole et choisissez non géré.
4. Dans le menu déroulant interface, saisissez le nom tun0 dans le champ du bas -- custom -- et appuyez sur Entrer.
- Cliquez sur créer une interface et enregistrer.
- Choisissez l’onglet réseau en haut, puis accédez à la section pare-feu.
-
Cliquez sur le bouton ajouter et paramétrez-le comme
suit :
- Nommez-le « vpnfirewall ».
- Réglez l’option « Entrée » sur « Rejeter ».
- Laissez « Sortie » sur « Accepter » et « Transférer » sur « Rejeter ».
- Cochez l’option « Mascarade ».
- Cochez l’option « Serrage MSS ».
- Dans le menu déroulant « Réseaux couverts », choisissez « nordvpntun ».
- Dans le menu déroulant « Autoriser le transfert depuis les zones sources », choisissez « plan ».
-
Cliquez sur le bouton « Enregistrer ».
-
Dans la section Zones, recherchez la zone nommée
lan, et cliquez sur le
bouton Modifier.
-
Dans la liste déroulante
Autoriser le transfert depuis les zones
sources, cochez l’option NordVPN.
- Encore une fois, cliquez sur Réseau en haut de la page et choisissez DHCP et DNS dans la liste déroulante.
-
Trouvez l'option Transferts DNS dans l'onglet
paramètres généraux et entrez les
adresses DNS de NordVPN. Les adresses
sont : 103.86.96.100 et 103.86.99.100
-
Accédez à l’onglet
fichiers de résolution et d'hébergement, cochez la case
ignorer le fichier de résolution, et
cliquez sur le bouton B Enregistrer et appliquer.
- Retournez à l'onglet VPN > OpenVPN.
-
Dans la section Instances OpenVPN, cochez la
case Activer à côté de l’option
NordVPN dans la liste, et cliquez sur le bouton
Enregistrer et appliquer.
- Cliquez de nouveau sur le bouton démarrer pour vous connecter au serveur VPN.
Instructions pour l’interface de ligne de commande (CLI)
Si vous souhaitez un tutoriel plus avancé, optez plutôt pour ce guide. Pour bénéficier des avantages d'un VPN sur OpenWrt, vous devez disposer d'un routeur équipé du micrologiciel OpenWrt et d'un client OpenVPN activé. La page principale du micrologiciel est https://openwrt.org/.
- Tout d'abord, vous devez être en mesure d'accéder à votre routeur à l'aide de SSH en utilisant son adresse IP LAN. Par défaut, l'adresse IP est 192.168.1.1, et le nom d'utilisateur est root ; toutefois, si vous modifiez l'une des valeurs par défaut, l'adresse IP peut être différente.
-
Le routeur n'a pas le paquet OpenVPN dans l'image du micrologiciel par
défaut. Pour l’installer, veuillez exécuter la commande suivante :
Vous pouvez également installer le composant LuCI de la configuration OpenVPN ; mais il est facultatif. Vous pouvez le faire en exécutant cette commande :opkg update opkg install openvpn-openssl opkg install ip-fullopkg install luci-app-openvpn -
Une fois que vous avez installé le paquet OpenVPN, vous pouvez le lancer
automatiquement au démarrage du routeur en exécutant cette
commande :
/etc/init.d/openvpn enable -
Vous devrez ensuite télécharger les fichiers de configuration du
serveur. Suivez ces étapes pour cela :
-
Connectez-vous à votre
Nord Account
et cliquez sur NordVPN.
-
Faites défiler vers le bas jusqu'à
Paramètres avancés et cliquez sur
Configurer NordVPN manuellement.
-
Sélectionnez l'onglet Recommandation de serveur.
Notre algorithme vous recommandera le meilleur serveur selon votre
emplacement.
-
En cliquant sur Filtres avancés, vous pouvez
personnaliser les serveurs recommandés en sélectionnant le
Type de serveur et le
Protocole de sécurité.
Si vous souhaitez sélectionner un serveur spécifique, procédez comme suit :
-
Sous Configurer NordVPN manuellement,
sélectionnez Fichiers de configuration OpenVPN.
-
Vous pouvez trouver le serveur auquel vous souhaitez vous
connecter en utilisant la barre Recherche ou en
faisant défiler vers le bas. Ensuite, vous pouvez le télécharger
en cliquant sur Télécharger UDP ou
Télécharger TCP.
-
Sous Configurer NordVPN manuellement,
sélectionnez Fichiers de configuration OpenVPN.
-
Connectez-vous à votre
Nord Account
et cliquez sur NordVPN.
-
Dans ce guide, nous avons utilisé le
serveur uk2054.nordvpn.com, mais vous devriez
utiliser le serveur recommandé par le site Web. Pour télécharger un
fichier de serveur, sélectionnez le pays où vous souhaitez vous
connecter, cliquez sur « Afficher les protocoles disponibles », faites
un clic droit sur « Télécharger la configuration » pour « OpenVPN TCP »
ou « OpenVPN UDP » et choisissez « Copier l’adresse du lien ». Ensuite,
retournez à votre session SSH et exécutez la commande
suivante :
Cependant, utilisez le lien que vous avez copié pour votre fichier de serveur spécifique. Cette commande télécharge le fichier de configuration dans le répertoire /etc/openvpn pour en faciliter l’accès. Vous pouvez également télécharger le fichier de configuration de serveur sur une autre machine et le transférer vers le routeur OpenWrt par d’autres méthodes, comme les protocoles SCP ou SFTP. Pour les versions plus anciennes d’OpenWrt :wget -P /etc/openvpn https://downloads.nordcdn.com/configs/files/ovpn\_udp/servers/uk2054.nordvpn.com.udp.ovpn
vous pouvez télécharger une archive ici : https://downloads.nordcdn.com/configs/archives/certificates/servers.zip. Dans l’archive téléchargée, vous trouverez les fichiers correspondants avec les extensions .crt et .key. Les fichiers sont spécifiques à chaque serveur VPN. -
La configuration d’OpenVPN pour NordVPN exige que vous indiquiez le nom
d’utilisateur, les identifiants de service et le mot de passe pour
NordVPN à chaque lancement d’OpenVPN. Toutefois, nous allons procéder à
quelques réglages afin que les identifiants soient fournis
automatiquement. Tout d’abord, pour faciliter le processus, nous allons
installer l’éditeur de texte Nano en exécutant la
commande suivante :
Sinon, vous pouvez utiliser l’éditeur de texte vi intégré. Pour plus d’informations concernant les éditeurs de texte, veuillez consulter cet article. Ouvrez alors le fichier de configuration du serveur téléchargé avec l’éditeur de texte Nano. Dans notre cas, la commande serait la suivante :opkg install nano
Ensuite, ajoutez le mot « secret » (sans les guillemets) à la chaîne « auth-user-pass ». La ligne obtenue devrait être :nano /etc/openvpn/uk2054.nordvpn.com.udp.ovpn
Vous devez créer un nouveau fichier secret pour stocker les informations d'identification du service NordVPN. Pour ce faire, exécutez la commande suivante :auth-user-pass secret
Ceci créera le nouveau fichier et l’ouvrira avec l’éditeur de texte Nano. Sur la première ligne du fichier, saisissez votre nom d’utilisateur de service NordVPN, et sur la seconde ligne, votre mot de passe de service pour NordVPN. Vous trouverez vos identifiants de service NordVPN (nom d’utilisateur et mot de passe) dans le tableau de bord de votre Nord Account.nano /etc/openvpn/secret -
Configurez OpenVPN en utilisant le fichier de configuration téléchargé
en procédant selon l’une des deux méthodes suivantes :
-
Changez l’extension du fichier
de .ovpn en .conf,
ce qui permettra à OpenVPN de le trouver automatiquement par son
extension. Pour ce faire, vous pouvez utiliser la
commande mv :
mv /etc/openvpn/uk2054.nordvpn.com.udp.ovpn /etc/openvpn/uk2054.nordvpn.com.udp.conf -
Indiquez le nom du fichier dans « /etc/config/openvpn » avec les
commandes « uci » suivantes :
Ensuite, le fichier « /etc/config/openvpn » devrait contenir les chaînes de caractères suivantes :uci set openvpn.nordvpn=openvpn uci set openvpn.nordvpn.enabled='1' uci set openvpn.nordvpn.config='/etc/openvpn/uk2054.nordvpn.com.udp.ovpn' uci commit openvpn
Vous pouvez le vérifier en exécutant cette commande :config openvpn 'nordvpn' option enabled '1' option config '/etc/openvpn/uk2054.nordvpn.com.udp.ovpn'
Vous pouvez également changer l’extension du fichier de .ovpn en .conf et le mentionner dans le fichier « /etc/config/openvpn ». Toutefois, dans ce cas, OpenVPN ne démarrera qu’une seule fois avec ce fichier de configuration.tail /etc/config/openvpn
-
Changez l’extension du fichier
de .ovpn en .conf,
ce qui permettra à OpenVPN de le trouver automatiquement par son
extension. Pour ce faire, vous pouvez utiliser la
commande mv :
-
Créez une nouvelle interface réseau en exécutant les commandes
suivantes :
Le fichier « /etc/config/network » contiendra désormais les chaînes de caractères suivantes en annexe :uci set network.nordvpntun=interface uci set network.nordvpntun.proto='none' uci set network.nordvpntun.ifname='tun0' uci commit network
Vous pouvez le vérifier en exécutant cette commande :config interface 'nordvpntun' option proto 'none' option ifname 'tun0'tail /etc/config/network -
Créez une nouvelle zone de pare-feu et ajoutez une règle de transfert du
LAN vers le VPN en exécutant les commandes suivantes :
Si cela a été correctement effectué, le fichier « /etc/config/firewall » devrait contenir les chaînes de caractères suivantes :uci add firewall zone uci set firewall.@zone\[-1\].name='vpnfirewall' uci set firewall.@zone\[-1\].input='REJECT' uci set firewall.@zone\[-1\].output='ACCEPT' uci set firewall.@zone\[-1\].forward='REJECT' uci set firewall.@zone\[-1\].masq='1' uci set firewall.@zone\[-1\].mtu\_fix='1' uci add\_list firewall.@zone\[-1\].network='nordvpntun' uci add firewall forwarding uci set firewall.@forwarding\[-1\].src='lan' uci set firewall.@forwarding\[-1\].dest='vpnfirewall' uci commit firewall
Vous pouvez le vérifier en exécutant cette commande :config zone option name 'vpnfirewall' option input 'REJECT' option output 'ACCEPT' option forward 'REJECT' option masq '1' option mtu\_fix '1' list network 'nordvpntun' config forwarding option src 'lan' option dest 'vpnfirewall'
Cela affichera les 13 dernières lignes contenant les chaînes de caractères ci-dessus.tail -13 /etc/config/firewall -
Vous devrez alors configurer les serveurs DNS de NordVPN.
L'approche la plus simple consiste à utiliser le DNS NordVPN pour
l'interface WAN du routeur. Pour ajouter les DNS NordVPN, exécutez les
commandes suivantes :```` uci set network.wan.peerdns='0'
uci del network.wan.dns
uci add_list network.wan.dns='103.86.96.100'
uci add_list network.wan.dns='103.86.99.100'
uci commit ```REMARQUE : Si _vous recevez un message d'erreur « __uci: Entry not found__ » après avoir exécuté la commande_ _uci del network.wan.dns_ _, vous pouvez l'ignorer._ Le fichier « /etc/config/network » devrait contenir la section « wan » avec les trois chaînes du bas en annexe : ``` config interface 'wan' <...> option peerdns '0' list dns '103.86.96.100' list dns '103.86.99.100' ``` Vous pouvez vérifier en exécutant la commande et en trouvant l'interface « wan » dans la sortie : ``` cat /etc/config/network ``` Vous pouvez également ajouter d'autres adresses DNS, comme celle de Google, en exécutant les commandes suivantes : ``` uci set network.wan.peerdns='0' uci del network.wan.dns uci add\_list network.wan.dns='8.8.8.8' uci add\_list network.wan.dns='8.8.4.4' uci commit ``` Les chaînes ajoutées doivent être similaires aux précédentes.
(Facultatif) Killswitch pour OpenWRT 22.02 ou versions antérieures (iptables)
Pour éviter les fuites de trafic en cas de déconnexion du tunnel VPN, procédez comme suit :
-
Ouvrez le fichier pare-feu en utilisant un éditeur de texte :
sudo nano /etc/firewall.user -
Ajoutez le contenu suivant :
\# Ce fichier est interprété comme un script shell. \# Mettez vos règles iptables personnalisées ici, et elles seront exécutées à chaque (re)démarrage du pare-feu \# Les chaînes internes du pare-feu uci sont vidées et recréées lors du rechargement, donc \# Mettez les règles personnalisées dans les chaînes racines, par exemple INPUT ou FORWARD, ou dans les chaînes spéciales de l'utilisateur \# par exemple input\_wan\_rule ou postrouting\_lan\_rule. if ( ! ip a s tun0 up) && ( ! iptables -C forwarding\_rule -j REJECT) ; then iptables -I forwarding\_rule -j REJECT fi -
Créez un fichier appelé « 99-prevent-leak » dans le dossier «
/etc/hotplug.d/iface » en exécutant cette commande :
nano /etc/hotplug.d/iface/99-prevent-leak -
Ajoutez le contenu suivant au script :
#!/bin/sh if \[ "$ACTION" = ifup \] && (ip a s tun0 up) && (iptables -C forwarding\_rule -j REJECT); then iptables -D forwarding\_rule -j REJECT fi if \[ "$ACTION" = ifdown \] && (! ip a s tun0 up) && (! iptables -C forwarding\_rule -j REJECT); then iptables -I forwarding\_rule -j REJECT fi
(Facultatif) Killswitch pour OpenWRT 22.03 ou nouvelles versions (nftables)
Veuillez suivre les étapes ci-dessous pour éviter les fuites de trafic si le tunnel VPN ne fonctionne pas.
-
Modifiez le fichier de règles de pare-feu personnalisé :
sudo nano /etc/firewall.user -
Écrivez cette fonction :
\# when tun0 interface is down and within nftables no chain "forwarding\_rule" exists, then do the following. if (! ip a s tun0 up) && (! nft list chain inet fw4 forwarding\_rule; then \# add new chain named forwarding\_rule nft add chain inet fw4 forwarding\_rule \# add rule within chain forward to jump to chain forwarding\_rule nft add rule inet fw4 forward jump forwarding\_rule \# add rule within chain forward\_rule to reject all traffic nft add rule inet fw4 forwarding\_rule reject fi -
Ensuite, vous devez créer un script hotplug pour enclencher
automatiquement le killswitch :
sudo nano /etc/hotplug.d/iface/99-prevent-leak -
Écrivez le contenu suivant au script :
#!/bin/sh \# if action ifup is triggered, interface tun0 is up and the nftables chain "forwarding\_rule" contains text "reject", then flush that chain in order to allow traffic. if \[ "$ACTION" = ifup \] && (ip a s tun0 up) && (nft list chain inet fw4 forwarding\_rule | grep -q 'reject'); then nft flush chain inet fw4 forwarding\_rule fi \# if action ifdown is triggered, interface tun0 is not up and the nftables chain "forwarding\_rule" does not contain text "reject", then add a rule to that chain in order to reject all traffic. if \[ "$ACTION" = ifdown \] && (! ip a s tun0 up) && (! nft list chain inet fw4 forwarding\_rule | grep -q 'reject'); then nft add rule inet fw4 forwarding\_rule reject fi
Reconnectez automatiquement le script
La connexion OpenVPN peut parfois se bloquer avec une sortie de journal similaire à « couldn’t resolve host… ». Dans ce cas, le tunnel VPN est toujours présent, mais la connexion est perdue. Pour créer un script qui se reconnecterait automatiquement, procédez comme suit :
-
Ouvrez le fichier « /etc/rc.local » en utilisant un éditeur de texte :
sudo nano /etc/rc.local -
Ajoutez la ligne suivante :
/etc/openvpn/reconnect.sh & -
Créez le fichier « reconnect.sh » dans le répertoire « /etc/openvpn » en
exécutant cette commande :
sudo nano /etc/openvpn/reconnect.sh -
Dans le fichier, saisissez le contenu de script suivant :
#!/bin/sh n=10 while sleep 50; do t=$(ping -c $n 8.8.8.8 | grep -o -E '\[0-9\]+ packets r' | grep -o -E '\[0-9\]+') if \[ "$t" -eq 0 \]; then /etc/init.d/openvpn restart fi done
Statut de connexion
Après avoir suivi ces instructions, le routeur devrait être connecté avec la connexion configurée. Pour vérifier si vous y êtes parvenu, consultez la page d’accueil de NordVPN : l’état en haut de la page doit indiquer « Protégé ».
Si vous souhaitez interrompre la connexion VPN, cliquez sur le bouton stop à côté de l’option NordVPN dans la section VPN > OpenVPN > Instances OpenVPN, si vous avez suivi les étapes GUI. Cependant, si vous souhaitez interrompre la connexion VPN, exécutez la commande suivante :
service openvpn stop