Installation d'un serveur de mail Zimbra 7.0 sous ubuntu server 10.04 LTS
- Cette page n'est plus maintenue, les informations contenues ici sont potentiellement obsolètes
Prérequis
Pour commencer, installez les paquets nécessaire à zimbra ainsi que le paquet file :
aptitude install sysstat sqlite3 libperl5.10 libidn11 libpcre3 libexpat1 file
Installation
Téléchargez la dernière version de zimbra 7 pour ubuntu 10.04 LTS sur http://www.zimbra.com/downloads/os-downloads.html
Extrayez l'archive et lancez l'installeur :
tar -xf zcs-7.0.0_GA_3077.UBUNTU10_64.20110127202143.tgz cd zcs-7.0.0_GA_3077.UBUNTU10_64.20110127202143 ./install.sh
L'installation est assez triviale.
Lors de la configuration, pensez à définir le mode http en redirect
. Ainsi, zimbra forcera l'utilisation de https. Une fois l'installation terminée, Zimbra sera lancé automatiquement. Les différents fichiers ont été installés dans /opt/zimbra
.
Ajoutez l'utilisateur zimbra
à la liste des utilisateurs autorisés a se connecter en ssh dans la configuration de openssh (directive allowusers
) (c'est nécessaire pour certaines fonctions de l'interface d'administration de zimbra).
Redémarrez ssh :
/etc/init.d/ssh restart
Création de son propre certificat ssl signé par son autorité de certification
Nous allons supposer que vous avez déjà créé votre autorité de certification root ainsi qu'une autorité intermédiaire (nommée onyx
dans mon cas). Si ce n'est pas le cas, je vous renvoi ici.
Ajouter les lignes suivante dans la configuration de openssl :
[ZIMBRA] nsComment = "ONYX Zimbra Server" subjectKeyIdentifier = hash authorityKeyIdentifier = keyid,issuer:always issuerAltName = issuer:copy subjectAltName = DNS:onyx.csnu.org, DNS:imap.csnu.org, DNS: pop.csnu.org, DNS: smtp.csnu.org, DNS:webmail.csnu.org, DNS:mail.csnu.org basicConstraints = critical,CA:FALSE keyUsage = critical, digitalSignature, nonRepudiation, keyEncipherment nsCertType = server extendedKeyUsage = serverAuth
Puis créez le certificat et signés le avec votre autorité intermédiaire :
cd /etc/ssl/ca_onyx/ openssl req -config /etc/ssl/openssl.cnf -nodes -newkey rsa:2048 -keyout zimbra.key -out zimbra.req openssl ca -config /etc/ssl/openssl.cnf -name onyx_ca -extensions ZIMBRA -in zimbra.req -out zimbra.pem
Les fichiers nécessaires au déploiement du certificat ssl dans zimbra sont les suivants :
root_ca.pem
: le certificat rootonyx_ca.pem
: le certificat de l'autorité intermédiaire ayant déployé le certificat zimbrazimbra.pem
: le certificat zimbra généré précédemmentzimbra.key
: la clé privé zimbra générée précédemment
Attention, veillez a ce que ces différents fichiers ne contiennent rien d'autre que les certificats et clés pures (entre le begin
et le end
inclut) sans aucun commentaire ou autre !
Pour un certificat :
-----BEGIN CERTIFICATE----- blahblah -----END CERTIFICATE-----
Pour une clé :
-----BEGIN RSA PRIVATE KEY----- blahlah -----END RSA PRIVATE KEY-----
Nous allons maintenant déployer le certificat ssl dans zimbra.
Pour commencer, créez le fichier ca_chain.pem
contenant la chaine de certification complète :
cat root_ca.pem onyx_ca.pem > ca_chain.pem
Déplacez la clé privée :
mv zimbra.key /opt/zimbra/ssl/zimbra/commercial/commercial.key
Vous pouvez vérifier que vos certificats sont valides avec zmcertmgr
:
/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key zimbra.pem ca_chain.pem
Puis déployez le certificat dans zimbra avec zmcertmgr
:
/opt/zimbra/bin/zmcertmgr deploycrt comm zimbra.pem ca_chain.pem
Enfin, ajoutez manuellement les certificats dans la base de donnée de zimbra (et oui, le password est bien changeit
par défaut) :
/opt/zimbra/java/bin/keytool -import -alias onyxzimbra -keystore /opt/zimbra/java/jre/lib/security/cacerts -storepass changeit -file /opt/zimbra/conf/ca/commercial_ca.pem /opt/zimbra/java/bin/keytool -import -alias rootca -keystore /opt/zimbra/java/jre/lib/security/cacerts -storepass changeit -file root_ca.pem /opt/zimbra/java/bin/keytool -import -alias onyxca -keystore /opt/zimbra/java/jre/lib/security/cacerts -storepass changeit -file onyx_ca.pem
Redémarrez zimbra :
/etc/init.d/zimbra restart
Activer le support ipv6
su - zimbra zmprov ms `zmhostname` zimbraIPMode both zmprov ms `zmhostname` zimbraMtaMyNetworks "127.0.0.0/8 ipdevotreserveur/32 [::1]/128 [ip6devotreserveur]/128" zmcontrol restart
Migration des comptes imap d'un ancien serveur à notre installation zimbra
Installez l'outil imapsync
:
aptitude install imapsync
Commencez par créer les différents comptes et leurs alias et vous connectant à l'interface d'administration de zimbra (https://votre-domaine:7071).
Ensuite, utilisez l'outil imapsync
pour répliquer les comptes :
imapsync --host1 serveur1.domain.com --user1 utilisateur@domain.com --password1 <pass> \ --host2 serveurzimbra.domain.com --user2 utilisateur@domain.com --authmecH2 PLAIN --password2 <pass2> --ssl2
Réutiliser les mots-de-passe d'une ancienne installation zimbra
Vous pouvez lister les informations de tous les comptes utilisateurs avec la commande :
zmprov -l gaa -v domain.com
Le password est stocké à la ligne userPassword
.
Pour récupérer le password (crypté en sha) 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 '{SSHA}GdgsrgHzfBfjkttt'
Ajouter des zimlets
Une galerie de zimlets (extension pour zimbra) est disponible sur http://gallery.zimbra.com/
Pour les installer, rien de plus simple :
su - zimbra zmzimletctl deploy <zimlet>
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
Mise a jour de sécurité de zimbra
télécharger le .tgz, l'extraire, puis lancer le ./install.sh
Réaliser des backups des comptes mails de zimbra
Je vous renvoi sur http://wiki.zimbra.com/wiki/Backing_up_and_restoring_Zimbra_%28Open_Source_Version%29#Another_option
Activer les mails de crontab du serveur
Vous avez installé un serveur mail, mais debian n'en est pas conscient. Pour recevoir les mails de crontab par exemple, il faut créer un lien symbolique de /usr/sbin/sendmail
vers /opt/zimbra/postfix/sbin/sendmail
ln -s /opt/zimbra/postfix/sbin/sendmail /usr/sbin/sendmail
Configuration de spamassassin
N'oubliez pas d'ajouter les directives internal_networks
et trusted_networks
dans /opt/zimbra/conf/salocal.cf.in
. Ces directives doivent contenir les ips de vos différents mx secondaires (n'oubliez pas les ipv6)
De manière globale :
- tous les serveurs MX de vos domaines et tous les relay smtp interne doivent être listés dans
internal_networks
ettrusted_networks
- les serveurs "sûre" mais n'étant pas MX ou relay smtp interne de vos domaines doivent être listés uniquement dans
trusted_networks
Définition d'un serveur sûre : c'est un serveur qu'on sait ne pas envoyer de spam, ni être open-relay, etc, mais qui peut éventuellement relayer des spams sans en être la source.
De même, ajoutez ces serveurs a la directive zimbraMtaMyNetworks de zimbra
configuration du discard de mail par zimbra
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 core de spam supérieur à 75% seront discarded, ne seront donc PAS remis à l’utilisateur, mais seront cependant copié à l'administrateur du serveur zimbra.
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 points.
Pour empêcher complètement le discard des mails par zimbra, éditez le fichier /opt/zimbra/conf/amavisd.conf.in
et remplacez :
$final_spam_destiny = D_DISCARD;
par
$final_spam_destiny = D_PASS;
Je vous conseil aussi de décocher la case Bloquer les fichiers attachés qui sont des archives cryptées
Après toute modification, relancez amavisd:
su - zimbra ; zmamavisdctl restart
Wildcard / plus addressing
http://wiki.zimbra.com/wiki/Plus_Addressing
Zimbra derrière un firewall
http://wiki.zimbra.com/wiki/Firewall_Configuration
Notez cependant qu'au contraire de ce qui y indiqué sur cette page, le port imap/143 doit être ouvert depuis l'extérieur tandis que le port ldap/389 doit être restreint aux IPs de notre réseau.
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