Installer le firmware OpenWrt sur un routeur Wi-Fi

5 votes
3.9K vues
Installer le firmware OpenWrt sur un routeur Wi-Fi
Très utile

Par Le Crabe

Le

Mis à jour le

Dossier : Connexion Internet lente et/ou instable ? Créez votre propre box 4G !

3.9K vues

13 commentaires

  • MàJ le 17 janvier 2018 : reconnexion automatique au réseau LTE (4G).
  • MàJ le 15 février 2018 : ajout du lien de téléchargement OpenWrt pour l'Archer C7 v4.
  • MàJ le 4 février 2018 : ajout du lien pour installer un client VPN sur OpenWrt.
  • MàJ le 3 février 2018 : 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 !

Le Crabe

Le Crabe vous a aidé ? Aidez-le en retour en désactivant votre bloqueur de publicité ! 👍

(merci pour le coup de pince 😊)

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 et de 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.

Important : si vous avez un routeur avec seulement 4 Mo de stockage interne comme le routeur TP-Link TL-MR3020, quittez ce tutoriel et suivez celui-ci à la place : installer le firmware OpenWrt sur un routeur avec 4 Mo de stockage.

Étape 1 : installation d’OpenWrt sur le routeur Wi-Fi

  1. 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.
  2. Dans la colonne Firmware LEDE Install URL, téléchargez le fichier « […]factory.bin » puis renommez-le en factory.bin.

    Pour le TP-Link Archer C7 v2 : archer-c7-v2-squashfs-factory-eu.bin.

    Pour le TP-Link Archer C7 v4 : archer-c7-v4-squashfs-factory.bin.

    Pour le TP-Link TP-WR902AC v1 : tl-wr902ac-v1-squashfs-factory.bin.

  3. Reliez votre routeur Wi-Fi (port LAN) à la carte réseau de votre PC via un câble Ethernet.
  4. 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.
  5. 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).
  6. 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.

OpenWrt crée automatiquement 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

Note : dans cette section, j’explique comment établir une connexion WLAN en utilisant le point d’accès Wi-Fi d’un routeur comme celui intégré dans votre box ADSL/fibre (Freebox, Bbox…).
  1. 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).
  2. Scanner les réseaux Wi-Fi en cliquant sur le bouton Scan en face d’une des cartes Wi-Fi du routeur.
  3. Rejoignez le réseau Wi-Fi de votre box ADSL/fibre en cliquant sur Join Network.
  4. 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.
  5. 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 :
  6. 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)

Note : dans cette section, j’explique comment établir une connexion WWAN en utilisant le dongle USB LTE Huawei E3372. Avant de continuer, vous devez au préalable avoir configuré l’accès Internet de votre routeur via une box ADSL/fibre par Ethernet ou un point d’accès Wi-Fi (voir précédemment).

Protocole RNDIS

Important : nous allons utiliser le protocole RNDIS pour nous connecter à Internet. Le dongle Huawei E3372 doit être équipé d’un firmware HiLink.
  1. Insérez le dongle Huawei E3372 sur un port USB de votre routeur Wi-Fi.
  2. Téléchargez cmder (Full), décompressez l’archive puis exécutez cmder.exe. Cmder intègre Git for Windows et permet d’établir une connexion SSH avec des périphériques réseau.
  3. Connectez-vous en SSH à votre routeur :
    ssh root@192.168.1.1
  4. Installez les paquets kmod-usb-net-rndis  et usb-modeswitch en entrant les commandes suivantes :
    opkg update
    opkg install kmod-usb-net-rndis usb-modeswitch
  5. 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
  6. 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
  7. 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
  8. Redémarrez les services firewall et network :
    /etc/init.d/firewall reload
    /etc/init.d/network restart
  9. 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.
  10. 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

Important : nous allons utiliser le protocole NCM pour nous connecter à Internet. Le dongle Huawei E3372 doit être équipé d’un firmware Stick. Avant de commencer, configurez le « multi-mode » du dongle afin d’activer le protocole NCM dans un mode unique : AT^SETPORT="FF;12,16,A2".
  1. Insérez le dongle Huawei E3372 sur un port USB de votre routeur Wi-Fi.
  2. Téléchargez cmder (Full), décompressez l’archive puis exécutez cmder.exe. Cmder intègre Git for Windows et permet d’établir une connexion SSH avec des périphériques réseau.
  3. Connectez-vous en SSH à votre routeur :
    ssh root@192.168.1.1
  4. Installez les paquets suivants :
    • kmod-usb-net-huawei-cdc-ncm et comgt-ncm, nécessaires pour se connecter à Internet avec le protocole NCM ;
    • kmod-usb-serial, kmod-usb-serial-option et kmod-usb-serial-wwan, nécessaires pour utiliser le port série du dongle Huawei E3372.

    Pour ce faire, saisissez les commandes suivantes :

    opkg update
    opkg install kmod-usb-net-huawei-cdc-ncm comgt-ncm
    opkg install kmod-usb-serial kmod-usb-serial-option kmod-usb-serial-wwan
  5. 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
  6. Installez le paquet luci-proto-ncm qui permet le support du protocole NCM dans l’interface LuCI :
    cd /tmp
    opkg update
    opkg install wget ca-certificates libustream-openssl
    wget "https://drive.google.com/uc?export=download&id=1k5_fuA6ubl_Sk_vrn3PVfd-xGZu5w9Lf" -O luci-proto-ncm_git-18.021.64448-4dddecf-1_all.ipk
    opkg install luci-proto-ncm_git-18.021.64448-4dddecf-1_all.ipk
  7. Créez une interface virtuelle wwan en spécifiant entre autres le protocole (ncm), l’interface réseau physique (wwan0) et le port série du dongle Huawei E3372 (/dev/ttyUSB0) :
    uci set network.wwan=interface
    uci set network.wwan.proto='ncm'
    uci set network.wwan.device='/dev/ttyUSB0'
    uci set network.wwan.ifname='wwan0'
    uci set network.wwan.apn='free'
    uci set network.wwan.pincode='1234'
    uci set network.wwan.mode='preferlte'
    uci set network.wwan.delay='30'
    uci commit

    Modifiez les champs apn et pincode en fonction du nom de votre opérateur mobile et du code PIN de votre carte SIM.

  8. 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
  9. Redémarrez les services firewall et network :
    /etc/init.d/firewall reload
    /etc/init.d/network restart
  10. 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.
  11. Votre connexion Internet est opérationnelle ! Vérifiez avec un ping sur votre site Web favori 😉
    ping lecrabeinfo.net -c 4 -I wwan0
    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 :

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.

  1. Téléchargez le script watchdog.sh :
    cd /root
    wget https://gist.githubusercontent.com/dreamon11/dc35c659a594ee5e51d74d028e9ce988/raw/6e9a51a7070958adb1c045d92b6ea7049d940780/watchdog.sh
    chmod +x watchdog.sh
  2. 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 -
  3. Installez le paquet flock qui verrouillera le script watchdog.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
  4. Redémarrez le service cron :
    /etc/init.d/cron restart
  5. 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 😉