3 votes

Est-il possible d'exécuter des scripts sur des appareils linux embarqués (par exemple des routeurs DSL) ?

Les gens, Je voudrais trouver un moyen générique d'exécuter un script (simple bash) sur la séquence de démarrage d'un routeur avec Linux embarqué. J'ai lu qu'il y avait des moyens de faire cela sur des appareils tels que :

  • DD-WRT
  • OpenWRT
  • n'importe quel NAS comme le D-Link DNS-323

Mais je me demandais s'il était possible de le faire aussi sur des dispositifs génériques intégrés, comme un routeur DSL (généralement simple). Raisons possibles de le faire :

  • Méthode générique de mise à jour de l'IP publique de l'appareil vers les serveurs DNS qui le permettent (j'en ai trouvé certains qui le permettent via de simples commandes http).
  • Envoyer des données au serveur FTP, comme l'IP publique de l'appareil.
  • Une façon simple de dire "Le périphérique est allumé" à un hôte distant, comme exécuter "telnet MySSHServer 22" à un serveur domestique SSH.
  • Ajouter des règles réseau, une liste ARP, désactiver une interface réseau (ethx)... etc.
  • Apprentissage et enquête ;-)

J'ai entendu parler de personnes qui ont réussi à faire cela avec un routeur DSL en suivant ces étapes :

  1. Sauvegarde de toutes les données du routeur (y compris la configuration) dans un fichier de type firmware.
  2. Editez ce fichier firmware (c'est-à-dire modifiez le fichier "/etc/rc.local").
  3. Restauration du fichier firmware modifié sur le routeur.

Quelqu'un connaît-il un meilleur moyen ?

3voto

Ed Gillett Points 66

La réponse dépend de l'appareil, car il n'existe pas de routeur "générique". Il existe plusieurs approches :

  • Remplacer le micrologiciel d'origine par un logiciel ouvert (DD-WRT, OpenWRT, Tomato, etc.)
  • Pirater le micrologiciel de base (le processus en 3 étapes que vous décrivez)
  • Utiliser les fonctionnalités du micrologiciel de base (qui peuvent être non documentées ou non évidentes)

J'ai remarqué dans le firmware de plusieurs routeurs qu'il y a une page enterrée dans la zone d'administration de l'interface qui a juste une zone de texte qui utilise TFTP ou Telnet pour exécuter un Shell sur le routeur. Elle peut être intitulée "test de connexion" ou quelque chose comme ça. Si vous pouvez créer ou modifier un fichier à partir de cette interface, vous pourrez peut-être changer la configuration. Vous devrez peut-être contourner les règles, par exemple, si la zone de texte n'accepte que les adresses IP et exécute un "ping" pour chacune d'entre elles, vous pourrez peut-être fournir une chaîne de caractères telle que

127.0.0.1&&/sbin/sshd& 

Ensuite, sondez le périphérique avec nc/nmap pour voir si le service ssh est disponible (port 22).

2voto

J'ai trouvé un outil qui pourrait être utile : Kit de modification du micrologiciel .
Il s'agit d'un ensemble d'outils qui ouvrent (étendent) le contenu complet d'un fichier firmware .bin dans un répertoire nommé "fmk" et vous permettent de l'éditer, afin que vous puissiez plus tard l'empaqueter à nouveau dans un fichier .bin à l'aide d'un autre outil inclus.
Jusqu'à présent, la procédure à suivre pour un routeur par exemple est la suivante :

  1. Télécharger le fichier .bin du micrologiciel.
  2. Décompressez, éditez et reconditionnez le fichier .bin personnalisé à l'aide du kit de modification du micrologiciel.
  3. Installez-la sur votre routeur.

Je préférerais le faire :

  1. Extraire la configuration et les données réelles du routeur (y compris la redirection des ports, la configuration sans fil, les mots de passe, etc.) dans le fichier .bin du microprogramme.
  2. Décompressez, éditez et reconditionnez le fichier .bin personnalisé à l'aide du kit de modification du micrologiciel.
  3. Installez-la sur votre routeur.

mais je n'ai pas trouvé de solution jusqu'à présent. Je ne sais même pas si c'est possible.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X