La messagerie
Les anti-virus
6.1 Clam-Av
6.1.1 Présentation
ClamAV et un anti-virus pour Linux/Unix sous licence GNU General Public Licence.
ClamAV dispose de nombreuses fonctionalités intéressantes :
Scanner en ligne de commande,
Daemon multi-threadé,
Interfaçable avec sendmail grâce à milter,
Mise à jour de la base avec possiblité de signatures,
Détection de plus de 20000 virus,
Suport des principaux formats d'archives,
Support des formats mailbox, maildir et text.
ClamAV a été conçu dans le but de scanner les mails d'un serveur mail.
6.1.2 Installation
Pour l'installer, télécharger les sources à l'adresse http://prdownloads.sourceforge.net/clamav/?sort_by=date&sort=desc et décompressez les :
user@localhost$ tar -zxpvf clamav-0.75.1.tar.gz
Il vous faut ensuite créer un utilisateur et un groupe ClamAV :
root@localhost# groupadd clamav
root@localhost# useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
Ensuite, utilisez les commandes habituelles :
user@localhost$ ./configure --sysconfdir=/etc/clamav
On va placer les fichiers de configuration dans /etc/clamav
Si on veut utiliser ClamAV avec sendmail, il faut ajouter le paramètre --enabme-milter au script configure.
user@localhost$ make
root@localhost# make install
ClamAV est maintenant installé, nous allons pouvoir passer à sa configration.
6.1.3 Configuration
La configuration de ClamAV se fait en plusieurs parties :
6.1.3.1 clamd
clamd est le daemon de ClamAV. Son fichier de configuration est /etc/clamav/clamav.conf.
Tout d'abord, il faut enlever la ligne Exemple de ce ficier. Cette ligne est là pour verrifier que l'utilisateur a modifié la configuration par défaut.
Nous n'allons pas modifier le reste de la configuration pour le moment.
Nous pouvons maintenant démarrer clamd grâce à la commande :
root@localhost# clamd
Vous pouvez tester clamd en lançant la commande :
user@localhost$ clamscan -r -l scan.txt clamav-0.75
Des virus de test sont dans les sources de ClamAV, cette commande va donc les trouver et écrire le résultat dans le fichier scan.txt :
--------------------------------------
Scan started: Thu Sep 16 11:37:32 2004
clamav-0.75/test/test: ClamAV-Test-Signature FOUND
clamav-0.75/test/test.bz2: ClamAV-Test-Signature FOUND
clamav-0.75/test/test.msc: ClamAV-Test-Signature FOUND
clamav-0.75/test/test.rar: ClamAV-Test-Signature FOUND
clamav-0.75/test/test.zip: ClamAV-Test-Signature FOUND
clamav-0.75/test/test-zip-noext: ClamAV-Test-Signature FOUND
clamav-0.75/contrib/clamdwatch/clamdwatch.tar.gz: Eicar-Test-Signature FOUND
-- summary --
Known viruses: 22838
Scanned directories: 49
Scanned files: 541
Infected files: 7
Data scanned: 8.84 MB
I/O buffer size: 131072 bytes
Time: 5.264 sec (0 m 5 s)
ClamAv a donc trouvé 7 fichiers infectés.
6.1.3.2 freshclam
freshclam est un daemon permettant de mettre à jour automatiquement.
freshclam utilise le DNS database.clamav.net qui renvoie l'adresse du mirroir le plus proche.
La commande freshclam Sans paramètres permet de mettre à jour la base de donnée des virus ponctuellement. Si elle est lancée en tant que root elle changera d'identité pour utiliser l'utilisateur clamav.
root@localhost# freshclam
ClamAV update process started at Thu Sep 16 11:44:21 2004
Reading CVD header (main.cvd): OK
Downloading main.cvd [*]
main.cvd updated (version: 26, sigs: 22925, f-level: 2, builder: tomek)
Reading CVD header (daily.cvd): OK
Downloading daily.cvd [*]
daily.cvd updated (version: 493, sigs: 1244, f-level: 2, builder: diego)
Database updated (24169 signatures) from database.clamav.net (193.19.98.136).
On voit que 24000 signatures de virus ont été mises à jour.
Nous allons maintenant démarrer le daemon de façon à ce qu'il se mette à jour régulièrement.
Il faut tout d'abord créer les fichiers de logs de freshclam :
root@localhost# touch /var/log/clam-update.log
root@localhost# chmod 600 /var/log/clam-update.log
root@localhost# chown clamav:clamav /var/log/clam-update.log
Editiez ensuite le fichier /etc/clamav/freshclam.conf et ajoutez y :
UpdateLogFile /var/log/clam-update.log
Checks 24
On peut maintenant lancer freshclam en daemon :
root@localhost# freshclam -d
Ce daemon va mettre à jour la base de donnée de ClamAV 6 fois par jour (valeur minimum conseillée).
Il est aussi possible de lancer freshclam grâce à cron :
n * * * * /usr/local/bin/freshclam --quiet
Remplacez n par un nombre compris entre 0 et 59, mais pas un multiple de 10 car les serveurs sont déja très chargés à ce moment là.
La base de donnée des virus sera désormais mise à jour toutes les heures.
6.1.4 Intégration aux serveur mails
6.1.4.1 Sendmail
Pour intégrer ClamAV à sendmail, il faut ajouter le paramètre --enable-milter au script ./configure de ClamAV. Le programme /usr/local/bin/clamav-milter sera ajouté.
Editez ensuite le fichier /etc/mail/sendmail.mc et ajoutez y :
INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clmilter.sock',F=,T=S:4m;R:4m')dnl
define(`confINPUT_MAIL_FILTERS',`clmilter')dnl
Recompilez le fichier sendmail.mc avec les macros m4 :
root@localhost# m4 sendmail.mc > sendmail.cf
Editiez ensuite /etc/clamav/clamav.conf et verifiez qu'il contiens les lignes :
LocalSocket /var/run/clamav/clamd.sock
ScanMail
StreamSaveToDisk
Créez ensuite le réperoitre /var/run/clamav :
root@localhost# mkdir /var/run/clamav
root@localhost# chmod 750 /var/run/clamav
root@localhost# chown clamav:clamav /var/run/clamav
Il faut ensuite ajouter l'utilisateur smmsp (sendmail) au groupe clamav; pour cela, éditez le fichier /etc/group et ajoutez smmsp à la fin de la ligne commençant par clamav.
Lancez ensuite clamav-milter :
root@localhost# /usr/local/sbin/clamav-milter -lo /var/run/clamav/clmilter.sock
Il ne reste plus qu'a relancer sendmail. Pour cela vous devez d'abord regénérer son fichier de configuration /etc/mail/sendmail.cf :
root@localhost# m4 sendmail.mc > sendmail.cf
Puis relancez sendmail grâce à son script :
/etc/rc.d/rc.sendmail restart
ClamAV est maintenant opérationnel: vous pouvez essayer de vous envoyer le fichier clamav-x.yz/test/test (qui contiens une signature de virus) par mail, le serveur vous renverra une erreur 571 vous indiquant que le fichier contiens un virus.
6.1.4.2 TODO: Postfix
6.1.4.3 TODO: qmail
TODO: http://qmail-scanner.sourceforge.net/
6.1.4.4 TODO: exim
6.1.5 Ressources
Documentation offcielle (anglais)
Documentation officielle (français)