Par rapport à mon billet précédent sur spamassassinoù j'évoquais l'utilisation de Spamc, aujourd'hui j'ai découvert un script intéressant clamassassin qui permet d'utiliser clamav

1. Motivation

J'ai passé une bonne journée à essayer les diverses solutions fournies ci et là sur le Web (simscan, qsheff, qscanq ....) mais sans succès! L'installation de Qmail en elle même étant assez fastidieuse et ardue, ce n'est qu'en fin de soirée (jeudi 7 août 2008 en fin de soirée) que je suis parvenu à trouver cette solution assez intéressante et élégante car pas chère!. Personnellement, celà semble assez galère que d'essayer simscan et compagnie! D'où mon intérêt de l'avoir garder!

2. Installation de clamassassin 1.2.4

En pré-requis, il faut signaler que cette version de clamassassin est la seule qui fonctionnone conjointement pour ClamAV >= 0.90. Ce qui tombe bien car moi j'ai ClamAV 0.93 d'installé sur mon serveur-maison.

Le site est http://jameslick.com/clamassassin/

Pour l'installer, rien de plus simple que

wget http://jameslick.com/clamassassin/clamassassin-1.2.4.tar.gz
tar xvzf clamassassin-1.2.4.tar.gz 
cd clamassassin-1.2.4
./configure --enable-subject-rewrite
make
make install

L'option --enable-siubject-rewrite aura pour effet de mettre le motif "***VIRUS***" dans le sujet du maill.

Celà installe le script dans /usr/local/bin.

Par la suite pour l'utiliser conjointement avec spamc, on édite le script spamcheck.sh

vi /var/qmail/bin/spamcheck.sh

dont le nouveau contenu sera

/usr/local/bin/clamassassin|/usr/bin/spamc|/usr/local/bin/maildir ./Maildir/

3. Tests

Je vais maintenant procéder à 3 test pour vérifier le travail conjoint du spam et de l'antivirus:

  1. test avec le virus eicar;
  2. test pour un mail normal;
  3. test avec un mail considéré comme du spam.

Remarque: Je détaillerais les commandes pour le premier test. Quant aux deux autres, je me contenterais d'afficher le rendu.

3.1 Test avec VIRUS EICAR

Le test eicar est assez connu pour tester les antivirus. Dans un fichier eicar.txt, on met le contenu suivant

root@olivia:~# cat eicar.txt 
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Connecté en tant que root, je m'envois un petit mail en utilisant qmail-inject

 cat eicar.txt |/var/qmail/bin/qmail-inject david.techer

Depuis les logs de Qmail, j'ai le message suivant

2008-08-08 00:14:37.491745500 new msg 11748275
2008-08-08 00:14:37.491750500 info msg 11748275: bytes 276 from  qp 1252 uid 0
2008-08-08 00:14:37.497008500 starting delivery 45: msg 11748275 to local david.techer@davidgis.fr
2008-08-08 00:14:37.497013500 status: local 1/10 remote 0/20
2008-08-08 00:14:42.061792500 delivery 45: success: 1218147287.M519063P1259.olivia/did_0+0+1/
2008-08-08 00:14:42.061795500 status: local 0/10 remote 0/20
2008-08-08 00:14:42.061797500 end msg 11748275

Il ne reste plus qu'à visualiser le contenu du mail depuis mon Maildir

root@olivia:~# cat $(find /home/user/david.techer/Maildir/|grep 1218147287)
Return-Path: 
Delivered-To: david.techer@davidgis.fr
X-Spam-Checker-Version: SpamAssassin 3.1.7-deb (2006-10-05) on 
	olivia.davidgis.fr
X-Spam-Level: **
X-Spam-Status: No, score=2.8 required=5.0 tests=AWL,FM_MULTI_ODD2,
	MISSING_HEADERS,NO_REAL_NAME,NO_RELAYS autolearn=no version=3.1.7-deb
Received: (qmail 1252 invoked by uid 0); 7 Aug 2008 22:14:37 -0000
Date: 7 Aug 2008 22:14:37 -0000
Message-ID: <20080807221437.1251.qmail@davidgis.fr>
From: root@davidgis.fr
Cc: recipient list not shown: ;
Subject: *****VIRUS***** 
X-Virus-Status: Yes
X-Virus-Report: Eicar-Test-Signature FOUND 
X-Virus-Checker-Version: clamassassin 1.2.4 with clamscan / ClamAV 0.93.3/7962/Wed Aug  6 23:44:32 2008

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

On a donc bien un mail virusifié!

3.2 Avec un mail normal

Si on a compris les commandes utilisées dans la section précédente, on peut aussi faire ce qui suit. Je vais m'envoyer un simple mail contenant le message "Linux c'est de la balle..."

root@olivia:~# echo "Linux c'est de la balle..." |/var/qmail/bin/qmail-inject david.techer
root@olivia:~# qmail-log.sh 
2008-08-08 00:16:06.804082500 info msg 11748214: bytes 77442 from  qp 2508 uid 1004
2008-08-08 00:16:06.815372500 starting delivery 46: msg 11748214 to local david.techer@davidgis.fr
2008-08-08 00:16:06.815377500 status: local 1/10 remote 0/20
2008-08-08 00:16:18.208044500 delivery 46: success: 1218147376.M886955P2522.olivia/did_0+0+1/
2008-08-08 00:16:18.208048500 status: local 0/10 remote 0/20
2008-08-08 00:16:18.208050500 end msg 11748214
2008-08-08 00:33:11.677308500 new msg 11748214
2008-08-08 00:33:11.677313500 info msg 11748214: bytes 234 from  qp 6379 uid 0
2008-08-08 00:33:11.699261500 starting delivery 47: msg 11748214 to local david.techer@davidgis.fr
2008-08-08 00:33:11.699266500 status: local 1/10 remote 0/20
2008-08-08 00:33:16.587431500 delivery 47: success: 1218148401.M704201P6387.olivia/did_0+0+1/
2008-08-08 00:33:16.587435500 status: local 0/10 remote 0/20
2008-08-08 00:33:16.587436500 end msg 11748214
root@olivia:~# cat $(find /home/user/david.techer/Maildir/|grep  1218148401)
Return-Path: 
Delivered-To: david.techer@davidgis.fr
X-Spam-Checker-Version: SpamAssassin 3.1.7-deb (2006-10-05) on 
	olivia.davidgis.fr
X-Spam-Level: **
X-Spam-Status: No, score=2.9 required=5.0 tests=AWL,MISSING_HEADERS,
	MISSING_SUBJECT,NO_REAL_NAME,NO_RELAYS autolearn=no version=3.1.7-deb
Received: (qmail 6379 invoked by uid 0); 7 Aug 2008 22:33:11 -0000
Date: 7 Aug 2008 22:33:11 -0000
Message-ID: <20080807223311.6378.qmail@davidgis.fr>
From: root@davidgis.fr
Cc: recipient list not shown: ;
X-Virus-Status: No
X-Virus-Checker-Version: clamassassin 1.2.4 with clamscan / ClamAV 0.93.3/7962/Wed Aug  6 23:44:32 2008

Linux c'est de la balle...

Donc aucun souci! Reste à voir pour du spam.

Remarque: Dans les entêtes, on voit bien que les filtres sont appliqués.

3.3 Mail avec Spam

Dans les règles qui régissent mon spamassassin, il suffit par exemple que mon mail contienne "Bad erection" pour que ce dernier soit considéré comme du spam. C'est ce que nous allons faire ici.

root@olivia:~# echo "Linux c'est de la balle...Bad erection with MySQL" |/var/qmail/bin/qmail-inject david.techer
root@olivia:~# qmail-log.sh 
2008-08-08 00:33:11.677313500 info msg 11748214: bytes 234 from  qp 6379 uid 0
2008-08-08 00:33:11.699261500 starting delivery 47: msg 11748214 to local david.techer@davidgis.fr
2008-08-08 00:33:11.699266500 status: local 1/10 remote 0/20
2008-08-08 00:33:16.587431500 delivery 47: success: 1218148401.M704201P6387.olivia/did_0+0+1/
2008-08-08 00:33:16.587435500 status: local 0/10 remote 0/20
2008-08-08 00:33:16.587436500 end msg 11748214
2008-08-08 00:38:26.050703500 new msg 11748214
2008-08-08 00:38:26.050708500 info msg 11748214: bytes 257 from  qp 7685 uid 0
2008-08-08 00:38:26.067318500 starting delivery 48: msg 11748214 to local david.techer@davidgis.fr
2008-08-08 00:38:26.067323500 status: local 1/10 remote 0/20
2008-08-08 00:38:30.651123500 delivery 48: success: 1218148716.M092893P7699.olivia/did_0+0+1/
2008-08-08 00:38:30.651127500 status: local 0/10 remote 0/20
2008-08-08 00:38:30.651128500 end msg 11748214
root@olivia:~# cat $(find /home/user/david.techer/Maildir/|grep  1218148716)
Return-Path: 
Delivered-To: david.techer@davidgis.fr
Received: from localhost by olivia.davidgis.fr
	with SpamAssassin (version 3.1.7-deb);
	Fri, 08 Aug 2008 00:38:30 +0200
From: root@davidgis.fr
Cc: recipient list not shown: ;
Subject: *****SPAM***** 
Date: 7 Aug 2008 22:38:26 -0000
Message-Id: <20080807223826.7684.qmail@davidgis.fr>
X-Spam-Flag: YES
X-Spam-Checker-Version: SpamAssassin 3.1.7-deb (2006-10-05) on 
	olivia.davidgis.fr
X-Spam-Level: ********
X-Spam-Status: Yes, score=8.3 required=5.0 tests=AWL,FB_BAD_ERECT,
	MISSING_HEADERS,MISSING_SUBJECT,NO_REAL_NAME,NO_RELAYS autolearn=no 
	version=3.1.7-deb
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----------=_489B7966.41094D1D"

This is a multi-part message in MIME format.

------------=_489B7966.41094D1D
Content-Type: text/plain
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

Spam detection software, running on the system "olivia.davidgis.fr", has
identified this incoming email as possible spam.  The original message
has been attached to this so you can view it (if it isn't spam) or label
similar future email.  If you have any questions, see
the administrator of that system for details.

Content preview:  [...] 

Content analysis details:   (8.3 points, 5.0 required)

 pts rule name              description
---- ---------------------- --------------------------------------------------
 0.6 NO_REAL_NAME           From: does not include a real name
-0.0 NO_RELAYS              Informational: message was not relayed via SMTP
 0.2 MISSING_HEADERS        Missing To: header
  11 FB_BAD_ERECT           BODY: Phrase: Bad Erection
 1.3 MISSING_SUBJECT        Missing Subject: header
-4.6 AWL                    AWL: From: address is in the auto white-list



------------=_489B7966.41094D1D
Content-Type: message/rfc822; x-spam-type=original
Content-Description: original message before SpamAssassin
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

Received: (qmail 7685 invoked by uid 0); 7 Aug 2008 22:38:26 -0000
Date: 7 Aug 2008 22:38:26 -0000
Message-ID: <20080807223826.7684.qmail@davidgis.fr>
From: root@davidgis.fr
Cc: recipient list not shown: ;
X-Virus-Status: No
X-Virus-Checker-Version: clamassassin 1.2.4 with clamscan / ClamAV 0.93.3/7962/Wed Aug  6 23:44:32 2008

Linux c'est de la balle...Bad erection with MySQL


------------=_489B7966.41094D1D--