HOWTO configure simscan with qmail vpopmail spamassassin

28/07/2006 by - Linux, Qmail-Postfix

SimScan si propone come sostituto di qmail-scanner , tool in perl che permette l’integrazione fra antivirus e antispam in qmail.
I test sono effettuati su Debian Sarge con qmail, spamassassin, clamav pacchetti DEB e vpopmail e simscan sorgenti.
Questo HOW-TO copre soltanto la parte di configurazione di simscan, se siete arrivati qui cercando risposte a problemi di qmail spamassassin o clamav difficilmente troverete risposte, se invece avete dubbi sulla strada da intraprendere per quanto riguarda la dettagliata configurazione di simscan qui potete trovare qualche spunto. I passi per le prove sono:

/* Estraete i src… */

$./configure –enable-opzione –enable-altraopzione=5
$make
#make install-strip

/* Editare le opzioni e preparazione dei cdb*/

#vi /etc/qmail/simcontrol
#simscanmk -g
#simscanmk

Utilizzare l’opzione DEBUG, sia per problemi inerenti a simscan (permission soprattutto) che per spamassassin (il debug di spamassassin si attiva con l’opzione -D su /etc/default/spamassassin)

OPTIONS=”-D –create-prefs –max-children 5 –helper-home-dir”

Requisiti fondamentali sono il corretto funzionamento di qmail con qmail-queue patch

E l’utilizzo di questo comando

#env QMAILQUEUE=/var/qmail/bin/simscan SIMSCAN_DEBUG=9 qmail-inject [email protected] < /usr/share/doc/spamassassin/examples/sample-spam.txt

QMAILQUEUE e SIMSCAN_DEBUG sono variabili che ci permettono di dire a qmail-inject di contattare simscan prima di deliverare il msg e di stampare un debug molto alto.
[email protected] deve essere un indirizzo gestito in rcpthost.

/usr/share/doc/spamassassin/examples/sample-spam.txt è un semplice messaggio di posta che contiene la stringa

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

una stringa particolare, chiamata "Generic Test for Unsolicited Bulk Email", usata per testare la bontà del filtro. Come avviene con il celeberrimo EICAR test per quanto riguarda il test dei prodotti antivirus.
Un esempio di EICAR test potete trovarlo qui http://spamassassin.apache.org/gtube/gtube.txt

Primo esempio di configure

./configure

--enable-user=clamav
--enable-clamav=y
--enable-clamdscan=/usr/bin/clamdscan
--enable-attach=y
--enable-spam=y
--enable-spamc=/usr/bin/spamc
--enable-ripmime=/usr/local/bin/ripmime
--enable-passthru=n
--enable-dropmsg=y
--enable-spam-auth-user=y
--enable-spam-hits=5
--enable-per-domain=y

Configurazione antivirus/antispam che permette il controllo sugli allegati/estensioni.
Lo SPAM viene scartato con un punteggio superiore al 5, si possono scegliere soluzioni diverse per utente/dominio.

Testare con GTUBE [spam example]

#env QMAILQUEUE=/var/qmail/bin/simscan SIMSCAN_DEBUG=9 qmail-inject [email protected] < /usr/share/doc/spamassassin/examples/sample-spam.txt

Dal mail.log troverete

Jul 28 11:39:47 mail1 spamd[20006]: identified spam (997.2/5.0) for clamav:105 in 0.8 seconds, 799 bytes.

e sulla vostra casella email nessuna traccia del messaggio.

I permessi della directory di quarantine /var/qmail/simscan

drwxr-x---  19 clamav root  4096 Jul 28 11:44 simscan

L'esempio qui sopra ha prodotto come risultato l'eliminazione definitiva della mail.
In una situazione con clienti stranieri magari orientali (esempio messaggio dalla Cina con corpo in inglese e firma in cinese && inglese)
sarebbe stato meglio consegnare all'utente il messaggio (con il soggetto modificato) e lasciar decidere a quest'ultimo cosa farne della mail.

Simscan possiede un'ottima documentazione, l'abilitazione di certe opzioni ne annullano altre, e i path devono comprender ANCHE il nome del binario.

Questa configurazione permette una flessibilità di configurazione maggiore rispetto al precedente.

./configure
--enable-user=clamav
--enable-clamav=y
--enable-clamdscan=/usr/bin/clamdscan
--enable-attach=y
--enable-spam
--enable-spam-passthru
--enable-spamc=/usr/bin/spamc
--enable-ripmime=/usr/local/bin/ripmime
--enable-dropmsg=n
--enable-per-domain=y
--enable-received=y

Modificato il file /etc/spamassassin/local.cf come segue per abilitare la riscrittura del subject

required_score           5.0
rewrite_header Subject ****SPAM(_SCORE_)****

Aggiunti nel file /etc/qmail/simcontrol i settaggi peruser o perdomain possiamo scegliere una diversa configurazione per ogni utente / dominio

# Se voglio scansione AV ma non AS per il dominio amelospam.com

amelospam.com:clam=yes,spam=no

# Se voglio solo controllo antispam e il reject dei msg con punteggio > 5 e nessun controllo su virus

iosolovirus.it:clam=no,spam=yes,spam_passthru=no

# Se voglio che solo l'utente texilee del dominio amelospam.com abbia scansione AV e riscrittura dell'oggetto se SPAM

[email protected]:clam=yes,spam=yes,spam_passthru=yes

# Per tutti gli altri controllo spam e antivirus, lo spam viene lo stesso deliverato ma taggato

:clam=yes,spam=yes,spam_passthru=yes

Il comando per ricreare il cdb

#simscanmk

Tutte le prove possono essere fatte con il file virus EICAR e il file spam GTUBE e un paio di domini "fittizi" inseriti con vadddomain

Esempio DEBUG invio a [email protected], AV + AS e rewrite dell'oggetto

simscan: calling clamdscan
simscan: cdb looking up version clamav
simscan: runned_scanners is clamav: 0.88.3/m:39/d:1624
simscan: found 0.88.3/m:39/d:1624
simscan: normal clamdscan return code: 0
simscan: calling spamc
simscan: calling /usr/bin/spamc spamc
simscan: cdb looking up version spam
simscan: runned_scanners is clamav: 0.88.3/m:39/d:1624 spam: 3.0.3
simscan: found 3.0.3
simscan: delivering spam because spam-passthru is defined in this domain
simscan:[21147]:PASSTHRU (997.20/5.00):0.9908s:****SPAM(997.2)**** Test spam mail (GTUBE):(null):root@me:[email protected]
simscan: done, execing qmail-queue
simscan: qmail-queue exited 0

Debug molto chiaro.

Ad un utente del dominio iosolovirus.it lo spam non viene recapitato

simscan:[21226]:SPAM REJECT (997.20/5.00):1.0382s:****SPAM(997.2)**** Test spam mail (GTUBE):(null):[email protected]:[email protected]
simscan: check_spam detected spam refuse message
simscan: exit error code: 31
qmail-inject: fatal: mail server permanently rejected message (#5.3.0)

Se invio un virus ad un utente di iosolovirus.it viene recapitato (casistica molto rara ma già affrontata)

simscan:[21231]:CLEAN (0.10/5.00):2.2078s::(null):root@me:[email protected]
simscan: done, execing qmail-queue
simscan: qmail-queue exited 0

Se lo invio ad un qualsiasi altro utente

simscan: clamdscan detected a virus
simscan:[21250]:VIRUS:0.0438s:Eicar-Test-Signature:(null):root@me:texilee@dominio
simscan: exit error code: 31
qmail-inject: fatal: mail server permanently rejected message (#5.3.0)

I messaggi non buoni e non consegnati vengono inseriti nella dir

/var/qmail/simscan

Sta a voi decidere cosa fare, se non vi interessa salvarli potete creare uno script che dopo un tot li cancella.
Può essere interessante dal momento che la struttura della dir di quarantena inizia con il timestamp in unix time

Confrontalo con quello di un mese fa

$date --date="30 day ago" +'%s'

oppure usate find e mtime in combinazione con xargs



Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.