ZIMBRA

Logo Zimbra

Zimbra est un serveur de messagerie avec des fonctionnalités de travail collaboratif.

La version Open Source comprend la fonction de serveur de messagerie, de calendriers partagés, de carnets d'adresses partagés, de gestionnaire de fichiers, de gestionnaire de tâches, wiki, messagerie instantanée.

A l'heure actuelle, ZIMBRA est compatible avec un certains nombres de distributions Linux 64 bits.
Toutes les versions 32 bits sont dépréciées.
 Cepandant, il est quand même possible d'installer Zimbra sur la version 32 bits de Ubuntu 8.04 LTS.
Voir la liste des distribution compatible.

 

Installation de Zimbra sur Ubuntu 8.04 LTS 32 bits

Voir la documentation Ubuntu

La dernière version disponible de Zimbra est la 7.1.3 GA Release

Zimbra nécessite un serveur à lui tout seul.
Il ne peut pas être installé sur un serveur déjà configuré comme serveur mail, http etc ...
Il lui faut une machine ayant au minimum 1 GO de mémoire vive.

Etiquettes: 

Installation Ubuntu 8.04 LTS

ZIMBRA étant installé dans le répertoire /opt, il est fortement conseillé de créer une partition spécifique ayant comme point de montage /opt.

Par exemple, pour un disque dur de 40 GB, une partition racine / de 10 GB pour le système, une partition /opt de 30 GB pour Zimbra et une partition Swap de 2.9 GB.

Procéder à l'installation d'Ubuntu 8.04 LTS avec le strict minimum.

Les paquets supplémentaires à installer sont OpenSSH-server & DNS Server

choix du nom de la machine

Au moment du choix des paquets supplémentaires à installer choisir OpenSSH-server & DNS Server

choix des paquets à installer

Pour paramétrer notre nouveau système, nous installerons Webmin

Etiquettes: 

Installation de Webmin

Se connecter au système (via SSH par exemple).

$ sudo wget http://www.webmin.com/jcameron-key.asc
$ sudo apt-key add jcameron-key.asc

Ajouter le dépot Webmin au fichier /etc/apt/sources.list :

$ echo "deb http://download.webmin.com/download/repository sarge contrib" >> /etc/apt/sources.list

$ sudo apt-get update
$ sudo apt-get install webmin

Une fois l'installation terminée, se connecter à Webmin via un navigateur web à l'adresse https://ip_du_serveur:10000

Etiquettes: 

Paramétrage de Webmin

Se connecter à Webmin via un navigateur à l'adresse https://adresse_ip_du_serveur:10000

Le user et le password correspondent à l'utilisateur créé lors de l'installation d'Ubuntu.

Le menu Webmin :

menu_webmin

Pour mettre Webmin en français, cliquer sur le menu Webmin, puis Change Language and Theme

Cocher l'option Personal choice puis sélectionner French (FR) dans la liste déroulante

Valider en cliquant sur Make Changes

Recharger Webmin en appuyant sur F5

webmin_en_francais

Via Webmin, configurer le serveur en IP fixe.

Cliquer sur le menu Réseau puis sur Configuration Réseau

configuration_reseau

Cliquer sur Interfaces Réseau puis sélectionner l'onget Interfaces Permanentes

Cliquer sur le nom de l'interface réseau (ETH0 en règle générale)

Sélectionner l'option Static configuration.

Renseigner l'adresse IP puis le masque de sous-réseau

Cliquer sur Sauvegarder

interface_eth0

Cliquer sur Retourner à configuration réseau

Cliquer sur Passerelles et Routage

Sélectionner l'option Passerelle puis y indiquer l'adresse IP du routeur

Cliquer sur Sauvegarder

adresse passerelle

Cliquer sur Adresses de la machine

Sélectionner la ligne correspondant à l'adresse IP 127.0.1.1 et la supprimer (Attention à ne pas supprimer la ligne correspondant à l'adresse IP 127.0.0.1).

Cliquer sur Ajouter une nouvelle adresse de machine

Y renseigner la nouvelle adresse IP du serveur et son nom de machine puis cliquer sur Créer

Adresse machine

Cliquer sur Retourner à configuration réseau

Cliquer sur Client DNS

Dans le champ Nom du poste, y indiquer le nom de la machine.

Dans le champ Serveurs DNS, y indiquer l'adresse IP 127.0.0.1

Dans le champ Domaines de recherche, sélectionner l'option Listé et y indiquer son nom de domaine

Client DNS

Cliquer sur Sauvegarder

Enfin, cliquer sur le bouton Appliquer la configuration

Attention, si la nouvelle adresse IP appliquée au serveur est différente de la précédente, la connexion à Webmin sera perdue. Il suffit juste de se reconnecter à Webmin via la nouvelle adresse IP du serveur.

Etiquettes: 

Configuration de Bind9

Pré-requis :

Installer le paquet dnsutils

$ sudo apt-get install dnsutils

Configuration de Bind9 :

Tous les fichiers nécessaires sont disponibles en bas de cette page

Dans les exemples suivants, mon serveur à comme adresse IP fixe : 192.168.1.10

Configuration du fichier /etc/hostname

Ce fichier doit contenir uniquement le nom de la machine.

Configuration du fichier /etc/hosts

Fichier modifié précédemment via Webmin.

Ce fichier doit ressembler à cela

Configuration du fichier /etc/resolv.conf

Fichier modifié précédemment via Webmin.

Ce fichier doit ressembler à cela

Configuration du fichier /etc/bind/named.conf

En bleu les infos à rajouter dans ce fichier.

Attention à bien respecter l'indentation du texte avec une tabulation

// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";

// prime the server with knowledge of the root servers
zone "." {
    type hint;
    file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
    type master;
    file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
    type master;
    file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
    type master;
    file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
    type master;
    file "/etc/bind/db.255";
};

//ajout des liens vers le fichier de configuration du domaine mondomaine.com
zone "mondomaine.com" {
        type master;
        file "/etc/bind/zones/mondomaine.com.hosts";
};

//ajout des liens vers le fichier de configuration du reverse pour le LAN
zone "1.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/zones/rev.192.168.1.in-addr.arpa";
};

include "/etc/bind/named.conf.local";

Configuration du fichier /etc/bind/named.conf.options

On indique dans ce fichier sur quel port effectuer les requêtes d'identification (sur le port 53)

On y indique également les adresses des serveurs DNS externes (ceux de Free par exemple) dans la section forwarders

Attention à bien respecter l'indentation du texte avec une tabulation

options {
    directory "/var/cache/bind";

    // If there is a firewall between you and nameservers you want
    // to talk to, you might need to uncomment the query-source
    // directive below.  Previous versions of BIND always asked
    // questions using port 53, but BIND 8.1 and later use an unprivileged
    // port by default.

    query-source address * port 53;

    // If your ISP provided one or more IP addresses for stable
    // nameservers, you probably want to use them as forwarders. 
    // Uncomment the following block, and insert the addresses replacing
    // the all-0's placeholder.

    forwarders {
         212.27.40.240;
         212.27.40.241;
    };


    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

Création du dossier /etc/bind/zones

$ sudo mkdir /etc/bind/zones

Création du fichier /etc/bind/zones/mondomaine.com.hosts

$ sudo nano /etc/bind/zones/mondomaine.com.hosts

Y indiquer les infos suivantes

Attention à bien respecter l'indentation du texte avec une tabulation

$ttl 86400
@    IN    SOA    zimbra.mondomaine.com. mail.mondomaine.com. (
            2008061802
            21600
            3600
            604800
            86400 )

;ENREGISTREMENT "A" DNS <-> IP CLASSIQUES
@    IN    NS    mail.mondomaine.com.
    IN    MX    10 mail.mondomaine.com.
    IN    A    192.168.1.10
mail    IN    A    192.168.1.10
zimbra    IN    A    192.168.1.10

;ENREGISTREMENT MESSAGERIE
mondomaine.com.    IN    MX    10 zimbra

Création du fichier /etc/bind/zones/rev.192.168.1.in-addr.arpa

$ sudo nano /etc/bind/zones/rev.192.168.1.in-addr.arpa

Y indiquer les infos suivantes

Attention à bien respecter l'indentation du texte avec une tabulation

@    IN    SOA    mondomaine.com. admin.mondomaine.com. (
            2006081405
            28800
            604800
            604800
            86400 )

    IN    NS    zimbra.mondomaine.com.
10    IN    PTR    zimbra.mondomaine.com.

Vérification de la configuration

Redémarrage de Bind afin d'appliquer les modifications

$ sudo /etc/init.d/bind9 restart (ou # sudo service bind9 restart)
$ named-checkconf

Vérifier les enregistrements DNS via DIG & NSLOOKUP directement sur le serveur via SSH

$ dig mx mondomaine.com
; <<>> DiG 9.4.2-P2.1 <<>> mx mondomaine.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57311
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2
 
;; QUESTION SECTION:
;mondomaine.com.                    IN      MX
 
;; ANSWER SECTION:
mondomaine.com.             86400   IN      MX      10 zimbra.mondomaine.com.
mondomaine.com.             86400   IN      MX      10 mail.mondomaine.com.
 
;; AUTHORITY SECTION:
mondomaine.com.             86400   IN      NS      mail.mondomaine.com.
 
;; ADDITIONAL SECTION:
mail.mondomaine.com.        86400   IN      A       192.168.1.10
zimbra.mondomaine.com.      86400   IN      A       192.168.1.10
 
;; Query time: 16 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Feb 12 10:00:24 2011
;; MSG SIZE  rcvd: 118

$ dig a mail.mondomaine.com
; <<>> DiG 9.4.2-P2.1 <<>> a mail.mondomaine.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18243
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
 
;; QUESTION SECTION:
;mail.mondomaine.com.               IN      A
 
;; ANSWER SECTION:
mail.mondomaine.com.        86400   IN      A       192.168.1.10
 
;; AUTHORITY SECTION:
mondomaine.com.             86400   IN      NS      mail.mondomaine.com.
 
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Feb 12 10:05:01 2011
;; MSG SIZE  rcvd: 63

$ nslookup mondomaine.com
Server:         127.0.0.1
Address:        127.0.0.1#53
 
Name:   mondomaine.com
Address: 192.168.1.10

L'installation et la configuration de BIND9 est enfin terminée

Pour simplifier la configuration d'un serveur Bind9, j'ai écrit un script de configuration automatique.

Pour le télécharger, cliquer ici

MD5SUM : 86a0a889ce9afe13fd12df48722f8182  configure_bind9.sh

Fichier attachéTaille
Binary Data hosts.278 octets
Binary Data resolv.conf46 octets
Binary Data named.conf1.25 Ko
Binary Data named.conf_.options710 octets
Binary Data mondomaine.com_.hosts351 octets
Binary Data rev.192.168.1.in-addr.arpa170 octets
Etiquettes: 

Installation de Zimbra

Paquets pré-requis à l'installation de Zimbra

$ sudo apt-get install libpcre3 libgmp3c2 libstdc++5 libltdl3 fetchmail curl sysstat sqlite3

Editer le fichier /etc/default/sysstat

$ sudo nano /etc/default/sysstat

Modifier ENABLED="true"

Téléchargement de Zimbra 7.1.3 GA

Zimbra 7.1.3 GA est la dernière version compatible avec une version Linux 32 bits

Voir sur le site de Zimbra la dernière version disponible

Récupérer la dernière version de Zimbra :

$ wget http://files.zimbra.com/downloads/7.1.3_GA/zcs-7.1.3_GA_3346.UBUNTU8.201...

Décompresser et restaurer l'archive téléchargée

$ tar xvzf ./zcs-7.1.3_GA_3346.UBUNTU8.20110928134533.tgz
$ cd zcs-7.1.3_GA_3346.UBUNTU8.20110928134533/
$ sudo ./install.sh

Détail de l'installation :

  • Do you agree with the terms of the software license agreement? [N] Y (répondre Y)
  • Install zimbra-ldap [Y] (laisser le choix par défaut)
  • Install zimbra-logger [Y] (laisser le choix par défaut)
  • Install zimbra-mta [Y] (laisser le choix par défaut)
  • Install zimbra-snmp [Y] (laisser le choix par défaut)
  • Install zimbra-store [Y] (laisser le choix par défaut)
  • Install zimbra-apache [Y] (laisser le choix par défaut)
  • Install zimbra-spell [Y] (laisser le choix par défaut)
  • Install zimbra-memcached [N] (laisser le choix par défaut)
  • Install zimbra-proxy [N] (laisser le choix par défaut)
  • The system will be modified.  Continue? [N] Y (répondre Y)

Poursuite de l'installation ...

Pendant l'installation, les enregistrements DNS sont vérifiés par rapport au nom de domaine zimbra.mondomaine.com. Une erreur va donc être retournée.

DNS ERROR resolving MX for zimbra.mondomaine.com
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes] Yes ici, répondre YES
Create Domain: [zimbra.mondomaine.com] mondomaine.com  ici, entrer le nom du domaine 
MX: zimbra.mondomaine.com (192.168.1.10)
MX: mail.mondomaine.com (192.168.1.10)

Paramétrage du mot de passe admin

  • Address unconfigured (**) items  (? - help) Taper 3
  • Select, or 'r' for previous menu [r] Taper 4
  • Password for admin@mondomaine.com (min 6 characters): [MOvHWVTgi] Saisir un mot de passe
  • Select, or 'r' for previous menu [r] Taper r
  • *** CONFIGURATION COMPLETE - press 'a' to apply
    Select from menu, or press 'a' to apply config (? - help) Taper a
  • Save configuration data to a file? [Yes] (laisser le choix par défaut)
  • Save config in file: [/opt/zimbra/config.23103] (laisser le choix par défaut)
  • The system will be modified - continue? [No] (répondre Y)

Poursuite du paramétrage automatique ...

  • Notify Zimbra of your installation? [Yes] (taper Y ou N)

Configuration des différents services ...

Patienter un petit moment le temps que tous les services démarrent

  • Configuration complete - press return to exit

L'installation est enfin terminée

Il ne reste plus qu'à se connecter à l'interface de configuration du serveur Zimbra via un navigateur à l'adresse https://adress_ip_du_serveur:7071

Etiquettes: 

Paramétrage de Zimbra

Le paramétrage de Zimbra se fait via son interface de configuration à l'adresse https://adresse_ip_du_serveur:7071

user = admin
password = celui choisi lors de l'installation

L'interface de connexion au serveur :

interface connexion serveur

Le menu de Zimbra :

menu zimbra

Les différents paramétrages à modifier :

Paramètres globaux

- Agent MTA

  • Renseigner un relais MTA pour les livraisons externes
    Pour un relais MTA avec authentification, voir ici
  • Renseigner le nom de l'hôte SMTP entrant

Valider en cliquant sur Enregistrer

Domaines

- Information générale

  • Renseigner le nom d'hôte du service public
  • Renseigner le fuseau horaire

- Zimlets

  • Tout sélectionner

Valider en cliquant sur Enregistrer

Classe de service

- Défault

- Caractéristiques

  • Cocher Messenger

- Préférences

- Options générales

  • Cocher Connexion automatique aux services IM
  • Sélectionner la langue

- Options mail

  • Cocher Afficher les images extérieures dans les mails HTML
  • Choisir Grouper les mails par mails
  • Choisir Toujours rédiger les mails avec HTML
  • Choisir Style de police par défaut de l'éditeur des mails HTML : Arial

- Options d'agenda

  • Sélectionner le fuseau horaire

Valider en cliquant sur Enregistrer

Les ports à ouvrir dans le routeur :

Ports forwarding Zimbra

Etiquettes: 

Commandes Zimbra

Toutes ces commandes ZIMBRA sont exécutées avec le user "zimbra" :

$ sudo su
$ su - zimbra

Stopper Zimbra

$ zmcontrol stop

Démarrer Zimbra

$ zmcontrol start

Etat Zimbra

$ zmcontrol status

Afficher la version de Zimbra

$ zmcontrol -v

Afficher la configuration locale de Zimbra

$ zmlocalconfig -s

Afficher le mot de passe MySQL du compte root

$ zmlocalconfig -s mysql_root_password

Afficher le mot de passe MySQL du compte zimbra

$ zmlocalconfig -s zimbra_mysql_password

Se connecter à MySQL avec le compte root

$ mysql -S /opt/zimbra/db/mysql.sock -u root --password=mysql_root_password

Afficher les répertoires d'un utilisateur

$ zmmailbox -z -m user@monDomaine.com gaf

-z : utiliser les droits de l'administrateur
-m : spécifie pour quel utilisateur on liste les répertoires
gaf : Get All Folders

Vider le répertoire d'un utilisateur

$ zmmailbox -z -m user@monDomaine.com ef /nomDuRepertoire

ef : Empty Folder

Afficher la liste des users

$ zmprov -l gaa

Afficher la liste des users admin

$ zmprov -l gaaa

Modifier le mot de passe d'un compte

sp (setPassword)

$ zmprov sp moncompte@monDomaine.com myNewPassword

Déverrouiller un compte

ma (modifyAccount)

$ zmprov ma moncompte@monDomaine.com zimbraAccountStatus active

Créer un compte mail

ca (createAccount)

$ zmprov ca moncompte@monDomaine.com monPassword displayName moncompte

Exporter les différents dossiers d'un compte dans une archive zip

Les différents dossiers exportables (autres que mail):

  • _gal
  • Briefcase
  • Calendar
  • Chats
  • Contacts
  • Notebook
  • Public
  • Tasks
  • Emailed Contacts

Les dossiers standards des mails :

  • Inbox
  • Sent
  • Drafts
  • Junk
  • Trash

Commande à exécuter :

Pour info, tout dépend de la configuration du serveur Zimbra, mais il est possbile que les WebServices Rest soient disponibles en https sur le port 8443.
Dans ce cas, il faut le prendre en compte dans les commandes ci-dessous.

$ zmmailbox -z -m user@domaine.com getRestUrl -u http://`zmhostname`:8080 "/nom_du_dossier?fmt=zip" > /mon_dossier_de_sauvegarde/mon_fichier_export.zip

Exporter la totalité d'un compte dans une archive zip

$ zmmailbox -z -m compte@domaine.fr getRestURL -u http://`zmhostname`:8080 "//?fmt=zip" > ./compte.zip

Importer les différents dossiers d'un compte d'une archive zip

Les différentes valeurs du paramètre resolve :

  • skip : ignore les doublons
  • modify : modifie les anciens éléments
  • reset : supprime tout (dossiers, éléments) avant import
  • replace : supprime les éléments avant import

 Commande à exécuter :

$ zmmailbox -z -m user@domaine.com postRestUrl -u http://`zmhostname`:8080 "/nom_du_dossier?fmt=zip&resolve=reset" /mon_dossier_de_sauvegarde/mon_fichier_export.zip

Importer la totalité d'un compte à partir d'une archive zip

$ zmmailbox -z -m compte@domaine.fr postRestURL -u http://`zmhostname`:8080 "//?fmt=zip&resolve=reset" ./compte.zip

Réactiver la fonction "Notebook" du "Porte-documents" dans Zimbra 7

$ zmprov mc default zimbraFeatureBriefcaseSpreadsheetEnabled TRUE
$ zmprov mc default zimbraFeatureBriefcaseSlidesEnabled TRUE
$ zmcontrol restart

Réactiver la fonction de messagerie instantanée dans Zimbra 7

$ zmprov -l -v mcf zimbraXMPPEnabled TRUE
$ zmprov -v mc default zimbraFeatureIMEnabled TRUE
$ zmprov -v mc default zimbraFeatureInstantNotify TRUE
$ zmcontrol restart

Sauvegarde Zimbra

Script de sauvegarde

$ cat sauvegarde.sh
#!/bin/bash
#Sauvegarde automatique
 
#Arret des services ZIMBRA
su - zimbra -c "/opt/zimbra/bin/zmcontrol stop" >> /backup/log/01stopZimbra.`date +%Y_%m_%d_%s`.log 2>&1
 
#Pause de 30 secondes
sleep 30
 
#Sauvegarde incrementielle du repertoire /opt/zimbra dans une archive TAR
/bin/tar --create --file=/backup/archive.`date +%Y_%m_%d_%s`.tar --listed-incremental=/backup/backup.list /opt/zimbra >> /backup/log/02tar.`date +%Y_%m_%d_%s`.log 2>&1
 
#Redemarrage des services ZIMBRA
su - zimbra -c "/opt/zimbra/bin/zmcontrol start" >> /backup/log/03startZimbra.`date +%Y_%m_%d_%s`.log 2>&1
 
#Statuts des services Zimbra
su - zimbra -c "/opt/zimbra/bin/zmcontrol status" > /backup/log/04statusZimbra.`date +%Y_%m_%d_%s`.log 2>&1

1 fois par semaine (ou plus en fonction des besoins) réinitialiser la sauvegarde incrémentielle en supprimant le fichier /backup/backup.list.

Restauration :

Stopper les services ZIMBRA

$ sudo su -
$ su - zimbra -c "zmcontrol stop"

Supprimer le répertoire /opt/zimbra puis restaurer la première archive complète

$ rm -r /opt/zimbra/
$ tar --extract --listed-incremental=/dev/null --file archive.1.tar

Puis restaurer les archives suivantes si besoin

$ tar --extract --listed-incremental=/dev/null --file archive.2.tar

Redémarrer les services ZIMBRA

$ su - zimbra -c "zmcontrol start"

Sur un historique de sauvegarde de 10 archives, pour restaurer l'archive 4, restaurer les archives 1, 2, 3 & 4 et ce dans le bon ordre. Ne pas restaurer directement l'archive 4, elle serait incomplète.

 
Restaurer une sauvegarde suite à un plantage du système
 
  1. Réinstaller Ubuntu Server
  2. Réinstaller Zimbra via l'option ./install.sh --softwareonly
  3. Exécuter la commande /opt/zimbra/libexec/zmsetup.pl
  4. Restaurer les données via la procédure de restauration
Etiquettes: 

Webmail : Ajouter un compte externe avec un certificat autosigné

Pour accepter les certificats non reconnus dans la configuration de Zimbra : 

$ sudo nano /opt/zimbra/conf/localconfig.xml

Dans la section : 

  <key name="ssl_allow_untrusted_certs">
    <value>false</value>
  </key>
 
Remplacer "false" par "true"
 
  <key name="ssl_allow_untrusted_certs">
    <value>true</value>
  </key>
 
Sauvegarder puis redémarrer les services Zimbra :

$ sudo su
$ su - zimbra
$ zmcontrol restart
$ exit

Etiquettes: 

Push e-mail avec Z-PUSH : Installation et configuration pour Zimbra

z-push

Pouvoir profiter du push e-mail avec Zimbra est possible grâce à une application PHP simulant un serveur Microsoft Server ActiveSync.

Pour cela, rien de plus simple.

Le seul inconvénient est de disposer d'un serveur, autre que celui sur lequel est installé Zimbra, car il faut obligatoirement un serveur sur lequel sera installé Apache et PHP.

Un second serveur Ubuntu sera donc utile pour pouvoir profiter du push e-mail.

$ wget http://download.berlios.de/z-push/z-push-1.5.5-790.tar.gz

  • Copier l'archive dans le répertoire public_html du home correspondant au serveur virtuel

$ cp ./z-push-1.5.5-790.tar.gz /home/push/public_html/

  • Se rendre dans le dossier public_html et extraire le contenu de l'archive

$ cd /home/push/public_html/ && tar -xvzf ./z-push-1.5.5-790.tar.gz

  • Se rendre dans le dossier ./z-push/backend nouvellement créé

$ cd ./z-push/backend/

$ wget http://freefr.dl.sourceforge.net/project/zimbrabackend/Release51/zimbra5...
$ tar -xvzf zimbra51.tgz

  • Retourner dans le dossier z-push et éditer le fichier config.php

$ cd .. && nano ./config.php

  • Dans le fichier config.php, modifier les lignes suivantes :

    === Disable Provisioning ===
    define('PROVISIONING', false);

    === Replace ===
    $BACKEND_PROVIDER = "BackendZimbra";

    === Add ===
    define('ZIMBRA_URL', 'http://<zimbra url>');
    define('ZIMBRA_USER_DIR', 'zimbra');
    define('ZIMBRA_SYNC_CONTACT_PICTURES', true);
    define('ZIMBRA_VIRTUAL_CONTACTS',true);
    define('ZIMBRA_VIRTUAL_APPOINTMENTS',true);
    define('ZIMBRA_VIRTUAL_TASKS',true);
    define('ZIMBRA_IGNORE_EMAILED_CONTACTS',true);
    define('ZIMBRA_HTML',false);
    define('ZIMBRA_ENFORCE_VALID_EMAIL',true);

    === Optional ===
    define('ZIMBRA_NOKIA_MFE_FIX',true);
    define('ZIMBRA_NOKIA_MFE_ALWAYS_OVERWRITE',true);

    Commenter toutes les définitions IMAP (SERVER, PORT etc etc)
  • Le fichier doit ressembler à ceci config.php
  • Modifier le propriétaire du dossier state

$ chown www-data:www-data ./state/

  • Via Virtualmin, pour le domaine push.mondomaine.com par exemple, créer un Alias /Microsoft-Server-ActiveSync pointant vers /home/push/public_html/z-push/index.php

    Dans Virtualmin, on sélectionne le domaine dans la liste déroulante, puis Services --> Configure Website
    Cliquer sur le bouton Alias et redirections puis saisir les infos dans la section Alias des répertoires des documents
    Cliquer sur le bouton Sauvegarder puis sur Appliquer les changements en haut à droite
     

La configuration du serveur PUSH est enfin terminée.

Il ne reste plus qu'à configurer Microsoft Exchange Active Sync sur le téléphone en y indiquant l'adresse http du serveur (push.mondomaine.com par exemple - Ne pas indiquer l'alias /Microsoft-Server-ActiveSync dans l'adresse du serveur) et les services à synchroniser (agenda, carnet d'adresses, tâches etc etc)

Il faut, bien entendu, que le serveur push.mondomaine.com (par exemple) soit accessible de l'extérieur.


Comment faire pour que le webmail du serveur Zimbra (installé sur la machine 10.10.0.10 par exemple) et le serveur push.mondomaine.com (installé sur la machine 10.10.0.20 par exemple) soient tous les 2 accessibles de l'extérieur sur le port HTTP 80 et/ou HTTPS 443.

Surtout que dans un routeur, il est possible de rediriger un port que sur une seule adresse IP.

Donc, soit on redirige le port 80 & 443 vers la machine 10.10.0.10 et dans ce cas le serveur web installé sur la machine 10.10.0.20 n'est pas accessible soit on fait l'inverse et dans ce cas c'est le webmail Zimbra installé sur la machine 10.10.0.10 qui n'est plus accessible.

Pour résoudre ce problème, il suffit de créer un second serveur virtuel sur la machine où se trouve le serveur push.mondomaine.com et de le nommer zimbra.mondomaine.com (par exemple) et de le configurer comme un serveur proxy qui transmettra les requêtes HTTP vers le serveur Zimbra.

Il suffit donc de paramétrer le routeur afin de rediriger le port 80 et 443 vers la machine 10.10.0.20. Le serveur virtuel zimbra.mondomaine.com se chargera de transmettre les requêtes vers la machine 10.10.0.10 et affichera, par conséquent, le webmail de Zimbra.

Cliquer pour la configuration d'un serveur virtuel en mode proxy.


Importer un certificat SSL auto-signé dans les appareils mobiles utilisant le serveur Z-PUSH en HTTPS

  1. Avec un navigateur (Firefox par exemple), se rendre à l'adresse HTTPS du serveur Z-PUSH (https://push.mondomaine.com)
  2. Accepter l'exception de sécurité pour le certificat SSL auto-signé
  3. Dans Firefox, cliquer sur l'icone de sécurité située à gauche de l'adresse puis sur "Plus d'informations".
  4. Cliquer sur "Afficher le certificat" puis dans l'onglet "Détails", cliquer sur exporter.
  5. Enregistrer le certificat avec le type "Certificat X.509 (DER)"
  6. Transférer le certificat sur l'appareil mobile (Bluetooth, USB etc etc ...)
  7. Dans l'appareil mobile, se rendre dans le dossier où a été enregistré le certificat puis l'ouvrir afin de l'enregistrer dans la base des certificats d'autorité.
Etiquettes: 

Z-PUSH : Installer un système de gestion des téléphones

Pouvoir gérer les téléphones qui se connectent au serveur Z-PUSH, c'est ce que propose de faire cette application PHP "zpush-zimbra-provisioning"

Avec "zpush-zimbra-provisioning", il est possible de lister tous les appareils mobiles qui se connectent au serveur, de les supprimer et enfin, il est également possible de les réinitialiser (retour à la config usine).

La version en cours est "zpush-zimbra-provisioning-1.02.tgz"
Pour vérifier la dernière version, http://sourceforge.net/projects/zimbrabackend/files/Provisioning%20%28Remote%20Wipe%29%20Support%20-%20Needs%20Release%2045%20or%20later/

Pour l'installer, rien de plus simple :

$ sudo su
$ cd /var/www
$ wget http://freefr.dl.sourceforge.net/project/zimbrabackend/Provisioning%20%2...
$ tar -xvzf zpush-zimbra-provisioning-1.02.tgz

L'installation est terminée, il faut maintenant créer la base de données :

$ sudo su
$ cd /var/www/zimbra-provisioning
$ mysql -u root -p < zpush_zimbra.sql

Dans MySql, créer un user avec password ayant tous les droits sur la base de données "zpush_zimbra"

Modification du fichier "zimbradb.php" :

Il faut modifier le fichier /var/www/zimbra-provisioning/zimbradb.php et renseigner les paramètres de connexion à la base de données MySql. Y inscrire le user et le password créés précédement.

    $mysql_server = "localhost:3306";
    $mysql_username = "provuser";
    $mysql_password = "provpassword";
    $mysql_zimbradb =    "zpush_zimbra";

Une fois le fichier modifier, il faut le copier dans le dossier Backend de Z-PUSH.

Création du user admin :

Dans votre navigateur préféré, se rendre à l'adresse
http://adresse_ip_du_serveur/zimbra-provisioning/registerAdminGUIuser.php

Cette page va permettre de créer le compte admin.
Une fois le compte créé, il est recommandé de renommer le script registerAdminGUIuser.php ou de le supprimer.

$ sudo su
$ cd /var/www/zimbra-provisioning
$ mv registerAdminGUIuser.php registerAdminGUIuser.php.old
$ chown root:root registerAdminGUIuser.php.old
$ chmod 600 registerAdminGUIuser.php.old

Modifier la configuration de Z-PUSH :

Pour profiter de cette option, il faut activer le provisioning dans la configuration de Z-PUSH.
Pour cela, il suffit de modifier le fichier config.php (dans le dossier de Z-PUSH)

=== Enable Provisioning ===
define('PROVISIONING', true);

Et voilà, tout est terminé, vous pouvez vous rendre à l'adresse http://adresse_ip_du_serveur/zimbra-provisioning, vous authentifier et gérer tous les appareils mobiles.

La page d'accueil permet de lister tous les appareils.
En cliquant sur "Détail" d'un appareil, il est possible de supprimer l'appareil en cliquant sur "DELETE DEVICE" ou de le réinitialiser en cliquant sur "WIPE DEVICE"
Attention, en cliquant sur "WIPE DEVICE" le téléphone sera entièrement réinitialiser - Retour à la configuration usine - Très pratique pour se débarasser d'un téléphone sans laisser aucune trace des données.

Erreurs rencontrées

Erreur d'accès à la file d'attente dans l'interface d'administration de Zimbra

Code de l'erreur :

Mail : system failure: exception during auth {RemoteManager: zimbra.domain.fr->zimbra@zimbra.domain.fr:22} Code d'erreur : service.FAILURE Method: [unknown] Détails :soap:Receiver

Cette erreur indique un problème d'accès au serveur via SSH sur le port 22.

Pour résoudre cette erreur, j'ai simplement ajouter dans le fichier /etc/hosts.allow, le nom de mon serveur Zimbra.

$ hostname -f
zimbra.domain.fr
$ nano /etc/hosts.allow
# Ajout de la ligne :
ALL: zimbra.domain.fr
^O (enregistrer)
^X (quitter)
$

Charge CPU à 100%

Depuis le 01 juillet 2012, pour je ne sais quelle raison, java utilisait toutes les ressources CPU.
Ne trouvant pas la cause du problème, j'étais sur le point de réinstaller mon serveur Zimbra quand je suis tombé sur ce post :

http://www.zimbrafr.org/forum/topic/5003-java-100-cpu-et-seconde-interca...

La cause : L'ajustement de la seconde intercalaire.

Qu'est ce que c'est que ce truc là.

Explication sur Wikipedia :
Une seconde intercalaire, également appelée saut de seconde ou seconde additionnelle, est un ajustement d'une seconde du Temps universel coordonné (UTC). Et ce, afin qu'il reste assez proche du Temps universel (UT) défini quant à lui par l'orientation de la Terre par rapport aux étoiles.

http://fr.wikipedia.org/wiki/Seconde_intercalaire

Le remède : Tout simple. Il suffit de reparamétrer l'horloge du serveur avec la commande suivante :

$ date -s "`date`"

Tout est rentré dans l'ordre comme par magie.

Ce "bug" touche les 2 applications Java et MySql


Problème d'accès aux logs

Code de l'erreur :

Mail : system failure: Unable to read logger stats Code d'erreur : service.FAILURE Method: [unknown] Détails :soap:Receiver

Pour résoudre cette erreur, exécuter les commandes suivantes en tant que root.

$ /opt/zimbra/libexec/zmsyslogsetup
$ /etc/init.d/rsyslog restart
$ /opt/zimbra/libexec/zmfixperms

Pour terminer, en tant que user zimbra

$ zmloggerctl start
$ zmcontrol status

Tout devrait rentrer dans l'ordre.

Mise à jour de l'antivirus

Procédure de mise à jour:

# su - zimbra
$ mkdir /tmp/clamdb
$ mv /opt/zimbra/data/clamav/db/* /tmp/clamdb
$ /opt/zimbra/common/bin/freshclam --config-file=/opt/zimbra/conf/freshclam.conf
$ zmamavisdctl restart
$ zmcontrol status

Mise à jour de l'anti spam

Procédure de mise à jour:

# su - zimbra
$ /opt/zimbra/common/bin/sa-update -D
$ zmamavisdctl restart
$ mkdir /tmp/state
$ mv /opt/zimbra/data/spamassassin/state /tmp/state
$ zmamavisdctl restart
$ zmcontrol status

Configurer un relais MTA avec authentification

Pour ne pas avoir de problème lors de l'envoi des mails, il est conseillé d'utiliser un relais SMTP pour l'envoi des mails à l'extérieur du domaine.

En effet, il y a de grandes chances pour que tous les mails envoyés avec notre propre serveur soient considérés comme du SPAM.

C'est pour cette raison qu'il vaut mieux utiliser un relais SMTP de confiance, mais qui dit de confiance, dit forcément authentification surtout si notre serveur ne se trouve pas sur le même réseau que notre relais SMTP.

Dans l'exemple, je vais configurer sur mon serveur ZIMBRA, qui se trouve hébergé chez ONLINE, le relais SMTP de Free (fournisseur de ma box à la maison - j'ai donc le droit par conséquent d'utiliser leur serveur SMTP)

Toutes les commandes ci-dessous doivent être exécutées avec le user zimbra.

## Je me connecter en tant que user zimbra
root@vm-zimbra:~# su - zimbra
## Je renseigne mon relais SMTP
zimbra@vm-zimbra:~$ zmprov ms vm-zimbra.domain.fr zimbraMtaRelayHost smtp.free.fr:587
## Création du fichier relay_password contenant le user et le mot de passe pour le relais smtp
zimbra@vm-zimbra:~$ echo smtp.free.fr user:pass > /opt/zimbra/conf/relay_password
## Conversion du fichier relay_password en table postfix
zimbra@vm-zimbra:~$ postmap /opt/zimbra/conf/relay_password
## Ceci permet de tester que le user et le mot de passe est bien associé au relais smtp
zimbra@vm-zimbra:~$ postmap -q smtp.free.fr /opt/zimbra/conf/relay_password
## Configuration de postfix pour l'utilisation de la table d'identification du relais smtp
zimbra@vm-zimbra:~$ zmprov ms vm-zimbra.domain.fr zimbraMtaSmtpSaslPasswordMaps lmdb:/opt/zimbra/conf/relay_password
## Activation de l'authentification SSL
zimbra@vm-zimbra:~$ zmprov ms vm-zimbra.domain.fr zimbraMtaSmtpSaslAuthEnable yes
## Désactivation de l'utilisation du "canonical name" du relais smtp
zimbra@vm-zimbra:~$ zmprov ms vm-zimbra.domain.fr zimbraMtaSmtpCnameOverridesServername no
## Activation de la séc urité TLS
zimbra@vm-zimbra:~$ zmprov ms vm-zimbra.domain.fr zimbraMtaSmtpTlsSecurityLevel may

Normalement, tout est désormais opérationnel.
Tous les mails envoyés à l'extérieur du domaine seront transférés désormais via le relais SMTP.

Générer un nouveau certificat pour Zimbra

Erreurs rencontrées:

1. TLS: can't accept: error:14094415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired.
2. Unable to start TLS: SSL connect attempt failed error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed when connecting to ldap master.

Pas de panique, il suffit juste de suivre la procédure ci-dessous:

Pour générer un nouveau certificat dans Zimbra quand le précédent a expiré, suivre la procédure ci-dessous :

Via SSH, se connecter au serveur Zimbra puis saisir les commandes suivantes (en root)

$ sudo su
# Commencez par générer une nouvelle autorité de certification (CA).
$ /opt/zimbra/bin/zmcertmgr createca -new
...
# Puis générer un certificat signé par le CA qui expire dans 365 jours.
$ /opt/zimbra/bin/zmcertmgr createcrt -new -days 365
...
# Ensuite déployer le certificat.
$ /opt/zimbra/bin/zmcertmgr deploycrt self
...
# Ensuite déployer le CA.
$ /opt/zimbra/bin/zmcertmgr deployca
...
# Pour finir, vérifier que le certificat a été déployé à tous les services.
$ /opt/zimbra/bin/zmcertmgr viewdeployedcrt
::service mta::
...
::service proxy::
...
::service mailboxd::
...
::service ldap::
...
$

Etiquettes: