MTA/Zimbra/Webmail/Tips/Optimize
Optimisation des performances
Augmentation du nombre de thread pour l'IMAP
Obtention de la valeur actuelle du nombre de thread IMAP
zmprov gs `zmhostname` zimbraImapNumThreads name smtp.b2pweb.com zimbraImapNumThreads: 200
Modification de la valeur du nombre de thread IMAP
zmprov ms `zmhostname` zimbraImapNumThreads 500
On va améliorer deux points:
- amavis manipulera les fichiers en RAM et non sur disque afin de s'affranchir du ratio I/O des diques. En effet zimbra est installé sur une partition drbd.
- amavis ne contrôlera plus les fichiers provenant du serveur ( notamment noreply qui envoi énormément de mails ).
Mettre le répertoire de travail d'amavis en RAM
Il faut obtenir l'uid et le gid de l'utilisateur et du groupe zimbra
cat /etc/passwd | grep ^zimbra zimbra:x:501:501::/opt/zimbra:/bin/bash cat /etc/group | grep ^zimbra zimbra:x:501:
L'utilisateur zimbra a l' *uid 501* Le groupe zimbra a le *gid 501*
On monte le répertoire de travail de zimbra dans une partition tmpfs ( en RAM ) en fixant la taille à 400Mo. On ajoute simplement la ligne suivante au fichier */etc/fstab*
/dev/shm /opt/zimbra/data/amavisd/tmp tmpfs defaults,noauto,noexec,nodev,nosuid,size=400m,mode=750,uid=501,gid=501 0 0
On arrête amavis, on monte notre répertoire et on redémarre amavis
su - zimbra -c "zmamavisdctl stop" mount /opt/zimbra/data/amavisd/tmp su - zimbra -c "zmamavisdctl start"
Mettre les mails provenant du serveur en whitelist.
On insère la ligne suivante au début du fichier /opt/zimbra/conf/postfix_recipient_restrictions.cf
check_client_access hash:/opt/zimbra/postfix/conf/amavis_client_whitelist
On spécifie l'IP de notre serveur pour la whitelist et on transforme notre fichier en base de données Berkeley
echo '195.216.193.6 FILTER smtp-amavis:[127.0.0.1]:10026' >> /opt/zimbra/postfix/conf/amavis_client_whitelist /opt/zimbra/postfix/sbin/postmap /opt/zimbra/postfix/conf/amavis_client_whitelist
On va modifier le fichier de configuration d'amavis /opt/zimbra/conf/amavisd.conf.in. Pour cela on copie les lignes suivantes dans le fichier /root/zimbra-amavis-whitelist.patch
diff -u /opt/zimbra/conf/amavisd.conf.in /opt/zimbra/conf/amavisd.conf.in
--- /opt/zimbra/conf/amavisd.conf.in 2012-04-18 12:01:18.000000000 +0200
+++ /opt/zimbra/conf/amavisd.conf.in 2012-04-18 12:02:41.000000000 +0200
@@ -75,7 +75,14 @@
$enable_db = 0; # enable use of BerkeleyDB/libdb (SNMP and nanny)
$enable_global_cache = 1; # enable use of libdb-based cache if $enable_db=1
-$inet_socket_port = 10024; # listen on this local TCP port(s) (see $protocol)
+#$inet_socket_port = 10024; # listen on this local TCP port(s) (see $protocol)
+$inet_socket_port = [10024, 10026]; # change from original setting
+ $interface_policy{'10026'} = 'CLIENTWHITELIST';
+ $policy_bank{'CLIENTWHITELIST'} = {
+ bypass_spam_checks_maps => [1],
+ final_spam_destiny => D_PASS,
+ final_virus_destiny => D_PASS,
+ };
$unix_socketname = "$MYHOME/amavisd.sock"; # amavisd-release or amavis-milter
$interface_policy{'SOCK'}='AM.PDP-SOCK'; # only relevant with $unix_socketname
On applique le patch
patch -p0 < /root/zimbra-amavis-whitelist.patch
On restart le MTA et amavis pour prendre en compte nos modifications
su - zimbra -c "zmmtactl restart && zmamavisdctl restart"
On vérifie que le serveur fonctionne encore correctement
su - zimbra -c "zmcontrol status"
Host smtp.b2pweb.com
antispam Running
antivirus Running
ldap Running
logger Running
mailbox Running
memcached Running
mta Running
snmp Running
spell Running
stats Running
zmconfigd Running
Pistes à creuser
- Compiler les règles antispam [3]