« Routeurs Wi-Fi/Tutoriel TP-Link Archer C50 » : différence entre les versions

De WikiBR
(Tuto initial)
 
(Explication du besoin de passer par TFTP)
Ligne 20 : Ligne 20 :


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.
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 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 [https://openwrt.org/toh/tp-link/archer-c50#v4_and_v5_instructions]
* 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 ==
== Préparation ==

Version du 8 avril 2022 à 16:46

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 le routeur TP-Link C50 ou TP-Link AC1200, versions 4 (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).

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 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 [1]
  • 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 propre 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. Récupérez l'image TP-link depuis le site officiel qui devra être nommée tpl.bin, et celle d'OpenWRT nommée tmp.bin et placez les dans un répertoire commun. Exécutez alors les instructions suivantes, depuis un terminal ouvert dans ce répertoire :

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

Ce sera l'image tp_recovery.bin qui vient d'être créée qui nous intéressera par la suite.

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 transfert devrait alors démarrer (et durer normalement quelques secondes, normalement attendez 15min, en vrai au bout de qq minutes il faut mieux se poser des questions). Utilisez l'onglet de log pour vérifier que le fichier a bien été transféré.

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.

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 cable 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

Mettez à jour les packets, avec opkg update ou depuis le web GUI (disponible sur 192.168.1.1 mdp root) System > Software et Run update. Puis on va vouloir installer wpa-supplicant (et pas applicant, faites pas l'erreur comme moi). Pour cela il va surement falloir désinstaller un autre paquet qui gêne, pour enfin instlaller le bon. Et installez nano au passage (sauf si vim vous suffit).

opkg uninstall wpad-basic-wolfssl
opkg install wpa-supplicant
opkg install nano

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=root
ap_scan=0
network={
  key_mgmt=IEEE8021X
  eap=TTLS
  identity="prénom.nom@polytechnique.fr"
   
  anonymous_identity="anonymous@polytechnique.fr"
  password="xxxxx"
  phase1="auth=TTLS"
  phase2="auth=PAP"
}

En changeant identity et password 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

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

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

opkg install nano
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 la GUI web :

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

Depuis un terminal en ssh, doit être :

opkg install hostapd

S'il ne connaît pas hostapd, mettez à jour la liste des paquets.

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 ssid et key en conséquence.

Redémarrer, 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.