Je suis en train de configurer un serveur cloud pour exécuter la pile suivante: Ruby, Passenger, Apache; sous Ubuntu 10.04 (Lucid Lynx).
Dans le processus de vouloir rendre le serveur plus facile à gérer, j'installe les clés RSA root
, et www-data
pour pouvoir ssh
accéder au serveur. La chose que je n'ai pas aimé que www-data
est .ssh
assis répertoire dans /var/www
lequel est la configuration de répertoire par défaut apache. Mon inquiétude est que si apache n'est pas configuré correctement, le .ssh
répertoire peut être exposé.
Je suis tombé sur la solution pour déplacer le ~/.ssh/authorized_keys
fichier dans un emplacement central en changeant AuthorizedKeysFile
dans /etc/ssh/sshd_config
. Cela vient avec 2 avantages: un emplacement unique pour les clés, et ne pas avoir à se soucier d'une mauvaise configuration apache. Le seul inconvénient auquel je peux penser est que maintenant chaque utilisateur est disponible pour se connecter sur le serveur (clairement une épée à double tranchant du fichier de clé centrale.)
Y a-t-il quelque chose que j'ai manqué dans cette configuration? Me suis-je surexposé ou est-ce une meilleure solution que des authorized_keys
fichiers individuels ?
Je suis vert en ce qui concerne la gestion des serveurs, mais je suis totalement prêt à être qualifié de mauvais noms pour avoir fait de mauvaises choses. :RÉ
la source
id_rsa
fichier~/.ssh
et qu'ils parviennent à le lire)Réponses:
Tous les fichiers de clés peuvent être centralisés dans le même répertoire et ne pas être mélangés dans le même fichier.
Configurez simplement le
sshd_config
fichier comme ceci:Sur votre serveur:
/etc/ssh/authorized_keys/www-data
/etc/ssh/authorized_keys/root
Concernant les droits d'accès, ces paramètres sont acceptés par sshd:
/etc/ssh/authorized_keys
appartient auroot:root
mode 755 et possède le mode 755. Les fichiers de clés appartiennent auroot:root
mode 644 et ont ce mode.D'autres modes peuvent fonctionner mais je ne les ai pas testés.
la source
D'une manière générale, je ne ferais pas ce que vous proposez. Il casse les hypothèses courantes (comme
~/.ssh/authorized_keys
travailler pour vos utilisateurs et introduit des problèmes que vous avez déjà mentionnés dans votre question. Si vous voyez des problèmes évidents avant la mise en œuvre, cela signifie que votre solution n'est pas idéale.En ce qui concerne la sécurité, je pense également que c'est une TERRIBLE idée que tout le monde partage un compte de service: en ce moment, c'est juste vous, et vous savez que c'est vous qui apportez des changements. Dans 5 ans, lorsque vous aurez 5 administrateurs, vous voudrez savoir qui a changé quoi et fouiller dans les journaux d'audit pour voir qui a utilisé quelle clé quand est une douleur royale.
Il vaut mieux que les gens se connectent en tant qu'eux-mêmes et utilisent
sudo
quelque chose de similaire pour augmenter leurs privilèges et faire tout ce qu'ils doivent faire.Si vous souhaitez toujours centraliser les clés SSH, je suggère de rechercher un système de déploiement comme Puppet ou radmind pour gérer / distribuer les
authorized_keys
fichiers dans les~user/.ssh/
répertoires appropriés (ou pirater une solution maison qui les SCP en place).Lorsque vous développez sur plusieurs serveurs, vous souhaiterez peut-être rechercher le correctif de clé publique LDAP pour les anciennes versions d'OpenSSH (ou la
AuthorizedKeysCommand
directive et un script approprié dans la nouvelle version d'OpenSSH) afin de pouvoir centraliser vos utilisateurs et ne pas avoir à distribuer leurs clés sur tout votre réseau, mais cela risque d'être assez loin pour vous.la source
root
niwww-data
accessible via une clé ssh est-ce correct?~www-data/.ssh
répertoire n'est pas une chose terrible (avec les autorisations appropriées, ce n'est pas un risque substantiel), mais si vous allez l'utiliser,~www-data/.ssh
il est probablement préférable de ne pas avoir votre racine Web~www-data
(déplacez le Webroot ou déplacez le répertoire personnel de Déplacerwww-data
). La différenciation des utilisateurs est le plus grand argument à mon humble avis - je sais que si je vois lajsmith
connexion, je sais que c'est John Smith. Si je vois lawww-data
connexion, je dois creuser plus pour savoir qui c'était.AuthorizedKeysFile
par/etc/ssh/sshd_config
défaut est%h/.ssh/authorized_keys
. Voici%h
un espace réservé pour le répertoire personnel. Ce qui vous empêche de le régler sur/some/folder/ssh_keys_by_user/%h/
ou même/root/ssh_keys/%u
. Vous pouvez même donner à l'utilisateur respectif un accès en écriture à son fichier individuel là-bas (et uniquement à son) lier le fichier à l'emplacement standard (avecln -s /root/ssh_keys_by_user/username /home/username/.ssh/authorized_keys
) et ne pas casser les hypothèses susmentionnées.