[resolu] Base ldap corrompue

Mon serveur Yunohost

**Petit pc à la maison ;
** Yunohost 11.0 vers 11.1
** J’ai accès à mon serveur en ssh mais pas via l’interface d’admin ou utilisateur

Description du problème

Je me suis lancé ce matin dans la mise à jour de mon serveur vers la version 11.1, mon serveur fonctionnait correctement. J’avoue ne pas avoir fait tellement attention au bon déroulement de la mise à jour, puis j’ai rebooté … Et là le drame, plus de connexion via l’interface web ni via le ssh.

Comme mon serveur est physiquement accessible, j’ai pu me réouvrir une connexion ssh pour m’apercevoir que le service slapd ne tournait plus.

Voici un petit extrait de /var/log/yunohost/yunohost-api.log :

2023-02-10 10:49:07,732 INFO     yunohost.tools (unknown function) - [294659.19] + Le fichier de configuration '/etc/ldap/ldap.conf' a été supprimé manuellement et ne sera pas créé^M
2023-02-10 10:49:07,732 INFO     yunohost.tools (unknown function) - [294659.19] + Le fichier de configuration '/etc/ldap/schema/sudo.ldif' a été supprimé manuellement et ne sera pas créé^M
2023-02-10 10:49:07,733 INFO     yunohost.tools (unknown function) - [294659.19] + Le fichier de configuration '/etc/ldap/schema/mailserver.ldif' a été supprimé manuellement et ne sera pas créé^M
2023-02-10 10:49:07,733 INFO     yunohost.tools (unknown function) - [294659.19] + Le fichier de configuration '/etc/ldap/schema/permission.ldif' a été supprimé manuellement et ne sera pas créé^M
2023-02-10 10:49:07,815 INFO     yunohost.tools (unknown function) - [294659.19] + La configuration a été mise à jour pour 'metronome'^M
2023-02-10 10:49:07,968 INFO     yunohost.tools (unknown function) - [294659.19] + La configuration a été mise à jour pour 'postfix'^M
2023-02-10 10:49:08,035 INFO     yunohost.tools (unknown function) - [294659.19] + La configuration a été mise à jour pour 'dovecot'^M
2023-02-10 10:49:08,099 INFO     yunohost.tools (unknown function) - [294659.19] + La configuration a été mise à jour pour 'rspamd'^M
2023-02-10 10:49:08,191 INFO     yunohost.tools (unknown function) - [294659.19] + La configuration a été mise à jour pour 'dnsmasq'^M
2023-02-10 10:49:08,301 INFO     yunohost.tools (unknown function) - [294659.19] + La configuration a été mise à jour pour 'fail2ban'^M
2023-02-10 10:49:12,118 WARNING  yunohost.tools (unknown function) - [294659.19] chown: impossible d'accéder à '/etc/ldap/schema/': Aucun fichier ou dossier de ce type
2023-02-10 10:49:13,123 WARNING  yunohost.tools (unknown function) - [294659.19] Échec de l'exécution du script : /usr/share/yunohost/hooks/conf_regen/06-slapd
2023-02-10 10:49:40,753 INFO     yunohost.tools (unknown function) - [294659.19] + Launching migrations...^M
2023-02-10 10:49:41,070 INFO     yunohost.tools (unknown function) - [294659.19] + Exécution de la migration 0026_new_admins_group...^M
2023-02-10 10:49:41,071 DEBUG    geventwebsocket.handler (unknown function) - Failed to write closing frame -> closing socket
2023-02-10 10:49:41,071 DEBUG    geventwebsocket.handler (unknown function) - Closed WebSocket
2023-02-10 10:49:41,071 DEBUG    geventwebsocket.handler (unknown function) - Failed to write closing frame -> closing socket
2023-02-10 10:49:41,071 DEBUG    geventwebsocket.handler (unknown function) - Closed WebSocket
2023-02-10 10:49:41,072 INFO     yunohost.tools (unknown function) - [294659.19] + Création d'une sauvegarde de la base de données LDAP et des paramètres des applications avant la migration proprement dite.^M
2023-02-10 10:49:41,122 WARNING  yunohost.tools (unknown function) - [294659.19] Failed to format translated string 'migration_ldap_can_not_backup_before_migration': 'La sauvegarde du système n'a pas pu être terminée avant l'échec de la migration. Erreur : {error }' with arguments '()' and '{'error': "[Errno 2] No such file or directory: '/etc/ldap'"}, raising error: KeyError('error ') (don't panic this is just a warning)
2023-02-10 10:49:41,144 WARNING  yunohost.tools (unknown function) - [294659.19] Job for slapd.service failed because the control process exited with error code.
2023-02-10 10:49:41,145 WARNING  yunohost.tools (unknown function) - [294659.19] See "systemctl status slapd.service" and "journalctl -xe" for details.
2023-02-10 10:49:41,147 WARNING  yunohost.tools (unknown function) - [294659.19] La migration 0026_new_admins_group a échoué avec l'exception The backup of the system could not be completed before the migration failed. Error: [Errno 2] No such file or directory: '/etc/ldap' : annulation
2023-02-10 10:49:41,151 INFO     yunohost.tools (unknown function) - [294659.19] + L'opération 'Exécuter les migrations' a échoué ! Pour obtenir de l'aide, merci de partager le journal de l'opération en utilisant la commande 'yunohost log share 20230210-094941-tools_migrations_migrate_forward'^M

Là je regarde, effectivement, plus de dossier /etc/ldap. Ne connaissant pas l’architecture de ce dossier, j’ai fait une nouvelle installation de yunohost sur une autre machine et j’ai transféré le dossier de l’une à l’autre. Le service s’est mis à refonctionner mais forcément pas l’authentification via l’interface web …

J’ai fouillé mes backups, j’avais quelque chose vieux de quelques mois seulement, j’ai tenté une restauration mais sans beaucoup plus de succès, je tombe alors sur cette erreur là :

Error: error during LDAP search operation with: base='ou=groups,dc=yunohost,dc=org', filter='(objectclass=groupOfNamesYnh)', attrs=['cn', 'member', 'permission'] and exception {'desc': 'Invalid DN syntax', 'info': 'invalid DN'}

Une petite recherche sur le forum remonte des topics où les gens ont tout réinstallé … Mais j’ai le sentiment de presque avoir de quoi réussir :slight_smile:

Si quelqu’un a une idée, ou des indications, je suis preneur !
Merci !

Bonjour,
j’ai tenté de restaurer une archive ce soir et j’ai quasiment le même problème :

error during LDAP search operation with: base='cn=admin,dc=yunohost,dc=org', filter='(objectClass=*)', attrs={'userPassword'} and exception {'desc': 'No such object', 'matched': 'dc=yunohost,dc=org'}

Et j’avoue ne pas savoir comment faire ^^

Bon j’ai finalement réussi à m’en sortir ! Voici grosso-modo comment j’ai fait.

Avant toute chose, je disposais d’un backup de ma conf ldap, un peu vieux, datant d’avant la migration bullseye mais mes utilisateurs évoluent peu/pas donc ça n’était pas très grave.

Je n’arrivais pas à restaurer l’archive de backup via la cli yunohost, je me suis donc inspiré des commandes de ce script :

https://github.com/YunoHost/yunohost/blob/dev/hooks/restore/05-conf_ldap#L32

systemctl stop slapd

# Restore the configuration
rm -rf /etc/ldap
mkdir -p /etc/ldap/slapd.d
cp -a "${backup_dir}/ldap.conf" /etc/ldap/ldap.conf
# Legacy thing but we need it to force the regen-conf in case of it exist
[ ! -e "${backup_dir}/slapd.conf" ] \
    || cp -a "${backup_dir}/slapd.conf" /etc/ldap/slapd.conf
slapadd -F /etc/ldap/slapd.d -b cn=config \
    -l "${backup_dir}/cn=config.master.ldif" \
    || die 1 "Unable to restore LDAP configuration"
chown -R openldap: /etc/ldap/slapd.d

# Restore the database
rm -rf /var/lib/ldap 
mkdir -p /var/lib/ldap
slapadd -F /etc/ldap/slapd.d -b dc=yunohost,dc=org \
    -l "${backup_dir}/dc=yunohost-dc=org.ldif" \
    || die 2 "Unable to restore LDAP database"
chown -R openldap: /var/lib/ldap

systemctl start slapd

Une fois cette partie faite, il faut encore mettre à jour les mots de passe de tous les utilisateurs :

yunohost user update <username> -p"

Je n’ai qu’une poignées d’utilisateurs, donc ça va, ça n’était pas trop contraignant.
Et là normalement l’identification par le ldap refonctionne.

J’ai ensuite fait tourner le rapport de diagnostic qui m’indique trois erreurs sur ma conf ldap :

root:~# yunohost tools regen-conf slapd --dry-run
Info: The configuration file '/etc/ldap/schema/sudo.ldif' was removed manually, and will not be created
Info: The configuration file '/etc/ldap/schema/mailserver.ldif' was removed manually, and will not be created
Info: The configuration file '/etc/ldap/schema/permission.ldif' was removed manually, and will not be created
slapd: 
  applied: 
  pending: 
    /etc/ldap/schema/mailserver.ldif: 
      status: removed
    /etc/ldap/schema/permission.ldif: 
      status: removed
    /etc/ldap/schema/sudo.ldif: 
      status: removed

Je ne sais pas trop à quoi correspondent ces fichiers manquants, par contre je sais que si j’applique le regen-conf en le forçant à les recréer, mon ldap ne fonctionne plus avec une erreur du type :

Error: error during LDAP search operation with: base='ou=groups,dc=yunohost,dc=org', filter='(objectclass=groupOfNamesYnh)', attrs=['cn', 'member', 'permission'] and exception {'desc': 'Invalid DN syntax', 'info': 'invalid DN'}

Voilà, donc j’ai résolu mon problème, mon serveur est de nouveau fonctionnel, mais je suis pas complètement clair sur tout. Si une âme châritable se sent de m’expliquer !

ok merci, je vais essayer aussi de mon côté

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