Page 1 sur 1
[..] Checkbox & gui
Posté : jeu. 10 janv. 2008 14:11
par ostervald
Bonjour,
Je me permets de faire appel à vos services car je n'ai jamais programmé et j'ai besoin de votre savoir.
J'aimerai, si cela est possible, que vous m'aidiez à réaliser un petit script comportant 2 cases à cocher ("port 22" et port "2222") et un bouton "lancer le test".
Je m'explique, dans le cardre de mon travail je dois tester en connexion ssh lequel de ces ports est ouvert sur notre matériel par rapport à une liste csv extraite par un de nos outils. Dans cette liste il y a le nom du client + divers infos et 3 champs importants:
-1-son IP ou son dyndns de connexion
-2-son login
-3-son mot de passe.
Le but du script est de tester sur quel port la connexion est accessible (si elle l'est) et de loguer cela ( j'entends par log: ex: client x avec IP ou dyndns y accessible sur port x).
merci de votre aide qui me rendra un gand service.
Re: [..] Checkbox & gui
Posté : jeu. 10 janv. 2008 21:07
par codename44
je peux essayer de faire ça
mais le port à tester est sur votre machine ?
alors pourquoi se connecter à un client pour essayer, je ne comprends pas bien désolé ..
serrait-il possible également de donner plus d'information sur le programme final ?
à quoi servent exactement les 2 checkbox ?
doivent-elles être cochées par défaut ?
la saisie de l'IP se fait-elle manuellement ou le programme doit lire la liste ?
si oui, la liste est-elle épurée de toutes les infos inutiles ou le programme doit faire le tri ?
la liste porte-t-elle toujours le même nom, ou il faut ajouter un boutton "Parcourir..." pour choisir l'emplacement de la liste ?
pourrais-je également avoir un exemple de la liste fournie au programme ?
voilà il me faudrait au moins ces infos, et n'hésitez pas à préciser tout ce qui semble important
si la demande est bien précise je pourrais te faire ça d'autant plus rapidement
Re: [..] Checkbox & gui
Posté : jeu. 10 janv. 2008 22:43
par ostervald
Bonsoir,
Ma société installe du matériel type firewall Ipcop, pour la maintenance nous, hotliners, devons nous connecter en ssh sur ces "box" linux.
Lors de l'installation chez le client, le tech paramètre un accès admin soit sur le port 22 ou soit sur le port 2222.
Mon rôle est de tester cet accès afin de saisir les informations de connexion dans notre base de données. Je dois me taper chaque IP ou dyndns et rentrer les logins mots de passe choisis par le client et tester avec putty 1 fois sur le port 22 et si celui-ci ne répond pas, sur le port 222.
Cette opération est à faire 1 fois par semaine et cela représente entre 40 et 70 clients, multiplier par le 2(pour les ports).
Je n'ai pas que cette charge de travail et cela me soulagerai de pouvoir lancer cela en auto.
je vous joins un exemple de liste xls. (j'ai renommé le fichier .xls en .xls.txt)
Par soucis de confidentialité, les noms passe etc sont fictifs.
Merci et au plaisir de vous lire.
Re: [..] Checkbox & gui
Posté : ven. 11 janv. 2008 21:22
par codename44
ah, donc il ne sagit pas juste de tester une connexion, il faut s'identifier avec un login et un mot de passe
dans ce cas là, au lieu de faire un script qui fait tout en "silencieux", on va plutôt automatiser l'utilisation de putty.
ce sera beaucoup plus facile que d'intégrer un module permettant un login en ssh à autoit
donc ce qu'il me faudrait, c'est la version de putty que vous utilisez, ainsi que toutes les manipulations que vous faîtes lorsque vous testez une connexion
par exemple "je clique sur tel onglet, je clique sur tel élément de la liste, etcc .. je rentre le login à cet endroit", en utilisant si nécessaire des screenshots
donc j'ai téléchargé putty et j'ai cette fenêtre :
est-ce que c'est la même que vous ?
ps : j'ai trouvé tout ce qu'il fallait pour lire dans la liste excel avec autoit, ca fonctionne parfaitement, et le reste ne devrait pas être trop dur en suivant vos indications
voila à bientôt
Re: [..] Checkbox & gui
Posté : dim. 13 janv. 2008 16:19
par sylvanie
Sinon, on peut utiliser plink (putty en ligne de commande) pour interagir via un script sans gui
Pour tester la connexion, on se basera sur le msg d'erreur de retours de plink (à vrai dire suur cette partie n'importe quel scaner aurait pu bien / mieux faire l'affaire)
Le + est de vérifier les réponses des serveurs si le login n'est pas authorsé à ce connecter, ou si le mdp est erroné.
Ceci est plus délicat, car chaque reponse dépends du serveur SSH installé, si c'est un parc éthérogène, il va falloir faire la passe une fois en logant tout pour construire des tableau de réponses négatives ou positive. (j'ai apuyé la dessus sur le script ci joint).
Le TODO concernant le script donné (faudrait quand même pas donné du clé en main, ça ne ferait pas sérieux pour un modérateur de ne pas respecter les règles du forum

) :
- remplacer l'init des login / machine / password par une boucle englobant tout le script et lisant un fichier en paramètre
- remplacer les var de retours d'erreur par des tableaux contenant des msg communs à tous les serveurs
- inclure les comparaisons de string dans des boucle parcourrant ces tableaux et biensûr s'arrêter dès le premier match pour passer au candidat suivant
- remplacer les msgbox par des filewriteline pour générer des fichiers log.
le script :
Code : Tout sélectionner
#include <Constants.au3>
#include <array.au3>
$title_arg="to_send_ssh.txt"
if FileExists($title_arg) Then FileDelete($title_arg)
FileWriteLine($title_arg,"logout") ; all case for unix
FileWriteLine($title_arg,"exit") ; some case Win32
;init des messages de retours
$mess_err_pb_connexion_machine="Unable to open connection:" ; message typique de plink lorsqu'une machine n'est pas joignable
$pb_access_login="Access denied" ; erreur générique, peut être à complèter avec d'autres messages dépendant des serveur
; et en faire un tableau de message d'erreur dédié au login à parcourir
$pb_mdp="Wrong passphrase" ; pb mot de passe , même remarque que précédément
;section des init des paramètres
;il faudra initialiser ces variables par lecture de fichier ini est faire une boucle
$password="mdp"
$login="login"
$machine='remote_machine'
$flux_out=Run(@ComSpec&' /c plink -pw '&$password&' '&$login&'@'&$machine&' < '&$title_arg,@WorkingDir,@SW_HIDE,$STDERR_CHILD + $STDOUT_CHILD)
$rep_err=""
$rep_ok=""
While 1
$rep_err &= StderrRead($flux_out)
If @error Then ExitLoop
$rep_ok &= StdoutRead($flux_out)
If @error Then ExitLoop
Wend
If StringInStr($rep_err,$pb_mdp)<>0 Then
MsgBox(0,"Pb connection","Mot de passe erronné pour login "&$login&" sur machine "&$machine)
Else
If StringInStr($rep_err,$mess_err_pb_connexion_machine)<>0 Then
MsgBox(0,"Pb connection","Impossible de joindre "&$machine)
Else
If StringInStr($rep_err,$pb_access_login)<>0 Then
MsgBox(0,"Pb connection",$pb_access_login&" n'est pas authorisé à se connecter sur "&$machine)
Else
MsgBox(0,"connection OK","Connection établie sur "&$machine&' pour le compte '&$login)
EndIf
EndIf
EndIf
MsgBox(0, "STDOUT read:", $rep_ok)
MsgBox(0, "STDERR read:", $rep_err)
Exit 0
ou touver plink :
http://www.chiark.greenend.org.uk/~sgta ... nload.html
Maintenant ceci n'est qu'une façon de faire, peut être existe t il des testeur de connexion ssh, mais je n'en est pas vu, dû au pb de la non unicité des messages d'erreurs/ acueuil.. entres diverses versions SSH
Re: [..] Checkbox & gui
Posté : lun. 14 janv. 2008 09:21
par ostervald
Bonjour à tous,
Merci pour votre aide.
Le problème est que je dois me connecter aux box clients, il ne sagit pas de tester uniquement la connexion.
Sur Putty, je rentre à la main l'adresse IP de la box ou son dyndns, puis son login et son mot de passe et je sélectionne le port 22.
Si je me connecte c'est ok, sinon je refais la manip sur le 2222.
Ma demande étais de faire une GUI qui irait rechercher les IP (ou dyndns) ainsi que les logins et passe associés automatiquement dans un fichier csv ou xls et loguerait les connexions ok dans un fichier.
merci encore et à bientôt.
je précise afin de clarifier la situation que ce n'est pas pour pirater qui que ce soit. Je suis en possession légalement par mon statut de hotliner des ip, login et passe des clients sur du matériel installé par ma société.
Re: [..] Checkbox & gui
Posté : lun. 14 janv. 2008 22:43
par codename44
bonjour
voilà je vous ai fait un petit script qui lis les données dans le tableau excel, qui les rentre dans putty et se connecte
voici les indications :
-mettre putty.exe, boxcontrole.xls, et Putty-SSH.exe dans le même dossier (ou les fichiers source ".au3")
-lancer putty-ssh.exe (ou la source .au3 si autoit est installé)
-regarder dans le fichier boxcontrole.xls le nombre de lignes, et mettre la ligne de fin dans la case vide du programme, puis fermer ce fichier pour ne pas faire d'interférence au niveau d'excel en autoit.
-cliquer sur lancer le test
-tous ce que vous aurez à faire, c'est répondre à la question "La connexion s'est elle faite correctement ?"
le script gère les messages d'erreur pouvant venir de putty, et les ferme tout seul, ne les fermez pas vous même.
-il est nécessaire que la liste soit du format EXCEL, et que les lettres des colonnes correspondent toujours aux mêmes infos, en l'occurrence L,M,N pour ip, login, pass
sinon modifiez la source
-je n'ai testé le script que avec la version de putty qui se trouve dans le zip : version datant du 11/01/2008 "r7834". utilisez celle la de préférence sinon il y a beaucoup de chances que ça ne marche pas
voilà et
si vous avez un problème avec, demandez moi, je préfère passer quelques minutes à régler le problème plutôt que d'avoir fais ça pour rien
vous pouvez récupérer l'archive contenant tous les fichiers içi :
http://codename44.free.fr/autoit-fr/putty-ssh.rar
Re: [..] Checkbox & gui
Posté : mar. 15 janv. 2008 10:20
par ostervald
Bonjour à tous et merci à codename44,
Je vais tester le script avec la liste actualisé des boxs à traiter et je ne manquerai pas de vous tenir au courant.
Dans tous les cas un grand merci pour vos efforts.
A+
Re: [..] Checkbox & gui
Posté : mar. 15 janv. 2008 10:56
par ostervald
Re bonjour à tous,
Voila j'ai testé le script et il me teste bien les connexions......re grand merci.
Mais j'ai un soucis car lorsqu'il me crée le fichier de log à la fin du test je ne sais pas de quel client il est question.
Sans vouloir abuser, erait-il possible de rajouter les lignes: Raison Sociale et Dyndns ou Ip fixe dans ce fichier et avoir la fenêtre de connexion apparente.
merci et au plaisir de vous lire, vous êtes hyper sympa.
Re: [..] Checkbox & gui
Posté : mar. 15 janv. 2008 12:58
par codename44
je suis content que ça marche
ok, je vais faire ça, ça sera pas bien long, ce soir ce sera bon normalement
Re: [..] Checkbox & gui
Posté : mar. 15 janv. 2008 19:26
par codename44
voilà
http://codename44.free.fr/autoit-fr/Putty-SSH2.rar
le log est de la forme :
[date-heure] : [raison sociale] : Connexion réussie sur [DYNDNS ou IP fixe]:PORT
par contre j'ai pas bien compris "avoir la fenêtre de connexion apparente" ?
Re: [..] Checkbox & gui
Posté : mer. 16 janv. 2008 09:40
par ostervald
Bonjour codename44 et encore merci.
Le script fonctionne et je me permets de te rapporter ce qui suit:
modifs svp si tu le veux bien et si tu as le temps:
-1- permettre que le fichier boxcontrole ait des champs vides (sauf Raison sociale | Agence | Dyndns ou IP | login | passwd | évidemment).
-2- loguer les connexions réussies et les non réussies avec ajout du champ "agence"
remarques:
-3- lorsque le script est terminé, il ne ferme pas exel.exe (gestionnaire des tâches -->Processus)
-4- si je lance le script sur une ligne spécifique il me met le message:"toutes les champs ne sont pas remplis ou la ligne à atteindre est erronée" et le script continu à tester les autres lignes.
-5- si la connexion n'est pas ok, il n'y a pas de log.
En tout cas grand merci
A+
Re: [..] Checkbox & gui
Posté : mer. 16 janv. 2008 20:34
par codename44
salut !
ostervald a écrit :
-1- permettre que le fichier boxcontrole ait des champs vides (sauf Raison sociale | Agence | Dyndns ou IP | login | passwd | évidemment).
euh.. il n'y a aucune vérification la dessus
ostervald a écrit :
-2- loguer les connexions réussies et les non réussies avec ajout du champ "agence"
voilà c'est ajouté
ostervald a écrit :
-3- lorsque le script est terminé, il ne ferme pas exel.exe (gestionnaire des tâches -->Processus)
j'ai changé quelque chose, je ne sais pas si ça suffira, et dans le cas contraire je ne vois pas trop quoi faire..
ostervald a écrit :
-4- si je lance le script sur une ligne spécifique il me met le message:"toutes les champs ne sont pas remplis ou la ligne à atteindre est erronée" et le script continu à tester les autres lignes.
oui donc ça, ça vient de la librairie utilisée pour lire dans le fichier excel, elle ne fonctionne pas en indiquant de la lignex à la même ligne. il faut que tu mettes au moins la ligne d'après.
ostervald a écrit :
-5- si la connexion n'est pas ok, il n'y a pas de log.
hmm déjà fait
http://codename44.free.fr/autoit-fr/Putty-SSH3.rar
voilà a++
Re: [..] Checkbox & gui
Posté : jeu. 17 janv. 2008 13:47
par ostervald
Bonjour codename44,
Merci de ton intérêt pour mes soucis.
J'ai édité ma liste "boxcontrole" en ne laissant que les champs suivants:
Raison Sociale |Agence |Plateau technique|DYNDNS ou IP fixe| Login |Password
et lorsque je fais cela le script ne se lance pas
as-tu une idée?
merci et A+
Re: [..] Checkbox & gui
Posté : jeu. 17 janv. 2008 17:25
par codename44
et bien tout simplement parceque j'avais réglé les colonnes sur L, M,C et I
pour host, login, mdp, raison sociale et agence, et qu'il n'arrive plus à lire les valeurs
édite la source à partir de la ligne 52 jusqu'à la ligne 56 et remplace les lettres des colonnes par les nouvelles.
exemple :
Code : Tout sélectionner
$host = _XLRange ($XL_READVALUE, "L" & $dep_r & ":L" & $fin_r)
si maintenant c'est la colonne D :
Code : Tout sélectionner
$host = _XLRange ($XL_READVALUE, "D" & $dep_r & ":D" & $fin_r)
voilà a++
Re: [..] Checkbox & gui
Posté : lun. 21 janv. 2008 11:23
par ostervald
Bonjour codename44,
Merci de tes indications, j'ai fais les modifs que tu m'as indiqué et c'est OK
J'ai un autre problème:
Lorsque je teste de la ligne 2 à 60, soit sur 58 clients différents, le test ne se fait que sur 7 clients.
4 clients sur les ports 22 et 2222 et sur 3 clients uniquement sur le port 22.
Les autres clients: 51, sont ignorés.
Le format CSV pour la liste controilebox ne serait-il pas plus simple à utiliser ?
Merci et à bientôt.