Routeurs Wi-Fi/Tutoriel TP-Link Archer C50

De WikiBR

Avertissements

Warning.png Attention : Pour commencer, il est recommandé de lire toutes les parties qui vous intéressent avant de faire quoi que ce soit. Cela vous évitera des erreurs stupides qui vous feront perdre du temps. !

Avertissement technique

Modèle de routeur. Le système que vous vous apprêtez à installer n'est pas compatible avec tous les routeurs, loin de là ! Le fichier fourni par ce tutoriel est uniquement compatible avec les modèles de routeur TP-Link Archer C50, TP-Link Archer AC1200 ou TP-Link Archer A5, versions 4 à 6 (La version est écrite sur une étiquette du routeur et sur la boîte près du code barre.) . D'autres versions peuvent être compatibles mais n'ont pas été testées.

Si vous souhaitez tout de même utiliser un autre modèle, il faudra vous référer au site web d'openwrt http://openwrt.org/ qui contient entre autres la liste des modèles compatibles. IL faut prendre des modèles avec suffisament de RAM pour que cela fonctionne et compatible avec des versions récentes d'openwrt (le plus récent le mieux pour des questions de sécurité, mais au minimum openwrt 20.0).

Méthode de connexion. Pour configurer le routeur vous allez devoir vous y connecter. Pour cela brancher un câble ethernet à votre PC et sur un port orange du routeur (pensez aussi à brancher préalablement le routeur).

État d'esprit. La procédure est relativement longue mais elle n'est pas très compliquée. Si c'est votre première installation, ne stressez pas. Si vous fruitez à un moment, il y a de grandes chances que ce soit récupérable. Lisez ce guide entièrement avant de commencer et ne vous précipitez pas.

Avertissement juridique

Si vous configurez ce routeur pour fonctionner avec 802.1X (dans les caserts de l'École polytechnique en général), cela signifie que votre routeur sera connecté au réseau avec vos identifiants.

En particulier, puisque vous avez parfaitement le droit de partager votre connexion Wi-Fi avec qui bon vous semble, souvenez-vous que toute personne connectée à votre Wi-Fi est sous votre responsabilité.

Principe

Les routeurs du commerce ne gèrent pas les systèmes de sécurité utilisés à l'École polytechnique pour votre connexion internet. Pour compenser ce problème, une solution est d'installer un système auxiliaire (OpenWRT) sur les routeurs, remplaçant le système d'origine. Grâce à ceci on peut obtenir un routeur qui s'authentifie lui-même sur le réseau de l'École, et fournit un réseau wifi sur lequel les réseaux interne et externe sont accessibles sans problèmes de réglages de vos téléphones et ordinateurs.

Le hic

Il existe depuis l'interface GUI de TP-Link un endroit où l'on peut téléverser une mise-à-jour du microgiciel (firmware), et donc potentiellement fournir celui d'OpenWRT. Le problème qui va occuper une bonne partie de ce tutoriel, est que l'on ne peut pas directement fournir l'image d'OpenWRT depuis cette interface car cela va très probablement briquer le routeur.

Il faut donc procéder autrement, et l'on va donc utiliser le protocole TFTP [1] pour pouvoir fournir notre image au routeur.

Cependant, si le Wiki de votre modèle indique que vous pouvez le faire, cela vous permet a priori de passer directement à la partie #Hello, OpenWRT world.

Dans tous les cas, les liens suivants pourront vous être utiles en complément :

  • Page officielle pour le modèle Archer C50 [2]
  • Autre tutoriel qui a servi a l'élaboration de celui ci. Certains phases sont identiques et il y a d'autres compléments d'informations Routeurs Wi-Fi/Tutoriel

Préparation

Pour pouvoir commencer, il va falloir créer votre image à flasher sur le système. Les instructions qui suivent sont calquées sur https://openwrt.org/toh/tp-link/archer-c50#v4_and_v5_instructions.

  • 1ère possibilité: Utiliser un tp_recovery.bin tout fait disponible ici. (Utilise la version OS et pense à le renommer en tp_recovery.bin
  • 2ème possibilité: Le faire soit même, comme ceci:

Récupérez l'image du firware TP-Link depuis le site officiel qui devra être nommé tpl.bin, et celle d'OpenWRT (https://firmware-selector.openwrt.org/) nommée owrt.bin et placez les dans un répertoire commun.

Il est probable que le firmware officiel ou OpenWRT ne soit pas disponible pour votre version du routeur. En pratique prenez la dernière version disponible. À noter également qu'il n'existe actuellement pas de firmware OpenWRT pour le Archer A5, il faut prendre celui du Archer C50.

Il est également possible que la version d'OpenWRT disponible ne soit pas compatible avec la version du routeur (par exemple, OpenWRT pour le Archer C50 v5 ne fonctionne pas pour la v6). Dans ce cas, s'il n'existe pas d'image pré-compilée pour le routeur, il faut Compiler OpenWRT.

Dans un terminal ouvert sur le répertoire, exécutez les commandes suivantes :

dd if=/dev/zero of=tp_recovery.bin bs=196608 count=1
dd if=tpl.bin of=tmp.bin bs=131584 count=1
dd if=tmp.bin of=boot.bin bs=512 skip=1
cat boot.bin >> tp_recovery.bin
cat owrt.bin >> tp_recovery.bin

Ce sera l'image tp_recovery.bin qui vient d'être créée qui nous intéressera par la suite. L'image doit peser environ 6 Mo.

  • Si jamais à un moment ou un autre, le routeur est brické (cassé) tu peux le débloquer en utilisant le tp_recovery.bin disponible ici

Procédure TFTP

Comme indiqué sur le site OpenWRT, il faut maintenant déterminer si le routeur est client ou serveur TFTP. Dans le cas du C50, en regardant sur la page wiki, on voit des informations concernant Bootloader tftp server IPv4 address ce qui nous indique (contrairement à ce qu'on aurait pu penser) que le routeur sera client et le PC sera serveur.

Pour la suite, le lien suivant peut être d'une certaine utilité : https://www.youtube.com/watch?v=bL8wKx8qaZ4

Sur Windows, installer ce logiciel (https://pjo2.github.io/tftpd64/) avec les options par défaut. Si faisable, prendre un switch et connecter votre PC au switch, et le routeur (éteint) au switch via un de ses ports orange (le 1 par exemple). Depuis l'interface de configuration réseau de Windows, aller dans les paramètres de votre connexion Ethernet. Vérifier tout d'abord que vous avez désactivé 802.1x (et ne pas oublier de le remettre après pour se connecter à Eduroam !) et utilisez une adresse IP statique, qui sera celle indiquée sur le Wiki d'OpenWRT comme étant Bootloader tftp server IPv4 address (dans notre cas 192.168.0.66) avec un masque 255.255.255.0. Lancer TFTPD64 et changer Current Directory pour être le répertoire dans lequel tp_recovery.bin est situé. Cliquez sur Show dir pour vérifier qu'il fait bien partie de la liste des fichiers présents. Ouvrez l'onglet de Log. C'est assez contre-intuitif mais le serveur est bien mis en route à partir de ce moment, sans avoir besoin d'appuyer sur un bouton supplémentaire.

Maintenez maintenant le bouton reset avec le routeur éteint, et allumez le routeur. Attendez env. 10 secondes en maintenant le bouton reset, ou jusqu'à ce que la LED WPS soit allumée.

Le routeur devrait alors se connecter à votre ordinateur et télécharger le fichier. Le transfert devrait durer quelques secondes (posez-vous des questions au bout de 10min). Vous pouvez vérifier la progression sur l'onglet Log.

Remarque : si vous voulez tester votre serveur avant, connectez un autre ordi au switch, et lancez la commande suivante :

atftp 192.168.0.66
get tp_recovery.bin

Qui devrait retourner sans erreur.

Après le transfert, attendez encore quelques minutes : le routeur installe le nouveau firmware. Il ne faut surtout pas éteindre le routeur à ce moment, au risque de le briquer. À la fin de l'opération, il devrait se redémarrer.

Attention: si les LEDs clignotent périodiquement après le redémarrage, cela signifie que l'installation a échoué et qu'il n'arrive pas à booter. Assurez-vous d'avoir le bon fichier tp_recovery.bin puis recommencez le transfert.

Hello, OpenWRT world

Préalables

Routeur connecté à Internet

Heureusement tout n'en pas encore terminé. Une fois le routeur réinitialisé et redemarré, connectez-y vous par câble Ethernet (ou par le Wifi ouvert OpenWRT qui apparait et est une bonne indication que le routeur est effectivement réinitialisé).

Le routeur va avoir besoin d'Internet pour installer des paquets. Activez votre partage de co, et connectez vous depuis votre PC sur la GUI web de OpenWRT (à l'adresse 192.168.1.1). Connectez-vous alors à votre réseau dans allant dans Network, Scan et sélectionnant le bon Wifi. C'est essentiel d'avoir une bonne connexion, et cela peut être à l'origine de nombreuses erreurs par la suite (de paquets non trouvés par exemple). Vérifiez donc la connexion avec un ping, ou depuis l'onglet Diagnostics de la GUI.

Paquet wpa-supplicant installé

Connectez-vous par SSH au routeur avec :

ssh root@192.168.1.1

Sur certains modèles, il est nécessaire d'utiliser la commande ssh root@192.168.1.1 -oHostKeyAlgorithms=+ssh-rsa. Dans un premier temps, mettez à jour les packets :

opkg update

Vous pouvez aussi le faire depuis le web GUI (disponible sur 192.168.1.1 mdp root) System > Software et Run update.

Installer également nano si vous le souhaitez (vim est installé par défaut) :

opkg install nano

On va maintenant installer le paquet qui va s'occuper de nous authentifier au réseau. Il est probable qu'un autre paquet (wpad-basic ou wpad-basic-wolfssl selon les modèles) est préinstallé : il va falloir le désinstaller.

opkg remove wpad-basic
opkg install wpa-supplicant-openssl

Points d'attention:

  • c'est supplicant et pas applicant
  • vous pouvez déterminer quelle saveur de wpad-basic est installé avec la commande opkg list-installed
  • depuis l'été 2023, il faut installer wpa-supplicant-openssl et pas wpa-supplicant
  • après avoir désinstallé wpad-basic, vous ne pourrez plus vous reconnecter à votre hotspot si vous êtes déconnecté
  • si vous avez été déconnecté du hotspot avant de finir la configuration et que vous n'avez plus de connexion à Internet, vous pouvez réinstaller le système depuis le web GUI pour reprendre à la section "Hello, OpenWRT world".

Si l'installation échoue pour cause d'espace insufisant

Si l'installation de wpa-supplicant-openssl échoue par faute de place, il est possible que votre espace de stockage soit extrêmement faible, de l'ordre de 1 ou 2 Mo.

Vous pouvez vérifier l'espace de stockage avec la commande :

df -h

Il faut ensuite regarder le volume overlayfs. En octobre 2023, une installation complète a pu être faite sur un routeur avec 1.75 Mo d'espace sur overlayfs, modulo quelques changements :

  • réinitialiser le routeur depuis le web GUI pour reprendre à la section "Hello, OpenWRT world". (l'installation avortée de wpa-supplicant-openssl laisse de lourds artéfacts qui ne sont pas nettoyés par opkg) ;
  • utiliser le paquet wpa-supplicant-wolfssl au lieu de wpa-supplicant-openssl. En effet ce dernier est moins lourd : environ 1 Mo dépendances comprises contre plus de 2 Mo pour le paquet avec openssl ;
  • utiliser le paquet hostapd-mini au lieu de hostapd lors de la mise en place du Wifi.

À noter que le volume tmpfs est un volume virtuel qui vit sur de la RAM. Cet espace est donc vidé à chaque redémarrage et il n'est donc pas possible d'installer les paquets à cet endroit.

Configuration d'Ethernet

Ensuite configurez votre connexion en éditant :

nano /etc/config/wpa.conf

Et en insérant le texte suivant :

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=2
ap_scan=0
network={
  key_mgmt=IEEE8021X
  eap=TTLS
  identity="prénom.nom@polytechnique.fr"
  anonymous_identity="anonymous@polytechnique.fr"
  password="monpassword"
  phase1="auth=TTLS"
  phase2="auth=PAP password=monpassword"
  eapol_flags=0
}

En remplaçant les occurrences de prénom.nom et monpassword (attention il apparaît deux fois) en conséquence.

On va maintenant tenter de se connecter.

wpa_supplicant -D wired -i eth0.2 -c /etc/config/wpa.conf

Si cela échoue,

  • Regardez avec ifconfig quel port il vaut mieux utiliser, c'est peut-être eth1 chez vous.
  • Vérifiez vos identifiants de connexion en cas d'erreur de certificat
  • Vérifiez que la date du système n'est pas aberrante (une différence de quelques heures est OK)
  • Vérifiez que vous avez bien installé wpa-supplicant-openssl et pas wpa-supplicant

Si la commande précédente donne CTRL-EVENT-CONNECTED, c'est bon vous pouvez continuer.

Configuration du démarrage automatique

On va maintenant changer un autre fichier pour configurer le démarrage auto :

nano /etc/init.d/wpa

avec le contenu :

#!/bin/sh /etc/rc.common
# Copyright (C) 2007 OpenWrt.org
START=99
start() {
  echo start
  wpa_supplicant -D wired -i eth0.2 -c /etc/config/wpa.conf &
}

Changez la dernière ligne en fonction de la commande qui a fonctionné pour vous à l'étape précédente (en particulier le eth0.2)

Rendre si besoin le fichier executable avec chmod +x /etc/init.d/wpa

Activation du démarrage auto :

/etc/init.d/wpa start

Si retourne sans erreur : OK

Puis:

/etc/init.d/wpa enable

En faisant Ctrl+C si besoin.

Paquet Hostapd

Installer maintenant le paquet hostapd, qui sera indispensable pour pouvoir sécuriser votre réseau avec un mot de passe.

Depuis un terminal en ssh, doit être :

opkg update
opkg install hostapd

Alternativement, vous pouvez utiliser le web GUI:

  • Aller dans System > Software
  • Run Update
  • Filter: rechercher hostapd
  • Install
  • Dismiss

Config wifi

On va maintenant créer une nouvelle configuration Wifi :

uci set wireless.@wifi-device[0].disabled=0
uci set wireless.@wifi-iface[0].ssid='NOM_DU_WIFI'
uci set wireless.@wifi-iface[0].encryption='psk2'
uci set wireless.@wifi-iface[0].key='MOT-DE-PASSE'
uci set wireless.@wifi-device[0].country='FR'
uci commit wireless; wifi

En changeant NOM_DU_WIFI et MOT-DE-PASSE en conséquence.

Redémarrer :

reboot

Vous devriez maintenant avoir un réseau Wifi fonctionnel, émis par votre routeur, auquel vous pouvez vous connecter !

Si ne fonctionne pas et que wpa_supplicant -D wired -i eth0.2 -c /etc/config/wpa.conf renvoie bien CTRL-EVENT-CONNECTED

Lancer wpa_supplicant -D wired -i eth0.2 -c /etc/config/wpa.conf -B, et depuis l'interface graphique, restart eth0.