Au cours des derniers mois, j’ai rencontré plusieurs problèmes sur mes différentes machines qui ont été causés par Amavis et qui ont été difficile à réparer pour. Dans cet article, je vais vous détailler les problèmes que j’ai rencontré et les solutions que j’ai trouvé pour y venir à bout, en espérant que ceci vous soit utile !
Amavis, c’est quoi ?
Amavis est un filtre pour les emails. Il est open source et est écrit en Perl. Il est souvent associé à Postfix pour l’envoi d’emails qui est très utilisé dans les systèmes UNIX. Amavis peut être utilisé pour :
- détecter les virus, spam et les erreurs de syntaxe ;
- bloquer, rediriger ou transférer des emails ;
- mettre en quarantaine ou archiver des emails ;
- bien d’autres choses que je ne connais pas…
Amavis et les inodes
Par défaut, Amavis stocke les emails qu’il a détecté comme virus ou spams dans un dossier spécifique. Sous Debian, celui-ci se trouve à /var/lib/amavis/virusmails
. Le problème est qu’Amavis ne vide jamais ce répertoire… Ceci peut être très problématique car au fil du temps le dossier se remplit encore et encore et il peut parfois saturer votre quota d’inodes sur votre serveur. En effet, si vous envoyez quelques milliers d’emails par jour depuis votre serveur, il est probable que vous ailliez ce problème un jour ou l’autre. Dans mon cas, le dossier utilisé par Amavis /var/lib/amavis/virusmails
comptait plus de 50 000 inodes ! Un problème qui peut complètement saturer votre /var
sans que vous compreniez d’où vient le soucis.
Le problème avait été reporté, et malheureusement l’équipe d’Amavis ne veut pas mettre en place une suppression automatique tous les 15 / 30 jours de ce dossier. Personnellement, je ne comprends pas cette logique. Connaissez-vous un administrateur système qui souhaite garder une trace de tout ce qui a été considéré comme “spam” pendant plusieurs années ? Vous pouvez trouver cette discussion à l’adresse suivante : http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=569150.
Quoi qu’il en soit, si vous voulez éviter d’avoir ce problème, il va falloir agir. La solution proposée par Thomas Goirand sur Debian me parait être une excellente solution. Il suffit de mettre en place une tâche cron tous les X jours exécutant la commande suivante :
L’autre solution, moins classe, consiste à supprimer le répertoire /var/lib/amavis/virusmails
quand votre nombre d’inodes commence à vraiment augmenter. Vous devrez ensuite exécuter les commandes suivantes :
Bonus, si vous voulez savoir combien d’inodes vous avez dans des sous-répertoires, il vous faut taper la commande suivante :
Ceci risque de prendre un certain temps si vous faites ceci dans un répertoire comptant une longue arborescence !
Quels symptômes pour un problème avec Amavis ?
Les problèmes que vous pouvez rencontrer à cause d’Amavis peuvent avoir des conséquences importantes mais sont parfois difficiles à identifier. Si vous rencontrez les problèmes suivants, il faudra regarder du côté d’Amavis :
- Aucun email n’est envoyé depuis votre serveur. Les emails s’entassent dans la mail queue.
- Votre nombre d’inodes est très important alors que votre disque comporte encore beaucoup d’espace.
Dans le premier cas, regardez d’abord au niveau de vos logs de mail si vous pouvez obtenir des informations complémentaires. Si le problème vient d’Amavis, pensez à le désactiver (voir étape suivante). Avant de prendre des décisions radicales, vous pouvez rajouter les emails en attente dans la mail queue et demander à Postfix de les envoyer en tapant les commandes suivantes :
Pour le second soucis, vous pouvez déterminer immédiatement si Amavis est responsable de cette augmentation du nombre de vos inodes. Rendez-vous dans le dossier /var/lib/amavis/
et exécutez la commande indiquée précédemment permettant de voir combien d’inodes comptent vos sous-répertoires.
Désactiver Amavis
Vous aurez beau vous acharnez, parfois il faut mieux désactiver Amavis pour être tranquille. Si vous voulez faire ceci, voici les étapes qu’il vous faudra suivre.
Tout d’abord, il va falloir vous rendre dans le fichier de configuration de Postfix se trouvant dans /etc/postfix/
et se nommant main.cf
en commentant une ligne ressemblant à la suivante. Pour ma part, elle indique à Postfix d’envoyer les emails sur localhost en utilisant le port 10024.
Vous pouvez également faire référence à Amavis dans le même dossier, mais dans le fichier master.cf
. Il faudra commenter les lignes suivantes :
Parfait ! Il ne reste maintenant plus qu’à recharger les fichiers de configuration de Postfix, rajouter les emails dans la mail queue et tenter de les envoyer à nouveau. Ceci se fait avec les commandes suivantes :
Dernière étape, ne plus démarrer Amavis automatiquement au démarrage. Ceci se fait avec la commande :
Vous voilà débarrassé d’Amavis !