« Routeurs Wi-Fi/Tutoriel » : différence entre les versions
Aucun résumé des modifications |
m (Fix typo in Wifi) |
||
(40 versions intermédiaires par 10 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
{{Travaux|Pour toute remarque ou demande, ouvrir une tâche Panix}} | |||
=== | == Avertissements == | ||
{{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. Si vous souhaitez acheter un routeur, tournez vous faire des modèles avec plus de RAM que celui-ci (contacter le BR direcetement pour plus d'infos) !}} | |||
=== Avertissement technique === | |||
La | '''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 841N''' ou '''TP-Link 841ND''', versions 11 (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é.'' | ||
=== | Si vous souhaitez tout de même utiliser un autre modèle, il faudra vous référer au site web d'openwrt {{c|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). Cependant ce guide sera très spécifique pour le TP-link 841N et Tp-link 841ND. | ||
'''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. | |||
== Préparation == | |||
=== Linux === | |||
Dans le cas des systèmes UNIX, la préparation est assez rapide car les outils sont déjà installés. | |||
==== Terminal ==== | |||
Pour faire la configuration il vous faudra être capable d'accéder à votre terminal. Pour la plupart des systèmes on peut le lancer avec {{c|ctrl+alt+T}} ou en cherchant « terminal » dans le menu principal. | |||
==== SSH et SCP ==== | |||
Vous aurez besoin d'un client {{c|ssh}} (par défaut installé sous linux) : | |||
$ sudo apt-get install openssh-client | |||
La commande {{c|ssh}} permet ensuite de se connecter à distance et de façon sécurisée à un terminal. | |||
La commande {{c|scp}}, fournie par le même paquet, permet de transférer des fichiers avec le même protocole. | |||
==== Configuration réseau ==== | |||
Pour vous connecter au routeur il vous faudra créer un nouveau profil de configuration ethernet selon les paramètres suivants : | |||
[[Image:routeurs-settings-eth-linux.jpg|500px]] | |||
==== Récupération ==== | |||
Pour pouvoir récupérer une erreur commise avec votre routeur, il faut tout d'abord installer un serveur ssh : | |||
$ sudo apt-get install openssh-server | |||
$ sudo service ssh start | |||
Vous aurez ensuite besoin d'un nouveau profil de connexion réseau qui vous permettra de réaliser la remise à zéro du routeur : | |||
[[Image:routeurs-settings-eth0-linux.jpg|500px]] | |||
=== MacOS === | |||
==== Terminal ==== | |||
La console de MacOS est accessible via une application appelée '''Terminal'''. Vous la trouverez dans le dossier « Utilitaires » du dossier « Applications ». Elle vous permettra de taper les commandes nécessaires. | |||
==== SSH et SCP ==== | |||
Le programme {{c|ssh}} est en général installé sur MacOS X, et permet de se connecter à distance à d'autres ordinateurs (en l'occurrence au routeur). | |||
Il en est de même pour {{c|scp}} qui est destiné au transfert de fichiers. | |||
==== Configuration réseau ==== | |||
Pour pouvoir se connecter facilement au routeur le plus simple est de créer un nouveau profil de configuration : | |||
[[Image:routeurs-settings-eth-1-mac.jpg|500px]] | |||
[[Image:routeurs-settings-eth-2-mac.jpg|500px]] | |||
=== Windows === | |||
==== Terminal ==== | |||
Sous Windows il existe plusieurs options. | |||
Soit vous utilisez le powershell (windows terminal sous windows 11), soit vous utilisez Ubuntu via WSL. Si vous utilisez WSL veuillez vous référer à la partie Linux précédente pour installer les paquets nécessaires à la réalisation du tutoriel. | |||
==== Configuration réseau ==== | |||
Il vous faudra aussi configurer votre connexion réseau en '''DHCP''', sans la sécurité '''802.1X''', et de préférence avec les bons serveurs '''DNS'''. Si vous ne l'avez jamais fait, renseignez-vous sur le wikibr ou tout autre site décrivant la configuration réseau sous Windows. | |||
=== Terminal === | |||
Dans le terminal de votre ordinateur nous n'utiliserons que '''ssh''' et '''scp''' . En revanche nous utiliserons beaucoup le terminal du routeur, qui ressemblera à ceci : | |||
neze@neze ~$ ssh root@192.168.1.1 | |||
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established. | |||
RSA key fingerprint is **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**. | |||
Are you sure you want to continue connecting (yes/no)? yes | |||
Warning: Permanently added '192.168.1.1' (RSA) to the list of known hosts. | |||
root@192.168.1.1's password: # ici le password n'apparaîtra pas | |||
BusyBox v1.23.2 (2015-11-17 16:24:55 CET) built-in shell (ash) | |||
_______ ________ __ | |||
| |.-----.-----.-----.| | | |.----.| |_ | |||
| - || _ | -__| || | | || _|| _| | |||
|_______|| __|_____|__|__||________||__| |____| | |||
|__| W I R E L E S S F R E E D O M | |||
----------------------------------------------------- | |||
CHAOS CALMER (Chaos Calmer, r47466) | |||
----------------------------------------------------- | |||
* 1 1/2 oz Gin Shake with a glassful | |||
* 1/4 oz Triple Sec of broken ice and pour | |||
* 3/4 oz Lime Juice unstrained into a goblet. | |||
* 1 1/2 oz Orange Juice | |||
* 1 tsp. Grenadine Syrup | |||
----------------------------------------------------- | |||
root@OpenWrt:~# | |||
== Installation == | |||
Cette section est destinée à décrire l'installation du système '''OpenWRT''' sur un des deux routeurs traités. Plusieurs fichiers vous sont proposés. En général avant de l'installer il faut renommer un fichier. | |||
=== Installer OpenWRT sur le routeur === | |||
Pour installer '''OpenWRT''' il faut d'abord préparer le fichier que vous allez mettre dans le routeur, qui est une version d'OpenWRT prévue pour le v10 et v11 et modifiée pour l'École polytechnique. Les informations sur ce fichier incluent aussi des sommes de contrôle si vous voulez vérifier que le fichier est le bon. Pensez à le décompresser avant toute chose. | |||
'''Nom:''' openwrt-19.07.2-ath79-tiny-tplink_tl-wr841-v11-squashfs-factory.bin | |||
(md5) c7ac93636caf4935665c54fa09ba1421 | |||
(sha1) 83a9763418ce2bda4e29f0ae46d827e3ef506e48 | |||
(sha256) 9099e9054b370676b6467b6fb29c8f5a248839d2e3960686d0b6297c5c42763a | |||
[[Fichier:routeurv11openwrt.zip]] | |||
Il faut commencer par renommer votre fichier pour qu'il corresponde à votre routeur, suivant le schéma suivant : | |||
wr841nv11_wr841ndv11_en_3_16_9_up(150616).bin # tl841n v11 | |||
Ouvrez ensuite, avec votre navigateur web, la page de configuration du routeur. Son adresse est | |||
<tt>http://192.168.1.1/</tt> ou <tt>http://192.168.0.1/</tt> | |||
et il vous faut parfois désactiver le proxy pour y accéder. | |||
[[Image:routeurs-tp-link-page.jpg|500px]] | |||
Il faut ensuite se connecter à l'interface (nom d'utilisateur {{c|admin}}, même mot de passe), puis accéder à l'onglet '''System > Firmware Upgrade'''. Dans cette fenêtre vous pouvez sélectionner votre fichier ''bien renommé'', puis cliquer sur Upgrade et confirmer. | |||
OpenWRT va être installé sur le routeur qui va ensuite redémarrer. | |||
== Configuration == | |||
=== Accès SSH === | |||
Actuellement le routeur n'a pas de mot de passe administrateur, ce qui empêche d'utiliser {{c|ssh}} pour s'y connecter. | |||
Pour des raisons techniques, le routeur n'a pas d'interface web. On peut dans ce cas utiliser {{c|telnet}} et la commande {{c|passwd}} lorsque l'on dispose d'un terminal. L'on peut si on le souhaite mettre un mot de passe (très fortement conseillé) : | |||
neze@neze ~ $ ssh root@192.168.1.1 | |||
BusyBox v1.23.2 (2016-01-02 18:01:44 CET) built-in shell (ash) | |||
_______ ________ __ | |||
| |.-----.-----.-----.| | | |.----.| |_ | |||
| - || _ | -__| || | | || _|| _| | |||
|_______|| __|_____|__|__||________||__| |____| | |||
|__| W I R E L E S S F R E E D O M | |||
----------------------------------------------------- | |||
CHAOS CALMER (15.05.1, r48532) | |||
----------------------------------------------------- | |||
* 1 1/2 oz Gin Shake with a glassful | |||
* 1/4 oz Triple Sec of broken ice and pour | |||
* 3/4 oz Lime Juice unstrained into a goblet. | |||
* 1 1/2 oz Orange Juice | |||
* 1 tsp. Grenadine Syrup | |||
----------------------------------------------------- | |||
root@OpenWrt:/# passwd | |||
Changing password for root | |||
New password: | |||
Retype password: | |||
Password for root changed by root | |||
root@OpenWrt:/# | |||
=== Donner l'accès internet au routeur === | |||
Pour que le routeur fonctionne à l'École, il faut qu'il soit branché à la prise de votre casert via la prise bleue du routeur. Il faut ensuite le configurer pour qu'il ait accès à internet. | |||
==== 802.1X ==== | |||
Dans la plupart des caserts de l'X, la sécurité est 802.1X (celle qui demande une authentification). Pour la configurer il faut mettre vos identifiants enex dans le routeur. | |||
* Connectez-vous au routeur via ssh. | |||
ssh root@192.168.1.1 | |||
* Éditez le fichier de configuration de '''wpa''' en complétant les champs identity et password puis en copiant collant dans le terminal (faire CTRL+C et CTRL+V). | |||
nano /etc/config/wpa.conf | |||
''Une fois l'édition terminée, faire CTRL+X puis y pour valider'' | |||
*Fichier wpa.conf : | |||
ctrl_interface=/var/run/wpa_supplicant | ctrl_interface=/var/run/wpa_supplicant | ||
ctrl_interface_group=root | ctrl_interface_group=root | ||
ap_scan=0 | ap_scan=0 | ||
network={ | 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" | |||
} | } | ||
* Rendez le fichier éxécutable : | |||
* | |||
chmod +x /etc/config/wpa.conf | |||
* | |||
** | |||
* Testez la configuration. Votre routeur doit être branché à internet. | |||
** | |||
* | wpa_supplicant -D wired -i eth1 | ||
-c /etc/config/wpa.conf | |||
''Si vous voyez le texte '''CTRL-EVENT-CONNECTED''' c'est bon, vous pouvez interrompre avec '''Ctrl+C''' et continuer la configuration.'' | |||
''Si vous obtenez un message d'erreur à propos du certificat (comme par exemple ci-dessous), essayez de mettre votre routeur à l'heure puis reprenez cette étape.'' | |||
X509: Certificate not valid (now=XXXXXX not_before=XXXXXX not_after=XXXXXX) | |||
* Configurer le démarage automatique en copiant collant le fichier si dessous: | |||
nano /etc/init.d/wpa | |||
''Une fois l'édition terminée, faire CTRL+X puis y pour valider'' | |||
* Fichier wpa : | |||
#!/bin/sh /etc/rc.common | |||
# Copyright (C) 2007 OpenWrt.org | |||
START=99 | |||
start() { | |||
echo start | |||
wpa_supplicant -D wired -i eth1 -c /etc/config/wpa.conf & | |||
} | |||
* Activez le démarrage automatique. | |||
/etc/init.d/wpa start | |||
/etc/init.d/wpa enable | |||
''Si vous obtenez un message d'erreur du type '''Permission denied''', tentez d'abord de rendre le fichier exécutable avec {{c|chmod +x /etc/init.d/wpa}}.'' | |||
Configuration de {{c|wpa-supplicant}} : | |||
neze@neze ~ $ ssh root@192.168.1.1 | |||
root@192.168.1.1's password: | |||
_______ ________ __ | |||
| |.-----.-----.-----.| | | |.----.| |_ | |||
| - || _ | -__| || | | || _|| _| | |||
|_______|| __|_____|__|__||________||__| |____| | |||
|__| W I R E L E S S F R E E D O M | |||
----------------------------------------------------- | |||
root@OpenWrt:~# vim /etc/config/wpa.conf | |||
root@OpenWrt:~# wpa_supplicant | |||
-c /etc/config/wpa.conf | |||
-D wired -i eth1 | |||
Successfully initialized wpa_supplicant | |||
eth1: Associated with 01:80:c2:00:00:03 | |||
WMM AC: Missing IEs | |||
eth1: CTRL-EVENT-EAP-STARTED EAP authentication started | |||
eth1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=21 | |||
eth1: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 21 (TTLS) selected | |||
TLSv1: you should reject under 768-bit DH prime (insecure; only 512 bits) | |||
eth1: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully | |||
eth1: CTRL-EVENT-CONNECTED - Connection to **:**:**:**:**:** completed [id=0 id_str=] | |||
^Ceth1: CTRL-EVENT-DISCONNECTED bssid=**:**:**:**:**:** reason=3 locally_generated=1 | |||
eth1: CTRL-EVENT-TERMINATING | |||
root@OpenWrt:~# vim /etc/init.d/wpa | |||
root@OpenWrt:~# /etc/init.d/wpa enable | |||
root@OpenWrt:~# | |||
==== IP fixe ==== | |||
Si votre configuration est en IP fixe, ouvrez l'interface web d'OpenWRT. Dans l'onglet '''Network > Interfaces''', cliquez sur le bouton '''Edit''' de l'interface '''WAN''', changez le protocole en « statique », confirmez en cliquant sur '''Switch protocol''' puis remplissez les trois champs « IPv4 address, IPv4 netmask, IPv4 gateway ». Enfin, rajoutez les serveurs dns {{c|129.104.201.53}} et {{c|129.104.201.51}}. | |||
[[Image:routeurs-openwrt-ipf-gui.jpg|500px]] | |||
Si vous n'avez pas accès à l'interface web, connectez vous en ssh au routeur puis tapez les commandes suivantes, en adaptant évidemment les valeurs de l'adresse IP, du masque de sous-réseau et de la passerelle par défaut. | |||
root@OpenWrt:~# uci set network.wan.proto='static' | |||
root@OpenWrt:~# uci set network.wan.ipaddr='129.104.222.109' | |||
root@OpenWrt:~# uci set network.wan.netmask='255.255.255.0' | |||
root@OpenWrt:~# uci set network.wan.gateway='129.104.222.254' | |||
root@OpenWrt:~# uci set network.wan.dns='129.104.201.59 129.104.201.51' | |||
root@OpenWrt:~# uci commit network | |||
root@OpenWrt:~# | |||
=== Réglages Wi-Fi === | |||
Cette section vous permettra de mettre en place un réseau wifi avec une sécurité correcte et aux normes françaises. | |||
Connectez-vous au routeur en '''SSH''' et suivez la procédure ci-dessous en adaptant à votre choix de nom de réseau et mot de passe wifi. | |||
'''Attention :''' votre mot de passe doit faire plus de 8 caractères, sans quoi le réseau wifi ne démarrera jamais. | |||
root@OpenWrt:~# uci set wireless.@wifi-device[0].disabled=0 | |||
root@OpenWrt:~# uci set wireless.@wifi-iface[0].ssid='MON-RESEAU-WIFI' | |||
root@OpenWrt:~# uci set wireless.@wifi-iface[0].encryption='psk2' | |||
root@OpenWrt:~# uci set wireless.@wifi-iface[0].key='MOT-DE-PASSE' | |||
root@OpenWrt:~# uci set wireless.@wifi-device[0].country='FR' | |||
root@OpenWrt:~# uci commit wireless; wifi | |||
root@OpenWrt:~# | |||
== Fonctionnalités supplémentaires == | |||
=== Changer l'heure du routeur === | |||
L'heure du routeur est assez simple à changer. ''Normalement, elle se met à l'heure automatiquement, mais vous pouvez avoir besoin de la changer '''avant''' d'avoir accès à Internet.'' | |||
C'est assez simple à faire en ligne de commande : | |||
root@OpenWrt:~# date --set '2016-07-24 09:58' | |||
Sun Jul 24 09:58:00 CEST 2016 | |||
Vous pouvez aussi passer, si vous le souhaitez, par l'interface graphique : | |||
[[Image:routeurs-openwrt-date-gui.jpg|500px]] | |||
== Récupération, problèmes == | |||
=== Routeur briqué === | |||
Il se peut, après certaines mauvaises manipulations, que le routeur ne soit plus accessible, que l'interface web disparaisse, que vous ayez des messages d'erreurs intempestifs vous empêchant de le configurer, etc. | |||
root@OpenWrt:~# touch test | |||
touch: test: Read-only file system | |||
root@OpenWrt:~# | |||
Il faut dans ce cas effectuer une opération de récupération du routeur, dont la description est faite avec Linux dans ce document (Il est assez simple de l'adapter pour un Mac, beaucoup plus compliqué pour Windows.) . Vous aurez besoin d'un profil de configuration réseau « IP fixe », décrit en début de tutoriel. | |||
* Récupérez le fichier d'openwrt correspondant à votre routeur, et copiez-le dans le répertoire de votre choix (dans notre cas il sera dans {{c|~/firmware.bin}}). | |||
* Redémarrez votre routeur. | |||
Au moment où le voyant « cadenas » commence à clignoter, enfoncez le bouton '''reset''' (derrière le routeur) jusqu'à ce que le voyant clignote beaucoup plus rapidement. | |||
* Branchez votre routeur à l'ordinateur et passez dans le profil de configuration IP fixe, puis ouvrez un terminal et exécutez la procédure ci-dessous. | |||
neze@neze ~ $ md5sum firmware.bin | |||
06179235c8986228ea0c545d6d69df8b firmware.bin | |||
neze@neze ~ $ telnet 192.168.1.1 | |||
Trying 192.168.1.1... | |||
Connected to 192.168.1.1. | |||
Escape character is '^]'. | |||
... | |||
================= FAILSAFE MODE active ================ | |||
... | |||
======================================================= | |||
root@(none):/# mount_root | |||
root@(none):/# cd /tmp | |||
root@(none):/tmp# scp neze@192.168.1.22:firmware.bin ./ | |||
Do you want to continue connecting? (y/n) y | |||
neze@192.168.1.22's password: | |||
firmware.bin 100 | |||
root@(none):/tmp# mtd -r write firmware.bin firmware | |||
Unlocking firmware ... | |||
Writing from firmware.bin to firmware ... [w] | |||
Rebooting ... | |||
=== Routeur sans OS === | |||
Si vous avez installé un OpenWRT corrompu ou tenté de réinstaller le système d'origine sans réfléchir, vous avez peut-être un routeur qui ne démarre pas jusqu'au bout. | |||
Cette section est valable si le {{c|bootloader}} est présent. Un bon moyen de le savoir est d'enfoncer le bouton reset (routeur éteint) puis d'allumer le routeur (reset enfoncé). Si au bout d'un certain temps le voyant du cadenas reste allumé, c'est probablement le cas. Éteignez alors le routeur. | |||
''Procédure testée sur un routeur TP-Link 841N v10.'' | |||
'''Préparez votre ordinateur.''' Installez sur un ordinateur '''Linux''' (Ces remarques s'appliquent à Debian et doivent être adaptées.) un serveur {{c|tftp}} : | |||
sudo apt-get install tftp xinetd tftpd | |||
Normalement, {{c|xinetd}} sera alors le process chargé de gérer les serveurs. Vous pouvez vérifier que c'est lui qui tourne avec la commande {{c|ps -alxww | grep inet}}. | |||
Vérifiez ensuite (dans {{c|/etc/services}}) que la ligne concernant {{c|tftp}} n'est pas commentée : | |||
tftp 69/udp | |||
Faites les réglages d'un serveur {{c|tftp}} en créant/éditant le fichier {{c|/etc/xinetd.d/tftp}} : | |||
service tftp | |||
{ | |||
socket_type = dgram | |||
protocol = udp | |||
wait = yes | |||
user = root | |||
server = /usr/sbin/in.tftpd | |||
server_args = -s /tftpboot | |||
disable = no | |||
} | |||
Redémarrez le service avec la commande {{c|service xinetd restart}}. Désormais tous les fichiers présents dans {{c|/tftpboot}} seront accessibles dans votre serveur tftp. | |||
Vous pouvez par exemple tester votre serveur tftp de la sorte : | |||
neze tmp.9B8qi7nCqn # echo "Hello World" > /tftpboot/hello.txt | |||
neze tmp.9B8qi7nCqn # tftp localhost | |||
tftp> get hello.txt | |||
Received 13 bytes in 0.0 seconds | |||
tftp> quit | |||
neze tmp.9B8qi7nCqn # cat hello.txt | |||
Hello World | |||
neze tmp.9B8qi7nCqn # | |||
Prenez une image valable d'OpenWRT, déposez-la dans {{c|/tftpboot}} renommée suivant le schéma suivant : | |||
wr841nv10_tp_recovery.bin # tl841n v10 | |||
wr841nv11_tp_recovery.bin # tl841n v11 | |||
Configurez votre connexion ethernet en '''IP fixe''' {{c|192.168.0.66}}. | |||
Branchez le routeur à votre ordinateur, enfoncez le bouton reset, démarrez le routeur et attendez que le routeur redémarre après réinstallation du firmware. | |||
=== Routeur n'accepte plus le certificat === | |||
Une des causes possibles est que la date de votre routeur est incorrecte. | |||
Voir la section [[#Problème_de_date|sur ce sujet-là]]. | |||
=== Problème de date === | |||
Pour connaître la date enregistrée par votre routeur : | |||
:<code>date</code> | |||
Si la date est incorrecte, vous pouvez la changer avec la commande suivante (à adapter avec la date actuelle) : | |||
:<code>date --set '2016-07-31 19:20:00'</code> | |||
Si le problème persiste, vous pouvez procéder ajouter les étapes suivantes : | |||
# <code>date --set '2016-07-31 19:20:00'</code> | |||
# <code>echo "timesave" > /etc/timesave</code> (1er fix) | |||
# Modifier le fichier /etc/init.d/sysfixtime, en remplaçant | |||
#:<code>[ $curtime -lt $maxtime ] && date -s @$maxtime</code> | |||
#:par | |||
#:<code>if [ $curtime -lt $maxtime ]; then</code> | |||
#:<code>date -s @$maxtime</code> | |||
#:<code>/etc/init.d/sysntpd restart</code> | |||
#:<code>fi</code> | |||
=== Je dois souvent redémarrer mon routeur === | |||
Un problème connu implique redsocks. Un workaround consiste à activer cron et à vérifier régulièrement que le service est lancé. On peut par exemple procéder ainsi : | |||
<pre>/etc/init.d/redsocks enable | |||
crontab -e | |||
0 */1 * * * /etc/init.d/redsocks stop && /etc/init.d/redsocks start | |||
*/3 * * * * /etc/init.d/redsocks start | |||
/etc/init.d/cron enable | |||
</pre> | |||
[[Catégorie:Tutoriels]] | |||
[[Catégorie:Wifi]] |
Version actuelle datée du 14 janvier 2024 à 11:24
Page en travaux. Les informations pourraient être incomplètes voire erronnées. Pour toute remarque ou demande, ouvrir une tâche Panix |
Avertissements
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 841N ou TP-Link 841ND, versions 11 (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é.
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). Cependant ce guide sera très spécifique pour le TP-link 841N et Tp-link 841ND.
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.
Préparation
Linux
Dans le cas des systèmes UNIX, la préparation est assez rapide car les outils sont déjà installés.
Terminal
Pour faire la configuration il vous faudra être capable d'accéder à votre terminal. Pour la plupart des systèmes on peut le lancer avec ctrl+alt+T
ou en cherchant « terminal » dans le menu principal.
SSH et SCP
Vous aurez besoin d'un client ssh
(par défaut installé sous linux) :
$ sudo apt-get install openssh-client
La commande ssh
permet ensuite de se connecter à distance et de façon sécurisée à un terminal.
La commande scp
, fournie par le même paquet, permet de transférer des fichiers avec le même protocole.
Configuration réseau
Pour vous connecter au routeur il vous faudra créer un nouveau profil de configuration ethernet selon les paramètres suivants :
Récupération
Pour pouvoir récupérer une erreur commise avec votre routeur, il faut tout d'abord installer un serveur ssh :
$ sudo apt-get install openssh-server $ sudo service ssh start
Vous aurez ensuite besoin d'un nouveau profil de connexion réseau qui vous permettra de réaliser la remise à zéro du routeur :
MacOS
Terminal
La console de MacOS est accessible via une application appelée Terminal. Vous la trouverez dans le dossier « Utilitaires » du dossier « Applications ». Elle vous permettra de taper les commandes nécessaires.
SSH et SCP
Le programme ssh
est en général installé sur MacOS X, et permet de se connecter à distance à d'autres ordinateurs (en l'occurrence au routeur).
Il en est de même pour scp
qui est destiné au transfert de fichiers.
Configuration réseau
Pour pouvoir se connecter facilement au routeur le plus simple est de créer un nouveau profil de configuration :
Windows
Terminal
Sous Windows il existe plusieurs options.
Soit vous utilisez le powershell (windows terminal sous windows 11), soit vous utilisez Ubuntu via WSL. Si vous utilisez WSL veuillez vous référer à la partie Linux précédente pour installer les paquets nécessaires à la réalisation du tutoriel.
Configuration réseau
Il vous faudra aussi configurer votre connexion réseau en DHCP, sans la sécurité 802.1X, et de préférence avec les bons serveurs DNS. Si vous ne l'avez jamais fait, renseignez-vous sur le wikibr ou tout autre site décrivant la configuration réseau sous Windows.
Terminal
Dans le terminal de votre ordinateur nous n'utiliserons que ssh et scp . En revanche nous utiliserons beaucoup le terminal du routeur, qui ressemblera à ceci :
neze@neze ~$ ssh root@192.168.1.1 The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established. RSA key fingerprint is **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.1' (RSA) to the list of known hosts. root@192.168.1.1's password: # ici le password n'apparaîtra pas BusyBox v1.23.2 (2015-11-17 16:24:55 CET) built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- CHAOS CALMER (Chaos Calmer, r47466) ----------------------------------------------------- * 1 1/2 oz Gin Shake with a glassful * 1/4 oz Triple Sec of broken ice and pour * 3/4 oz Lime Juice unstrained into a goblet. * 1 1/2 oz Orange Juice * 1 tsp. Grenadine Syrup ----------------------------------------------------- root@OpenWrt:~#
Installation
Cette section est destinée à décrire l'installation du système OpenWRT sur un des deux routeurs traités. Plusieurs fichiers vous sont proposés. En général avant de l'installer il faut renommer un fichier.
Installer OpenWRT sur le routeur
Pour installer OpenWRT il faut d'abord préparer le fichier que vous allez mettre dans le routeur, qui est une version d'OpenWRT prévue pour le v10 et v11 et modifiée pour l'École polytechnique. Les informations sur ce fichier incluent aussi des sommes de contrôle si vous voulez vérifier que le fichier est le bon. Pensez à le décompresser avant toute chose.
Nom: openwrt-19.07.2-ath79-tiny-tplink_tl-wr841-v11-squashfs-factory.bin (md5) c7ac93636caf4935665c54fa09ba1421 (sha1) 83a9763418ce2bda4e29f0ae46d827e3ef506e48 (sha256) 9099e9054b370676b6467b6fb29c8f5a248839d2e3960686d0b6297c5c42763a Fichier:Routeurv11openwrt.zip
Il faut commencer par renommer votre fichier pour qu'il corresponde à votre routeur, suivant le schéma suivant :
wr841nv11_wr841ndv11_en_3_16_9_up(150616).bin # tl841n v11
Ouvrez ensuite, avec votre navigateur web, la page de configuration du routeur. Son adresse est
http://192.168.1.1/ ou http://192.168.0.1/
et il vous faut parfois désactiver le proxy pour y accéder.
Il faut ensuite se connecter à l'interface (nom d'utilisateur admin
, même mot de passe), puis accéder à l'onglet System > Firmware Upgrade. Dans cette fenêtre vous pouvez sélectionner votre fichier bien renommé, puis cliquer sur Upgrade et confirmer.
OpenWRT va être installé sur le routeur qui va ensuite redémarrer.
Configuration
Accès SSH
Actuellement le routeur n'a pas de mot de passe administrateur, ce qui empêche d'utiliser ssh
pour s'y connecter.
Pour des raisons techniques, le routeur n'a pas d'interface web. On peut dans ce cas utiliser telnet
et la commande passwd
lorsque l'on dispose d'un terminal. L'on peut si on le souhaite mettre un mot de passe (très fortement conseillé) :
neze@neze ~ $ ssh root@192.168.1.1
BusyBox v1.23.2 (2016-01-02 18:01:44 CET) built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- CHAOS CALMER (15.05.1, r48532) ----------------------------------------------------- * 1 1/2 oz Gin Shake with a glassful * 1/4 oz Triple Sec of broken ice and pour * 3/4 oz Lime Juice unstrained into a goblet. * 1 1/2 oz Orange Juice * 1 tsp. Grenadine Syrup ----------------------------------------------------- root@OpenWrt:/# passwd Changing password for root New password: Retype password: Password for root changed by root root@OpenWrt:/#
Donner l'accès internet au routeur
Pour que le routeur fonctionne à l'École, il faut qu'il soit branché à la prise de votre casert via la prise bleue du routeur. Il faut ensuite le configurer pour qu'il ait accès à internet.
802.1X
Dans la plupart des caserts de l'X, la sécurité est 802.1X (celle qui demande une authentification). Pour la configurer il faut mettre vos identifiants enex dans le routeur.
- Connectez-vous au routeur via ssh.
ssh root@192.168.1.1
- Éditez le fichier de configuration de wpa en complétant les champs identity et password puis en copiant collant dans le terminal (faire CTRL+C et CTRL+V).
nano /etc/config/wpa.conf
Une fois l'édition terminée, faire CTRL+X puis y pour valider
- Fichier wpa.conf :
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" }
- Rendez le fichier éxécutable :
chmod +x /etc/config/wpa.conf
- Testez la configuration. Votre routeur doit être branché à internet.
wpa_supplicant -D wired -i eth1 -c /etc/config/wpa.conf
Si vous voyez le texte CTRL-EVENT-CONNECTED c'est bon, vous pouvez interrompre avec Ctrl+C et continuer la configuration. Si vous obtenez un message d'erreur à propos du certificat (comme par exemple ci-dessous), essayez de mettre votre routeur à l'heure puis reprenez cette étape.
X509: Certificate not valid (now=XXXXXX not_before=XXXXXX not_after=XXXXXX)
- Configurer le démarage automatique en copiant collant le fichier si dessous:
nano /etc/init.d/wpa
Une fois l'édition terminée, faire CTRL+X puis y pour valider
- Fichier wpa :
#!/bin/sh /etc/rc.common # Copyright (C) 2007 OpenWrt.org START=99 start() { echo start wpa_supplicant -D wired -i eth1 -c /etc/config/wpa.conf & }
- Activez le démarrage automatique.
/etc/init.d/wpa start /etc/init.d/wpa enable
Si vous obtenez un message d'erreur du type Permission denied, tentez d'abord de rendre le fichier exécutable avec chmod +x /etc/init.d/wpa
.
Configuration de wpa-supplicant
:
neze@neze ~ $ ssh root@192.168.1.1 root@192.168.1.1's password: _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- root@OpenWrt:~# vim /etc/config/wpa.conf root@OpenWrt:~# wpa_supplicant -c /etc/config/wpa.conf -D wired -i eth1 Successfully initialized wpa_supplicant eth1: Associated with 01:80:c2:00:00:03 WMM AC: Missing IEs eth1: CTRL-EVENT-EAP-STARTED EAP authentication started eth1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=21 eth1: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 21 (TTLS) selected TLSv1: you should reject under 768-bit DH prime (insecure; only 512 bits) eth1: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully eth1: CTRL-EVENT-CONNECTED - Connection to **:**:**:**:**:** completed [id=0 id_str=] ^Ceth1: CTRL-EVENT-DISCONNECTED bssid=**:**:**:**:**:** reason=3 locally_generated=1 eth1: CTRL-EVENT-TERMINATING root@OpenWrt:~# vim /etc/init.d/wpa root@OpenWrt:~# /etc/init.d/wpa enable root@OpenWrt:~#
IP fixe
Si votre configuration est en IP fixe, ouvrez l'interface web d'OpenWRT. Dans l'onglet Network > Interfaces, cliquez sur le bouton Edit de l'interface WAN, changez le protocole en « statique », confirmez en cliquant sur Switch protocol puis remplissez les trois champs « IPv4 address, IPv4 netmask, IPv4 gateway ». Enfin, rajoutez les serveurs dns 129.104.201.53
et 129.104.201.51
.
Si vous n'avez pas accès à l'interface web, connectez vous en ssh au routeur puis tapez les commandes suivantes, en adaptant évidemment les valeurs de l'adresse IP, du masque de sous-réseau et de la passerelle par défaut.
root@OpenWrt:~# uci set network.wan.proto='static' root@OpenWrt:~# uci set network.wan.ipaddr='129.104.222.109' root@OpenWrt:~# uci set network.wan.netmask='255.255.255.0' root@OpenWrt:~# uci set network.wan.gateway='129.104.222.254' root@OpenWrt:~# uci set network.wan.dns='129.104.201.59 129.104.201.51' root@OpenWrt:~# uci commit network root@OpenWrt:~#
Réglages Wi-Fi
Cette section vous permettra de mettre en place un réseau wifi avec une sécurité correcte et aux normes françaises.
Connectez-vous au routeur en SSH et suivez la procédure ci-dessous en adaptant à votre choix de nom de réseau et mot de passe wifi.
Attention : votre mot de passe doit faire plus de 8 caractères, sans quoi le réseau wifi ne démarrera jamais.
root@OpenWrt:~# uci set wireless.@wifi-device[0].disabled=0 root@OpenWrt:~# uci set wireless.@wifi-iface[0].ssid='MON-RESEAU-WIFI' root@OpenWrt:~# uci set wireless.@wifi-iface[0].encryption='psk2' root@OpenWrt:~# uci set wireless.@wifi-iface[0].key='MOT-DE-PASSE' root@OpenWrt:~# uci set wireless.@wifi-device[0].country='FR' root@OpenWrt:~# uci commit wireless; wifi root@OpenWrt:~#
Fonctionnalités supplémentaires
Changer l'heure du routeur
L'heure du routeur est assez simple à changer. Normalement, elle se met à l'heure automatiquement, mais vous pouvez avoir besoin de la changer avant d'avoir accès à Internet.
C'est assez simple à faire en ligne de commande :
root@OpenWrt:~# date --set '2016-07-24 09:58' Sun Jul 24 09:58:00 CEST 2016
Vous pouvez aussi passer, si vous le souhaitez, par l'interface graphique :
Récupération, problèmes
Routeur briqué
Il se peut, après certaines mauvaises manipulations, que le routeur ne soit plus accessible, que l'interface web disparaisse, que vous ayez des messages d'erreurs intempestifs vous empêchant de le configurer, etc.
root@OpenWrt:~# touch test touch: test: Read-only file system root@OpenWrt:~#
Il faut dans ce cas effectuer une opération de récupération du routeur, dont la description est faite avec Linux dans ce document (Il est assez simple de l'adapter pour un Mac, beaucoup plus compliqué pour Windows.) . Vous aurez besoin d'un profil de configuration réseau « IP fixe », décrit en début de tutoriel.
- Récupérez le fichier d'openwrt correspondant à votre routeur, et copiez-le dans le répertoire de votre choix (dans notre cas il sera dans
~/firmware.bin
). - Redémarrez votre routeur.
Au moment où le voyant « cadenas » commence à clignoter, enfoncez le bouton reset (derrière le routeur) jusqu'à ce que le voyant clignote beaucoup plus rapidement.
- Branchez votre routeur à l'ordinateur et passez dans le profil de configuration IP fixe, puis ouvrez un terminal et exécutez la procédure ci-dessous.
neze@neze ~ $ md5sum firmware.bin 06179235c8986228ea0c545d6d69df8b firmware.bin neze@neze ~ $ telnet 192.168.1.1 Trying 192.168.1.1... Connected to 192.168.1.1. Escape character is '^]'. ... ================= FAILSAFE MODE active ================ ... ======================================================= root@(none):/# mount_root root@(none):/# cd /tmp root@(none):/tmp# scp neze@192.168.1.22:firmware.bin ./ Do you want to continue connecting? (y/n) y neze@192.168.1.22's password: firmware.bin 100 root@(none):/tmp# mtd -r write firmware.bin firmware Unlocking firmware ... Writing from firmware.bin to firmware ... [w] Rebooting ...
Routeur sans OS
Si vous avez installé un OpenWRT corrompu ou tenté de réinstaller le système d'origine sans réfléchir, vous avez peut-être un routeur qui ne démarre pas jusqu'au bout.
Cette section est valable si le bootloader
est présent. Un bon moyen de le savoir est d'enfoncer le bouton reset (routeur éteint) puis d'allumer le routeur (reset enfoncé). Si au bout d'un certain temps le voyant du cadenas reste allumé, c'est probablement le cas. Éteignez alors le routeur.
Procédure testée sur un routeur TP-Link 841N v10.
Préparez votre ordinateur. Installez sur un ordinateur Linux (Ces remarques s'appliquent à Debian et doivent être adaptées.) un serveur tftp
:
sudo apt-get install tftp xinetd tftpd
Normalement, xinetd
sera alors le process chargé de gérer les serveurs. Vous pouvez vérifier que c'est lui qui tourne avec la commande ps -alxww
.
Vérifiez ensuite (dans /etc/services
) que la ligne concernant tftp
n'est pas commentée :
tftp 69/udp
Faites les réglages d'un serveur tftp
en créant/éditant le fichier /etc/xinetd.d/tftp
:
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no }
Redémarrez le service avec la commande service xinetd restart
. Désormais tous les fichiers présents dans /tftpboot
seront accessibles dans votre serveur tftp.
Vous pouvez par exemple tester votre serveur tftp de la sorte :
neze tmp.9B8qi7nCqn # echo "Hello World" > /tftpboot/hello.txt neze tmp.9B8qi7nCqn # tftp localhost tftp> get hello.txt Received 13 bytes in 0.0 seconds tftp> quit neze tmp.9B8qi7nCqn # cat hello.txt Hello World neze tmp.9B8qi7nCqn #
Prenez une image valable d'OpenWRT, déposez-la dans /tftpboot
renommée suivant le schéma suivant :
wr841nv10_tp_recovery.bin # tl841n v10 wr841nv11_tp_recovery.bin # tl841n v11
Configurez votre connexion ethernet en IP fixe 192.168.0.66
.
Branchez le routeur à votre ordinateur, enfoncez le bouton reset, démarrez le routeur et attendez que le routeur redémarre après réinstallation du firmware.
Routeur n'accepte plus le certificat
Une des causes possibles est que la date de votre routeur est incorrecte. Voir la section sur ce sujet-là.
Problème de date
Pour connaître la date enregistrée par votre routeur :
date
Si la date est incorrecte, vous pouvez la changer avec la commande suivante (à adapter avec la date actuelle) :
date --set '2016-07-31 19:20:00'
Si le problème persiste, vous pouvez procéder ajouter les étapes suivantes :
date --set '2016-07-31 19:20:00'
echo "timesave" > /etc/timesave
(1er fix)- Modifier le fichier /etc/init.d/sysfixtime, en remplaçant
[ $curtime -lt $maxtime ] && date -s @$maxtime
- par
if [ $curtime -lt $maxtime ]; then
date -s @$maxtime
/etc/init.d/sysntpd restart
fi
Je dois souvent redémarrer mon routeur
Un problème connu implique redsocks. Un workaround consiste à activer cron et à vérifier régulièrement que le service est lancé. On peut par exemple procéder ainsi :
/etc/init.d/redsocks enable crontab -e 0 */1 * * * /etc/init.d/redsocks stop && /etc/init.d/redsocks start */3 * * * * /etc/init.d/redsocks start /etc/init.d/cron enable