Exim sur ue lenny

(Exim4 à la manière RogerYerbanga) - http://www.exim.org -

Exim est un serveur de messagerie électronique (Mail Transfer Agent) utilisé sur de nombreux systèmes UNIX. Son choix est justifié par le fait qu’il est très complet avec de nombreux paramètres, qu’il permet de faire du maildir (livraison des mails dans un répertoire), qu’il permet de choisir notre méthode de gestion des utilisateurs (soit base de données mysql, ldap, passwd, …), il est robuste (il peut gérer des grands systèmes avec des milliers d’utilisateurs et de mails par jour), il est capable de rejeter les mails dans la session SMTP ce qui génère moins de trafic, et il est assez aisé à configurer, et qu'il est très bien documenté.

Exim tourne grâce et/ou avec un certain nombre de fichiers qu’on peut classer en 4 groupes :

- Les binaires qui sont les exécutables de exim et qui définissent le fonctionnement global de exim.

- Les fichiers de configurations sur lesquels se basent les binaires et qui déterminent la manière dont exim tourne sur notre système

- Les fichiers logs, des fichiers journaux qui donnent des détails sur le processus d’exécution de Exim.

- Et les mails qu’il délivre aux utilisateurs dans leur répertoire respectif.

Dans ce document, j'expliquerai beaucoup plus la configuration de exim ainsi que les tests à faire pour valider sa configuration de exim.

1. Prérequis

Pour son installation, sur une debian lenny, il suffit juste de faire : aptitude install exim4-daemon-heavy L'installation est donc très facile;-) Cependant, pour qu'exim tourne, il lui faut obligatoirement un anti-virus (on fait appel à clamav), et un antispam est optionnel, mais fortement recommandé, le standard de fait est spamassassin, possible de mettre du mailman pour ceux qui veulent gérer des listes de diffusion. Exim utilise sa-exim pour contrôler sa manière de causer avec des programmes comme spamassassin, et préciser comment on traite les spams en fonction de leur score ; il est également à installer. Un autre programme interessant est greylistd, qui permet de faire du greylistd à la sauce debian.

Sur une lenny, l'installation de ces paquets se fait juste avec aptitude install <nomdupaquet> Il faut cependant faire attention pour clamav et s'assurer que les deux paquets clamav-freshclam et clamav-daemon.

1.1 clamav

- http://www.clamav.net/ -

Deux sous-programmes :

- clamav-freshclam : qui se charge des mises à jour de la base de définitions des virus

- clamav-daemon : qui fait le vrai boulot, scanne les fichiers à la recherche de virus

Les fichiers de configurations sont dans /etc/clamav et sont :

- /etc/clamav/clamd.conf : C’est le principal fichier de configuration, c’est lui qui précise les paramètres comme le type de fichiers à scanner ou ne pas scanner et les options qui vont avec, les fichiers où écrire les logs, la taille maximale des fichiers à scanner, …

Pour ce fichier, les options à retenir sont :

Mettre un # devant la ligne commençant par LocalSocket pour la commenter
Ajouter la ligne : TCPSocket 3310
Ajouter la ligne : TCPAddr 127.0.0.1
Vérifier la ligne : User clamav
Vérifier la ligne LogFile : LogFile /var/log/clamav/clamd.log
Vérifier ou activer les lignes :
LogTime true
ScanPE true
ScanOLE2 true
ScanHTML true
ScanMail yes
ScanArchive true
Mais : Ne pas activer l’option MailFollowURLs
MailFollowURLs false

- /etc/clamav/freshclam.conf : C’est le fichier de configuration de freshclam. Il précise les paramètres de mise à jour automatique de l’antivirus (toutes les 2h), les serveurs proxy, si nécessaire, le nombre de tentatives de mise à jour, et les fichiers logs.

Pour ce fichier, les options à retenir en plus de la config par défaut sont :

DatabaseOwner clamav
UpdateLogFile /var/log/clamav/freshclam.log
LogFileMaxSize 10M
LogTime true
DatabaseDirectory /var/lib/clamav/
DNSDatabaseInfo current.cvd.clamav.net
DatabaseMirror db.XY.clamav.net # Où XY représente le country code de votre pays
DatabaseMirror database.clamav.net

Quelques outils pour vérifier que clamav fonctionne bien

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SCAN /home/roger/
/home/roger/: OK
Connection closed by foreign host.

/etc/clamav/freshclam.conf: OK
/etc/clamav/freshclam.conf.old: OK
/etc/clamav/clamd.conf: OK
/etc/clamav/clamd.conf.old: OK

----------- SCAN SUMMARY -----------
Known viruses: 514191
Engine version: 0.94.2
Scanned directories: 4
Scanned files: 4
Infected files: 0
Data scanned: 0.00 MB
Time: 1.786 sec (0 m 1 s)

1.2 spamassassin

- http://www.spamassassin.org/ -

La configuration par défaut de spamassassin fonctionne assez bien, même si des config plus sophistiquées avec des règles spécifiques sont possibles. Une doc sur spamassassin pourrait être bientôt rédigée.

Pour tester