« Installation d'un serveur de mail Zimbra 8.x sous ubuntu server 16.04 LTS » : différence entre les versions

Aller à la navigation Aller à la recherche
Aucun résumé des modifications
(30 versions intermédiaires par le même utilisateur non affichées)
Ligne 16 : Ligne 16 :
Puis configurez correctement l'hostname de votre serveur dans <code>/etc/hosts</code>
Puis configurez correctement l'hostname de votre serveur dans <code>/etc/hosts</code>
<pre>
<pre>
185.112.24.150          ark.unscdf.org ark
185.112.24.150          srvmail.domain.tld srvmail
2001:21c1:3:123d::150  ark.unscdf.org ark
2001:21c1:3:123d::150  srvmail.domain.tld srvmail
</pre>
</pre>


Ligne 47 : Ligne 47 :


Une  fois l'installation terminée, la console d'administration est accessible en HTTPs sur le port 7071
Une  fois l'installation terminée, la console d'administration est accessible en HTTPs sur le port 7071
=Certificat SSL via une CA=
Les fichiers nécessaires au déploiement du certificat ssl dans zimbra sont les suivants :
* <code>root_ca.pem</code> : le certificat root
* <code>int_ca.pem</code> : le certificat de l'autorité intermédiaire ayant déployé le certificat zimbra
* <code>zimbra.pem</code> : le certificat zimbra généré par la CA intermédiaire
* <code>zimbra.key</code> : la clé privé zimbra généré par la CA intermédiaire
Nous allons maintenant déployer le certificat ssl dans zimbra.<br />
Pour commencer, créez le fichier <code>ca_chain.pem</code> contenant la chaine de certification complète :
<pre>
cat root_ca.pem int_ca.pem > ca_chain.pem
</pre>
Déplacez la clé privée :
<pre>
mv zimbra.key /opt/zimbra/ssl/zimbra/commercial/commercial.key
</pre>
Vous pouvez vérifier que vos certificats sont valides avec <code>zmcertmgr</code> via l'utilisateur zimbra (<code>su - zimbra</code>) :
<pre>
/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key zimbra.pem ca_chain.pem
</pre>
Puis déployez le certificat dans zimbra avec <code>zmcertmgr</code> :
<pre>
/opt/zimbra/bin/zmcertmgr deploycrt comm zimbra.pem ca_chain.pem
</pre>
Enfin, ajoutez manuellement les certificats dans la base de donnée de java (le password est <code>changeit</code> par défaut) :
<pre>keytool -keystore /opt/zimbra/common/lib/jvm/java/lib/security/cacerts -import -alias rootca -file /path/to/root_ca.pem</pre>
Cette dernière étape est nécessaire pour que les outils d'administration java de zimbra acceptent d'interagir avec votre serveur
Enfin, redémarrez zimbra :
<pre>/etc/init.d/zimbra restart</pre>


=Certificat SSL avec LetsEncrypt=
=Certificat SSL avec LetsEncrypt=
Ligne 74 : Ligne 110 :


==Certificat SNI==
==Certificat SNI==
===Génération du certificat===
Afin de ne pas avoir à couper zimbra pendant la génération du certificat, on va jouer un peu avec iptables.<br>
On autorise le port <code>8181</code> puis on redirige le port <code>80</code> vers le port <code>8181</code> :
<pre>
iptables -t filter -I INPUT -i eth0 -p tcp --dport 8181 -j ACCEPT
ip6tables -t filter -I INPUT -i eth0 -p tcp --dport 8181 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8181
ip6tables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8181
</pre>
Lancez le client en mode <code>standalone</code> et en spécifiant les domaines/sous-domaines devant figurer dans le certificat avec un ou plusieurs argument <code>-d</code>, et en spécifiant le port <code>8181</code> pour la validation des domaines :
<pre>certbot certonly --preferred-challenges http --http-01-port 8181 --standalone -d mail.domain.tld -d imap.domain.tld -d pop.domain.tld -d smtp.domain.tld</pre>
Vous pouvez ensuite enlever les règles iptables :
<pre>
iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8181
ip6tables -t nat -D PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8181
iptables -t filter -D INPUT -i eth0 -p tcp --dport 8181 -j ACCEPT
ip6tables -t filter -D INPUT -i eth0 -p tcp --dport 8181 -j ACCEPT
</pre>
===Configuration de Zimbra===
Nous allons définir http://mail.domain.tld comme l'url servant pour les mails du domaine <code>domain.tld</code>
<pre>zmprov md domain.tld zimbraVirtualHostName mail.domain.tld</pre>
zimbra doit pouvoir résoudre mail.domain.tld vers les IP utilisées par le serveur zimbra.
Activez le reverse proxy :
<pre>zmprov mcf zimbraReverseProxySNIEnabled TRUE</pre>
===Mise en forme des certificats===
<pre>
mkdir /opt/zimbra/ssl/letsencrypt/
mkdir /opt/zimbra/ssl/letsencrypt/mail.domain.tld
cp /etc/letsencrypt/live/mail.domain.tld/* /opt/zimbra/ssl/letsencrypt/mail.domain.tld/
chown -R zimbra:zimbra /opt/zimbra/ssl/letsencrypt/mail.domain.tld/
chmod -R o-rwx /opt/zimbra/ssl/letsencrypt/mail.domain.tld/
</pre>
Pour zimbra, il faut ajouter le certificat de la root dans le fichier chaine utilisé. Vous pouvez trouver ce certificat ici : https://webtest.identrust.com/certificates/trustid/root-download-x3.html <br>
Puis l'ajouter a la fin de la chaine de certification :
<pre>cat /opt/zimbra/ssl/letsencrypt/mail.domain.tld/chain.pem EMPLACEMENT_du_fichier_contenant_la_root.pem > /opt/zimbra/ssl/letsencrypt/mail.domain.tld/chain+root.pem</pre>
Puis testez le certificat :
<pre>
su - zimbra
/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/letsencrypt/mail.domain.tld/privkey.pem /opt/zimbra/ssl/letsencrypt/mail.domain.tld/cert.pem /opt/zimbra/ssl/letsencrypt/mail.domain.tld/chain+root.pem
exit
</pre>
Si tout va bien, créez un fichier bundle contenant votre certificat et la chaîne de certification :
<pre>
cat /opt/zimbra/ssl/letsencrypt/mail.domain.tld/cert.pem /opt/zimbra/ssl/letsencrypt/mail.domain.tld/chain+root.pem > /opt/zimbra/ssl/letsencrypt/mail.domain.tld/zimbra.bundle
chown zimbra:zimbra /opt/zimbra/ssl/letsencrypt/mail.domain.tld/zimbra.bundle
chmod o-rwx /opt/zimbra/ssl/letsencrypt/mail.domain.tld/zimbra.bundle
</pre>
===Déploiement dans zimbra===
Installez le certificat dans l'infrastructure zimbra :
<pre>
su - zimbra
/opt/zimbra/libexec/zmdomaincertmgr savecrt domain.tld /opt/zimbra/ssl/letsencrypt/mail.domain.tld/zimbra.bundle /opt/zimbra/ssl/letsencrypt/mail.domain.tld/privkey.pem
exit
</pre>
Déployez le certificat dans zimbra :
<pre>
su - zimbra
/opt/zimbra/libexec/zmdomaincertmgr deploycrts
exit
</pre>
Et relancez la brique proxy de zimbra
<pre>
su - zimbra
zmproxyctl restart
exit
</pre>
===Bugs===
* Les certificats SNI ne sont pas utilisés pour IMAPs, POPs et SMTPs : [https://bugzilla.zimbra.com/show_bug.cgi?id=103362 Bug 103362] et [https://bugzilla.zimbra.com/show_bug.cgi?id=107293 Bug 107293]
* Si vous avez configuré zimbra en mode ipv4 + ipv6, vous allez probablement rencontrer [https://bugzilla.zimbra.com/show_bug.cgi?id=108293 le bug 108293] et le proxy ne démarrera pas
====Résolution====


=Wildcard / plus addressing=
=Wildcard / plus addressing=
Ligne 127 : Ligne 253 :


Notez que cette modification ne survivra pas à une mise à jour de zimbra
Notez que cette modification ne survivra pas à une mise à jour de zimbra
==Mises à jour automatiques==
<pre>$ zmlocalconfig antispam_enable_rule_updates
antispam_enable_rule_updates = false
$ zmlocalconfig antispam_enable_restarts
antispam_enable_restarts = false
</pre>
On va activer la mise à jour automatique, et spécifier a zimbra de relancer l'antispam après une mise à jour :
<pre>
$ zmlocalconfig -e antispam_enable_rule_updates=true
$ zmlocalconfig -e antispam_enable_restarts=true
</pre>
Si vous constatez que le traitement de certains mails est très long, essayez de passer <code>zmlocalconfig -e antispam_enable_rule_compilation=true</code>
<pre>
$ zmamavisdctl restart
$ zmmtactl restart
</pre>


==Ajout de règles personnalisées==
==Ajout de règles personnalisées==


Vous pouvez créer le fichier <code>/opt/zimbra/data/spamassassin/localrules/sauser.cf</code> et le faire appartenir à l'utilisateur zimbra et au groupe zimbra.
Vous pouvez créer le fichier <code>/opt/zimbra/data/spamassassin/localrules/zzsauser.cf</code> et le faire appartenir à l'utilisateur zimbra et au groupe zimbra.
 
Pour tester vos règles, avec l'utilisateur zimbra : <code>spamassassin -D < /tmp/test.spammail > /dev/null 2> /tmp/test.output</code>
 
==Razor et Pyzor==
https://wiki.zimbra.com/wiki/Anti-spam_Strategies <br>
https://www.missioncriticalemail.com/2019/03/21/zimbra-anti-spam-best-practices-2019/
 
==zmtrainsa==


=Configuration de la destination des mails tagués comme SPAM=
=Configuration de la destination des mails tagués comme SPAM=
Ligne 153 : Ligne 307 :
<br>
<br>


<br>Une autre manière de forcer les spams à aller dans la boite des utilisateurs est de modifier la valeur <code>zimbraAmavisFinalSpamDestiny</code> de <code>D_DISCARD</code> à <code>D_PASS</code>
Note : ces valeurs peuvent se modifier en ligne de commande avec <code>zmprov mcf zimbraSpamKillPercent x</code> et <code>zmprov mcf zimbraSpamTagPercent y</code>
 
<br>Une autre manière, '''non recommandée''', de forcer les spams à aller dans la boite des utilisateurs est de modifier la valeur <code>zimbraAmavisFinalSpamDestiny</code> de <code>D_DISCARD</code> à <code>D_PASS</code>
<pre>
<pre>
zmprov ms `zmhostname` zimbraAmavisFinalSpamDestiny D_PASS
zmprov ms `zmhostname` zimbraAmavisFinalSpamDestiny D_PASS
</pre>
</pre>
Après toute modification, relancez amavisd:
<pre>su - zimbra ; zmamavisdctl restart</pre>


Cela va modifier le <code>final_spam_destiny</code> de <code>/opt/zimbra/conf/amavisd.conf</code> lui même basé sur le fichier <code>.in</code> correspondant.
Cela va modifier le <code>final_spam_destiny</code> de <code>/opt/zimbra/conf/amavisd.conf</code> lui même basé sur le fichier <code>.in</code> correspondant.
Ligne 172 : Ligne 325 :
=Signatures antivirus supplémentaires=
=Signatures antivirus supplémentaires=
[[Ajouter des signatures ClamAV dans zimbra 8.8]]
[[Ajouter des signatures ClamAV dans zimbra 8.8]]
=Loguer l'ip du client et pas l'ip du proxy dans mailbox.log=
Depuis zimbra 8.8, l'ensemble des protocoles zimbra (smtp* imap* pop*) passent par un proxy nginx
<pre>zmprov gcf zimbraMailTrustedIP</pre>
<pre>zmprov mcf +zimbraMailTrustedIP {IP1-du-proxy} +zimbraMailTrustedIP {IP2-du-proxy}</pre>
Globalement : ::1 et 127.0.0.1 + les IPs public de votre zimbra
=Fichiers de log=
* /opt/zimbra/log/audit.log
* /opt/zimbra/log/mailbox.log
* /var/log/auth.log
* /var/log/zimbra.log
* /var/log/mail.log


=Modification en ligne de commande=
=Modification en ligne de commande=
Ligne 250 : Ligne 419 :
=Problème de redirection sur le port 8443 au lieu de 443=
=Problème de redirection sur le port 8443 au lieu de 443=
https://wiki.zimbra.com/wiki/Steps_to_fix_port_redirection_problem_with_password_change_request_on_webclient
https://wiki.zimbra.com/wiki/Steps_to_fix_port_redirection_problem_with_password_change_request_on_webclient
=Changement de version d'ubuntu ou changement de serveur / VM=
https://wiki.zimbra.com/wiki/How_to_move_ZCS_to_another_server
for 8.8.15 / 16.04 to 18.04 :
* https://forums.zimbra.org/viewtopic.php?t=67390#p294645 (best prefered, use this one)
* https://wiki.zimbra.com/wiki/Ubuntu_Upgrades#Upgrade_Ubuntu_16.x_to_Ubuntu_18.x_and_update_ZCS_8.8.15_.26_above (for record)
4 203

modifications

Menu de navigation