Categorie : Zimbra

Zimbra affiche mal le nombre d’e-mails dans un dossier

Aucun commentaire sur Zimbra affiche mal le nombre d’e-mails dans un dossier

mars 22, 2016 at 12:17 Categorie :Logiciels | Serveurs | Zimbra

Pour une raison X ou Y, mon compte auto hébergé sur Zimbra s’est mis à mal afficher le contenu de mon dossier Brouillon suite à certaines manipulations que je n’ai pas encore clairement identifié.
En particulier, mon dossier « Brouillons » est écrit en gras et dispose d’un horripilant « (1) » à coté, m’indiquant un e-mail non lu alors que lorsque je liste son contenu depuis l’IHM, je ne vois rien.
Je ne sais pas pourquoi ce message ne veut pas s’afficher, alors qu’il est tout à fait là.
La solution est de recourir à la ligne de commande pour effacer l’importun :

zmmailbox -z -m id@domaine.net s « in:drafts »

num: 1, more: false
Id Type From Subject Date
—— —- ——————– ————————————————– ————–
1. 210029 conv Malo, Gwendal (2) Re: object blabla 03/21/16 17:23

zmmailbox -z -m id@domaine.net dm 210029

Lutte anti spam et Zimbra

Aucun commentaire sur Lutte anti spam et Zimbra

novembre 15, 2014 at 7:17 Categorie :Codage | Serveurs | Zimbra

said: 550
SC-001 (BAY004-MC4F10) Unfortunately, messages from weren't
sent. Please contact your Internet service provider since part of their
network is on our block list

Traduction : Votre serveur fait n’importe quoi, vous êtes bannis !
Voici un message que j’ai reçu après avoir tenté d’envoyer un mail sur un serveur Microsoft… Et vu que vous êtes ici, peut-être que vous aussi ? C’est fâcheux, car avoir un serveur mail personnel c’est bien, mais si il ne peut plus envoyer de mail à une partie de l’internet, ça ne sert plus à grand chose…
Pas de panique, ça se corrige. Mais retroussez vos manches, car il y a du travail.

1 – Corriger le problème

Le premier point est de découvrir ce qui s’est passé.
Dans mon cas, j’ai découvert qu’un spammeur avait volé le login / mot de passe d’un membre de ma famille et se servait de mon serveur SMTP comme d’un relais de spam. Un petit tour dans les logs de zimbra dans /var/log devrait vous en dire plus.

Une fois le problème identifié, réglez le en coupant l’accès au fautif (changez le mot de passe, etc.).

Ensuite, il faut demander à Microsoft d’être gentil et de vous enlever de leur liste noire. C’est par ici. Si vous avez de la chance, d’ici quelques heures vous pourrez de nouveau envoyer des e-mails. Sinon, vous recevrez un e-mail vous expliquant que non, vous restez bannis. Préparez alors le violon, les mouchoirs, prenez votre plus belle plume et rédigez un joli mail expliquant à quel point vous êtes désolé, ainsi que les actions que vous avez entreprises pour que cela ne se reproduise plus. Pour ma part, ayant été banni deux fois pour des problèmes similaires, c’est ce que j’ai du faire avant de voir mon accès ré-autorisé.

Maintenant, préparez-vous un thé, planifiez un peu de temps sans être dérangé, et suivez ces quelques étapes pour vous assurer de ne plus rencontrer ce genre de problèmes. En effet, c’est malheureux, mais comme vous ne pouvez maitriser le comportement de vos utilisateurs (d’autant plus que leur compte peut se faire usurper), il va falloir prendre des précautions annexes.

2 – Prévention : Activer une adresse catch-all

Une adresse catch-all, c’est une adresse qui accepte tous les mails qui ne devraient pas arriver (par exemple parce que le destinataire n’existe pas). Ainsi, si quelqu’un écrit à « fausseadresse@votredomaine.extension », l’adresse catch-all le recevra.

Pourquoi faire ça ? Pour que les e-mails de type bounce ne soient plus envoyés. Un mail de type bounce, c’est un e-mail de non-délivrance émis par des serveurs de mails. Dans notre cas, cela veut dire que si quelqu’un tape une mauvaise adresse en voulant vous joindre, il ne sera pas prévenu… C’est dommage, mais parfois nécessaire, parce que c’est une méthode parfois utilisé pour envoyer des spams à travers un innocent relais. Je m’explique : on appelle çà les « backscatter bounces ». On se fait passer pour un expéditeur qu’on veut cibler, on vous envoie un mail, et résultat c’est VOTRE serveur qui se retrouve à envoyer un e-mail au faux émetteur qui lui n’a rien demandé. Et comme parfois le contenu ou les PJ sont renvoyés dans les bounces, vous avez alors servi de vilain relais de spamm…

Allez hop :

su - zimbra
zmprov modifyAccount user@domain.com zimbraMailCatchAllAddress @domain.com

 

3 – Prévention : Activer policyd

Un spammeur, pour avoir quelques touches, doit envoyer beaucoup, beaucoup d’e-mail. C’est même souvent à ça qu’on les reconnait. Donc, si vous parvenez à réduire l’activité d’un spammeur qui aurait pris le contrôle d’un compte, vous limitez grandement les dégâts, ce qui vous donne plus de temps pour agir avant d’être banni. Pour ça, on peut utiliser policyd, un démon pour postfix intégré à Zimbra (mais non actif par défaut) qui nous permet d’appliquer des politiques de limitation. En avant :

zmprov ms `zmhostname` +zimbraServiceInstalled cbpolicyd +zimbraServiceEnabled cbpolicyd
zmprov mcf +zimbraMtaRestriction "check_policy_service inet:127.0.0.1:10031"

Ensuite pour activer l’interface web qui rend les choses beaucoup plus simples, il faut lui dire d’utiliser la base de données de Zimbra, pour cela, éditez le fichier /opt/zimbra/cbpolicyd/share/webui/includes/config.php et mettez en commentaire “#” chaque ligne commençant par $DB_DSN. L’objectif est de mettre à la place:

$DB_DSN="sqlite:/opt/zimbra/data/cbpolicyd/db/cbpolicyd.sqlitedb";

Redémarrez Zimbra, et rendez-vous à l’addresse http://votreserveur:7780/webui/index.php (je ne vous fais pas l’affront de vous dire de faire attention avec cette adresse, hein ? Par exemple s’assurer qu’elle ne peut pas être jointe depuis l’extérieur ? Et un fichier .htaccess ? Hein, vous êtes grand, non ?)

Ensuite, comme j’ai la flemme, je recopie un article :

  1.     Select Quotas | Configure menu
  2.     In the Action options, select Add and enter the details as below :
    Name : Delivery Per User
    Track : Select Sender@domain. This means that policy will be applies to each user on the domain
    Period : The length of time that given in seconds. Ideally is in counts per hour or 3600 seconds
    Link to policy : Select Default
    Verdict : The rules that will be apply if it meets the period, such as defer (hold the messages until next time interval)
    Data : Information that is given if it meets the rule, for example the information is a “Maximum 2 email delivery per minute” or “Maximum 300 emails delivery  per hour”
    Stop processing here : choose Yes, means that rule will not processing another rule
    Comment : can be filled with anything you like
  3.     Click Submit
    by default, the newly created rule set in the disabled state. Set it enable by choose PolicyD that you just created, and then on the Action option, select change
  4.     Change the parameter Disable=’Yes’ to Disable=’No’ on the Disabled option and click submit
  5.     Select the newly created policy again  and then select Limits on the Action option
  6.     Select Add, then select the Message Count and fill in with the number of maximum emails  on Counter Limit
  7.     Click Back to Limits and choose the rule that you have just created. Select Change In the Action option
  8.     Change the parameter ‘Yes’ to ‘No’ on the Disabled option and click submit

Je suppose que 100 e-mails par heure, ça laisse de la marge. A vous de voir selon vos usages.

4 – Surveillance : les logs

Vous l’avez vu en 1 lorsque vous avez cherché le coupable : les logs ont toutes les informations nécessaires pour détecter les mauvais usages. Par exemple :

Oct 30 08:49:20 mail amavis[18001]: (18001-16) FWD from <addresse@yahoo.com> -> <addresse@alice.it>,<addresse@alice.it>,<addresse@gmail.com>,<addresse@hotmail.com>,<addresse@hotmail.it>,<addresse@hotmail.it>,<addresse@libero.it>,<addresse@msn.com>,<addresse@yahoo.com>,<addresse@yahoo.com>,<addresse@yahoo.fr>,BODY=7BIT 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as E5D0D1A0164

En gras, à moins que vous ne soyez Yahoo (!), on voit bien que quelqu’un à envoyé un e-mail avec votre serveur en se faisant passer pour quelqu’un d’autre. J’ai fait un petit script python pour détecter ce genre de fraude. Renseigner les paramètres en début de script pour déterminer les adresses légitimes qui vous appartiennent (y compris les adresses spéciales de votre domaine, comme celle recueillant les spams par exemple), ainsi que l’adresse pour recevoir le rapport si quelque chose est détecté, configurez ensuite une tâche cron pour une exécution fréquente (genre toutes les 10 minutes), et enfin soupirez de soulagement. Ce n’est pas parfait bien sûr, car les spammeurs peuvent utiliser vos adresses en tant qu’adresses émettrices. Cependant c’est plutôt rare et cela devrait couvrir de nombreux cas.

Félicitations, vous avez fait quelques pas pour vous prémunir d’un prochain bannissement !

Zimbra dans un VPS OpenVZ sous Ubuntu 12.04

Aucun commentaire sur Zimbra dans un VPS OpenVZ sous Ubuntu 12.04

janvier 8, 2014 at 7:10 Categorie :Serveurs | Zimbra

Des perfs, de la virtualisation pour mutualiser des ressources, et ce toujours dans l’optique d’avoir ses propres services libres pour avoir « son » Internet.
Et voilà comment on arrive à combinaison intéressante pour cette problématique : Zimbra placé dans un « container » OpenVZ sous Ubuntu 12.04 (LTS)!

Intuitivement ça devrait être possible, non ?…
Pas si vite ! Minute papillon ! Ce serait trop facile ! Pourquoi ferais-je un billet si ça se passait comme sur des roulettes ? Comme j’ai pu le découvrir, il y a quelques ajustements à faire.

Tout d’abord, des paquets à installer :

sudo apt-get install libgmp3c2 netcat-openbsd sqlite3

Ensuite, le paquet sysstat utilisé par Zimbra bloque l’utilisation sous OpenVZ. En effet le sysstat de l’image Ubuntu officiel pour OpenVZ, retourne des erreurs. Il faut le remplacer par une ancienne version de Debian (ma chère Debian, encore et toujours ma sauveuse).

On commence par forcer la suppression de sysstat et installer la version de Debian :

sudo dpkg -r --force-all sysstat
wget http://ftp.fr.debian.org/debian/pool/main/s/sysstat/sysstat_9.0.6.1-2_amd64.deb 
sudo dpkg -i sysstat_9.0.6.1-2_amd64.deb

Ensuite, il faut holder (pardonnez-moi l’anglicisme) le paquet afin de ne pas se faire écraser la modification à chaque mise à jour :

dpkg --get-selections \* > selections.txt

Editez le fichier sortant selections.txt, pour changer à l’intérieur la ligne qui va bien :

sysstat    install

Pour ce résultat :

sysstat    hold

On sauvegarde le fichier et on le recharge dans dpkg comme ceci :

dpkg --set-selections < selections.txt

Voilà !
Plus d'obstacles à l'installation, vous pouvez maintenant profiter des performances de la virtualisation OpenVZ avec Zimbra.

LDAP Zimbra dans Openfire

Aucun commentaire sur LDAP Zimbra dans Openfire

avril 17, 2012 at 10:55 Categorie :Zimbra

Une petite brève pour connecter un serveur Openfire au LDAP intégré à Zimbra.
Voici les paramètres d’adressage LDAP à utiliser :

base dn : dc=roulleau,dc=net
dn administrateur : uid=zimbra,cn=admins,cn=zimbra

Bien sûr, remplacez roulleau et net par votre domaine.

En fait, je parle de Openfire parce que c’est pour lui que j’en ai eu besoin, mais l’adressage est valable pour n’importe quelle application cherchant à se connecter au LDAP de Zimbra.

Au passage, une petite astuce pour trouver le mot de passe de Zimbra dans son serveur OpenLDAP :

zmlocalconfig -s zimbra_ldap_password

Un serveur mail Zimbra familial

Aucun commentaire sur Un serveur mail Zimbra familial

septembre 15, 2010 at 5:51 Categorie :Zimbra

Zimbra, le groupware open-source, est un outil de messagerie extrêmement puissant, principalement destiné aux entreprises ou aux grosses associations.
En connaissant cette orientation, lorsqu’on décide de s’installer son propre serveur de mail personnel , Zimbra n’est évidemment pas le premier nom qui vient à l’esprit. On pense plus naturellement à quelque chose comme Roundcube, en conjonction avec divers backend comme le vénérable Postfix et le sympathique Dovecot, ce qui semble bien plus simple et plus adapté à un usage familial.

Et pourtant, après quelque essais, je pense maintenant que Zimbra a parfaitement sa place dans le cercle privé.  Ce n’est pas parce qu’on est un particulier qu’on n’a pas l’usage d’outils avancés de partage de documents, de messagerie instantané, ou de synchronisation avec des clients mobiles. De même, pourquoi ne pas bénéficier du support de qualité offert par une société aux reins solides (d’autant plus après son rachat par Yahoo puis VMware), avec tout ce que cela implique en termes de mises à jours, de suivi, et de pérennité.

Et contrairement aux idées reçues, il est parfois plus simple d’installer un énorme logiciel (que certains qualifieraient à tort d’usine à gaz), que de se battre à intégrer différents petits composants les uns avec les autres. Bien sûr le coté formateur d’une telle installation composite est très appréciable. Mais pour ma part j’ai déjà donné (venu, vu, appris, et passé à la dimension supérieure), et j’apprécie dorénavant de ne lancer qu’un seul script pour installer la dernière version de mon MTA, de Amavis, de l’indispensable SpamAssassin, du serveur IMAP sécurisé, tout en récupérant plein de nouveautés pour la très pratique interface web (et je passe d’autres composants tout aussi indispensable).

Voilà, c’est pour toutes ces raisons que j’ai installé un serveur Zimbra pour mon usage personnel (et familial in extensio, ce serait dommage de garder un tel outil pour soi). Cela n’est pas allé sans quelque gymnastique, bien entendu… Et voilà pourquoi vous lisez cet article : profitez de mes quelques notes, qui je l’espère serviront à d’autres dans l’établissement de leur propre serveur de mail personnel.

Zimbra à travers un Apache déjà existant

Zimbra vient avec son propre serveur HTTP.
Cependant, il est fréquent pour un serveur personnel, d’avoir déjà un LAMP ou autre, qui héberge divers sites ou service. Il est donc plus pratique de garder son propre Apache sur le port standard 80, et de mettre Zimbra sur un autre port (c’est faisable depuis l’interface d’administration qui elle est accessible sur le port 7071 en HTTPS. Dans cet exemple j’ai 82 en HTTP et 445 en HTTPS)
Tout d’abord, chercher sur internet selon votre distribution, il vous faut installer et activer mod_proxy.
Ensuite je pars du principe que vous utiliser les VirtualHost, tant ceux ci sont pratiques.

<VirtualHost *:80>
    ServerName <nom_hote_virtuel>
    ServerAlias <autrenom>
    # Très important pour ne pas transformer votre serveur en open proxy !
    ProxyRequests Off
    # Le proxypass permet de transférer la requête à un autre serveur
    ProxyPass / http://<hote_reel_serveur_zimbra>:82/
    # Le proxypassreverse permet de réécrire les pages html afin
    #de faire pointer les liens à vers l'hôte virtuel et non
    # pas vers le nom d'hôte / port réel.
    ProxyPassReverse / http://<hote_reel_serveur_zimbra>:82/
    <Location "/">
        Order deny,allow
        Allow from all
    </Location>
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
    DocumentRoot "/var/www/"
    ServerName <server>
    ServerAlias <autrenom>
    # n'oubliez pas de configurer vous même selon l'emplacement de vos certificats
    SSLEngine on
    SSLCertificateFile <chemin>/server.crt
    SSLCertificateKeyFile <chemin>/server.key
    ProxyRequests Off
    SSLProxyEngine on
    ProxyPass / https://<hote_reel_serveur_zimbra>:445/
    ProxyPassReverse / https://<hote_reel_serveur_zimbra>:445/
    <Location "/">
        Order Deny,Allow
        Allow from all
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
    </Location>
</VirtualHost>
</IfModule>

Gérer le spam

Une de mes premières actions a été d’empêcher la suppression du spam. Bien que SpamAssassin soit très efficace, il faut peupler sa base heuristique avant qu’il ne soit capable de trier le bon grain de l’ivraie. En attendant, il est donc sage de réduire à zéro le nombre de spam supprimé, en permettant tout de même le déplacement dans le dossier spam de votre boite mail en  cas de doute.
Ceci se fait depuis l’interface d’administration (paramètres globaux, onglet AS/AV)

Un petit bonus : si le nom de domaine que vous utilisez n’est pas le même que le nom d’hôte de la machine, alors il est possible que vos comptes spams ne soient plus vraiment cohérents avec votre installation. Pour définir de nouveaux comptes spam, vous pouvez passer ces commandes avec l’utilisateur zimbra :

zmprov mcf zimbraSpamIsSpamAccount <adressemailspam>@domain.com
zmprov mcf zimbraSpamIsNotSpamAccount <adresseemailPASspam>@domain.com

Si vous êtes vicieux, laissez trainer l’adresse de spam partout sur Internet. Vous aurez un magnifique pot à miel pour peupler votre base de données à peu de frais.

Optimiser les ressources consommées par Zimbra

Zimbra est très demandeur de ressources, aussi bien CPU que mémoire. En cause : les très nombreux processus d’arrière plan comme par exemple l’indexation, ou encore pour « troller » un peu, le choix du Java. Si votre Zimbra n’est pas très sollicité, alors autant limiter ses ressources dès le départ afin qu’il n’empiète pas sur d’autres services temps réel de votre machine (serveur vocal, etc.)

On commence par un renice régulier des processus de zimbra dans la crontab. Ceci est nécessaire car les processus disparaissent et sont relancés très fréquemment :

*/5 * * * * renice 19 -u zimbra > /dev/null

Pour limiter le nombre de thread disponibles pour les clients, utilisez ces commandes :

zmprov ms this.server.name zimbraHttpNumThreads 50
zmprov ms this.server.name zimbraPop3NumThreads 5
zmprov ms this.server.name zimbraImapNumThreads 10

Pour info, vous pouvez utiliser « zmprov gs » pour récupérer les valeurs actuelles, ce qui vous permettra de vous rendre compte qu’elles sont réellement trop élevées pour une utilisation personnelle.

Passons à la mémoire. Lancez cette commande :

zmlocalconfig mailboxd_java_heap_memory_percent

Vous voyez en lisant le résultat que Zimbra consomme de la mémoire en fonction du total disponible sur votre machine. Plus vous en avez, plus Zimbra va en prendre. C’est pratique, mais ces valeurs sont encore une fois trop importantes pour un faible nombre d’utilisateurs. Pourquoi ne pas les modifier à la baisse? :

zmlocalconfig -e mailboxd_java_heap_memory_percent=25
# Le serveur embarqué mysql fonctionne
# sur le même principe : sabrons le lui aussi !
zmlocalconfig -e mysql_memory_percent=20

Si vous avez comme moi installé le package Debian sur Ubuntu , car la version finale pour votre distribution préférée tardait trop à venir, vous avez peut être un bug qui conduit à une indisponibilité de l’application au bout de quelques heures. Dans ce cas voici un moyen d’éliminer ce bug en gérant les ressources manuellement :

zmlocalconfig -e ldap_read_timeout=0
zmlocalconfig -e ldap_connect_timeout=0

Ensuite éditez /opt/zimbra/jetty/etc/jetty-setuid.xml et mettez la limite de filedescriptor a 524288.
Editez /etc/security/limits.conf  et ajoutez ceci :

root soft nofile 524288
root hard nofile 524288

Empêcher l’open relay SMTP mais permettre les envois locaux

Un vrai danger pour votre machine ! Si celle ci est configurée en open relay, alors toutes machines connectées à internet peut se servir de votre serveur pour envoyer des spams.  Les conséquences sont dramatiques, avec en tête une surconsommation de ressources, et un rapide référencement sur les listes RBL, ce qui conduira votre serveur à être blacklisté par tous les grands services mail destinataires.
Par défaut Zimbra est configuré de façon à empêcher l’open relay. Cependant cela peut être trop restrictif, et vous pouvez avoir besoin de permettre à des services de votre machine d’envoyer des mails par eux mêmes. Pour cela mettez en liste blanche les adresses locales :

mprov modifyServer zimbra.example.com zimbraMtaMyNetworks '127.0.0.0/8 XXX.XX.X.X/32'

Activer le pooling automatique des adresses externes

Afin de d’optimiser l’utilisation de votre nouveau serveur, vous allez certainement configurer une récupération automatique des mails sur votre ancienne adresse. Heureusement, la quasi totalité des fournisseurs permet d’utiliser le protocole POP, ce qui nous permet facilement d’atteindre cet objectif.
Par défaut, pour économiser des ressources dans les environnements avec beaucoup d’utilisateurs, cette récupération de mail externe ne se fait que sur demande de l’utilisateur. Dans le cas d’un serveur familial, le surcoût engendré par un pooling automatique est minime comparé aux avantages ergonomiques. Tout d’abord :

zmprov mc default zimbraDataSourcePop3PollingInterval 10m

Si ça ne suffit pas (notamment pour les comptes externes déjà créés qui risquent de ne pas prendre en compte la modification), effectuez la configuration au niveau de l’utilisateur :

zmprov ma user@domain.com zimbraDataSourcePollingInterval 5m

Ou enfin pour être bien sur, faites le au niveau du compte externe :

zmprov mds user@domain.com [external IMAP/POP account data source name] zimbraDataSourcePollingInterval 15m

Pour récupérer les noms des comptes externes, utilisez cette commande :

zmprov gds user@domain.com

Pour tout annuler, remettez à zéro les valeurs.

Conclusion

Je vais faire court : Si vous avez d’autres astuces, direction les commentaires !

Une sauvegarde FTP ordonnancée et simple, appliquée à Zimbra

Un commentaire sur Une sauvegarde FTP ordonnancée et simple, appliquée à Zimbra

août 16, 2010 at 9:54 Categorie :Zimbra

En informatique, rien n’est plus vrai que l’adage « un script qui peut le plus peut le moins ».
A ceci, j’aime rajouter son corollaire :  » un script qui peut le plus coûte cher et est relou à maintenir « …

Tout l’art consiste à choisir son camp en fonction des circonstances… Vous vous en doutez sans doute, mais là c’est le moment idéal pour placer un exemple de script rapide et fonctionnel, et je ne vais pas me gêner.

J’ai eu besoin récemment de programmer une sauvegarde régulière de l’ensemble du Zimbra que j’héberge pour usage familial. Pourquoi une sauvegarde? Il ne s’agit pas d’un environnement professionnel à haute criticité, alors à quoi bon s’embêter? Hum, bien sûr mon ami, mais je pense que tu ne t’es jamais retrouvé en face de membres de ta famille gémissant sur des mails perdus avec les photos du petit dernier. Lorsque le faciès de ta honte sera éternellement gravé dans les mémoires, tu regretteras de ne pas avoir prévu le crash du disque dur chez l’hébergeur.

Hop, voilà donc petit script pour exploiter l’espace FTP gracieusement mis à disposition à cet effet par mon hébergeur OVH et t’éviter une disgrâce familiale. Au menu :

– Rotation très poussée et configurable. Haha je plaisante, le but c’est de faire un script ultra simple.  On se contente de move et de del
– Utilisation de deux rsync avant le tar pour faire une longue sauvegarde à chaud puis une courte à froid pour minimiser le temps d’indisponibilité. NB: rsync et tar ont l’avantage de conserver les liens symboliques tels quels, contrairement à un simple cp.
– Dépôt FTP automatisé…
…Et c’est tout ! En effet Zimbra, même dans sa version communautaire, est plutôt simple à sauvegarder. Donc pas la peine de s’embêter avec des tonnes d’options.

Le voilà dans sa plus simple expression :

#!/bin/bash
SERVER=<serveur>
USERNAME=<login_ftp>
PASSWORD=<pwd_ftp>
DESTINATION=<chemin_destination> #chemin temporaire de travail pour faire les synchronisations et construire l'archive

function ftpfile {
   ftp -n <<EOF
   open $SERVER
   user $USERNAME $PASSWORD
   bin
   $1 $2 $3
   bye
   EOF
}

rsync -av --delete /opt/zimbra $DESTINATION
#/etc/init.d/zimbra stop
#rsync -av --delete /opt/zimbra $DESTINATION
#/etc/init.d/zimbra start
cd $DESTINATION
tar cvfz zimbra.tar.gz zimbra

ftpfile del zimbra.tar.gz.3
ftpfile rename zimbra.tar.gz.2 zimbra.tar.gz.3
ftpfile rename zimbra.tar.gz.1 zimbra.tar.gz.2
ftpfile rename zimbra.tar.gz zimbra.tar.gz.1
ftpfile put zimbra.tar.gz

Le script est à exécuter en tant que root (nécessaire pour conserver les propriétaires des fichiers).
Et on n’oubliera pas d’ajouter  une ligne idiote dans la crontab. Je ne vous fait pas l’affront de l’écrire à votre place, mais je me permets deux petits conseils :
– redirigez la sortie standard de votre opération de « tar » quelque part.
– mentionnez expressément l’interpréteur en tête de votre commande dans la ligne cron.
Pourquoi? Personne ne semble capable de l’expliquer, mais parfois le tar s’interrompt en plein milieu si  ceci n’est pas rajouté (j’ai pu le constater, avec beaucoup d’étonnement d’ailleurs). Ce qui donne par exemple :

0 3 * * *  /bin/bash <chemin>/sauvegarde.sh > /var/log/sauvegarde.log

Bonus : comment restaurer la sauvegarde

Rien de plus simple. Remplacer le répertoire /opt/zimbra par le contenu de votre tar.
S’il s’agit d’une nouvelle machine parce que l’impitoyable crash de votre disque dur à été total, n’oubliez pas de réinstaller la même version de Zimbra par la procédure standard avant d’extraire le tar. En effet les paquets doivent être proprement installés au moins une fois.