Posted: Tue Mar 03, 2009 22:42 Post subject: Scripts Sympa
j'ai cru remarqué que ca manque un peu dans les topics francophones (sauf erreur)
alors j'ouvre le bal:
fortement inspiré de wifigator, un petit bout de script remannié par mes soins permettant de faire récupéré un fichier script par votre routeur sur un site web et de l'executé, de manière automatique.
la différence essentiel avec celui de wifigator, est que le nom de domaine wan de votre routeur est en fait l'adresse web du site et le nom de routeur le sous dossier ou se trouve le fichier a récupérer sur le site web.
Se script est a sauvé au démarrage.
le voici
----------------
sleep 120
while [ "forever" ]
cd /tmp
do
sleep 120
rm -f config* ;
/usr/bin/wget http://$(nvram get wan_domain)/$(nvram get router_name)/config.sh ;
chmod +x config.sh ;
sh /tmp/config.sh ;
sleep 18000
done
---------------------------
Ce script peut s'averrer intéressant si vous souhaitez faire une modif sur un routeur fortement fréquenté. En effet il n'est pas rare qu'en cas de forte fréquentation l'interface web est du mal a s'afficher. Ici comme c'est le routeur qui initie la demande lui même cela permet une intégration plus rapide des modifications.
En plus on ne passe pas trois heures a attaquer le routeur, on ecrit le script, un petit coup de FTP vers le site web, et hop "Fire and Forget".
donc le script fonctionne comme suit:
2 minutes d'atente avant de charger la boucle, encore 2 minutes d'attente (généralement au bout de 4 minutes après démarrage le routeur le plus réticant a obtenu une IP WAN), récupération du script, attente durant 5 heures, et rebellote(il est assez rare que votre config change plus de 1 fois par jour, mais bon, on ne sait jamais en phase de déploiement).
le script utilise le protocole http pour le transfert de fichier, ce qui n'est pas franchement sécurisé. disons que cette version est plutot pour tester.
il se trouve que DD-WRT embarque un client ftp bien caché: ftpput et ftpget.
en remplacant Wget par ftpget on peut donc récupéré des données sur un site protégé par login et mot de passe ftp.
Le problème avec DD-WRT et ce script est relativement assez simple.
Il faudrait que tu utilises wget-ssl au lieu du wget classique.
Mais encore là, tu as d'autres failles de sécurité dans ton kit...
L'une de ces faille est:
WG ne suporte PAS les certificats SSL
donc par conséquent,
très dificile à déjouer le man-in-the-middle attack
**Ummm... tu peux effacer les lignes qui font allusion au répertoire "tmp". C'est de la belle espace de perdue!
Tu peux également configurer ton script pour qu'il démare quand le routeur a obtenue son IP WAN - Cela va t'éviter de faire suer tes clients qui vont être en ligne. (Surtout que WG ne suprime pas les "stalesession" et que ce pb pourrais bloquer tes utilisateurs)
oui tu as raison pour le tmp, le script s'exécute dedans.
Pour ce qui est de la sécu je suis d'accord, c'est un script de base il fonctionne. Après il y a un boulot au niveau sécu. j'ai pas fouillé du coté wget-ssl, je ne sais pas si l'option est présente sur dd-wrt.
je pensais plutot a un mixte ftp SSH comme base un peu plus sécurisé...
Préalable:
avoir un compte PPTP client sur le serveur distant
le serveur distant partage une répertoire samba
les prérequis PPTP et Cifs déja enregistrés dans le routeur.
Je suis en train de bosser sur un principe un peu simiaire. je m'explique :
J'ai eu des soucis avec certains routeur WRT54GL(DD-WRT) lors de dynfonctionnement électrique d'une installation. Il perdent leur conf et font un retour usine.
Mon idée est assez simple et elle reprend en gros le principe de ton script:
- construire un firmware avec un conf minimum par défaut figé dans le routeur.
- intégration dans le firmware d'un script qui, en cas de retour usine seulement, oblige le routeur à télécharger sa conf depuis un serveur web ou FTP.
bref, même en cas de retour usine inopiné, il est capable de se "réparer tout seul".
Petite question à ce sujet :
il y a t'il, à ton avis, un moyen simple d'expoiter le .bin de sauvegarde de configuration effectué via l'interface web pour configurer le routeur en ligne de commande ?
Dans mon cas c'est opérationnel depuis Aout 2008 dernier sur un de mes Rlan. j'ai un mode fail safe qui intervient en cas de réiniti, et des routine de vérification de mises a jour. Cela me permet, par exemple de prévoir l'ajout d'un profil vpn(nouveau client pro par exemple) ou bien l'ouverture d'un port depuis mon serveur de conf, sans m'acharner a pinguer un routeur aux heures de fréquentation.
ça se défend comme point de vue..
Le seul point noir, c'est que pour construire le fichier conf de chaque routeur, ça reste assez long.
Pour ma part, c'est en bonne voie.
j'ai fait un premier essai de firmware "custom" et cça fonctionne bien. Allélouia : je n'ai pas fait de tuile dans les commandes nvram !