[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS] - ssh changer mot de passe



Le 07/06/2013 15:56, Nahliel Steinberg a écrit :
Bon, on peut tout de même réduire la visibilité du mot de passe (dans
l'historique des commandes ou dans le PS) en l'envoyant déjà hashé à
chpasswd.
Il suffit de générer ce hash avec la commande :
mkpasswd -m SHA-512
puis de passer ce résultat à chpasswd en précisant l'option "-e". On
aurait alors quelque chose de ce genre :
    pass=$(mkpasswd -m SHA-512)
    echo "root:$pass" | ssh root@machine chpasswd -e

Pour que cela apporte quelque chose, il FAUT exécuter au moins une
fois mkpasswd en mode interactif mais le résultat peut ensuite être
réutilisé X fois.
Merci pour ta réponse.

Ce qui m'afflige, c'est que je pensais que le flux SSH d'une machine à l'autre
etait crypté. Je ne savais pas qu'on pouvait lire les mdp ou autre commande rien
qu'en analysant les trames (comme à l'époque du bon vieux POP3 qu'on sniffait
pour chopper les dit mots de passe des boites)

Comment peut-on faire ça et comment ?
Si certains en parle c'est que ça doit etre réalisable et qu'ils ont déjà
essayé ? non ? ou c'est pure supputassion ?
Soyons clair : les flux d'une machine à une autre sont bien chiffrés avec SSH, que ce soit lors d'une connexion interactive, du transfert de fichiers (scp ou sftp) ou de l'exécution de commandes à distance. Il n'y a donc pas de risque de sniffer les données sur ton réseau et encore moins le mot de passe éventuellement utilisé.

Les problèmes qui ont été soulevés tiennent au fait que tu indiques un mot de passe en clair dans une de tes commandes, voire pire dans un script. Un utilisateur qui se connecte *localement* sur la machine à partir de laquelle tu vas faire le changement de mot de passe peut réussir à découvrir ce mot de passe : dans le script, dans l'historique des commandes passées, voire simplement avec la commande "ps". C'est en particulier pour ces raison de sécurité que la commande passwd ne fonctionne qu'en interactif. Si tu es le seul utilisateur de la machine à partir de laquelle tu vas changer les mots de passe sur tes serveurs, je pense que le risque est plutôt faible et que certains utilisateurs de cette ML ont peut-être un peu exagéré le danger de ce que tu faisais ;-)

Ensuite, on conseille généralement d'interdire les connexion distantes directes sous le compte root, surtout avec utilisation d'un mot de passe, pour plusieurs raisons : - limitation du risque d'attaque à distance par tentative de détecter ou de casser le mot de passe ; - traçabilité des connexions à la machine : les différents utilisateurs se connectent d'abord sous un compte personnel (de préférence en utilisant, en SSH, une authentification autre qu'un mot de passe) puis obtiennent certains droits plus élevés via su ou sudo (ce qui fait que l'on a, ou que l'on peut avoir, une double authentification); - En cas de retrait des droits d'administration à un utilisateur, il n'est plus nécessaire de changer le mot de passe root, puisque personne ne le connaît (si l'on veut pousser la sécurité, on peut générer un mot de passe root aléatoire pour chaque serveur à l'installation de chaque serveur et mettre ce mot de passe dans un coffre-fort [éventuellement électronique] : on ne le récupère alors qu'en cas d'absolue nécessité pour se connecter en console).
- …

Je te concède que les deux dernières raisons sont surtout valides dans le cas de serveurs en entreprise administrés par plusieurs personnes et avec une population d'administrateurs qui évolue souvent. Mais autant prendre de bonnes habitudes même sur des serveurs personnels (enfin, je dis ça, mais pour mes besoins persos, j'avoue que je conserve un accès SSH root sur mes serveurs - en entreprise, ce n'est généralement plus le cas).

J'espère ne pas avoir été trop bavard.

A+
Jean-Jacques


Reply to: