2010-10-14 3 views
0

D'accord, je travaille sur un système de gestion d'un tas de vps. Cela inclut les tâches de maintenance courantes ainsi que l'allocation des ressources. Pour ce faire, mon serveur de contrôle devra se connecter aux différents serveurs. J'utilise régulièrement ssh public/private key et cela semble être la manière la plus logique de se connecter du serveur de contrôle aux serveurs esclaves.Stockage des informations de clés privées et des mots de passe pour les connexions ssh

Maintenant, faisons semblant que le serveur de contrôle est aussi sécurisé qu'il est raisonnablement possible. Ma question est, comment puis-je stocker la clé privée sur le serveur de contrôle, et le mot de passe root (en supposant que la connexion root directe est désactivée) pour les serveurs esclaves en toute sécurité. Je me sens comme un serveur durci est la meilleure défense car une fois le serveur compromis, la bataille est probablement perdue. Je sais qu'aucun système ne sera infaillible, mais quelle est la meilleure pratique?

Répondre

0

Une solution que nous avons utilisée précédemment est de ne pas permettre au serveur de contrôle d'exécuter directement les commandes sur les esclaves, mais d'avoir un démon/script sur les esclaves pour extraire une liste de tâches du nœud de contrôle. De cette façon, vous n'avez pas besoin de stocker des informations privilégiées, mais seulement d'autoriser l'esclave à accéder à une "liste de tâches".

Une implémentation de base serait simplement une base de données accessible par l'esclave, mais vous pourriez également faire une architecture client-serveur.

Si vous voulez que le serveur SSH entre dans l'esclave, vous pouvez augmenter les privilèges en utilisant sudo qui a des fonctionnalités supplémentaires telles que la limitation des commandes qu'un utilisateur particulier peut exécuter avec des privilèges élevés. Le stockage du mot de passe est, comme vous l'avez déjà mentionné, très délicat car il devra être disponible en clair à un moment ou à un autre.

Questions connexes