Scénario #29695
Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASL
100%
Description
Solutions à mettre en œuvre¶
- valider le fonctionnement de SASL en 2.8 (cf. #28777#note-5 et/ou #29092#note-1)
- intégrer les modifications nécessaires
- nouveau paquet eole-saslauthd
- autres dépôts (eole-ad, ...)
- modifier le script changepasswordeole.pl en conséquence
- réfléchir aux possibilités de migration depuis EOLE 2.7
Critères d'acceptation¶
- l'annuaire AD est bien la référence pour les mots de passe
- tests Jenkins Scribe 2.8.0 passants
Points d'attention¶
- dans les tests (Jenkins/Squash), le mot de passe "admin" n'est plus "eole" mais "Eole&12345"
Subtasks
Related issues
Associated revisions
Skeletorisation du dépôt eole-saslauthd
Ref: #29695
Packaging for eole-saslauthd
Ref: #29695
Don't re-ask admin password at instance
Ref: #29695
History
#1 Updated by Joël Cuissinat over 3 years ago
- Related to Anomalie #2877: lightsquid : message peu clair added
#2 Updated by Joël Cuissinat over 3 years ago
- Related to deleted (Anomalie #2877: lightsquid : message peu clair)
#3 Updated by Joël Cuissinat over 3 years ago
- Related to Scénario #28777: Étudier la délégation d'authentification OpenLDAP (Pass-Trough) avec SASL added
#4 Updated by Joël Cuissinat over 3 years ago
- Description updated (diff)
- Due date set to 04/30/2020
- Target version set to Prestation Cadoles MEN 16-18
- Start date set to 04/14/2020
#5 Updated by Joël Cuissinat over 3 years ago
- Description updated (diff)
#6 Updated by Joël Cuissinat over 3 years ago
- Description updated (diff)
#7 Updated by Joël Cuissinat over 3 years ago
- Project changed from Distribution EOLE to eole-saslauthd
#8 Updated by Joël Cuissinat over 3 years ago
- Description updated (diff)
#9 Updated by Joël Cuissinat over 3 years ago
- Story points changed from 8.0 to 7.0
#10 Updated by Joël Cuissinat over 3 years ago
- Description updated (diff)
#11 Updated by Benjamin Bohard over 3 years ago
- Assigned To set to Benjamin Bohard
#12 Updated by Joël Cuissinat over 3 years ago
- Related to Tâche #29930: Validation du scénario Scribe 2.8 devrait proposer nativement la délégation d'authentification OpenLDAP avec SASL added
#13 Updated by Benjamin Bohard over 3 years ago
Parmi les éléments de configuration apportés dans le scénario https://dev-eole.ac-dijon.fr/issues/28777#note-5, certains impliquent des choix d’implémentation.
Configuration apparmor¶
Le paquet slapd créé, en postinst, le fichier vide /etc/apparmor.d/local/usr.sbin.slapd. Ce fichier doit être modifié, écrasé, par creole. Le contenu de ce fichier dépendra des options activées. Je vois deux options d’implémentation.
Inclusion au moment du templating¶
Le template apporté par eole-annuaire servirait à inclure les fragments apportés par d’autres paquets (en l’occurrence eole-saslauthd) :
# local usr.sbin.slapd apparmor configuration generated by creole. %import os %import re %set %%slapd_re = re.compile(r'.*usr\.sbin\.slapd.*') %set %%confdir = '/etc/eole/apparmor.local.d/' %set %%files = [f for f in %%os.listdir(%%confdir) if %%slapd_re.match(f)] %%files.sort() %for file in %%files %include raw %%confdir + file %end forCela suppose deux choses :
- création du répertoire accueillant les fragments (vraisemblablement dans le packaging d’eole-server, en ajoutant ce répertoire à eole-server.dirs) ;
- chaque paquet apportant un fragment doit se conformer un un nom de fichier spécifique.
Conditions d’inclusion dans le template¶
À chaque ajout de composant, il faut ajouter une condition dans le template apporté par le projet eole-annuaire.
Compte utilisé pour la recherche de DN dans l’annuaire¶
Le compte indiqué dans la configuration de saslauthd n’est utilisé que pour faire l’équivalent d’un ldapsearch. Il ne semble pas judicieux d’utiliser le compte Administrator pour cela étant donné la problématique du mot de passe accessible.
Un compte dédié peut être créé et un système de renouvellement automatisé de son mot de passe, à l’instar de ce qui se fait pour les bases de données, pourrait être un plus (le compte est uniquement utilisé localement et on n’a pas d’impératif de propagation comme ça peut être le cas pour les comptes utilisés par veyon et autres utilitaires sur les clients).
#14 Updated by Daniel Dehennin over 3 years ago
Gestion du compte d’authentification¶
Dans le cadre d’utilisation de saslauthd
avec LDAP
, il serait très intéressant d’avoir un compte dédié.
Une autre option est de configurer saslauthd
pour faire une authentification kerberos5
et non pas LDAP
, dans ce cas, il ne faut que le keytab de la machine.
J’ai testé sur un etb1.scribe
- Installation du paquet
apt install sasl2-bin
- Configuration du service (contrairement à la méthode
LDAP
il n’y a pas l’option-r
)sed -i -e 's,^START=.*,START=yes,' \ -e 's,^MECHANISMS=.*,MECHANISMS="kerberos5",' \ /etc/default/saslauthd
- Forcer la route vers
addc.dompedago.etb1.lan
car la communicationscribe
→addc
ne fonctionne pas directementip route add $(CreoleGet ad_public_address) via $(CreoleGet ad_address)
- Configurer les méthodes kerberos pour Samba
sed -i '/security = ADS/a \\tkerberos method = secrets and keytab' /etc/samba/smb.conf
- Extraire le ketab machine
KRB5_KTNAME=FILE:/etc/krb5.keytab net ads keytab create -P
- Démarrer le service
saslauthd
systemctl start saslauthd.service
- Tester l’authentification avec
testsaslauthd
testsaslauthd -u admin@DOMPEDAGO.ETB1.LAN -p eole 0: OK "Success."
- Adapter la configuration OpenLDAP
- Configuration SASL
cat > /etc/ldap/sasl2/slapd.conf <<EOF pwcheck_method: saslauthd saslauthd_path: /var/run/saslauthd/mux EOF
- L’utilisateur
openldap
doit faire partie du groupesasl
adduser openldap sasl
- Configurer apparmor pour l’accès
slapd
au socketsaslauthd
cat > /etc/apparmor.d/local/usr.sbin.slapd <<EOF /{,var/}run/saslauthd/mux rw, EOF
- Redémarrer le service
apparmor
systemctl restart apparmor.service
- Redémarrer le service
slapd
systemctl restart slapd.service
- Modifier le mot de passe du compte
admin
(attention, les majuscules pour leREALM
sont indispensables)cat > admin.ldif <<EOF dn: uid=admin,ou=local,ou=personnels,ou=utilisateurs,ou=00000001,ou=ac-test,ou=education,o=gouv,c=fr changetype: modify replace: userPassword userPassword: {SASL}admin@DOMPEDAGO.ETB1.LAN - EOF
- Tester l’authentification en affichant le champs mot de passe
ldapsearch -LLL -x -D uid=admin,ou=local,ou=personnels,ou=utilisateurs,ou=00000001,ou=ac-test,ou=education,o=gouv,c=fr -w eole '(uid=admin)' userPassword | awk '/^userPassword/ {print $2}' | base64 -d; echo
- Configuration SASL
Conclusion personnelle¶
- La délégation SASL par kerberos me semble plus facile à gérer pour les machines membres du domaine Active Directory grâce à l’utilisation du keytab de la machine
- Il faut ajouter un script
postservice
pour tenir le fichier/etc/krb5.keytab
à jour - Pour Scribe, en plus de la configuration spécifique SASL, il faut :
- Forcer la route vers le conteneur
addc
pour passer par le bridge (la commandenet ads keytab create
fait une résolution DNS et ne tient pas compte de/etc/hosts
)
- Forcer la route vers le conteneur
#15 Updated by Joël Cuissinat over 3 years ago
- Precedes Scénario #30079: Affiner la mise en place de la délégation d'authentification sur Scribe 2.8.0 added
#16 Updated by Joël Cuissinat over 3 years ago
=> les éléments laissés en suspend sont repris dans le nouveau scénario : #30106
#17 Updated by Joël Cuissinat over 3 years ago
- Related to Scénario #30106: Implémenter la délégation d'authentification sur Scribe 2.8.0 avec un AD distant added
#18 Updated by Joël Cuissinat over 3 years ago
- Status changed from Nouveau to Terminé (Sprint)
#19 Updated by Daniel Dehennin over 3 years ago
- Related to Scénario #30168: Gérer les comptes de service samba et leurs mots de passe Automatiquement added
#20 Updated by Daniel Dehennin almost 3 years ago
- Related to Scénario #31221: Implémenter le changement de mot de passe dans LemonLDAP::NG added