5 votes

Comment empêcher tout accès à la console sauf via SSH authentifié par clé?

J'ai un environnement de serveur pour lequel les seuls moyens de connexion seraient SSH ou un terminal local dans le centre de données. J'ai configuré cela pour permettre à un utilisateur spécifique de se connecter uniquement avec une clé, pas de mot de passe (explicitement désactivé). Cet utilisateur n'a pas non plus de mot de passe défini.

En raison des tâches que cet utilisateur doit effectuer sur le serveur, j'ai accordé un accès sudo sans mot de passe, en utilisant (dans le fichier sudoers):

nom_utilisateur ALL=(ALL) NOPASSWD: ALL

De toute évidence, cela peut poser un problème de sécurité. Je dois m'assurer que l'utilisateur ne peut pas se connecter au serveur par d'autres moyens que SSH, en utilisant nos clés SSH strictement protégées. Toutes les connexions SSH sont extrêmement bien protégées et verrouillées à une adresse IP spécifique, donc associé à la connexion basée sur la clé, c'est sécurisé (autant que possible). Je souhaite éliminer la possibilité de se connecter via notre centre de données pour m'assurer que l'utilisateur ne peut pas se connecter de là, et seulement via SSH.

Comment puis-je empêcher ces tentatives d'accès non autorisées?

2voto

Michael Points 66

J'ai toujours trouvé qu'une meilleure solution est de définir le hachage du mot de passe (dans /etc/shadow) à une valeur non valide. J'utilise généralement la chaîne %%NP%%. Cela désactive efficacement l'authentification par mot de passe pour cet utilisateur et interdit tout type de tentative de craquage de mot de passe. Étant donné qu'aucune entrée dans l'algorithme de hachage de mot de passe ne correspondra jamais au hachage dans le fichier shadow, c'est extrêmement sécurisé.

Pour Linux, vous pouvez, au lieu de (ou en plus de) ce qui précède, définir les paramètres de contrôle d'accès dans /etc/security/access.conf. Il y a plusieurs exemples dans ce fichier qui devraient répondre à vos besoins. Un inconvénient de cette approche est que vous pouvez facilement empêcher root de pouvoir se connecter depuis la console, ce qui est une très mauvaise idée en cas d'urgence.

1voto

Gaia Points 675

Vous pourriez définir un mot de passe sur l'utilisateur qui est composé de plus de 30 caractères aléatoires (certains presque impossibles à taper) pour empêcher les connexions non-SSH.

Cependant, cela n'empêcherait pas l'utilisateur de changer le mot de passe via SSH, puis d'utiliser le terminal du centre de données pour un accès direct.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X