Debian Debian-France Debian-Facile Debian-fr.org Debian-fr.xyz Debian ? Communautés

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 15-05-2022 00:05:27

Hetimop
Membre
Inscription : 14-05-2022

[Résolu] Authentification SUDO via certificat

Salut,

J'ai besoin de mettre en place un système d'authentification sudo pour des utilisateurs qui se connectent avec leur certificat+passphrase via SSH. Ils se connectent sur des comptes sans mot de passe, même si l'authentification de l'utilisateur est déjà sécurisé je souhaiterais tout de même qu'il rentre un mot de passe lors de l'utilisation de sudo.

A priori ce serait possible via l'Authentification PAM mais pour le moment je tourne en rond, quelqu'un aurait déjà procédé à une configuration similaire ?

Dernière modification par Hetimop (17-05-2022 19:47:10)

Hors ligne

#2 15-05-2022 01:38:04

kawer
Membre
Lieu : Earth
Distrib. : Stable
Noyau : Current
(G)UI : Xfce
Inscription : 08-10-2013

Re : [Résolu] Authentification SUDO via certificat

Bonsoir,

Du mal à comprendre ta demande, tu a des utilisateurs qui doivent se connecter par ssh (clés asymétriques avec ou sans passphrase) et une fois sur leurs compte tu voudrais qu'ils aient un mot de passe différent pour utiliser sudo ?
Dans cette compréhension tu pourrai visiter la page du wiki de ssh section clés asymétriques.

Rien ne t'oblige d'utiliser le même mot de passe pour les clés asymétriques et les comptes [sudo] associé.

Songez à ce que vous avez été, à ce que vous êtes, et à ce que vous serez un jour, et vous deviendrez humbles. Saint Vincent de Paul
La maladie la plus constante et la plus mortelle, mais aussi la plus méconnue de toute société, est l’indifférence. Abbé Pierre

Hors ligne

#3 15-05-2022 20:52:12

Hetimop
Membre
Inscription : 14-05-2022

Re : [Résolu] Authentification SUDO via certificat

Non je veux qu'ils utilisent leurs PASSPHRASE utilisé lors de leurs connection ssh à chaque commande sudo mais je suis d'accord ce n'est pas si clair que ça en me relisant.

L'objectif :
OK      - Créer des comptes utilisateurs avec droits sudo sur 1 serveur sans mot de passe
OK      - Autoriser l'accès SSH+PASSPHRASE à ces comptes via une clé public que les utilisateurs me fournissent

NOK     - Sécuriser l'utilisation de sudo pour qu'ils utilisent leur certificat SSH+PASSPHRASE au lieu du mot de passe utilisateur local

Actuellement bien que leur accès SSH sur les comptes que je leur ai crée fonctionne, lorsqu'ils exécutent une commande via sudo un mot de passe est demandé alors que leur compte n'en possède pas. J'ai pu bypass cela avec un ALL=NOPASSWD: ALL dans le fichier /etc/sudoers.

Lorsque que j'essaie de paramétrer le module pam_ssh_agent_auth, pour que sudo se serve de l'authentification ssh, j'ai ce résultat

pam_ssh_agent_auth: Failed Authentication: toto' as toto' using /etc/ssh/sudo_authorized_keys



Bien sur le fichier /etc/ssh/sudo_authorized_keys posséde la même clé public utilisé pour que l'utilisateur se connecte au serveur, j'ai également tenté de faire pointer directement vers /home/toto/.ssh/authorized_keys utilisé pour la connexion ssh mais toujours le même résultat.

Je ne comprends pas comme PAM valide ou invalide la clé public sur le serveur lors de l'execution de la commande sudo puisqu'aucune clé privé n'est stocké sur celui ci.

La connexion au serveur est validé par l'indication de la clé privée sur le poste client

ssh -i /home/toto/.ssh/toto.key toto@IP-SERVER




Pour résumé je ne comprends toujours pas comment PAM fait le lien entre les "app" et les "système d'authentifications"


Voila j'espère que c'est un peu plus clair. La solution de secours serait qu'ils me communiquent un hach de password que je rajouterais à leur comptes.

Dernière modification par Hetimop (15-05-2022 20:53:07)

Hors ligne

#4 15-05-2022 21:19:16

Hetimop
Membre
Inscription : 14-05-2022

Re : [Résolu] Authentification SUDO via certificat

Pour plus de précisions voici mon fichier /etc/pam.d/sudo

#%PAM-1.0

auth sufficient pam_ssh_agent_auth.so file=/etc/ssh/sudo_authorized_keys
@include common-auth
@include common-account
@include common-session-noninteractive
 



et mon fichier /etc/sudoers

Defaults env_keep += SSH_AUTH_SOCK
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

root    ALL=(ALL:ALL) ALL
%sudo   ALL=(ALL:ALL) ALL



J'ai ajouté un mot de passe manuellement à ce compte afin de vérifier que sudo fonctionne bien si l'authentification PAM était refusée.

Hors ligne

#5 16-05-2022 20:54:30

Hetimop
Membre
Inscription : 14-05-2022

Re : [Résolu] Authentification SUDO via certificat

Du nouveau, j'ai utilisé un module google_authenticator avec pam pour sudo à la place du ssh, et ça fonctionne comme il faut.

J'ai ensuite remis le le pam_ssh_agent en mode debug pour avoir plus d'info sur ce qui coince.
J'ai pu remarqué que c'est au moment de chercher la clé privée ssh que ca coince. pour confirmer ca j'ai transférer la clé privée directement sur le serveur et l'ai indiqué avant de lancer un sudo ... Bingo !! Ça fonctionne, Donc il faut que je comprenne comment configurer le rebond pour le ssh-agent entre le client et le serveur.

Si quelqu'un à un lien ou une piste sur comment configurer ça n'hésitez pas ^^

J'ai essayé de faire une capture la plus explicite : Les deux comptes se sont connectés depuis une machine client avec leurs propre compte vers leurs comptes serveur en ssh via certificat +passphrase.
- toto = dispose de sa clé privée + public dans authorized_keys   
- titi n'a que sa clé public dans authorized_keys
1652727009-titi-vs-toto245.png

Hors ligne

#6 17-05-2022 19:51:18

Hetimop
Membre
Inscription : 14-05-2022

Re : [Résolu] Authentification SUDO via certificat

Update : résolu il suffisait juste de faire du forwarding du ssh-agent depuis le poste client 

ssh -A toto@ipserver

ou d'inscrire  dans le fichier de ~/.ssh/config

ForwardAgent yes

Hors ligne

Pied de page des forums