« Installation d'un serveur de mail Zimbra 6.0 sous debian lenny » : différence entre les versions
Ligne 130 : | Ligne 130 : | ||
==postfix (smtp)== | ==postfix (smtp)== | ||
Modifiez le fichier <code>/opt/zimbra/postfix/conf/main.cf</code> : | |||
<pre> | |||
inet_protocols = all | |||
inet_interfaces = 127.0.0.1, [::1], 87.98.144.196, [2001:41d0:1:bcdc::196] | |||
</pre> | |||
Selon la doc de postfix : | |||
<pre>When inet_interfaces specifies just one IPv4 and/or IPv6 address that is not a loopback address, the Postfix SMTP client will use this address as the IP source address for outbound mail. Support for IPv6 is available in Postfix version 2.2 and later.</pre> | |||
Postfix ne bindera donc que sur les 4 ips précisés, et utilisera l'ip locale OU internet selon qu'il doive s'adresser à un service local (antispam, ...) ou externe. | |||
L'intérêt de forcer les ips de postfix est notamment de simplifier les champs dns <code>SPF</code>. | |||
==jetty== | |||
Jetty est le serveur http utilisé par zimbra pour le webmail. | |||
Les fichiers a éditer sont les suivants : | |||
* <code>/opt/zimbra/jetty/etc/jetty.xml.in</code> : la configuration de jetty | |||
* <code>/opt/zimbra/mailboxd/etc/zimbra.web.xml.in</code> : ce fichier fait le lien entre le service mail de zimbra et l'interface webmail | |||
* <code>/opt/zimbra/mailboxd/etc/zimbraAdmin.web.xml.in</code> : ce fichier fait le lien entre le service mail de zimbra et l'interface admin |
Version du 7 février 2011 à 16:01
Zimbra est un serveur collaboratif (groupware) Open Source. Il permet d'échanger des emails, gérer et partager son calendrier, ses contacts, documents. Il est livré par défaut avec un webmail en ajax ainsi qu'une version mobile en html. Compatible avec les protocoles IMAP, POP et iCal, Zimbra permet d'utiliser n'importe quel client email graphique.
Nous allons voir comment déployer la solution Zimbra Open Source Edition sur un serveur sous debian lenny avec quelques spécificités qui ne sont pas supportés officiellement par zimbra dans sa version 6 :
- support ipv6
- utilisation d'une seule adresse ip (par défaut, zimbra bind ses services sur toutes les ips configurés sur le serveur)
Prérequis
Pour commencer, installer les paquets nécessaire à zimbra ainsi que le paquet file
:
aptitude install sudo libidn11 libpcre3 libexpat1 sysstat libperl5.10 file
A faire sinon zimbra fail a la détection de rsyslogd
Ensuite, créez le fichier /etc/rsyslog.d/50-default.conf
(vide). Si ce fichier n'existe pas, l'installateur de zimbra ne détectera pas rsyslog
.
echo "" > /etc/rsyslog.d/50-default.conf
Redémarrez rsyslog
:
/etc/init.d/rsyslog restart
Installation de Zimbra
Pour commencer, téléchargez la dernière version de zimbra 6 pour debian lenny sur http://www.zimbra.com/downloads/os-downloads.html
Extrayez l'archive et lancez l'installeur :
tar xf zcs-6.0.10_GA_2692.DEBIAN5_64.20101215161159.tgz cd zcs-6.0.10_GA_2692.DEBIAN5_64.20101215161159 ./install.sh
L'installation est assez triviale. Lorsque zimbra vous demandera le mode http à utiliser, définissez le en mode 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
.
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 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
Ajoutez l'utilisateur zimbra a 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 /etc/init.d/zimbra restart
Support de l'ipv6 et bind sur une seule ip
Zimbra 6 ne supporte pas officiellement l'ipv6. Cependant, les différentes applications dont zimbra est composé supportent toute l'ipv6.
Imap et pop
Les serveurs imap et pop de zimbra sont en java. Ils chargent leur configuration par ldap. Par défaut, ils écoutent sur toutes les ips configurés sur le serveur (et donc les ipv6 aussi). N'ayant pas besoin de limiter les ips du serveur imap et pop, j'ai préféré ne pas toucher à la configuration.
A titre d'information, vous pouvez modifier la configuration imap et pop en vous connectant avec un client ldap sous le répertoire cn=server,cn=<hostname de votre zimbra>
. Les champs à modifier sont les suivants :
zimbraPop3BindAddress zimbraPop3SSLBindAddress zimbraImapBindAddress zimbraImapSSLBindAddress zimbraLmtpSSLBindAddress
postfix (smtp)
Modifiez le fichier /opt/zimbra/postfix/conf/main.cf
:
inet_protocols = all inet_interfaces = 127.0.0.1, [::1], 87.98.144.196, [2001:41d0:1:bcdc::196]
Selon la doc de postfix :
When inet_interfaces specifies just one IPv4 and/or IPv6 address that is not a loopback address, the Postfix SMTP client will use this address as the IP source address for outbound mail. Support for IPv6 is available in Postfix version 2.2 and later.
Postfix ne bindera donc que sur les 4 ips précisés, et utilisera l'ip locale OU internet selon qu'il doive s'adresser à un service local (antispam, ...) ou externe.
L'intérêt de forcer les ips de postfix est notamment de simplifier les champs dns SPF
.
jetty
Jetty est le serveur http utilisé par zimbra pour le webmail.
Les fichiers a éditer sont les suivants :
/opt/zimbra/jetty/etc/jetty.xml.in
: la configuration de jetty/opt/zimbra/mailboxd/etc/zimbra.web.xml.in
: ce fichier fait le lien entre le service mail de zimbra et l'interface webmail/opt/zimbra/mailboxd/etc/zimbraAdmin.web.xml.in
: ce fichier fait le lien entre le service mail de zimbra et l'interface admin