Authselect: Créer un profil personnalisé avec le support de pam u2f
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).
Les fichiers configurables[modifier | modifier le wikicode]
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.
dconf-db dconf-locks fingerprint-auth nsswitch.conf password-auth postlogin README REQUIREMENTS smartcard-auth system-auth
On a donc la possibilité de customiser les configurations de PAM, NSS et DConf directement via le profil.
Fichiers pam[modifier | modifier le wikicode]
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é.
Fichier password-auth[modifier | modifier le wikicode]
Tout d'abord on adapte le fichier password-auth pour ajouter les options 2FA et Passwordless.
auth sufficient pam_u2f.so cue {include if not "with-pam-u2f-2fa"}
Cette ligne sera incluse à condition que l'option --with-pam-u2f-2fa ne soit pas active pour le profil.
Elle rend suffisante en elle même la clé sans saisie du mot de passe.
auth required pam_u2f.so cue {include if "with-pam-u2f-2fa"}
Cette ligne sera incluse à condition que l'option --with-pam-u2f-2fa soit active pour le profil.
Elle rend obligatoire l'utilisation d'un second facteur u2f.
Fichier password-auth |
---|
auth required pam_env.so
auth required pam_faildelay.so delay=2000000
auth sufficient pam_u2f.so cue {include if not "with-pam-u2f-2fa" or not "without-pam-u2f"}
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 {include if "with-pam-u2f-2fa" or not "without-pam-u2f"}
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
|