Si votre script peut se connecter à l'un de ces serveurs, toute personne ayant accès au script (ou un accès privilégié à la machine sur laquelle le script s'exécute) peut se connecter à l'un de ces serveurs.
Si le script doit s'exécuter de manière autonome, les jeux sont faits. La réponse ici est non, il n'y a pas de moyen absolument sûr de stocker des mots de passe dans un tel environnement . Il n'y a pas de sécurité absolue y moyen pratique de faire quoi que ce soit.
Au lieu d'essayer d'éviter l'inévitable, vous devriez vous concentrer sur la défense en profondeur. .
Fristly, bien sûr, vous devriez protéger les mots de passe de manière adéquate . Cela signifie généralement les conserver dans un fichier séparé de votre script et configurer des permissions restrictives sur le système de fichiers. . C'est à peu près tout ce que vous pouvez faire dans ce domaine, du point de vue de la sécurité.
D'autres mesures peuvent très certainement ajouter obscurité au processus. En chiffrant les mots de passe, l'attaquant devra chercher la clé de déchiffrement. L'utilisation d'une sorte de stockage protégé par le système d'exploitation protège généralement contre autres utilisateurs accéder à votre clé (elle ne présente donc aucun avantage par rapport aux autorisations du système de fichiers, si ce n'est qu'elle est complexe à attaquer - et à utiliser). Ces mesures retarder une attaque, mais certainement pas l'empêcher contre un attaquant déterminé.
Maintenant. traiter les mots de passe comme publics pendant un moment. Que pouvez-vous faire pour limiter les dégâts ?
Une solution ancienne et éprouvée consiste à restreindre ce que ces informations d'identification peuvent faire. Sur un système UNIX, un bon moyen de le faire est de configurer un utilisateur séparé pour votre script et limiter les capacités de cet utilisateur tant sur le serveur accédant que sur le serveur accédé. Vous pouvez limiter les capacités des utilisateurs au niveau de SSH sur le Shell ou éventuellement en utilisant un Mécanisme de contrôle d'accès obligatoire comme SELinux .
Vous pouvez également envisager de déplacer la logique script dans les serveurs . Ainsi, vous obtenez une interface plus petite et plus facile à contrôler, et surtout à...
Moniteur . Surveillez toujours l'accès aux serveurs. De préférence, enregistrez l'authentification et les commandes exécutées dans un fichier ajouter seulement le journal . N'oubliez pas de surveiller les modifications du fichier script à l'aide de la fonction auditd
par exemple.
Bien entendu, nombre de ces mécanismes ne sont pas utiles si vous n'avez aucun contrôle sur les serveurs, comme votre question semble l'impliquer. Si c'est le cas, je vous conseille de entrer en contact avec les personnes qui administrent les serveurs et leur faire connaître votre script et les pièges de sécurité potentiels.
1 votes
Variables Env. Duplicata de SO : stackoverflow.com/a/4410137/2579527
4 votes
@TravisStoll Les variables d'environnement ne sont pas sécurisées.
0 votes
Je crains que, pour votre configuration, le stockage des mots de passe dans une base de données soit à peu près aussi sûr que possible. Vous pourriez en faire un db crypté, comme un fichier keepass (je pense qu'il y a au moins un module perl pour accéder aux dbs keepass), mais alors il faudrait quand même stocker le mot de passe de la base de données quelque part, si vous ne voulez pas le saisir à chaque fois que vous invoquez votre script. Peut-être un peu mieux si vous entrez juste le mot de passe principal chaque fois que vous invoquez votre script.
0 votes
Je n'ai pas le temps d'écrire une réponse appropriée, mais il y a des choses à essayer : voir ici pour des idées : stackoverflow.com/questions/1340366/ et ici : askubuntu.com/questions/52212/
1 votes
Même si vous utilisez des clés d'authentification SSH au lieu de mots de passe, ce n'est pas une garantie de sécurité - quiconque peut voler votre base de données de mots de passe pourrait tout aussi bien voler votre clé privée. Vous pouvez chiffrer votre clé privée tout comme vous pourriez chiffrer votre base de données de mots de passe, mais puisque votre script doit déverrouiller la clé (ou la base de données de mots de passe), il est toujours vulnérable à un attaquant. L'utilisation de mots de passe au lieu de clés augmente un peu votre vulnérabilité car elle ouvre plus de voies pour voler le mot de passe, mais même l'utilisation de clés au lieu de mots de passe n'est pas une sécurité parfaite.
1 votes
"parfois telnet" semble impliquer que le mot de passe sera parfois même transféré en clair sur le fil ... ?