Authselect: Créer un profil personnalisé avec le support de pam u2f

De Adadov.net wiki
Révision datée du 11 janvier 2023 à 18:30 par Adadov (discussion | contributions) (Page créée avec « {{ArticleHead|Adadov|EnCours=1}} Un profil authselect personnalisé permet d'avoir une configuration facile a appliquée.<br> Pour les systèmes de grande taille, ça peut aussi permettre d'avoir une pré-configuration commune à toutes les machines et adaptables via des paramètres en ligne de commande. On a l'assurance que lors des update les modifications apportées par le profil resteront, elles seront appliquées par authselect automatiquement (si ce n'est... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Ecrit Par : Adadov

Un profil authselect personnalisé permet d'avoir une configuration facile a appliquée.
Pour les systèmes de grande taille, ça peut aussi permettre d'avoir une pré-configuration commune à toutes les machines et adaptables via des paramètres en ligne de commande.

On a l'assurance que lors des update les modifications apportées par le profil resteront, elles seront appliquées par authselect automatiquement (si ce n'est pas le cas une simple commande le fera).

Fichiers présents dans un profil authselect

dconf-db
dconf-locks
fingerprint-auth
nsswitch.conf
password-auth
postlogin
README
REQUIREMENTS
smartcard-auth
system-auth

Tous ces fichiers peuvent être modifiés et adaptés comme bon nous semble.

Mais par dessus tout, on peut ajouter dedans des conditions ! Afin de créer des options pour notre profil et coller à tous les besoins.

Fichier pam customisé

Dans ce fichier nous avons ajouté le support de pam_u2f avec le choix entre le fonctionnement en 2fa ou en passwordless.

Par défaut c'est le mode passwordless qui sera utilisé.

auth        required                                     pam_env.so
auth        required                                     pam_faildelay.so delay=2000000
auth        sufficient                                   pam_u2f.so cue {if "without-pam-u2f-userpresence":userpresence=0} {if "without-pam-u2f-userverification":userverification=0} {if "without-pam-u2f-pinverification":pinverification=0} {include if not "with-pam-u2f-2fa"}
auth        required                                     pam_deny.so # Smartcard authentication is required     {include if "with-smartcard-required"}
auth        required                                     pam_faillock.so preauth silent                         {include if "with-faillock"}
auth        required                                     pam_u2f.so cue {if not "without-pam-u2f-nouserok":nouserok} {include if "with-pam-u2f-2fa"}
auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
auth        sufficient                                   pam_unix.so {if not "without-nullok":nullok}
auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
auth        sufficient                                   pam_sss.so forward_pass
auth        required                                     pam_faillock.so authfail                               {include if "with-faillock"}
auth        required                                     pam_deny.so

account     required                                     pam_access.so                                          {include if "with-pamaccess"}
account     required                                     pam_faillock.so                                        {include if "with-faillock"}
account     required                                     pam_unix.so
account     sufficient                                   pam_localuser.so                                       {exclude if "with-files-access-provider"}
account     sufficient                                   pam_usertype.so issystem
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
account     required                                     pam_permit.so

password    requisite                                    pam_pwquality.so local_users_only
password    sufficient                                   pam_unix.so yescrypt shadow {if not "without-nullok":nullok} use_authtok
password    sufficient                                   pam_sss.so use_authtok
password    required                                     pam_deny.so

session     optional                                     pam_keyinit.so revoke
session     required                                     pam_limits.so
session     optional                                     pam_ecryptfs.so unwrap                                {include if "with-ecryptfs"}
-session    optional                                     pam_systemd.so
session     optional                                     pam_oddjob_mkhomedir.so                               {include if "with-mkhomedir"}
session     [success=1 default=ignore]                   pam_succeed_if.so service in crond quiet use_uid
session     required                                     pam_unix.so
session     optional                                     pam_sss.so