Spam Filtering · 17 min read · Sep 24, 2025

SpamAssassin-ClamAV-Procmail-Howto

SpamAssassin-ClamAV-Procmail-Howto

Version 1.0
Autore: Falko Timme

Questo documento descrive come installare SpamAssassin (per filtrare SPAM) e ClamAV (per filtrare virus, trojan, worm, ecc.) e come invocarli utilizzando ricette procmail. È adatto per scenari in cui Sendmail o Postfix consegnano email a utenti locali. Dovrebbe funzionare (forse con lievi modifiche riguardanti i percorsi, ecc.) su tutti i sistemi operativi *nix. Finora l’ho testato su Debian Woody.

Alla fine avrai un sistema in cui Sendmail o Postfix consegnano email a un utente locale; le email vengono passate a procmail che invoca SpamAssassin e ClamAV per filtrare le email prima che arrivino nella casella di posta dell’utente. Tuttavia, l’installazione di Sendmail e Postfix non è trattata in questo documento.

Questo howto è inteso come una guida pratica; non copre i fondamenti teorici. Questi sono trattati in molti altri documenti sul web.

Questo documento viene fornito senza garanzia di alcun tipo!

Si prega di notare: Se utilizzi il pannello di controllo del server 42go ISP-Manager non è necessario seguire questo tutorial poiché il 42go ISP-Manager viene fornito con SpamAssassin e ClamAV, e entrambi possono essere configurati tramite il 42go ISP-Manager!

1 Installare SpamAssassin

Ci sono più modi per installare SpamAssassin. Qui descriverò tre di essi:

| 1. | Installazione utilizzando la Shell Perl Accedi alla tua linea di comando come root ed esegui il seguente comando per avviare la shell Perl: perl -MCPAN -e shell Se esegui la shell Perl per la prima volta ti verranno poste alcune domande. Nella maggior parte dei casi le risposte predefinite vanno bene. Si prega di notare: Se esegui un firewall sul tuo sistema potresti doverlo disattivare mentre lavori sulla shell Perl affinché la shell Perl possa recuperare i moduli necessari senza un grande ritardo. Puoi riattivarlo in seguito. Il grande vantaggio della shell Perl rispetto agli altri due metodi descritti qui è che si occupa delle dipendenze quando installa nuovi moduli. Cioè, se risulta che un modulo Perl prerequisito è mancante quando installi un altro modulo, la shell Perl ti chiede se deve installare il modulo prerequisito per te. Dovresti rispondere a quella domanda con “Sì”. Esegui i seguenti comandi per installare SpamAssassin e alcuni altri moduli necessari: install HTML::Parser
install DB_File
install Net::DNS
(quando richiesto di abilitare i test, scegli no)
install Digest::SHA1
install Mail::SpamAssassin
q
(per uscire dalla shell Perl) Se un modulo è già installato sul tuo sistema riceverai un messaggio simile a questo: HTML::Parser è aggiornato. L’installazione riuscita di un modulo appare così: /usr/bin/make install – OK | | 2. | Installazione dai sorgenti ( Si prega di notare: I moduli Perl prerequisiti (almeno HTML::Parser) devono essere installati prima di compilare SpamAssassin dai sorgenti. Se non lo sono, installali utilizzando uno degli altri due metodi descritti qui, oppure ottieni i sorgenti da http://www.cpan.org e compila. Questo è simile ai passaggi descritti qui per SpamAssassin.) cd /tmp
wget http://www.mirror.ac.uk/sites/spamassassin.taint.org/spamassassin.org
/released/Mail-SpamAssassin-2.63.tar.gz
(1 riga)
tar xvfz Mail-SpamAssassin-2.63.tar.gz
cd Mail-SpamAssassin-2.63
perl Makefile.PL
make
make install
| | 3. | Installazione utilizzando Webmin Se hai webmin ( http://www.webmin.com) installato sul tuo sistema puoi usarlo per installare i moduli Perl. Accedi a webmin, vai su Altri -> Moduli Perl, e installa SpamAssassin: Se ricevi messaggi di errore questo è per lo più dovuto al fatto che alcuni moduli prerequisiti mancano sul tuo sistema. Installali (almeno HTML::Parser è richiesto), e poi prova a installare di nuovo il modulo che volevi installare per primo. |

SpamAssassin sarà installato in /usr/local/share/spamassassin/.

2 Installare ClamAV

cd /tmp
groupadd clamav
useradd -g clamav -s /bin/false -c “Clam AntiVirus” clamav
wget http://heanet.dl.sourceforge.net/sourceforge/clamav/clamav-0.67.tar.gz
tar xvfz clamav-0.67.tar.gz
cd clamav-0.67
./configure –sysconfdir=/etc

( Si prega di notare: ./configure –help fornisce un elenco di tutte le opzioni di configurazione disponibili.)

make
su -c “make install”

Se esegui

clamd

ora riceverai un messaggio di errore:

ERRORE: Si prega di modificare il file di configurazione di esempio /etc/clamav.conf.

Devi almeno rimuovere la direttiva Example. Il mio /etc/clamav.conf appare così:

| ## ## File di configurazione di esempio per il demone Clam AV ## Si prega di leggere il manuale clamav.conf(5) prima di modificare questo file. ## # Commenta o rimuovi la riga qui sotto. #Example # Decommenta questa opzione per abilitare il logging. # LogFile deve essere scrivibile per l'utente che esegue il demone. # È richiesto il percorso completo. #LogFile /tmp/clamd.log # Per impostazione predefinita il file di log è bloccato per la scrittura - il blocco protegge contro # l'esecuzione di clamd più volte (se vuoi eseguire un altro clamd, per favore # copia il file di configurazione, modifica la variabile LogFile, e avvia # il demone con l'opzione --config-file). Ecco perché non dovresti decommentare # questa opzione. #LogFileUnlock # Dimensione massima del file di log. Il valore predefinito è 1 Mb. # Un valore di 0 disabilita il limite. # Puoi usare 'M' o 'm' per megabyte (1M = 1m = 1048576 byte) # e 'K' o 'k' per kilobyte (1K = 1k = 1024 byte). Per specificare la dimensione # in byte basta non usare modificatori. #LogFileMaxSize 2M # Registra il tempo con ogni messaggio. #LogTime # Usa il logger di sistema (può funzionare insieme a LogFile). #LogSyslog # Abilita il logging verboso. #LogVerbose # Questa opzione ti consente di salvare l'identificatore del processo del # demone in ascolto (thread principale). #PidFile /var/run/clamd.pid # Percorso a una directory contenente file .db. # Il valore predefinito è la directory hardcoded (per lo più /usr/local/share/clamav, # dipende dalle opzioni di installazione). #DatabaseDirectory /var/lib/clamav # Il demone funziona in modalità locale o di rete. Attualmente la modalità locale è # raccomandata per motivi di sicurezza. # Percorso al socket locale. Il demone non cambia il modo del # file creato (motivi di portabilità). Potresti volerlo creare in una directory # accessibile solo per un utente che esegue il demone. LocalSocket /tmp/clamd # Rimuovi il socket obsoleto dopo uno spegnimento non pulito. #FixStaleSocket # Indirizzo della porta TCP. #TCPSocket 3310 # Indirizzo TCP. # Per impostazione predefinita ci colleghiamo a INADDR_ANY, probabilmente non saggio. # Abilita il seguente per fornire un certo grado di protezione # dal mondo esterno. #TCPAddr 127.0.0.1 # Lunghezza massima che la coda delle connessioni in attesa può crescere. # Il valore predefinito è 15. #MaxConnectionQueueLength 30 # Quando attivato, il flusso di input (vedi comando STREAM) verrà salvato su disco prima # della scansione - questo consente la scansione all'interno degli archivi. #StreamSaveToDisk # Chiudi la connessione se questo limite viene superato. #StreamMaxLength 10M # Numero massimo di thread in esecuzione contemporaneamente. # Il valore predefinito è 5, e dovrebbe essere sufficiente per una workstation tipica. # Potresti dover aumentare il numero di thread per una macchina server. #MaxThreads 10 # Il thread (scanner - singolo compito) verrà arrestato dopo questo tempo (secondi). # Il valore predefinito è 180. Un valore di 0 disabilita il timeout. SUGGERIMENTO DI SICUREZZA: Aumenta il # timeout invece di disabilitarlo. #ThreadTimeout 500 # Massima profondità alla quale le directory vengono scansionate. MaxDirectoryRecursion 15 # Segui i symlink delle directory. # SUGGERIMENTO DI SICUREZZA: Dovresti aver abilitato il limite di ricorsione delle directory per # evitare potenziali problemi. #FollowDirectorySymlinks # Segui i symlink dei file regolari. #FollowFileSymlinks # Esegui controlli interni (ad es. controlla l'integrità delle strutture del database) # Per impostazione predefinita clamd controlla se stesso ogni 3600 secondi (1 ora). #SelfCheck 600 # Esegui un comando quando viene trovato un virus. Nella stringa del comando %v e %f verranno # sostituiti rispettivamente dal nome del virus e dal nome del file infetto. # # AVVISO DI SICUREZZA: Assicurati che il comando dell'evento virus non possa essere sfruttato, # ad es. utilizzando un nome di file speciale quando viene utilizzato %f. # Usa sempre un percorso completo per il comando. # Non eliminare/spostare file con questa direttiva ! #VirusEvent /usr/local/bin/send_sms 123456789 "VIRUS ALERT: %f: %v" # Esegui come utente selezionato (clamd deve essere avviato da root). # Per impostazione predefinita non abbandona i privilegi. User clamav # Inizializza l'accesso ai gruppi supplementari (per tutti i gruppi in /etc/group # l'utente è aggiunto. clamd deve essere avviato da root). #AllowSupplementaryGroups # Non forkare in background. Utile per il debug. #Foreground # Abilita i messaggi di debug in libclamav. #Debug ## ## Supporto per la posta ## # Decommenta questa opzione se prevedi di scansionare file di posta. ScanMail ## ## Supporto per archivi ## # Commenta questa riga per disabilitare la scansione degli archivi. ScanArchive # Per impostazione predefinita l'estrattore RAR integrato è disabilitato perché il codice # perde terribilmente, tuttavia è probabilmente una buona idea abilitarlo. #ScanRAR # Le opzioni qui sotto proteggono il tuo sistema contro attacchi Denial of Service # con bombe ad archivio. # I file negli archivi più grandi di questo limite non verranno scansionati. # Un valore di 0 disabilita il limite. # AVVISO: A causa dell'implementazione unrarlib, interi file (uno per uno) negli archivi RAR # vengono decompressi in memoria. Ecco perché non disabilitare mai # questo limite (ma puoi aumentarlo ovviamente!) ArchiveMaxFileSize 10M # Gli archivi vengono scansionati ricorsivamente - ad es. se un archivio Zip contiene un file RAR, # il file RAR verrà decompresso, anche (ma solo se il limite di ricorsione è impostato # almeno a 1). Con questa opzione puoi impostare il livello di ricorsione. # Un valore di 0 disabilita il limite. ArchiveMaxRecursion 5 # Numero di file da scansionare all'interno dell'archivio. # Un valore di 0 disabilita il limite. ArchiveMaxFiles 1000 # Usa un algoritmo di decompressione più lento che utilizza meno memoria. Questa opzione # influisce solo sul decompressore bzip2. #ArchiveLimitMemoryUsage ## ## Impostazioni Clamuko ## AVVISO: Questo è software sperimentale. È molto probabile che blocchi ## il tuo sistema !!! ## # Abilita Clamuko. Dazuko (/dev/dazuko) deve essere configurato e in esecuzione. #ClamukoScanOnLine # Imposta la maschera di accesso per Clamuko. ClamukoScanOnOpen ClamukoScanOnClose ClamukoScanOnExec # Imposta i percorsi di inclusione (tutti i file in essi verranno scansionati). Puoi avere # più opzioni ClamukoIncludePath, ma ogni directory deve essere aggiunta # in un'opzione separata. Anche tutte le sottodirectory vengono scansionate. ClamukoIncludePath /home #ClamukoIncludePath /students # Imposta i percorsi di esclusione. Anche tutte le sottodirectory sono escluse. #ClamukoExcludePath /home/guru # Limita la dimensione del file da scansionare (probabilmente non vuoi scansionare i tuoi film # ;)) # Un valore di 0 disabilita il limite. 1 Mb dovrebbe andare bene. ClamukoMaxFileSize 1M # Abilita il supporto per archivi. Usa i limiti dalla sezione clamd. # (Questa opzione non dipende da ScanArchive, puoi avere il supporto per archivi # disabilitato in clamd). # ClamukoScanArchive |

Ora dobbiamo creare uno script di init per ClamAV ( /etc/init.d/clamd):

| #!/bin/bash TMPDIR=/tmp PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin case "$1" in start) echo "Avvio ClamAV..." if [ -S /tmp/clamd ]; then echo "ClamAV è già in esecuzione!" else /usr/local/bin/freshclam -d -c 10 --datadir=/usr/local/share/clamav /usr/local/sbin/clamd fi echo "ClamAV è ora attivo e funzionante!" ;; stop) echo "Spegnimento di ClamAV..." array=(`ps ax | grep -iw '/usr/local/bin/freshclam' | grep -iv 'grep' | awk '{print $1}' | cut -f1 -d/ | tr ' ' ' '`) element_count=${#array[@]} index=0 while [ "$index" -lt "$element_count" ] do kill -9 ${array[$index]} let "index = $index + 1" done array=(`ps ax | grep -iw '/usr/local/sbin/clamd' | grep -iv 'grep' | awk '{print $1}' | cut -f1 -d/ | tr ' ' ' '`) element_count=${#array[@]} index=0 while [ "$index" -lt "$element_count" ] do kill -9 ${array[$index]} let "index = $index + 1" done if [ -S /tmp/clamd ]; then rm -f /tmp/clamd fi echo "ClamAV fermato!" ;; restart) $0 stop && sleep 3 $0 start ;; *) echo "Uso: $0 {start|stop|restart}" exit 1 esac exit 0 |

chmod 755 /etc/init.d/clamd

Ora avviamo ClamAV:

/etc/init.d/clamd start

Se esegui

ps aux

ora noterai alcuni processi clamd (che utilizzano il socket /tmp/clamd) e un processo freshclam responsabile dell’ottenimento degli aggiornamenti più recenti delle firme virali. Si trovano sotto /usr/local/share/clamav. Il comando **

/usr/local/bin/freshclam -d -c 10 –datadir=/usr/local/share/clamav

nel nostro script di init clamd assicura che freshclam controlli nuove firme 10 volte al giorno.

Per avviare ClamAV all’avvio del sistema esegui i seguenti comandi:

ln -s /etc/init.d/clamd /etc/rc2.d/S20clamd
ln -s /etc/init.d/clamd /etc/rc3.d/S20clamd
ln -s /etc/init.d/clamd /etc/rc4.d/S20clamd
ln -s /etc/init.d/clamd /etc/rc5.d/S20clamd
ln -s /etc/init.d/clamd /etc/rc0.d/K20clamd
ln -s /etc/init.d/clamd /etc/rc1.d/K20clamd
ln -s /etc/init.d/clamd /etc/rc6.d/K20clamd

3 Installare trashscan

trashscan è uno script shell che fa da collegamento tra procmail e ClamAV (cioè, quando arriva un’email, procmail viene invocato che a sua volta invoca trashscan per far scansionare la mail per virus da ClamAV). Viene fornito con ClamAV.

*cd /tmp/clamav-0.67/contrib/trashscan
tar xvfz trashscan-0.08.tar.gz
cd trashscan-0.08

  • cp -pf trashscan /usr/local/sbin/

Ora dobbiamo regolare alcune variabili nella sezione “Settinx” di /usr/local/sbin/trashscan. Le mie impostazioni sono le seguenti:

| #!/bin/bash # # TrashScan v0.08; Scansiona email per virus # ZapCoded da Trashware; 13.10.2002 # Email: [email protected] # Web: http://trashware.mirrorz.com # PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin # --------------------------------------- Inizio Settinx ---------------------------------------- # SCANDIR=$HOME/tmp # Directory temporanea per le scansioni di virus. # Sicurezza: Non definire directory # pubblicamente accessibili qui !!! # $HOME/tmp dovrebbe andare bene. #DECODER=metamail # Decodificatore: "metamail" o "uudeview" #DECODPRG=metamail # Percorso assoluto al decodificatore: metamail DECODER=uudeview # Decodificatore: "metamail" o "uudeview" DECODPRG=/usr/local/bin/uudeview # Percorso assoluto al decodificatore: uudeview VSCANPRG=/usr/local/bin/clamscan # Percorso assoluto allo scanner di virus VSCANOPT="--quiet --tempdir=$HOME/tmp --recursive --max-files=500 \ --max-space=30M --unzip=/usr/bin/unzip --unrar=/usr/bin/unrar \ --unarj=/usr/bin/unarj --zoo=/usr/bin/zoo --lha=/usr/bin/lha \ --jar=/usr/bin/unzip --tar=/bin/tar --tgz=/bin/tar" # Parametri per lo scanner di virus. # Sicurezza: Non scegliere directory pubblicamente # accessibili per la # definizione --tempdir !!! # --tempdir=$HOME/tmp dovrebbe andare bene. VSCANVEX=1 # Codice di uscita dello scanner di virus se un # virus è stato trovato VSCANSUSP=mail.virus # File per memorizzare email sospette (vedi # procmail.trashscan) FORMAIL=formail # Percorso assoluto a formail PROCMAIL=procmail # Percorso assoluto a procmail SENDMAIL=sendmail # Percorso assoluto a sendmail CAT=cat # Percorso assoluto a cat GREP=grep # Percorso assoluto a grep LOGGER=logger # Percorso assoluto a logger LOGPRIO=mail.warn # Livello di log per logger MKDIR=mkdir # Percorso assoluto a mkdir RM=rm # Percorso assoluto a rm SED=sed # Percorso assoluto a sed [email protected] # Ricevitore dei messaggi di avviso virus [email protected] # Mittente dei messaggi di avviso virus [email protected] # Persona da contattare (appare nel # corpo dell'email di avviso virus) # ---------------------------------------- Fine Settinx ---------------------------------------- # |

Si prega di notare che ho impostato la variabile PATH all’inizio dello script:

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin

Questo mi consente di non specificare il percorso assoluto della maggior parte dei programmi necessari a trashscan (ad es. formail, procmail, sendmail) finché sono nel PATH.

VSCANOPT specifica i percorsi di alcuni programmi necessari per decomprimere file in vari formati di compressione (se un’email arriva con un allegato compresso, ad es. zip, tar.gz). Non hai bisogno di tutti i programmi lì, ma ti consiglio di avere almeno unzip e tar installati (se non li hai, usa http://www.rpmfind.net per cercare unzip e tar se usi una distribuzione basata su rpm, e installa i pacchetti appropriati con

rpm -ivh nome-del-pacchetto.rpm

Se usi Debian, tutto ciò che devi fare è

apt-get install unzip tar

).

Assicurati di specificare l’indirizzo email corretto della persona che riceverà una notifica se viene trovato un virus.

4 Installare uudeview

trashscan ha bisogno di un programma per decodificare i messaggi email. Nelle impostazioni di trashscan sopra ho specificato che trashscan dovrebbe usare uudeview che installeremo ora.

cd /tmp
wget http://www.fpx.de/fp/Software/UUDeview/download/uudeview-0.5.19.tar.gz
tar xvfz uudeview-0.5.19.tar.gz
cd uudeview-0.5.19
./configure
make
make install

5 Configurare Procmail

procmail è normalmente installato di default nella maggior parte delle distribuzioni, quindi non tratterò qui l’installazione di procmail. Esegui

which procmail

per scoprire dove si trova il tuo procmail (nel mio caso è /usr/bin/procmail).

Ora mostrerò come configurare procmail per l’utente testuser che ha la sua home directory sotto /home/www/web1/user/testuser. Assicurati che nessuna delle directory in questo percorso ( /home, /home/www, /home/www/web1, /home/www/web1/user, /home/www/web1/user/testuser) sia scrivibile da gruppo o da tutti. Dovrebbero avere i permessi rwxr-xr-x (o 755). Altrimenti procmail potrebbe rifiutarsi di funzionare correttamente!

Prima dobbiamo creare il file /home/www/web1/user/testuser/.forward in modo che procmail venga invocato quando arriva una mail per testuser. Ha il seguente contenuto:

| "|/usr/bin/procmail -f-" |

chown testuser /home/www/web1/user/testuser/.forward
chmod 600 /home/www/web1/user/testuser/.forward

Ora creiamo il file /home/www/web1/user/testuser/.procmailrc. Questo è il file in cui procmail cercherà le ricette (cioè, i comandi da eseguire). Per motivi di chiarezza includiamo semplicemente le nostre ricette principali in questo file:

| ## MAILDIR=$HOME/Maildir/ ## DEFAULT=$MAILDIR INCLUDERC=/home/www/web1/user/testuser/.antivirus.rc INCLUDERC=/home/www/web1/user/testuser/.html-trap.rc INCLUDERC=/home/www/web1/user/testuser/.spamassassin.rc |

( Si prega di notare: Decommenta le prime due righe se usi Maildir per le tue email, cioè, le tue email sono memorizzate sotto /home/www/web1/user/testuser/Maildir/ invece di /var/spool/mail.)

La nostra prima ricetta è /home/www/web1/user/testuser/.antivirus.rc:

| # # configurazione procmail per TrashScan: ZapCoded da Trashware; 13.10.2002 # # [ ... ] # ------------------------------------------------------------------------------------- # # Sezione scansione virus ... # # ------------------------------------------------------------------------------------- # # 1. Esegui TrashScan :0 * multipart * !^X-Virus-Scan: | /usr/local/sbin/trashscan # 2. Filtra le email con virus contrassegnati :0: * ^X-Virus-Scan: Sospetto /dev/null |

/home/www/web1/user/testuser/.html-trap.rc è discusso di seguito, quindi la nostra seconda ricetta è /home/www/web1/user/testuser/.spamassassin.rc:

| # Esempio di procmailrc di SpamAssassin # # Invia l'email attraverso spamassassin (sostituisci 'spamassassin' con 'spamc' # se usi la combinazione spamc/spamd) # La riga di condizione assicura che solo i messaggi più piccoli di 250 kB # (250 * 1024 = 256000 byte) siano elaborati da SpamAssassin. La maggior parte dello spam # non è più grande di qualche k e lavorare con messaggi grandi può portare # SpamAssassin in ginocchio. :0fw * < 256000 | /usr/local/bin/spamassassin --prefs-file=/home/www/web1/user/testuser/.user_prefs # Tutte le email contrassegnate come spam (ad es. con un punteggio superiore alla soglia impostata) # vengono spostate in "/dev/null". #:0: #* ^X-Spam-Status: Sì #/dev/null # Risolvi il bug di procmail: qualsiasi output su stderr causerà la perdita della "F" in "From" # perciò verrà ripristinata. :0 * ^^rom[ ] { LOG="*** Persa F dall'intestazione From_! Correggendo. " :0 fhw | sed -e '1s/^/F/' } |

Questo farà sì che tutte le email vengano accettate, anche lo SPAM (che sarà contrassegnato come SPAM e potrà essere filtrato dal client email dell’utente). Questa strategia è raccomandata nella prima fase fino a quando non sei sicuro che SpamAssassin identifichi correttamente le tue email. Se vuoi eliminare lo SPAM prendi questo .spamassassin.rc invece:

| # Esempio di procmailrc di SpamAssassin # # Invia l'email attraverso spamassassin (sostituisci 'spamassassin' con 'spamc' # se usi la combinazione spamc/spamd) # La riga di condizione assicura che solo i messaggi più piccoli di 250 kB # (250 * 1024 = 256000 byte) siano elaborati da SpamAssassin. La maggior parte dello spam # non è più grande di qualche k e lavorare con messaggi grandi può portare # SpamAssassin in ginocchio. :0fw * < 256000 | /usr/local/bin/spamassassin --prefs-file=/home/www/web1/user/testuser/.user_prefs # Tutte le email contrassegnate come spam (ad es. con un punteggio superiore alla soglia impostata) # vengono spostate in "/dev/null". :0: * ^X-Spam-Status: Sì /dev/null # Risolvi il bug di procmail: qualsiasi output su stderr causerà la perdita della "F" in "From" # perciò verrà ripristinata. :0 * ^^rom[ ] { LOG="*** Persa F dall'intestazione From_! Correggendo. " :0 fhw | sed -e '1s/^/F/' } |

Successivamente creiamo il file /home/www/web1/user/testuser/.user_prefs che conterrà le impostazioni di SpamAssassin di testuser:

| # File di preferenze utente di SpamAssassin. Vedi 'perldoc Mail::SpamAssassin::Conf' # per dettagli su cosa può essere modificato. #* #* Nota: questo file non viene letto da SpamAssassin fino a quando non viene copiato nella directory dell'utente #* già, verrà copiato per loro, consentendo loro di eseguire personalizzazioni personalizzate. # Se desideri apportare modifiche ai valori predefiniti a livello di sito, # crea un file in /etc/spamassassin o /etc/mail/spamassassin invece. ########################################################################### # Quanti colpi prima che un'email venga considerata spam. required_hits 5.0 rewrite_subject 1 subject_tag *SPAM* |

SpamAssassin esegue una serie di test su ogni email per determinare se è SPAM o meno. Ogni test assegna un certo numero di punti a quell’email (se il test è positivo). I punti verranno sommati. required_hits è la quantità di punti sopra la quale l’email è considerata SPAM. 5.0 è un valore ragionevole per iniziare.

Se rewrite_subject è 1, l’oggetto dell’email sarà contrassegnato con il valore di subject_tag se l’email è considerata SPAM in modo che l’email possa essere filtrata dal client email di testuser se ha scelto il appropriato .spamassassin.rc sopra.

6 Configurare il Sanitizer Email

Il Sanitizer Email ( http://www.impsec.org/email-tools/procmail-security.html) è un insieme di ricette procmail che formano una sorta di filtro di contenuto. Ad esempio, può disattivare codice javascript dannoso nelle email HTML e rinominare allegati sospetti (ad es. example.exe viene rinominato in example.12345DEFANGED-exe in modo che non possa essere aperto con un semplice doppio clic sotto Windows. Deve essere salvato prima su disco e poi rinominato consapevolmente. Così il destinatario è costretto a riflettere se aprire o meno l’allegato.).

cd /tmp
wget http://www.impsec.org/email-tools/html-trap.procmail.gz
gunzip html-trap.procmail.gz
echo ‘PATH=”/usr/bin:$PATH:/usr/local/bin”‘ > /home/www/web1/user/testuser/.html-trap.rc
echo ‘SHELL=/bin/sh’ >> /home/www/web1/user/testuser/.html-trap.rc
cat html-trap.procmail >> /home/www/web1/user/testuser/.html-trap.rc

7 Testa la tua Configurazione

Ora puoi testare la tua configurazione inviando allegati .exe, SPAM di esempio e virus di esempio (se ne hai alcuni) a testuser.

Guarda l’intestazione delle email ricevute. Dovrebbe contenere le seguenti righe:

X-Security: intestazioni MIME sanificate su server1.example.com Vedi http://www.impsec.org/email-tools/sanitizer-intro.html per dettagli. $Revision: 1.140 $Date: 2004-02-11 20:47:43-08

X-Virus-Scan: Scansionato da TrashScan v0.08 in esecuzione su server1.example.com

X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) su server1.example.com

Link

SpamAssassin: http://www.spamassassin.org/

ClamAV: http://www.clamav.net/

Procmail: http://www.procmail.org/

Email Sanitizer: http://www.impsec.org/email-tools/procmail-security.html

Posizione originale di questo documento:

http://www.falkotimme.com/howtos/spamassassin_clamav_procmail/

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.