doc: update notes
This commit is contained in:
6
Notes.md
6
Notes.md
@@ -70,7 +70,7 @@ de configuration ?
|
|||||||
|
|
||||||
Voir les liens:
|
Voir les liens:
|
||||||
|
|
||||||
- [PAM-PKCS#11 Login Tools]
|
- [PAM-PKCS11 Login Tools]
|
||||||
- [PAM-PKCS11 User Manual]
|
- [PAM-PKCS11 User Manual]
|
||||||
- [PAM-PKCS11 Mappers API]
|
- [PAM-PKCS11 Mappers API]
|
||||||
|
|
||||||
@@ -124,8 +124,8 @@ On introduit les fonctionnalités pas à pas:
|
|||||||
- configuration PKCS#11 avec `pam_sss`
|
- configuration PKCS#11 avec `pam_sss`
|
||||||
- suppression de `pam_krb5` et `pam_pkcs11`
|
- suppression de `pam_krb5` et `pam_pkcs11`
|
||||||
|
|
||||||
|
Void [Notes_gdm.md](Notes_gdm.md) pour le fonctionnement de GDM avec PAM.
|
||||||
Voir [Notes_pkcs11.md](Notes_pkcs11.md) pour la configuration `pam_pkcs11`.
|
Voir [Notes_pkcs11.md](Notes_pkcs11.md) pour la configuration `pam_pkcs11`.
|
||||||
|
|
||||||
Voir [Notes_sssd.md](Notes_sssd.md) pour la configuration `pam_sss`.
|
Voir [Notes_sssd.md](Notes_sssd.md) pour la configuration `pam_sss`.
|
||||||
|
|
||||||
|
|
||||||
@@ -135,6 +135,6 @@ Voir [Notes_sssd.md](Notes_sssd.md) pour la configuration `pam_sss`.
|
|||||||
[GNOME - Disallow login using a fingerprint]: https://help.gnome.org/admin/system-admin-guide/stable/login-fingerprint.html.en
|
[GNOME - Disallow login using a fingerprint]: https://help.gnome.org/admin/system-admin-guide/stable/login-fingerprint.html.en
|
||||||
[SSSD - Introduction]: https://sssd.io/docs/introduction.html
|
[SSSD - Introduction]: https://sssd.io/docs/introduction.html
|
||||||
[SSSD - Migrating from pam_krb5]: https://sssd.io/docs/krb/krb-migration.html
|
[SSSD - Migrating from pam_krb5]: https://sssd.io/docs/krb/krb-migration.html
|
||||||
[PAM-PKCS#11 Login Tools]: https://github.com/OpenSC/pam_pkcs11
|
[PAM-PKCS11 Login Tools]: https://github.com/OpenSC/pam_pkcs11
|
||||||
[PAM-PKCS11 User Manual]: http://opensc.github.io/pam_pkcs11/doc/pam_pkcs11.html
|
[PAM-PKCS11 User Manual]: http://opensc.github.io/pam_pkcs11/doc/pam_pkcs11.html
|
||||||
[PAM-PKCS11 Mappers API]: http://opensc.github.io/pam_pkcs11/doc/mappers_api.html
|
[PAM-PKCS11 Mappers API]: http://opensc.github.io/pam_pkcs11/doc/mappers_api.html
|
||||||
|
|||||||
152
Notes_gdm.md
152
Notes_gdm.md
@@ -1,3 +1,113 @@
|
|||||||
|
GDM et PAM
|
||||||
|
----------
|
||||||
|
|
||||||
|
GDM utilise PAM pour l'authentification. Il s'appuie sur une configuration
|
||||||
|
dédiée dans `/etc/pam.d`, cf les fichiers de profil `gdm-password`,
|
||||||
|
`gdm-smartcard` et `gdm-fingerprint`.
|
||||||
|
|
||||||
|
Le reste du système (login console, SSH) utilise aussi PAM, via une autre
|
||||||
|
configuration nommée `/etc/pam.d/common-auth`. Le contenu de ce fichier
|
||||||
|
est généré automatiquement par `pam-auth-update` pour tous les modules PAM
|
||||||
|
qui livrent une définition dans `/usr/share/pam-configs`.
|
||||||
|
|
||||||
|
Sur Hirstute, dans la configuration par défaut, GDM choisit automatiquement
|
||||||
|
le profil qu'il va utiliser : si un token PKCS#11 qui possède le drapeau
|
||||||
|
"amovible" est présent (typiquement le dongle Aladdin), alors il utilisera
|
||||||
|
le profil `gdm-smartcard`, sinon il utilisera le profil `gdm-password`.
|
||||||
|
|
||||||
|
Il est possible de changer cette sélection avec une propriété `dconf`,
|
||||||
|
comme ceci:
|
||||||
|
```
|
||||||
|
[org/gnome/login-screen]
|
||||||
|
enable-smartcard-authentication=false
|
||||||
|
```
|
||||||
|
et alors GDM utilise le profil `gdm-password`, même si un dongle PKI est
|
||||||
|
connecté à la machine lors de la connexion.
|
||||||
|
|
||||||
|
Le profil `gdm-password` est grosso-modo une façade pour `common-auth`
|
||||||
|
(il fait l'inclusion de ce fichier), donc tous les modules PAM qui y sont
|
||||||
|
déclarés sont utilisables (unix, ccreds, krb5, sss, etc.)
|
||||||
|
|
||||||
|
Le profil `gdm-smartcard` est un lien symbolique, géré par `update-alternatives`,
|
||||||
|
qui peut pointer vers l'un des trois profils qui gèrent effectivement les
|
||||||
|
tokens PKCS#11:
|
||||||
|
|
||||||
|
- `gdm-smartcard-pkcs11-exclusive` qui utilise le module `pam_pkcs11`
|
||||||
|
- `gdm-smartcard-sssd-exclusive` qui utilise le module `pam_sss`
|
||||||
|
avec l'option `require_cert_auth`
|
||||||
|
- `gdm-smartcard-sssd-or-password` qui utilise le module `pam_sss`
|
||||||
|
avec l'option `try_cert_auth` et passe la main au profil `common-auth`
|
||||||
|
en solution de secours si le premier module a échoué.
|
||||||
|
|
||||||
|
Ces trois profils nécessitent une configuration dédiée pour PKCS#11
|
||||||
|
dans le module PAM correspondant, si pas configuré, ça ne marche pas :
|
||||||
|
GDM va demander l'identifiant de l'utilisateur (username), puis le PIN, et
|
||||||
|
ensuite l'authentification échoue, retour au point de départ, en boucle.
|
||||||
|
|
||||||
|
La valeur par défaut sur Ubuntu est `gdm-smartcard-sssd-exclusive`.
|
||||||
|
|
||||||
|
Selection d'un profil gdm-smartcard
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
En mode interactif:
|
||||||
|
```
|
||||||
|
$ sudo update-alternatives --config gdm-smartcard
|
||||||
|
|
||||||
|
There are 3 choices for the alternative gdm-smartcard (providing /etc/pam.d/gdm-smartcard).
|
||||||
|
Selection Path Priority Status
|
||||||
|
|
||||||
|
0 /etc/pam.d/gdm-smartcard-sssd-exclusive 50 auto mode [*]
|
||||||
|
1 /etc/pam.d/gdm-smartcard-pkcs11-exclusive 30 manual mode
|
||||||
|
2 /etc/pam.d/gdm-smartcard-sssd-exclusive 50 manual mode
|
||||||
|
3 /etc/pam.d/gdm-smartcard-sssd-or-password 40 manual mode
|
||||||
|
|
||||||
|
Press to keep the current choice[*], or type selection number: 3
|
||||||
|
```
|
||||||
|
|
||||||
|
En mode inattendu:
|
||||||
|
```
|
||||||
|
$ sudo update-alternatives --set gdm-smartcard /etc/pam.d/gdm-smartcard-sssd-or-password
|
||||||
|
```
|
||||||
|
|
||||||
|
Il n'est pas nécessaire de redémarrer le service `gdm3` après
|
||||||
|
modification.
|
||||||
|
|
||||||
|
Saisie de l'identifiant utilisateur en mode smartcard
|
||||||
|
-----------------------------------------------------
|
||||||
|
|
||||||
|
En mode par défaut (gdm-password), l'écran d'accueil GDM présente la
|
||||||
|
liste des utilisateurs humains (>=1000) déclarés sur la machine, ou bien un
|
||||||
|
unique utilisateur pré-sélectionné s'il n'existe qu'un seul utilisateur
|
||||||
|
humain sur la machine. Il est possible de désactiver l'affichage de cette
|
||||||
|
liste avec une propriété `dconf`, cf [GNOME - Disable the user list], et
|
||||||
|
alors l'écran d'accueil demande la saisie de l'identifiant de l'utilisateur.
|
||||||
|
|
||||||
|
En mode PKI (gdm-smartcard), l'écran d'accueil GDM propose directement
|
||||||
|
la saisie de l'identifiant de l'utilisateur, il ne propose pas la liste
|
||||||
|
des utilisateurs existants, et la propriété `disable-user-list` n'est
|
||||||
|
pas prise en compte.
|
||||||
|
|
||||||
|
Les modules PAM qui exploitent PKCS#11 savent extraire l'identifiant
|
||||||
|
de l'utilisateur à partir des données présente dans un certificat
|
||||||
|
d'authentification, une fois le mapper configuré. Cette information
|
||||||
|
est utilisée principalement pour déterminer où est le compte de
|
||||||
|
l'utilisateur sur le disque, elle n'est pas forcément utilisée pour
|
||||||
|
identifier l'utilisateur lui-même.
|
||||||
|
|
||||||
|
Pour `pam_pkcs11`, il est possible de configurer le module pour qu'il
|
||||||
|
identifie directement l'utilisateur depuis le certificat, sans aucune
|
||||||
|
saisie clavier, cf le "alternate way of working" décrit dans le README.
|
||||||
|
(voir [Notes_pkcs11.md](Notes_pkcs11.md) pour plus de détails).
|
||||||
|
|
||||||
|
Néanmoins, GDM est incapable d'exploiter cette information de cette
|
||||||
|
manière, il ne sait pas sélectionner l'utilisateur à partir d'un
|
||||||
|
certificat, il affiche systématiquement le champ de saisie de
|
||||||
|
l'identifiant en mode smartcard.
|
||||||
|
|
||||||
|
|
||||||
|
Configuration dconf
|
||||||
|
-------------------
|
||||||
|
|
||||||
Pour désactiver le login avec smartcard, je me suis inspiré de la
|
Pour désactiver le login avec smartcard, je me suis inspiré de la
|
||||||
documentation [GNOME - Disallow login using a fingerprint] propose de
|
documentation [GNOME - Disallow login using a fingerprint] propose de
|
||||||
créer un profil `user` pour `dconf`, hélas, ça ne fonctionne pas !
|
créer un profil `user` pour `dconf`, hélas, ça ne fonctionne pas !
|
||||||
@@ -7,7 +117,49 @@ le dongle PKI est présent dans le port USB, c'est bien un login/password
|
|||||||
qui est demandé par GDM.
|
qui est demandé par GDM.
|
||||||
Documentation pas à jour ?
|
Documentation pas à jour ?
|
||||||
|
|
||||||
|
Important: après avoir modifié une valeur dans `/etc/dconf/db/gdm.d/*`,
|
||||||
|
il faut faire prendre en compte cette modification par `dconf`, puis
|
||||||
|
redémarrer le service `gdm3`:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ sudo dconf update
|
||||||
|
$ sudo restart gdm3.service
|
||||||
|
```
|
||||||
|
|
||||||
|
Les modes de fonctionnement choisis
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
Pour l'instant, deux modes de fonctionnement:
|
||||||
|
|
||||||
|
1. `gdm-password` + `pam_sss` + `common-auth`
|
||||||
|
2. `gdm-smartcard` + `pam_pkcs11`
|
||||||
|
|
||||||
|
Dans le premier mode, le smartcard est explicitement désactivé dans
|
||||||
|
`dconf`, GDM ne reconnait pas le token PKCS#11 à la connexion, il
|
||||||
|
ne demande pas le username, c'est la connexion classique à laquelle
|
||||||
|
l'utilisateur est habitué, pas de régression. Le module `pam_sss`
|
||||||
|
est configuré pour authentifier via Kerberos, et le `common-auth`
|
||||||
|
permet les solutions de secours (`pam_unix` et `pam_ccreds`).
|
||||||
|
|
||||||
|
Dans le deuxième mode, le token PKCS#11 est utilisé à la connexion
|
||||||
|
si présent, sinon authentification classique avec mot de passe local
|
||||||
|
(`pam_unix`). Dans un cas comme dans l'autre, pas d'authentification
|
||||||
|
Kerberos, donc pas de TGT à la connexion.
|
||||||
|
|
||||||
|
A l'étude, un troisième mode de fonctionnement avec PKCS#11 dans SSSD.
|
||||||
|
|
||||||
|
Références
|
||||||
|
----------
|
||||||
|
|
||||||
|
- [GNOME - Add a greeter logo to the login screen]
|
||||||
|
- [GNOME - Display a text banner on the login screen]
|
||||||
|
- [GNOME - Disallow login using a fingerprint]
|
||||||
|
- [GNOME - Disable the user list]
|
||||||
|
|
||||||
|
|
||||||
[GNOME - Add a greeter logo to the login screen]: https://help.gnome.org/admin/system-admin-guide/stable/login-logo.html.en
|
[GNOME - Add a greeter logo to the login screen]: https://help.gnome.org/admin/system-admin-guide/stable/login-logo.html.en
|
||||||
[GNOME - Display a text banner on the login screen]: https://help.gnome.org/admin/system-admin-guide/stable/login-banner.html.en
|
[GNOME - Display a text banner on the login screen]: https://help.gnome.org/admin/system-admin-guide/stable/login-banner.html.en
|
||||||
[GNOME - Disallow login using a fingerprint]: https://help.gnome.org/admin/system-admin-guide/stable/login-fingerprint.html.en
|
[GNOME - Disallow login using a fingerprint]: https://help.gnome.org/admin/system-admin-guide/stable/login-fingerprint.html.en
|
||||||
|
[GNOME - Disable the user list]: https://help.gnome.org/admin/system-admin-guide/stable/login-userlist-disable.html.en
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Configuration pam-pkcs11
|
Configuration pam-pkcs11
|
||||||
========================
|
------------------------
|
||||||
|
|
||||||
Thierry Tallagrand à la rescousse !
|
Thierry Tallagrand à la rescousse !
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@ DEBUG:pklogin_finder.c:151: Certificate is valid and maps to user tmzf5455
|
|||||||
Le module pam-pkcs11 est maintenant configuré, il reste à le faire
|
Le module pam-pkcs11 est maintenant configuré, il reste à le faire
|
||||||
prendre en compte par GDM:
|
prendre en compte par GDM:
|
||||||
```
|
```
|
||||||
$ update-alternatives --config gdm-smartcard
|
# update-alternatives --config gdm-smartcard
|
||||||
|
|
||||||
There are 3 choices for the alternative gdm-smartcard (providing /etc/pam.d/gdm-smartcard).
|
There are 3 choices for the alternative gdm-smartcard (providing /etc/pam.d/gdm-smartcard).
|
||||||
Selection Path Priority Status
|
Selection Path Priority Status
|
||||||
@@ -91,7 +91,7 @@ https://yourdev.tech.orange/linux-article/login-with-pki/) avec screenshots.
|
|||||||
|
|
||||||
|
|
||||||
Saisie du compte avec GDM
|
Saisie du compte avec GDM
|
||||||
=========================
|
-------------------------
|
||||||
|
|
||||||
Avec la première tentative de configuration issue directement de
|
Avec la première tentative de configuration issue directement de
|
||||||
`pam_pkcs11.conf.example`, on constate lorsque le dongle PKI est inséré
|
`pam_pkcs11.conf.example`, on constate lorsque le dongle PKI est inséré
|
||||||
@@ -146,7 +146,7 @@ sur Hirsute ... Bug dans GDM ? Fonctionnalité non prise en compte ?
|
|||||||
|
|
||||||
|
|
||||||
Activer PKCS#11 dans GDM
|
Activer PKCS#11 dans GDM
|
||||||
========================
|
------------------------
|
||||||
|
|
||||||
Trois opérations à faire:
|
Trois opérations à faire:
|
||||||
|
|
||||||
@@ -166,7 +166,7 @@ soit:
|
|||||||
Il faudrait un script pour automatiser cela ...
|
Il faudrait un script pour automatiser cela ...
|
||||||
|
|
||||||
Limitations
|
Limitations
|
||||||
===========
|
-----------
|
||||||
|
|
||||||
Le paquet `libpam-pkcs11` ne fournit pas de configuration pour `pam-auth-update`
|
Le paquet `libpam-pkcs11` ne fournit pas de configuration pour `pam-auth-update`
|
||||||
dans `/usr/share/pam-configs`, donc l'authentification PKCS#11 ne peut pas
|
dans `/usr/share/pam-configs`, donc l'authentification PKCS#11 ne peut pas
|
||||||
@@ -184,3 +184,18 @@ de faire cela avec SSSD.
|
|||||||
Contrairement à ce que `pkcs11-exclusive` laisse entendre, si le dongle n'est
|
Contrairement à ce que `pkcs11-exclusive` laisse entendre, si le dongle n'est
|
||||||
pas présent dans le port USB, on peut toujours se connecter par login/password
|
pas présent dans le port USB, on peut toujours se connecter par login/password
|
||||||
(mais Kerberos foonctionnera-t'il si `pam_krb5.so` est présent ?)
|
(mais Kerberos foonctionnera-t'il si `pam_krb5.so` est présent ?)
|
||||||
|
|
||||||
|
Références
|
||||||
|
----------
|
||||||
|
|
||||||
|
- [PAM-PKCS11 Login Tools]
|
||||||
|
- [PAM-PKCS11 User Manual]
|
||||||
|
- [PAM-PKCS11 Mappers API]
|
||||||
|
- [Local PAM-PKCS11 documentation]
|
||||||
|
|
||||||
|
|
||||||
|
[PAM-PKCS11 Login Tools]: https://github.com/OpenSC/pam_pkcs11
|
||||||
|
[PAM-PKCS11 User Manual]: http://opensc.github.io/pam_pkcs11/doc/pam_pkcs11.html
|
||||||
|
[PAM-PKCS11 Mappers API]: http://opensc.github.io/pam_pkcs11/doc/mappers_api.html
|
||||||
|
[Local PAM-PKCS11 documentation]: file:///usr/share/doc/libpam-pkcs11
|
||||||
|
|
||||||
|
|||||||
@@ -78,18 +78,65 @@ Sachant que par défaut la socket est activée à l'installation du paquet
|
|||||||
`sssd`, le choix le plus facile c'est le n°2, on modifie la configuration
|
`sssd`, le choix le plus facile c'est le n°2, on modifie la configuration
|
||||||
dans le fichier `sssd.conf`.
|
dans le fichier `sssd.conf`.
|
||||||
|
|
||||||
|
Activer SSSD dans GDM (password)
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
Quatre opérations à faire:
|
||||||
|
|
||||||
|
- basculer l'alternative `gdm-smartcard` sur `gdm-smartcard-smartcard-or-password`
|
||||||
|
- desactiver l'authentification par smartcard dans `dconf` pour GDM
|
||||||
|
- démarrer le service `sssd`
|
||||||
|
- redémarrer le service `gdm3`
|
||||||
|
|
||||||
|
soit:
|
||||||
|
|
||||||
|
```
|
||||||
|
# update-alternatives --set gdm-smartcard /etc/pam.d/gdm-smartcard-sssd-or-password
|
||||||
|
# sed -Ei 's/(enable-smartcard-authentication)=.*/\1=false/' /etc/dconf/db/gdm.d/03-smartcard
|
||||||
|
# dconf update
|
||||||
|
# systemctl enable sssd.service sssd-pam.socket
|
||||||
|
# systemctl start sssd.service
|
||||||
|
# systemctl restart gdm3
|
||||||
|
```
|
||||||
|
|
||||||
|
Pour l'instant, on désactive gdm-smardcard dans la configuration GDM via `dconf`
|
||||||
|
parce que la gestion du PKCS#11 dans SSSD n'est pas encore configurée, et ce n'est
|
||||||
|
pas aussi facile qu'avec `pam_pkcs11` ...
|
||||||
|
|
||||||
|
SSSD et PKCS#11
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Pas certain que SSSD puisse fonctionner avec SmartCard + utilisateur local,
|
||||||
|
la documentation mentionne explicitement LDAP comme sources d'identité,
|
||||||
|
donc il faudrait joindre le domaine AD, fonctionnerait seulement online
|
||||||
|
(sauf si cache).
|
||||||
|
|
||||||
|
TODO
|
||||||
|
----
|
||||||
|
|
||||||
|
Les choses à voir:
|
||||||
|
|
||||||
|
- `sss-certmap`
|
||||||
|
- `sss_cache`
|
||||||
|
- `p11-child`
|
||||||
|
|
||||||
|
Et la configuration PKCS#11 dans SSSD ...
|
||||||
|
|
||||||
|
Références
|
||||||
|
----------
|
||||||
|
|
||||||
|
- [SSSD - Introduction]
|
||||||
|
- [SSSD - Migrating from pam_krb5]
|
||||||
|
- [SSSD - Design / Require Smartcard authentication ]
|
||||||
|
- [RHEL-8 / MANAGING SMART CARD AUTHENTICATION]
|
||||||
|
- [GUI-Login with SSSD managed users fails]
|
||||||
|
|
||||||
|
|
||||||
|
[SSSD - Introduction]: https://sssd.io/docs/introduction.html
|
||||||
#TODO sss-certmap
|
[SSSD - Migrating from pam_krb5]: https://sssd.io/docs/krb/krb-migration.html
|
||||||
#TODO sss_cache
|
|
||||||
#TODO p11-child
|
|
||||||
|
|
||||||
|
|
||||||
https://ask.fedoraproject.org/t/gui-login-with-sssd-managed-users-fails/6606/2
|
|
||||||
|
|
||||||
[SSSD - Design / Require Smartcard authentication ]: https://docs.pagure.org/sssd.sssd/design_pages/smartcard_authentication_require.html
|
[SSSD - Design / Require Smartcard authentication ]: https://docs.pagure.org/sssd.sssd/design_pages/smartcard_authentication_require.html
|
||||||
[RHEL-8 / MANAGING SMART CARD AUTHENTICATION]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/managing_smart_card_authentication/index
|
[RHEL-8 / MANAGING SMART CARD AUTHENTICATION]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/managing_smart_card_authentication/index
|
||||||
|
[GUI-Login with SSSD managed users fails]: (https://ask.fedoraproject.org/t/gui-login-with-sssd-managed-users-fails/6606/2)
|
||||||
|
[smartcard cert mapping offline (AD)](https://lists.fedorahosted.org/archives/list/sssd-users@lists.fedorahosted.org/thread/STBGBEZI6D5A3MKMB26P2FNFLURML5DB/)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user