Impossible de se connecter à yunohost après mise à jour 3.7.1.1

Bonjour à tous,

Tout d’abord, merci pour Yunohost, que j’utilise depuis plusieurs années. Vous faites un super boulot.

Mon serveur YunoHost

Matériel: VPS acheté en ligne
Version de YunoHost: 3.7.1.1
J’ai accès à mon serveur : En SSH uniquement (via un compte dédié)
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : oui
Si oui, expliquer: métronome supprimé, modification des config nginx, postfix et dovecot pour restreindre les suites TLS utilisées

Description du problème

Après une mise à jour hier soir, impossible de me connecter à mon instance, ni en tant qu’utilisateur, ni via la webgui d’aministration.

Après quelques vérifications, il s’avère que slapd ne tourne pas, et réfuse de démarrer lorsque je fais un service slapd start.

J’ai essayé de réappliquer la mise à jour, et c’est là que j’ai vu des messages d’erreurs :

$ sudo apt install yunohost --reinstall
sudo: ldap_sasl_bind_s(): Can't contact LDAP server
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Le paquet suivant a été installé automatiquement et n'est plus nécessaire :
  etckeeper
Veuillez utiliser « sudo apt autoremove » pour le supprimer.
0 mis à jour, 0 nouvellement installés, 1 réinstallés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 0 o/802 ko dans les archives.
Après cette opération, 0 o d'espace disque supplémentaires seront utilisés.
(Lecture de la base de données... 82111 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../yunohost_3.7.1.1_all.deb ...
Dépaquetage de yunohost (3.7.1.1) sur (3.7.1.1) ...
Paramétrage de yunohost (3.7.1.1) ...
Regenerating configuration, this might take a while...
Attention : Exception AttributeError: "'Authenticator' object has no attribute 'con'" in <bound method Authenticator.__del__ of <moulinette.authenticators.ldap.Authenticator object at 0x7fc1fd7a7950>> ignored
Erreur : Échec de l’exécution du script : /usr/share/yunohost/hooks/conf_regen/12-metronome
Attention : Exception AttributeError: "'Authenticator' object has no attribute 'con'" in <bound method Authenticator.__del__ of <moulinette.authenticators.ldap.Authenticator object at 0x7f15b8400950>> ignored
Erreur : Échec de l’exécution du script : /usr/share/yunohost/hooks/conf_regen/15-nginx
Attention : Exception AttributeError: "'Authenticator' object has no attribute 'con'" in <bound method Authenticator.__del__ of <moulinette.authenticators.ldap.Authenticator object at 0x7febc6621950>> ignored
Attention : Exception AttributeError: "'Authenticator' object has no attribute 'con'" in <bound method Authenticator.__del__ of <moulinette.authenticators.ldap.Authenticator object at 0x7fbfc6991950>> ignored
Erreur : Échec de l’exécution du script : /usr/share/yunohost/hooks/conf_regen/43-dnsmasq
Attention : Le fichier de configuration '/etc/nslcd.conf' a été modifié manuellement et ne sera pas mis à jour
Attention : Le fichier de configuration '/etc/postfix/main.cf' a été modifié manuellement et ne sera pas mis à jour
Attention : Le fichier de configuration '/etc/fail2ban/jail.conf' a été modifié manuellement et ne sera pas mis à jour
Attention : Le fichier de configuration '/etc/dovecot/dovecot.conf' a été modifié manuellement et ne sera pas mis à jour
Attention : Exception AttributeError: "'Authenticator' object has no attribute 'con'" in <bound method Authenticator.__del__ of <moulinette.authenticators.ldap.Authenticator object at 0x7fa666afa950>> ignored
Erreur : Échec de l’exécution du script : /usr/share/yunohost/hooks/conf_regen/31-rspamd
Launching migrations..
Info : Exécution de la migration 0011_setup_group_permission…
Info : Création d'une sauvegarde des paramètres de la base de données LDAP et des applications avant la migration.
Job for slapd.service failed because the control process exited with error code.
See "systemctl status slapd.service" and "journalctl -xe" for details.
Info : Mise à jour du schéma LDAP…
Info : Mise à jour de la base de données LDAP…
Attention : La migration a échouée… Tentative de restauration du système.
Job for slapd.service failed because the control process exited with error code.
See "systemctl status slapd.service" and "journalctl -xe" for details.
Info : Système restauré.
Erreur : La migration 0011_setup_group_permission a échoué avec l’exception Impossible d’atteindre le serveur LDAP : annulation
Info : L’opération 'Éxecuter les migrations' a échouée ! Pour obtenir de l’aide, merci de partager le journal de l'opération en utilisant la commande 'yunohost log display 20200421-203500-tools_migrations_migrate_forward --share'
Exception AttributeError: "'Authenticator' object has no attribute 'con'" in <bound method Authenticator.__del__ of <moulinette.authenticators.ldap.Authenticator object at 0x7f4bbfa4a1d0>> ignored
Restarting YunoHost firewall...
Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u12) ...
Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ...

Quand j’essaie de lancer slapd, j’ai les logs suivants :

Starting LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol)...
-- Subject: L'unité (unit) slapd.service a commencé à démarrer
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- L'unité (unit) slapd.service a commencé à démarrer.
avril 21 22:38:38 xxx slapd[5856]: @(#) $OpenLDAP: slapd  (Aug 10 2019 19:17:00) $
                                                         Debian OpenLDAP Maintainers <pkg-openldap-devel@lists.alioth.debian.org>
avril 21 22:38:38 xxx slapd[5856]: main: TLS init def ctx failed: -1
avril 21 22:38:38 xxx slapd[5856]: DIGEST-MD5 common mech free
avril 21 22:38:38 xxx slapd[5856]: DIGEST-MD5 common mech free
avril 21 22:38:38 xxx slapd[5856]: slapd stopped.
avril 21 22:38:38 xxx slapd[5856]: connections_destroy: nothing to destroy.
avril 21 22:38:38 xxx slapd[5851]: Starting OpenLDAP: slapd failed!
avril 21 22:38:38 xxx sudo[5827]: pam_unix(sudo:session): session closed for user root
avril 21 22:38:38 xxx systemd[1]: slapd.service: Control process exited, code=exited status=1
avril 21 22:38:38 xxx systemd[1]: Failed to start LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol
-- Subject: L'unité (unit) slapd.service a échoué
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- L'unité (unit) slapd.service a échoué, avec le résultat failed.
avril 21 22:38:38 xxx systemd[1]: slapd.service: Unit entered failed state.
avril 21 22:38:38 xxx systemd[1]: slapd.service: Failed with result 'exit-code'.

Là, je suis un peu sec et ne sais plus quoi faire : je ne connais pas du tout slapd.
Merci d’avance pour votre aide.

D’après les logs, les erreurs ont l’air d’être liées à la configuration du TLS. Après un petit grep, j’ai remarqué les lignes suivantes dans /etc/lapd/slapd.conf:

# TLS Support
TLSCertificateFile /etc/yunohost/certs/yunohost.org/crt.pem
TLSCertificateKeyFile /etc/yunohost/certs/yunohost.org/key.pem

J’ai remplacé yunohost.org dans les lignes ci-dessus par mon nom de domaine (ce qui me donne les clés letsencrypt) mais le résultat est le même.

Toujours concernant le TLS, il existe la ligne suivante dans /etc/ldap/ldap.conf :

TLS_CACERT	/etc/ssl/certs/ca-certificates.crt

Je ne sais pas si c’est lié à mon problème, et n’ose pas y toucher.

C’est effectivement probablement lié à ces lignes

  • je garderais les lignes d’origine sinon la regen-conf va voir que tu as modifié le fichier manuellement
  • Il faut t’assurer que le groupe ssl-cert aient les permissions de lire les fichiers correspondants … Normalement c’est fait ici mais sur les vieux setups, peut-être que les choses sont un peu différents …
  • Du coup je regarderais les permissions avec :
ls -ld /etc/yunohost/certs
ls -ld /etc/yunohost/certs/yunohost.org
ls -l /etc/yunohost/certs/yunohost.org/{key.pem,crt.pem}

Merci pour ta réponse @Aleks.

Voici les sorties des commandes demandées :

$ ls -ld /etc/yunohost/certs/
drwxr-xr-x 5 root root 4096 avril 18 06:25 /etc/yunohost/certs/
$ ls -ld /etc/yunohost/certs/yunohost.org/
drwxr-x--- 2 root ssl-cert 4096 juin  19  2018 /etc/yunohost/certs/yunohost.org/
$ sudo ls -l /etc/yunohost/certs/yunohost.org/
sudo: ldap_sasl_bind_s(): Can't contact LDAP server
total 0
lrwxrwxrwx 1 root ssl-cert 36 juin  19  2018 ca.pem -> /etc/ssl/certs/ld77.eu/fullchain.pem

Comme tu peux le voir, je n’ai pas de fichier key.pem ni crt.pem dans /etc/yunohost/certs/yunohost.org/. Dois-je faire un lien vers ceux dans /etc/yunohost/certs/<main-domain> ?
Ou bien faut-il que je les génère (et comment) ?

Hmbon je pense qu’on peut tenter un :

bash /usr/share/yunohost/hooks/conf_regen/02-ssl init

Yep !
Après cette commande, j’ai pu relancer slapd, et je peux à nouveau me connecter à mon instance.

Cependant, j’ai encore quelques problèmes :

  • je ne peux pas accéder à ttrs ni rainloop (OK pour NextCloud) EDIT : je précise que lorsuqe j’essaie d’accéder à ces applis, je suis rediriger vers la page principale de mon instance;
  • dans l’interface d’admin, lorsque j’essaie d’accéder à un utilisateur en particulier, j’obtiens l’erreur suivante : error during LDAP search operation with: base='ou=permission,dc=yunohost,dc=org', filter='(objectclass=permissionYnh)', attrs=['cn', 'groupPermission', 'inheritPermission', 'URL'] and exception {'matched': 'dc=yunohost,dc=org', 'desc': 'No such object'}

Et j’ai une autre question : dois-je garder le répertoire /etc/yunohost/certs/<main-domain> ou bien est-il remplacé par /etc/yunohost/certs/yunohost.org ?

A mon avis il faut que tu re-fasse tourner la migration LDAP qui a échoué … Va dans “Outils > Migrations” et lance la migration qui devrait être en attente

Ce sont deux répertoires différents, il faut les garder

Effectivement, ça corrige les problèmes.
Merci beaucoup.

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.