AMaVIS et ClamAV : limites sur un serveur mail linux possédant une faible mémoire vive (RAM)

 

  • Introduction

Si vous souhaitez gérer vos emails sur votre serveur personnel (mutualisé ou dédié) - permet notamment de créer facilement des adresses emails liées à votre nom de domaine - la suite peut vous intéresser...

Je ne vais pas détailler la procédure d'installation du serveur mail, car il y a de très nombreuses ressources bien faites sur le sujet. Dans de nombreux tutoriaux justement, la procédure est détaillée avec l'installation d'AMaViS (A Mail Virus Scanner) et ClamAV. Le premier permet la gestion des emails douteux qui couplé avec le second permet de traiter les virus potentiels. Jusque là, tout va bien.

Si vous arrivez à enchainer toutes les étapes correctement (avec l'installation de nos deux amis AMaVIS et ClamAV) et que tout fonctionne, félicitations ! Cependant, si vous avez installé votre serveur mail sur un serveur possédant une mémoire vive (RAM) pas très élevée (<1Go), regardez de plus près les statistiques d'utilisation de vos ressources...

 

  • Un serveur qui rame (observations)...

Rien ne semble grave sur le serveur et rien ne l'est heureusement. C'est juste qu'il rame un peu, non ? Pour observer les ressources utilisées, vous avez plusieurs solutions :

  1. posséder une interface web détaillée (chiffres en temps réel).
  2. se connecter au serveur et voir ce qu'il en est.

 

Pour la première solution, c'est facile et un graphique vous expliquera vite que la RAM est très largement utilisée. Mais ne vous voyez pas précisément ce qui en est la cause (des fois c'est indiqué IOstat).

Pour ce qui est de la seconde solution, les données sont plus complètes en utilisant les bonnes commandes. Notamment, la commande suivante qui donne la liste de tous les processus en cours sur votre système avec leur utilisation (en %) de CPU et de RAM :

ps aux

On voit alors que nos deux compères ClamAV et AMaViS font bien leur travail, mais pour cela ils ont besoin de beaucoup de mémoire vive.

Pour ceux qui ont beaucoup de processus, la commande suivante donnent directement les bonnes lignes :

ps aux | grep '%MEM\|amavis\|clamav'

 

Une autre manière de voir l'utilisation de la RAM par tous les processus, et d'utiliser la commande suivante :

free

 

Si vous trouvez que le pourcentage de votre RAM disponible est faible, il faut alors voir si l'utilisation des deux mangeurs de mémoire vive est essentiel à votre serveur. Si c'est le cas, la solution qui consiste à passer sur un serveur avec plus de RAM s'impose. Dans le cas contraire, il ne vous reste plus qu'à les stopper.

 

  • Stopper ClamAV et AMaVIS (actions)

Pour ceux qui optent pour la dernière solution, il vous suffit d'utiliser les commandes suivantes (pour Linux Debian et Ubuntu) :

/etc/init.d/clamav-daemon stop
/etc/init.d/clamav-freshclam stop
/etc/init.d/amavis stop

Les commandes précédentes arrêtent les services clamav et amavis. Cependant, au prochain redémarrage de votre machine, les processus se relanceront. Il faut donc les enlever du fichier qui centralise les processus lancés au démarrage. Pour cela il faut utiliser les commandes suivantes :

update-rc.d -f clamav-daemon remove
update-rc.d -f clamav-freshclam remove
update-rc.d -f amavis remove

 

ATTENTION :

Si vous avez suivi à la lettre les tutoriaux, il vous faudra certainement enlever l'appel à amavis par postfix pour l'analyse des messages. Sinon votre serveur va essayer d'envoyer les messages à AMaVIS sans succès evidemment (vos emails ne seront pas perdus, mais en attente d'analyse) !!

Pour cela allez dans votre fichier /etc/postfix/main.cf et commentez la ligne suivante (ou tout autre ligne appelant amavis) :

#content_filter = amavis:[127.0.0.1]:10024

 

Il ne vous reste plus qu'à relancer postfix :

/etc/init.d/postfix restart

ou

service postfix reload

 

  • (re)Lancer ClamAV et AMaVIS

Il faut comprendre que les programmes ne sont pas désinstallés. Il suffit de faire les commandes suivantes pour les relancer :

/etc/init.d/clamav-daemon start
/etc/init.d/clamav-freshclam start
/etc/init.d/amavis start

Pour les ajouter de nouveau au script de démarage, utilisez les commandes suivantes :

update-rc.d clamav-daemon defaults
update-rc.d clamav-freshclam defaults
update-rc.d amavis defaults

 

  • Vérification du fonctionnement de votre serveur email (analyse)

Pour cela, rien de plus simple que de s'envoyer un email.  Si on ne le reçoit pas ou alors que la boite d'envoi indique que le message n'a pas été délivré, alors vous avez oublié une étape. Pour comprendre un peu mieux, il faut aller voir dans les logs (mail.log) :

cat /var/log/mail.log

 

Si vous obtenez une ligne comme la suivante :

...
Nov 07 07:07:07 server007 postfix/smtp[2698]: 
connect to 127.0.0.1[127.0.0.1]:10024: Connection refused
...

Il est probable que vous avez oublié d'enlever le lien entre postfix et amavis. Lisez alors la note attention de la partie "Stopper ClamAV et AMaVIS".

 

Si tout fonctionne, c'est parfait. Votre serveur vous remerciera pour l'économie de RAM...

 

En espérant que cet article puisse en aider certains !

Ajouter un commentaire