Installation d'un serveur de mail Zimbra 8.x sous ubuntu server 16.04 LTS

De Linux Server Wiki
Aller à la navigation Aller à la recherche


Préparation

Vous pouvez supprimer quelques paquets inutiles :

apt-get install aptitude
aptitude remove ubuntu-server
aptitude purge open-iscsi mdadm lvm2
aptitude purge lxcfs lxc-common lxd liblxc1
aptitude remove snapd

Puis configurez correctement l'hostname de votre serveur dans /etc/hosts

185.112.24.150          ark.unscdf.org  ark
2001:21c1:3:123d::150   ark.unscdf.org  ark
echo ark > /etc/hostname

Il faut aussi que votre serveur résolve correctement les noms de domaine donc vérifiez votre configuration dans /etc/resolv.conf

Installation

Téléchargez la dernière version de Zimbra 8 pour ubuntu.

Vous pouvez trouver les liens de téléchargement sur :

Extrayez l'archive et lancez l'installeur :

./install.sh

Installez tous les composants sauf dnscache et snmp, sauf si vous souhaitez les utiliser évidemment.

L'installation est assez triviale.
Lors de la configuration, la seule obligation est de définir le mot-de-passe de l'utilisateur admin de zimbra.
Si vous souhaitez que zimbra fonctionne en ipv4 et ipv6, pensez à passer le mode ip à both.

Pour certaines fonctions de management, Zimbra a besoin de pouvoir se connecter en ssh (avec une clé privé). Si vous utilisez des directives openssh limitant l'accès ssh (allowusers par exemple), vous devez les adapter afin de permettre les connexions ssh à l'utilisateur Zimbra.

Une fois l'installation terminée, la console d'administration est accessible en HTTPs sur le port 7071

Certificat SSL avec LetsEncrypt

Initialisation

Le client certbot de LetsEncrypt fourni son propre dépôt pour ubuntu. Nous allons l'utiliser pour installer le client :

apt-get install software-properties-common
add-apt-repository ppa:certbot/certbot
apt-get update
apt-get install certbot 

Certificat pour le domaine principal

Commencez par arrêter zimbra. Cela est nécessaire car le client certbot doit pouvoir accéder aux ports 80 et 443 afin de valider que vous possédez bien les domaines pour lesquels vous allez demander un certificat :

/etc/init.d/zimbra stop

Lancez le client en mode standalone et en spécifiant les domaines/sous-domaines devant figurer dans le certificat avec un ou plusieurs argument -d :

certbot certonly --standalone -d ark.unscdf.org -d mail.unscdf.org -d ark.csnu.org -d mail.csnu.org

Wildcard / plus addressing

su - zimbra
zmprov mcf zimbraMtaRecipientDelimiter +
zmmtactl restart

Pour vérifier :

postconf recipient_delimiter

http://wiki.zimbra.com/wiki/Plus_Addressing

Ajout de décodeurs pour amavis

Amavis a besoin de quelques programmes extérieurs afin d'extraire certains type de fichier et les analyser :

aptitude install rar lzop binutils lrzip arj arc cabextract zoo p7zip-full ripole

Configuration de spamassassin

Par défaut, Zimbra initialise la valeur trusted_networks de spamassassin au contenu de la valeur zimbraMtaMyNetworks de la configuration de Zimbra. La valeur internal_networks de spamassassin n'est pas utilisé.

De manière globale retenez la chose suivante :

  • tous les serveurs MX de vos domaines et tous les relais smtp interne doivent être listés dans internal_networks et trusted_networks
  • les serveurs sûre (dont vous êtes certain qu'ils ne sont pas l'origine de spam) mais n'étant pas MX ou relay smtp interne de vos domaines doivent être listés uniquement dans trusted_networks

Il faut donc, a minima, ajouter vos serveurs MX à la directive zimbraMtaMyNetworks
Commencez par obtenir la liste des serveurs actuellement configuré :

su - zimbra
zmprov gs `zmhostname` zimbraMtaMyNetworks

Copiez-collez cette liste et ajoutez y les adresses IPs de vos MX secondaires avec zmprov gs :

su - zimbra
zmprov ms `zmhostname` zimbraMtaMyNetworks "Liste_des_serveurs_séparé_par_des_espaces"

Ajout de internal_networks

Vous pouvez éventuellement modifier Zimbra afin qu'il ajoute la directive manquante internal_networks à spamassassin. Pour cela, ouvrez le fichier /opt/zimbra/conf/salocal.cf.in, repérez la ligne %%uncomment VAR:zimbraMtaMyNetworks%%trusted_networks %%zimbraMtaMyNetworks%% et ajoutez juste après :

%%uncomment VAR:zimbraMtaMyNetworks%%internal_networks %%zimbraMtaMyNetworks%%

Puis relancez :

su - zimbra
zmmtactl restart && zmamavisdctl restart

Vous pourrez voir votre directive apparaitre dans /opt/zimbra/data/spamassassin/localrules/salocal.cf

Notez que cette modification ne survivra pas à une mise à jour de zimbra

Ajout de règles personnalisées

Vous pouvez créer le fichier /opt/zimbra/data/spamassassin/localrules/sauser.cf et le faire appartenir à l'utilisateur zimbra et au groupe zimbra.

Configuration de la destination des mails tagués comme SPAM

Dans la console d'administration, allez dans configurer puis paramètres globaux et enfin AS/AV. Les deux éléments intéressants sont Pourcentage de spam supprimés et Pourcentage de tags

Ces variables sont configurés par défaut à 75% et 33%, ce qui signifie que qu'un message :

  • Ayant un score de spam entre 33 et 75% finira dans la boite spam des utilisateurs.
  • Ayant un score de spam supérieur à 75% sera refusé (discarded), ne seront donc PAS remis à l’utilisateur, mais seront cependant copié à l'administrateur du serveur Zimbra.
  • Ayant un score de spam inférieur à 33% sera remis à l'utilisateur dans sa boite de réception.

Ces pourcentages sont relatifs au score de spam défini par spamassassin :

  • 100% correspond à un score spamassassin de 20 points
  • 75% à un score de 15 points
  • 33% à un score de 6.6 points

Vous pouvez augmenter la valeur de Pourcentage de spam supprimés jusqu'à 100% pour diminuer le nombre de message refusé pour cause de spam (ils seront alors délivrés dans la boite spam des utilisateurs).
Si vous jugez que trop de spam finissent dans la boite de réception de votre utilisateur, abaissez Pourcentage de tags de quelques pourcents.


Je vous conseil par ailleurs de décocher la case Bloquer les fichiers attachés qui sont des archives cryptées
Notez que les mails contenant un virus sont automatiquement refusés, transférés dans une boite de quarantaine, et les utilisateurs sont notifiés qu'ils ont reçu un mail contenant un virus.


Une autre manière de forcer les spams à aller dans la boite des utilisateurs est de modifier la valeur zimbraAmavisFinalSpamDestiny de D_DISCARD à D_PASS

zmprov ms `zmhostname` zimbraAmavisFinalSpamDestiny D_PASS

Après toute modification, relancez amavisd:

su - zimbra ; zmamavisdctl restart

Cela va modifier le final_spam_destiny de /opt/zimbra/conf/amavisd.conf lui même basé sur le fichier .in correspondant.

Après toute modification, relancez amavisd:

su - zimbra ; zmamavisdctl restart

Zimbra derrière un firewall

http://wiki.zimbra.com/wiki/Firewall_Configuration
https://wiki.zimbra.com/wiki/Ports

Signatures antivirus supplémentaires

Ajouter des signatures ClamAV dans zimbra 8.8

Modification en ligne de commande

Il faut vous loguer en tant que l'utilisateur zimbra :

 su - zimbra

Puis utiliser zmprov. Par exemple, pour récupérer une des ligne de configuration du serveur, utilisez getserver :

zmprov getserver `zmhostname` VALEUR

Pour modifier les informations du serveur: utilisez modifyserver (ou ms)

Éléments d'intérêt

  • zmprov gs `zmhostname` zimbraMtaMyNetworks : a modifier si vous ajoutez/supprimez des IPs à votre serveur mail ou des MXs secondaires

Liste des commandes

  • Configuration globale
    • getAllConfig
    • getConfig {attribut}
    • modifyConfig {attribut valeur}
  • Configuration du serveur
    • getAllServers
    • getServer {server}
    • modifyServer {server} [attribut valeur]
  • Configuration des domaines
    • getAllDomains
    • getDomain {domain|id}
    • modifyDomain {domain|id} [attribut valeur]
  • Configurations des comptes
    • getAllAccounts
    • getAccount {compte}
    • modifyAccount {compte} [attribut valeur]
  • Pour une liste complète : [1]

Mise a jour

Mise à jour de sécurité

Depuis Zimbra 8.8.9, les patchs de sécurité sont directement déployés via un dépot apt donc un simple aptitude upgrade téléchargera et installera la mise à jour. S'il faut relancer un service, vous en serez informé lors de l'installation.

Mise à jour de zimbra

télécharger le .tgz, l'extraire, puis lancer le ./install.sh

Admin

Admin: accéder à un mail contenant un virus

Loguer vous sur la console d'administration. Sélectionnez le compte mail utilisé par zimbra pour centraliser les virus (choisi ou défini automatiquement lors de l'installation). Clique droit > view mails.
Vous pouvez aussi chercher le compte en tapant "virus" dans la barre de recherche.
https://wiki.zimbra.com/wiki/Restore-Quarantined-Emails

Migration

L'API REST étant bugué, il est recommandé de ne pas utiliser cette API et tous les outils s'y référant (Bug 101760)

Le meilleur moyen de migrer les mails de zimbra est actuellement l'usage de l'outil imapsync

Synchronisation des mails avec imapsync

imapsync --host1 serveur_source.domain.tld --tls1 --user1 vous@domain.tld --password1 pass_sur_serveur_source \
  --host2 serveur_destination.domain.tld --tls2 --user2 vous@domain.tld --password2 pass_sur_serveur_destination

Réutiliser les mots-de-passe d'une ancienne installation zimbra

Pour récupérer le password (en fait la somme sha512 du password) d'un utilisateur :

zmprov -l ga user@domain.com | grep userPassword

Ensuite, vous pouvez définir ce même password sur votre nouvelle installation zimbra :

zmprov ma user@domain.com userPassword '{SSHA512}2UIGhfdzdh546hZmphT1hT7...'