9 votes

Comment puis-je configurer sshd pour qu'il exige à la fois une clé privée et un mot de passe ?

Comment puis-je configurer sshd pour qu'il exige à la fois une clé privée et un mot de passe ?

Dans /etc/ssh/sshd_config, j'ai actuellement :

RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication yes

Mais apparemment, cela permet à un utilisateur de se connecter en utilisant soit une clé privée, soit un mot de passe.

5voto

Matt Simmons Points 20098

Vous devez configurer un gatekeeper SSH. Cela permet à openssh d'autoriser l'authentification multifactorielle.

Voici un excellent lien : https://calomel.org/openssh.html

Essentiellement, vous utilisez la directive ForceCommand pour exécuter un script lorsque l'utilisateur se connecte. Ce script demande alors à l'utilisateur son mot de passe. Je suis actuellement à la recherche d'une méthode pour vérifier un mot de passe donné par rapport au mot de passe du système, mais je n'arrive à rien (ce qui est compréhensible).

Si le compte utilisateur est stocké dans un annuaire LDAP, vous pouvez essayer de vous lier à l'annuaire en utilisant ces informations d'identification, mais le problème sera que le programme en cours d'exécution sera exécuté en tant qu'utilisateur et non en tant que root. Je ne connais pas les implications en matière de sécurité de l'écriture du code compilé et de son paramétrage en SUID.

Espérons que quelqu'un vous donnera une meilleure réponse.

mais puisque j'en ai tapé autant, êtes-vous dans un site ultra-sécurisé ? Parce que c'est vraiment la seule raison de tout ça. Des clés publiques normales avec des phrases de passe devraient être plus que suffisantes pour 99% des cas.

4voto

Liczyrzepa Points 455

Les versions récentes d'OpenSSH ont rendu cela beaucoup plus facile à réaliser !

Sur /etc/ssh/sshd_config il suffit d'ajouter ce qui suit :

AuthenticationMethods "publickey,password" "publickey,keyboard-interactive"

Si vous souhaitez autoriser une adresse IP spécifique (par exemple 192.168.10.10) à se connecter avec les méthodes par défaut d'OpenSSH, mais exiger que toutes les autres adresses IP utilisent à la fois un mot de passe et une clé, vous pouvez ajouter ce qui suit Match à la place :

Match Address "*,!192.168.10.10"
    AuthenticationMethods "publickey,password" "publickey,keyboard-interactive"

Bien que cela ne soit pas bien documenté, l'astérisque de tête est obligatoire sur la ligne de correspondance ; Match Address "!192.168.10.10" ne correspondront en fait jamais. Cela peut changer dans les futures versions d'OpenSSH. .

-3voto

Authentification à deux facteurs ? Pas tout à fait. Le certificat est une méthode d'authentification plus forte qu'un mot de passe.

Si vous craignez que le certificat puisse être compromis, configurez les clés privées pour qu'elles soient protégées par un mot de passe. Ainsi, l'utilisateur sera invité à saisir un mot de passe avant de pouvoir utiliser le certificat. Vous obtenez ainsi une authentification à deux facteurs. Vous saurez que la connexion provient d'une personne qui est à la fois en possession de la clé privée et ainsi que le mot de passe pour le déverrouiller.

Et désactivez l'authentification par mot de passe sur votre serveur ssh. Cela empêche les gens d'utiliser des attaques par dictionnaire ou par force brute.

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