- 16/03/19 : mise à jour de la configuration du modem LTE via protocole NCM.
- 12/08/18 : instructions pour utiliser Git Bash à la place de l'Invite de commandes dans Cmder pour utiliser SSH.
-
- 10/07/18 : ajout des paquets kmod-usb2 et kmod-usb3 pour le support de l'USB 2.0 et 3.0 et l'utilisation du Huawei E3372 avec le protocole NCM.
- 17/01/18 : reconnexion automatique au réseau LTE (4G).
- 15/02/18 : ajout du lien de téléchargement OpenWrt pour l'Archer C7 v4.
- 04/02/18 : ajout du lien pour installer un client VPN sur OpenWrt.
- 03/02/18 : configuration de la connexion Internet via une box ADSL/fibre par Ethernet.
Vous avez acheté un routeur Wi-Fi et vous souhaitez exploiter pleinement son potentiel ? Alors l’installation du firmware alternatif OpenWrt est très certainement ce qu’il vous faut ! En effet, OpenWrt fournit plus de 3000 paquets, prêts à être installés. Vous allez pouvoir installer sur votre routeur Wi-Fi : un client OpenVPN, un serveur de fichiers… et plus encore !
Vous l’aurez compris, je vais vous expliquer dans cet article comment remplacer le firmware d’origine de votre routeur Wi-Fi par le firmware OpenWrt. 🙂
Vous allez voir, c’est très simple !
OpenWrt et LEDE
OpenWrt et LEDE sont des firmwares alternatifs basés sur le système d’exploitation GNU/Linux à destination des systèmes embarqués (routeurs, modems…) et qui visent à remplacer le firmware fourni par le fabricant.
OpenWrt a vu le jour en 2014. En mai 2016, quasiment tous les développeurs d’OpenWrt sont partis pour un nouveau projet, LEDE (Linux Embedded Development Environment), ce qui a arrêté le développement d’OpenWrt. LEDE est donc un fork d’OpenWrt, c’est-à-dire un firmware créé à partir du code source d’OpenWrt.
En janvier 2018, les équipes de LEDE et OpenWrt ont annoncé que les deux projets allaient fusionner. Le projet unifié utilise le nom OpenWrt mais utilise le code source et les règles du projet LEDE. Les membres actifs des anciens projets LEDE et OpenWrt travaillent désormais ensemble sur l’OpenWrt unifié.
Il est recommandé d’installer OpenWrt sur des périphériques équipés d’au moins :
- 8 Mo de mémoire flash ;
- 64 Mo de mémoire vive (RAM).
La mémoire flash permet de stocker l’image du firmware et des programmes supplémentaires (OpenVPN, Samba, LuCI…) ; la mémoire vive à exécuter les tâches confortablement, sans latence.
Ce tutoriel est destiné exclusivement aux routeurs Wi-Fi équipés d’au moins 8 Mo de stockage interne.
Prérequis
- Un routeur compatible OpenWrt.
- Un client SSH sur votre PC :
- Avec Linux : en utilisant le client SSH natif.
- Avec Windows : en utilisant le client SSH natif de Windows 10 ou bien le logiciel cmder.
Utiliser cmder
Téléchargez cmder (Full), décompressez l'archive puis double-cliquez sur le fichier cmder.exe. Cmder intègre Git for Windows et permet d'établir une connexion SSH avec des périphériques réseau.
Par défaut, cmder ouvre une instance de
cmd.exe
(Invite de commandes) qui ne supporte pas le SSH, contrairement àbash.exe
(Git Bash). Vous devez donc ouvrir un onglet (CTRL + T) et sélectionnez la tâche {bash::bash}.Pour plus de confort, je vous recommande de définir {bash::bash} comme tâche par défaut : Settings > Startup > Specified named task > {bash::bash} > Save settings.
Étape 1 : installation d’OpenWrt sur le routeur Wi-Fi
- Consultez la page Table of Hardware: Firmware downloads et recherchez votre routeur Wi-Fi en utilisant les filtres de recherche. N’hésitez pas à cliquez sur le lien View/Edit data pour obtenir des informations utiles sur votre routeur.
- Dans la colonne Firmware OpenWrt Install URL, téléchargez le fichier « […]factory.bin » puis renommez-le en factory.bin.
Pour le TP-Link Archer C7 :
- v2 et v3 : archer-c7-v2-squashfs-factory.bin.
- v4 : archer-c7-v4-squashfs-factory.bin.
- v5 : archer-c7-v5-squashfs-factory.bin.
Pour le TP-Link TP-WR902AC v1 : tl-wr902ac-v1-squashfs-factory.bin.
- Reliez votre routeur Wi-Fi (port LAN) à la carte réseau de votre PC via un câble Ethernet.
- Rendez-vous sur l’interface d’administration de votre routeur Wi-Fi, page « System Upgrade » et sélectionnez le fichier factory.bin.
Cliquez sur Upgrade et patientez jusqu’à l’installation complète du firmware OpenWrt.
- Ouvrez votre navigateur Web et entrez l’adresse Web http://192.168.1.1/ pour vous connecter à l’interface d’administration d’OpenWrt. Identifiez-vous avec le nom d’utilisateur par défaut root (aucun mot de passe).
- Définissez un mot de passe pour l’utilisateur root en cliquant sur le lien Go to password configuration, puis cliquez sur Save & Apply en bas de la page.
Voilà, OpenWrt est correctement installé ! Maintenant, allons configurer l’accès Internet. 😉
Étape 2 : configuration de la connexion Internet
Via une box ADSL/fibre par Ethernet
Si vous disposez un box ADSL/fibre et que votre routeur dispose d’un port WAN, reliez simplement un des ports LAN de la box ADSL/fibre au port WAN du routeur avec un câble Ethernet.
En effet, par défaut, OpenWrt est configuré avec les interfaces virtuelles nécessaires (une avec le protocole DHCP et une autre avec le protocole DHCPv6) sur l’interface réseau physique eth0 (carte WAN du routeur). La connexion Internet sera de suite opérationnelle.
Vérifiez la connexion Internet en cliquant sur le bouton Ping dans Network > Diagnostics.
La connexion Internet est opérationnelle si sur les cinq paquets transmis, 5 sont bien reçus (0% de paquet perdu).
Voilà, votre routeur Wi-Fi sous OpenWrt est maintenant connecté à Internet. 🙂
Via un point d’accès Wi-Fi
- Rendez-vous dans Network > Wireless et activez les points d’accès Wi-Fi « OpenWrt » en cliquant sur les boutons Enable. Ces points d’accès Wi-Fi vont permettre à vos appareils de se connecter à votre routeur Wi-Fi sous OpenWrt. Vous avez par défaut une carte radio0 pour la bande de fréquence des 5 GHz (802.11nac) et une carte radio1 pour celle des 2,4 GHz (802.11bgn).
- Scanner les réseaux Wi-Fi en cliquant sur le bouton Scan en face d’une des cartes Wi-Fi du routeur.
- Rejoignez le réseau Wi-Fi de votre box ADSL/fibre en cliquant sur Join Network.
- Entrez le mot de passe du réseau Wi-Fi dans le champ WPA passphrase, « wlan » dans le champ Name of the new network, sélectionnez la zone Firewall « wan » puis cliquez sur Submit.
- Descendez en bas de la page puis cliquez sur Save & Apply.
Dans la section Associated Stations, le SSID du point d’accès Wi-Fi de votre box ADSL/fibre devrait apparaitre :
Et dans Network > Interfaces, vous trouvez l’interface virtuelle wlan :
- Vérifiez la connexion Internet en cliquant sur le bouton Ping dans Network > Diagnostics.
La connexion Internet est opérationnelle si sur les cinq paquets transmis, 5 sont bien reçus (0% de paquet perdu).
Voilà, votre routeur Wi-Fi sous OpenWrt est maintenant connecté à Internet 🙂
Via un modem LTE (4G)
Protocole RNDIS
- Insérez le dongle Huawei E3372 sur un port USB de votre routeur Wi-Fi.
- Connectez-vous en SSH à votre routeur :
ssh [email protected]
- Installez les paquets
kmod-usb-net-rndis
etusb-modeswitch
en entrant les commandes suivantes :opkg update opkg install kmod-usb-net-rndis usb-modeswitch
- Vérifiez que le périphérique est bien détecté :
opkg install usbutils lsusb Bus 001 Device 003: ID 12d1:14dc Huawei Technologies Co., Ltd. E33372 LTE/UMTS/GSM HiLink Modem/Networkcard
Ainsi que l’interface réseau physique eth2 :
dmesg | grep cdc_ether [30832.616731] usbcore: registered new interface driver cdc_ether [30834.907868] cdc_ether 1-1:1.0 eth2: register 'cdc_ether' at usb-ehci-platform.0-1, CDC Ethernet Device, 0c:5b:8f:27:9a:64 ip link show eth2 64: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 0c:5b:8f:27:9a:64 brd ff:ff:ff:ff:ff:ff
- Créez une interface virtuelle wwan en spécifiant le protocole (dhcp) et l’interface réseau physique (eth2) du dongle Huawei E3372 :
uci set network.wwan=interface uci set network.wwan.ifname='eth2' uci set network.wwan.proto='dhcp' uci commit
- Pour protéger votre connexion Internet, ajoutez l’interface virtuelle wwan que nous venons de créer à la zone wan du pare-feu :
uci add_list firewall.@zone[1].network='wwan' uci commit
- Redémarrez les services firewall et network :
/etc/init.d/firewall reload /etc/init.d/network restart
- Patientez un moment, jusqu’à ce que le dongle USB Huawei E3372 affiche une LED cyan fixe, signifiant que la connexion au réseau cellulaire LTE (4G) est bien active.
- Votre connexion Internet est opérationnelle ! Vérifiez avec un ping sur votre site Web favori 😉
ping lecrabeinfo.net -c 4 -I eth2 PING lecrabeinfo.net (213.32.22.96): 56 data bytes 64 bytes from 213.32.22.96: seq=0 ttl=51 time=42.278 ms 64 bytes from 213.32.22.96: seq=1 ttl=51 time=34.948 ms 64 bytes from 213.32.22.96: seq=2 ttl=51 time=34.665 ms 64 bytes from 213.32.22.96: seq=3 ttl=51 time=34.377 ms --- lecrabeinfo.net ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 34.377/36.567/42.278 ms
Sur LuCI, dans Network > Interfaces, vous retrouverez l’interface virtuelle wwan :
Protocole NCM
AT^SETPORT="FF;12,16,A2"
.- Insérez le dongle Huawei E3372 sur un port USB de votre routeur Wi-Fi.
- Connectez-vous en SSH à votre routeur :
ssh [email protected]
- Installez les paquets suivants :
kmod-usb2
etkmod-usb3
: nécessaires pour le support de l’USB 2.0 et 3.0 (uniquement si vous branchez votre dongle E3372 sur un port USB 2.0 ou 3.0) ;kmod-usb-net-huawei-cdc-ncm
etcomgt-ncm
: nécessaires pour se connecter à Internet avec le protocole NCM ;kmod-usb-serial
,kmod-usb-serial-option
etkmod-usb-serial-wwan
: nécessaires pour utiliser l’interface série du dongle Huawei E3372.luci-proto-ncm
: permet le support du protocole NCM dans l’interface LuCI.
Pour ce faire, saisissez les commandes suivantes :
opkg update opkg install kmod-usb2 kmod-usb3 opkg install kmod-usb-net-huawei-cdc-ncm comgt-ncm opkg install kmod-usb-serial kmod-usb-serial-option kmod-usb-serial-wwan opkg install luci-proto-ncm
- Vérifiez que les périphériques /dev/cdc-wdm0 et /dev/ttyUSB0 sont bien détectés :
ls -l /dev/cdc-wdm0 /dev/ttyUSB0 crw------- 1 root root 180, 176 Jan 31 14:44 /dev/cdc-wdm0 crw------- 1 root root 188, 0 Jan 31 14:46 /dev/ttyUSB0
Ainsi que l’interface réseau physique wwan0 :
ip link show wwan0 3: wwan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN qlen 1000 link/ether 00:1e:10:1f:00:00 brd ff:ff:ff:ff:ff:ff
- Dans LuCI, rendez-vous dans Network > Interfaces et cliquez sur le bouton Add new interface.
- Nommez l’interface wwan, choisissez le protocole NCM puis cliquez sur Submit.
- Saisissez les informations suivantes puis cliquez sur Save & Apply.
- Modem device : /dev/ttyUSB0.
- Service type : Prefer LTE.
- APN : l’APN de votre opérateur mobile.
- PIN : le code PIN de la carte SIM.
- Advanced settings > Modem init timeout : 30.
- Firewall settings > Firewall-zone : wan.
- Patientez un moment, jusqu’à ce que le dongle USB Huawei E3372 affiche une LED cyan fixe, signifiant que la connexion au réseau cellulaire LTE (4G) est bien active.
- Votre connexion Internet est opérationnelle ! Vérifiez-la en cliquant sur le bouton Ping dans Network > Diagnostics.
Dans Network > Interfaces, vous retrouverez l’interface virtuelle wwan :
Voilà, votre routeur Wi-Fi sous OpenWrt est maintenant connecté à Internet. 🙂
Multi-WAN
Si vous avez plusieurs interfaces virtuelles connectées à Internet, comme ici :
- wan et wan6 : connexion ADSL.
- wwan : connexion LTE (4G).
Vous allez la possibilité d’utiliser une interface virtuelle plutôt qu’une autre pour la connexion Internet grâce la métrique.
Métrique (routage)
Un routeur possède une table de routage avec toutes les routes possibles. Par exemple, dans la capture d’écran ci-dessus, il y a deux routes : la route wan et la route wwan. Les métriques sont utilisées pour déterminer si une route doit être utilisée plutôt qu’une autre. La route avec la métrique la plus basse sera utilisée en priorité.
Pour me connecter à Internet, supposons que je veuille utiliser en priorité l’interface virtuelle wwan (connexion LTE) puis l’interface virtuelle wan (connexion ADSL).
Pour cela, je vais définir une métrique de 10 pour l’interface wwan et une métrique de 20 pour l’interface wan. Cela se fait très simplement : je clique sur le bouton Edit sur la ligne de l’interface wwan > onglet Advanced Settings > je saisis la valeur 10 dans le champ Use gateway metric > Save & Apply.
Je procède de la même façon pour l’interface wan mais en spécifiant cette fois-ci une métrique de 20.
Pour savoir si mon interface virtuelle wwan est bien utilisée en priorité, je consulte le site https://www.whoismyisp.org/ et je note l’adresse IP et l’ISP (FAI) détectés :
L’adresse IP et l’ISP correspondent bien à ceux de ma connexion LTE (4G), tout est bon ! 😉
Reconnexion automatique au réseau LTE (4G)
La connexion au réseau LTE (4G) peut s’interrompre sans prévenir. C’est pourquoi nous allons utiliser un script watchdog.sh
qui testera la connexion Internet de l’interface wwan et qui la redémarrera si la connexion Internet est hors-service. Le script est disponible ici : watchdog.sh.
- Attribuez l’interface réseau physique wwan0 à l’interface wwan :
uci set network.wwan.ifname='wwan0' uci commit
- Rechargez la configuration du réseau :
/etc/init.d/network restart
- Téléchargez le script
watchdog.sh
:cd /root wget https://gist.githubusercontent.com/dreamon11/dc35c659a594ee5e51d74d028e9ce988/raw/6e9a51a7070958adb1c045d92b6ea7049d940780/watchdog.sh chmod +x watchdog.sh
- Créez une tâche planifiée qui exécutera le script
watchdog.sh
toutes les minutes :crontab -l | { cat; echo "* * * * * /usr/bin/flock -n /tmp/watchdog.lockfile /root/watchdog.sh wwan"; } | crontab -
- Installez le paquet
flock
qui verrouillera le scriptwatchdog.sh
afin d’éviter qu’une nouvelle instance de ce script ne s’exécute si la précédente est toujours en cours d’exécution :opkg update opkg install flock
- Redémarrez le service cron :
/etc/init.d/cron restart
- Un p’tit coup d’oeil dans les logs pour s’apercevoir que la tâche est bien exécutée, et que l’interface est bien redémarrée lorsque la connexion au réseau LTE (4G) est perdue :
logread Sat Feb 17 23:40:00 2018 cron.info crond[8535]: USER root pid 8538 cmd /root/watchdog.sh wwan Sat Feb 17 23:41:32 2018 user.notice watchdog: Physical network interface 'wwan0' is down: restart interface 'wwan' Sat Feb 17 23:41:32 2018 daemon.notice netifd: wwan (8560): Stopping network wwan Sat Feb 17 23:41:33 2018 daemon.notice netifd: Interface 'wwan' is now down Sat Feb 17 23:41:33 2018 daemon.notice netifd: Interface 'wwan' is setting up now Sat Feb 17 23:42:05 2018 daemon.notice netifd: wwan (8604): sending -> AT Sat Feb 17 23:42:06 2018 daemon.notice netifd: wwan (8604): sending -> ATZ Sat Feb 17 23:42:07 2018 daemon.notice netifd: wwan (8604): sending -> ATQ0 Sat Feb 17 23:42:07 2018 daemon.notice netifd: wwan (8604): sending -> ATV1 Sat Feb 17 23:42:08 2018 daemon.notice netifd: wwan (8604): sending -> ATE1 Sat Feb 17 23:42:09 2018 daemon.notice netifd: wwan (8604): sending -> ATS0=0 Sat Feb 17 23:42:09 2018 daemon.notice netifd: wwan (8604): sending -> AT+CGDCONT=1,"IP","free" Sat Feb 17 23:42:11 2018 daemon.notice netifd: wwan (8604): SIM ready Sat Feb 17 23:42:11 2018 daemon.notice netifd: wwan (8604): PIN set successfully Sat Feb 17 23:42:12 2018 daemon.notice netifd: wwan (8604): sending -> AT^SYSCFGEX="030201",3fffffff,2,4,7fffffffffffffff,, Sat Feb 17 23:42:13 2018 daemon.notice netifd: wwan (8604): Starting network wwan Sat Feb 17 23:42:13 2018 daemon.notice netifd: wwan (8604): sending -> AT^NDISDUP=1,1,"free" Sat Feb 17 23:42:14 2018 daemon.notice netifd: wwan (8604): Setting up wwan0 Sat Feb 17 23:42:14 2018 daemon.notice netifd: Interface 'wwan' is now up Sat Feb 17 23:42:14 2018 daemon.notice netifd: Network device 'wwan0' link is up Sat Feb 17 23:42:14 2018 daemon.notice netifd: Network alias 'wwan0' link is up
Ce guide s’achève ici ! 🙂 Mais vous n’allez pas vous arrêter en si bon chemin… 😎
Maintenant que notre routeur est équipé d’un super firmware, allons installer un client VPN dessus pour chiffrer notre connexion Internet : installer et configurer un client OpenVPN sur votre routeur sous OpenWrt 😉