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

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

Prérequis

Pour commencer, installer 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 et zimbra :

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