Installation d'un serveur de mail Zimbra 7.0 sous ubuntu server 10.04 LTS

De Linux Server Wiki
Aller à : navigation, rechercher


  • Cette page n'est plus maintenue, les informations contenues ici sont potentiellement obsolètes

1 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

2 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

3 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 root
  • onyx_ca.pem : le certificat de l'autorité intermédiaire ayant déployé le certificat zimbra
  • zimbra.pem : le certificat zimbra généré précédemment
  • zimbra.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

4 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

5 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

6 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'

7 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>

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 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

9 Mise a jour de sécurité de zimbra

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

10 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

11 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

12 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 et trusted_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

13 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

14 Wildcard / plus addressing

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

15 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.

16 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