Petit article mémo pour un bug / problème bien chiant à régler, à savoir celui apparaissant dans l’administration du serveur sur la partie “file d’attente”
Menu latéral => Moniteur => Files d’attente
Le message d’erreur :
Mail : system failure: exception during auth {RemoteManager: zimbra.monnomdedomaine.fr->zimbra@zimbra.monnomdedomaine.fr:22} Code d’erreur : service.FAILURE Method: [unknown] Détails :soap:Receiver
Traduction de ce message, l’administration utilise un protocol d’accès aux stats / information en ce connectant en ssh sur l’utilisateur “zimbra”
La connexion échoue, généralement soit par un soucis de réglage, soit par un problème d’autorisation, soit un soucis de droits de fichier ou encore un soucis d’OS.
Cette page du wiki officiel permet de déboguer =>
https://wiki.zimbra.com/wiki/Mail_Queue_Monitoring
Pour ma part voici ma routine de débogage pour ce soucis :
Vérifier que la connexion fonctionne, pour ce faire on ce connecte sur l’utilisateur zimbra, on va bien dans le dossier adéquat (parfois on n’est pas dans le bon dossier et donc le fichier zimbra_identity n’est pas trouvé) et on utilise la commande ssh en mode bavarde (l’option v) et sur le bon port (pour ceux qui change le port ssh comme moi) :
erreur si on est pas dans le dossier /opt/zimbra avec l’utilisateur zimbra
Warning: Identity file .ssh/zimbra_identity not accessible: Permission denied.
Donc voici comment procéder correctement :
# su zimbra # cd /opt/zimbra # ssh -p 22 -vi .ssh/zimbra_identity -o strictHostKeyChecking=no zimbra@mondehost.fr
Attention on saisie “zimbra@nomdehost.fr” c’est à dire le nom du serveur mail et non pas le nom de domaine.
Voici l’output de ma commande :
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug1: Connecting to nomdehost.fr [168.168.168.168] port 22. debug1: Connection established. debug1: identity file .ssh/zimbra_identity type 1 debug1: identity file .ssh/zimbra_identity-cert type -1 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.11 debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.11 debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.11 pat OpenSSH_6.6.1* compat 0x04000000 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<3072<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Server host key: xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx debug1: checking without port identifier debug1: Host 'nomdehost.fr' is known and matches the ED25519 host key. debug1: Found key in /opt/zimbra/.ssh/known_hosts:1 debug1: found matching key w/out port debug1: ssh_ed25519_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey,password debug1: Next authentication method: publickey debug1: Offering RSA public key: .ssh/zimbra_identity debug1: Server accepts key: pkalg ssh-rsa blen 279 debug1: key_parse_private2: missing begin marker debug1: read PEM private key done: type RSA debug1: Authentication succeeded (publickey). Authenticated to nomdehost.fr ([168.168.168.168]:22). debug1: channel 0: new [client-session] debug1: Requesting no-more-sessions@openssh.com debug1: Entering interactive session. debug1: Remote: Forced command. debug1: Remote: Forced command. debug1: Sending environment. debug1: Sending env LANG = fr_FR.UTF-8
Si les infos défile et reste sur une ligne en attente c’est bien que la connexion est reconnue et que tout est ok en principe.
Attention pour les utilisateurs changeant le port SSH par défaut, voici la commande à lancer un utilisateur zimbra :
# su zimbra # zmprov ms `zmhostname` zimbraRemoteManagementPort 2213
Parfois la connexion nécessite un mot de passe, c’est qu’il y à un soucis avec l’authentification de l’utilisateur zimbra.
Il est alors important de vérifiez que la clé publique mise dans le fichier /opt/zimbra/.ssh/authorized_keys soit la bonne.
Pour cette vérification :
Affichez le fichier /opt/zimbra/.ssh/zimbra_identity.pub
# cat /opt/zimbra/.ssh/zimbra_identity.pub
Comparer dans le fichier /opt/zimbra/.ssh/authorized_keys a la suite de :
command=”/opt/zimbra/libexec/zmrcd”
# cat /opt/zimbra/.ssh/authorized_keys
Si les clefs ne correspondent pas il suffit de régénérer une nouvelle clef :
# zmcontrol stop # zmsshkeygen Generating public/private rsa key pair. Your identification has been saved in /opt/zimbra/.ssh/zimbra_identity. Your public key has been saved in /opt/zimbra/.ssh/zimbra_identity.pub. The key fingerprint is: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx nomdehost.fr The key's randomart image is: +--[ RSA 2048]----+ | . +.. | | o + o o | | o. o + . | | * o * o | | + . o + o . | | . + . o + | | + . o | | o . . o | | S . S | +-----------------+ # zmupdateauthkeys Updating keys for nomdehost.fr Fetching key for nomdehost.fr Updating keys for nomdehost.fr Updating /opt/zimbra/.ssh/authorized_keys # zmcontrol restart
En principe la file d’attente devrait être de nouveau accessible 🙂
On peut aussi rencontrer un soucis de droits de fichiers de ce genre :
# ssh -p 22 -vi .ssh/zimbra_identity -o strictHostKeyChecking=no zimbra@mondehost.fr @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0777 for 'zimbra_identity' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: zimbra_identity
Pour régler le soucis, il suffit de bien remettre les droits de fichiers sur zimbra_identity.
On peut tenter la commande suivante en root :
# sudo /opt/zimbra/libexec/zmfixperms --verbose --extended
Si ce n’est toujours pas bon voici les bons droits à appliquer sur chaques fichiers :
# chown -R zimbra:zimbra /opt/zimbra/.ssh # chmod 644 /opt/zimbra/.ssh/authorized_keys # chmod 644 /opt/zimbra/.ssh/known_hosts # chmod 600 /opt/zimbra/.ssh/zimbra_identity # chmod 640 /opt/zimbra/.ssh/zimbra_identity.pub