Contribuez à SecuObs en envoyant des bitcoins ou des dogecoins.
Nouveaux articles (fr): 1pwnthhW21zdnQ5WucjmnF3pk9puT5fDF
Amélioration du site: 1hckU85orcGCm8A9hk67391LCy4ECGJca

Contribute to SecuObs by sending bitcoins or dogecoins.



Test du routeur Linksys ADSL2MUE

Par Rédaction, secuobs.com
Le 14/12/2006


Résumé : Suite à différents tests sur ce routeur ADSL/802.11, nous vous présentons une méthode pour activer le forward des ports qu'il n'est pas possible d'effectuer par défaut ainsi qu'un bilan de la sécurité inhérente à ce matériel ; le constat n'est pas pour l'instant en faveur du fabriquant sur ce modèle.



Ce routeur est notamment intéressant pour son support du PPPoA ( lien ) si vous voulez remplacer un ancien routeur qui ne supportait que le PPTP ( lien ) alors que votre fournisseur d'accès ne vous propose que du PPPoA.

Lors de nos premiers tests sur un routeur de type ADSL/802.11, plus exactement le modèle WAG54GS ( lien ) de la même marque, il faut avouer que nous avons été légérement déçus car habitués à la qualité habituelle des produits de cette marque. Cette déception est avant tout due à des « freezes » multiples du boîtier avec pour seule solution de devoir effectuer un redémarrage complet du celui-ci.

Deux routeurs de ce type ont été testés et s'il s'avèrait que ces « freezes » sont en fait un défaut d'usine généralisé pour ce modèle cela s'avère facheux pour leurs utilisateurs ; les ingénieurs ont par ailleurs également trouvé judicieux de remplacer le classique bouton on/off à deux états par un bouton poussoir qui n'est pas des plus pratiques lorsque qu'une coupure de courant intervient.

Un deuxième test s'impose ; cette fois-ci c'est le modèle ADSL2MUE ( lien ) qui a été choisi ; il semble être un excellent choix à priori.





On regrettera que ce routeur ne dispose pas de fonctions permettant de mettre en place une DMZ ; il ne présente pas non plus la possibilité de rediriger tout ou partie du trafic vers une machine.

Avant d'envisager un autre modèle, il est cependant possible d'approfondir la question afin de trouver une méthode permettant de rediriger l'ensemble du trafic vers une machine interne si vous en avez vraiment besoin et que vous n'avez que ce modèle à votre disposition.

Commençons par récupérer quelques informations sur le matériel afin d'en établir une description sommaire, pour cela il suffit de lancer un « nmap » pour scanner les ports ouverts sur ce routeur et identifier les services en présence :


$ nmap -P0 192.168.1.1
Starting Nmap 4.03 ( lien ) at 2006-11-14 18:26 CET
Interesting ports on 192.168.1.1:
(The 1670 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
8080/tcp open http-proxy
Nmap finished: 1 IP address (1 host up) scanned in 16.224 seconds



Un accès classique (admin / admin) sur l'interface HTTP (80/tcp open http) donc sans support du chiffrement en HTTPS permet de se faire une première idée des manques importants au niveau des options proposées par l'interface de configuration et le matériel.

Une fois les « credentials » modifiés via cette interface web, établissons une connexion en SSH (22/tcp open ssh) sur le routeur :


$ ssh root@192.168.1.1
root@192.168.1.1's password:
DSL Modem CLI
Copyright (c) 2004 Texas Instruments, Inc.



Avec le mot de passe « Admin », remarquez au passage la complexité du mot de passe par défaut mais cela n'est pas spécifique à Linksys, il est possible d'élever votre niveau de privilèges afin d'accéder à des fonctions d'administration plus importantes :


cli> enable
Password: *****
New priv level = 5



Lançons-nous maintenant dans la configuration pour le « forward » des ports :


cli# wan
cli(wan)# connection 1
cli(wan connection1)# port forward enable
cli(wan connection1)# port forward rule-add name forwardTCP protocol tcp src-ip 0.0.0.0 src-netmask 0.0.0.0 dst-ip 192.168.1.2 dst-netmask 255.255.255.0 port-start 1 port-end 65535
cli(wan connection1)# port forward rule-add name forwardUDP protocol udp src-ip 0.0.0.0 src-netmask 0.0.0.0 dst-ip 192.168.1.2 dst-netmask 255.255.255.0 port-start 1 port-end 65535
cli(wan connection1)# apply



Vérifions maintenant que ces modifications ont bien été prises en compte et que le routeur va rediriger l'ensemble du trafic vers une machine interne donnée, ici la machine d'adresse IP 192.168.1.2 appartenant au masque de sous-réseau 255.255.255.0 aussi bien pour le protocole de transport TCP que UDP et cela pour tous les ports 1-65535 donc quelque soit l'adresse IP de la source et son masque de sous-réseau :


cli(wan connection1)# show port-forward
Port Forward Rule List
Name Src IP Dest IP Start Protocol
Src Mask Dest Mask Stop
Map
-------------------------------------------------------------------------
01: forwardTCP 0.0.0.0 192.168.1.2 1 TCP
Enabled 0.0.0.0 255.255.255.0 65535
1
02: forwardUDP 0.0.0.0 192.168.1.2 1 UDP
Enabled 0.0.0.0 255.255.255.0 65535
1



Cette méthode fonctionne sans problème pour les paquets provenant de l'extérieur vers votre réseau local. En revanche, pour les paquets provenant de votre LAN, vers le Internet, votre adresse publique pointe vers le routeur et non la machine sur laquelle est redirigé tout le trafic.

Pour palier ce problème, une simple règle iptables fera l'affaire :


$IPTABLES -A PREROUTING -i $LAN -t nat --destination $IPINT -j DNAT --to-destination $IPLAN


Où LAN est l'interface du routeur connectée à votre votre réseau local, $IPINT est votre adresse publique, $IPLAN l'IP de la machine sur laquelle le trafic doit être redirigé pour un réseau du type NET <---> Modem <---> Routeur <---> LAN.

Les modifications ont bien été effectuées ; elles peuvent être rendues persistantes via la sauvegarde de la mémoire flash de la façon suivante afin de les retrouver au prochain redémarrage du routeur :


cli(wan connection1)# save
cli(wan connection1)# end



Avouez que cela ne doit pas être si difficile d'intégrer ces différents menus dans une interface web « user-friendly » ; gageons cependant que cela n'est qu'un oubli et qu'une une mise à jour du « firmware » sera proposée d'ici peu par le constructeur.

Du point de vue de la sécurité, on ne peut pas vraiment dire que cela soit « bordé » ; passons rapidement sur le fait qu'il soit possible de lister le contenu de plusieurs répertoires via l'interface HTTP sans pour autant être authentifié, par exemple en accédant à l'URL « 192.168.1.1/cgi-bin/ ».

Il est également surtout possible de flasher la configuration du routeur, là aussi sans authentification préalable, via le script CGI disponible cette fois-ci sur l'URL « 192.168.1.1/cgi-bin/firmwarecfg ».

Authentifié, donc peu d'intérêt en pratique mais dans l'état de l'art cela reste tout de même assez léger, il est aussi possible de récupérer l'ensemble des fichiers présents sur le routeur via des URL de type « 192.168.1.1/cgi-bin/webcm
?getpage=/etc/shadow&var:conid=connection0 » ; ici pour le fichier « /etc/shadow ». C'est une erreur classique que l'on ne devrait pas retrouver mais qui est pourtant encore relativement répandue.

Nos tests, bien que sommaires (une étude des CGI étant également envisageable), se sont avérés relativement décevants en ce qui concerne ces modèles ; cela ne remet cependant pas en cause la bonne réputation, de par leurs nombreuses qualités, des modèles « WRT » de la marque sur lesquels il est notamment possible d'installer le « firmware » opensource OpenWRT ( lien ).