Le routeur grand public WRT54G de Linksys est un des meilleurs modèles du marché. Pourquoi ? Parce qu'il est possible d'y installer OpenWrt très simplement Wink. Voici comment faire en quelques commandes (installation d'OpenWrt WhiteRussian RC4 réalisée sur un WRT54Gv2).

Avant de mettre à jour le firmware

Le firmware des WRT peut être mis à jour par un transfert TFTP au tout début de la séquence de démarrage du routeur. Cet intervalle de temps étant très court, il faut tout d'abord l'augmenter en modifiant la variable "boot_wait" stockée dans la mémoire nvram du routeur. Pour celà, il faut exploiter une faille dans l'interface d'admin du routeur.

Ouvrons une session sur l'interface d'admin :

http://192.168.1.1 (login : admin, mot de passe : admin)

Nous allons commencer par donner une adresse IP fixe au routeur. Ouvrez le menu "Setup -> Basic setup" et saisissez les paramètres suivants :

Static IP
Internet IP address 10.0.0.1
Subnet mask 255.0.0.0
Gateway 10.0.0.2

Ouvrons ensuite la fenêtre de l'utilitaire ping, accessible via "Administration -> Diagnostics -> Ping". Entrez ces 4 commandes :

;cp${IFS}*/*/nvram${IFS}/tmp/n
;*/n${IFS}set${IFS}boot_wait=on
;*/n${IFS}commit
;*/n${IFS}show>tmp/ping.log

La dernière commande devrait produire une sortie verbeuse. Assurez-vous qu'elle contient une ligne "boot_wait=on".

Upload du firmware

Récupérez la denière version du firmware OpenWrt.

~$ wget http://downloads.openwrt.org/whiterussian/newest/default/openwrt-wrt54g-squashfs.bin

Installez tftp pour pouvoir transférer le firmware sur le routeur.

~$ apt-get install tftp

Préparons ensuite la connection au routeur.

~$ tftp 192.168.1.1
tftp> binary
tftp> rexmt 1
tftp> timeout 60
tftp> trace
Packet tracing on.

Configurez votre interface réseau pour utiliser une adresse IP fixe, puis rebootez le routeur. Lancez ensuite la commande suivante :

tftp> put openwrt-wrt54g-squashfs.bin

[...]
sent DATA <block=3019, 0 bytes>
received ACK <block=3019>
Sent 1545216 bytes in 5.6 seconds

Une fois le firmware uploadé, attendre quelques temps que le routeur reboote. Si le routeur ne reboote pas, attendre 6 minutes puis faire un reboot manuel.

Première connection

Connections nous à notre OpenWrt fraichement installé via telnet :

~$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
=== IMPORTANT ============================
Use 'passwd' to set your login password
this will disable telnet and enable SSH
------------------------------------------


BusyBox v1.00 (2005.11.23-21:46+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

Comme indiqué dans le disclaimer, ajoutons un mot de passe à l'utilisateur root.

~$ passwd
Changing password for root
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
Enter new password:
Re-enter new password:
Password changed.

Une fois le mot de passe changé, nous pouvons fermer la session telnet. Notre OpenWrt est maintenant opérationnel et uniquement accessible par ssh. Bon geekisme Wink !