Installation d'un serveur de mail Zimbra 8.x sous ubuntu server 16.04 LTS
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 sur https://www.zimbra.com/downloads/zimbra-collaboration-open-source/
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
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
ettrusted_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 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 tout message ayant un score de spam entre 33 et 75% finiront dans la boite spam
des utilisateurs. Les mails ayant un score de spam supérieur à 75% seront refusés (discarded), ne seront donc PAS remis à l’utilisateur, mais seront cependant copié à l'administrateur du serveur Zimbra. Les mails ayant un score de spam inférieur à 33% seront remis à l'utilisateur sans tag.
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 (100% correspond à un score de spam de 20 points).
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
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
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 les informations du serveur, utilisez getserver (ou gs) :
zmprov getserver `zmhostname` VALEUR
Pour modifier les informations du serveur: utilisez modifyserver (ou ms)
Pour les valeurs globale, de même avec gacf
et mcf
É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
Mise a jour de sécurité de zimbra
télécharger le .tgz, l'extraire, puis lancer le ./install.sh