Spam Filtering · 6 min read · Nov 17, 2025

Combatti lo Spam Immagine Con FuzzyOCR E SpamAssassin Su Debian Lenny

Combatti lo Spam Immagine Con FuzzyOCR E SpamAssassin Su Debian Lenny

Versione 1.0
Autore: Falko Timme
Seguimi su Twitter

Questo tutorial descrive come scansionare le email per lo spam immagine con FuzzyOCR su un server Debian Lenny. FuzzyOCR è un plugin per SpamAssassin che è mirato alla posta indesiderata in massa contenente immagini come principale vettore di contenuto. Utilizzando diversi metodi, analizza il contenuto e le proprietà delle immagini per distinguere tra email normali (ham) e email spam. FuzzyOCR cerca di mantenere bassa la carico di sistema scansionando solo le email che non sono già state categorizzate come spam da SpamAssassin, evitando così lavoro non necessario.

Non fornisco alcuna garanzia che questo funzionerà per te!

1 Nota Preliminare

In questo articolo utilizzerò Debian Lenny come sistema di base.

Presumo che SpamAssassin sia già installato e funzionante, con /etc/mail/spamassassin/ come sua principale directory di configurazione. Se la tua directory è diversa (ad es. se hai ISPConfig 2 installato, la directory è /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/), non è un problema. Annoterò dove cambiare cosa.

Assicurati che la tua versione di SpamAssassin funzioni con FuzzyOCR. Ad esempio, la versione di FuzzyOCR che installerò qui (fuzzyocr-3.5.1-devel.tar.gz) richiede SpamAssassin 3.1.4 o superiore.

2 Installa I Requisiti Per FuzzyOCR

FuzzyOCR ha alcuni requisiti come ocrad e gocr che possiamo installare in questo modo:

aptitude install netpbm gifsicle libungif-bin gocr ocrad libstring-approx-perl libmldbm-sync-perl imagemagick tesseract-ocr

3 Installa FuzzyOCR

Successivamente scarichiamo e installiamo l’ultima versione di sviluppo di FuzzyOCR da http://fuzzyocr.own-hero.net/wiki/Downloads. Scarichiamo la versione di sviluppo invece della versione stabile perché gli sviluppatori di FuzzyOCR dicono:

“L’attuale raccomandazione è la versione di sviluppo perché la versione stabile manca di funzionalità ed è molto vecchia.”

cd /usr/src/  
wget http://users.own-hero.net/~decoder/fuzzyocr/fuzzyocr-3.5.1-devel.tar.gz

Poi estraiamo FuzzyOCR e spostiamo tutti i file FuzzyOcr* e la directory FuzzyOcr (sono tutti nella directory FuzzyOcr-3.5.1/) in /etc/mail/spamassassin:

tar xvfz fuzzyocr-3.5.1-devel.tar.gz  
cd FuzzyOcr-3.5.1/  
mv FuzzyOcr* /etc/mail/spamassassin/

Se la tua directory di SpamAssassin è diversa, ad es. /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/, allora l’ultimo comando dovrebbe essere sostituito con

mv FuzzyOcr* /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/

Non eliminare ancora la directory /usr/src/FuzzyOcr-3.5.1/, c’è una directory con email di esempio di spam immagine lì dentro (samples/) che ci serve più tardi per testare se FuzzyOCR funziona come previsto.

Quindi FuzzyOCR è ora installato, ora dobbiamo configurarlo.

4 Configura FuzzyOCR

Il file di configurazione di FuzzyOCR è /etc/mail/spamassassin/FuzzyOcr.cf. In quel file quasi tutto è commentato. Apriamo quel file ora e facciamo alcune modifiche:

vi /etc/mail/spamassassin/FuzzyOcr.cf

Metti la seguente riga per definire la posizione del file delle parole spam di FuzzyOCR:

| [...] focr_global_wordlist /etc/mail/spamassassin/FuzzyOcr.words [...] |

/etc/mail/spamassassin/FuzzyOcr.words è un elenco di parole predefinito che viene fornito con FuzzyOCR. Puoi adattarlo alle tue esigenze se lo desideri.

Successivamente cambia

| [...] # Include additional scanner/preprocessor commands here: # focr_bin_helper pnmnorm, pnminvert, pamthreshold, ppmtopgm, pamtopnm focr_bin_helper tesseract [...] |

in

| [...] # Include additional scanner/preprocessor commands here: # focr_bin_helper pnmnorm, pnminvert, convert, ppmtopgm, tesseract [...] |

Infine aggiungi/abilita le seguenti righe:

| [...] # Search path for locating helper applications focr_path_bin /usr/local/netpbm/bin:/usr/local/bin:/usr/bin focr_preprocessor_file /etc/mail/spamassassin/FuzzyOcr.preps focr_scanset_file /etc/mail/spamassassin/FuzzyOcr.scansets focr_enable_image_hashing 2 focr_digest_db /etc/mail/spamassassin/FuzzyOcr.hashdb focr_db_hash /etc/mail/spamassassin/FuzzyOcr.db focr_db_safe /etc/mail/spamassassin/FuzzyOcr.safe.db [...] |

Con le ultime quattro righe abiliti l’hashing delle immagini. Questo è ciò che gli sviluppatori di FuzzyOCR dicono riguardo all’hashing delle immagini:

“La funzione del database di hashing delle immagini consente al plugin di memorizzare un vettore di caratteristiche dell’immagine in un database, in modo da riconoscere questa immagine quando arriva una seconda volta (e quindi non ha bisogno di scansionarla di nuovo). La cosa speciale di questa funzione è che riconosce anche l’immagine di nuovo se è stata leggermente modificata (cosa che viene fatta dagli spammer). “

Se utilizzi /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin invece di /etc/mail/spamassassin, il file di configurazione di FuzzyOCR è /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/FuzzyOcr.cf invece di /etc/mail/spamassassin/FuzzyOcr.cf, quindi modifica quello. Nel file di configurazione ora puoi sostituire tutte le occorrenze di /etc/mail/spamassassin con /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin, O puoi lasciarlo come mostrato prima e creare un symlink da /etc/mail/spamassassin a /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin in questo modo:

mkdir /etc/mail/  
ln -s /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/ /etc/mail/spamassassin

Questo è già tutto per la configurazione di FuzzyOCR. Ora vediamo se funziona come previsto.

5 Testa FuzzyOCR

Ho menzionato prima che FuzzyOCR viene fornito con email di esempio di spam immagine (nella directory samples/):

ls -l /usr/src/FuzzyOcr-3.5.1/samples/

L’output dovrebbe apparire così:

total 156  
-rw-r--r-- 1 administrator users 13633 2007-01-07 12:55 ocr-animated.eml  
-rw-r--r-- 1 administrator users 16108 2007-01-07 12:55 ocr-gif.eml  
-rw-r--r-- 1 administrator users 27506 2007-01-07 12:55 ocr-jpg.eml  
-rw-r--r-- 1 administrator users 27842 2007-01-07 12:59 ocr-multi.eml  
-rw-r--r-- 1 administrator users 24657 2007-01-07 12:55 ocr-obfuscated.eml  
-rw-r--r-- 1 administrator users 18236 2007-01-07 12:55 ocr-png.eml  
-rw-r--r-- 1 administrator users 16113 2007-01-07 12:55 ocr-wrongext.eml  
-rw-r--r-- 1 administrator users 3576 2007-01-07 12:55 README

Possiamo ora fornire ciascuna di queste email a SpamAssassin per vedere se FuzzyOCR è collegato correttamente a SpamAssassin. Scopri dove si trova il tuo eseguibile spamassassin (normalmente è nel tuo PATH - puoi scoprire se è così eseguendo

which spamassassin

Se mostra un risultato, spamassassin è nel tuo PATH, e non hai bisogno di specificare il percorso completo per eseguire spamassassin.)

Se non sai dove si trova spamassassin, puoi scoprirlo eseguendo

updatedb  
locate spamassassin

Se utilizzi ISPConfig 2, spamassassin si trova qui: /home/admispconfig/ispconfig/tools/spamassassin/usr/bin/spamassassin

Ora che sai dove si trova spamassassin, puoi fornire le email di esempio di spam immagine a spamassassin in questo modo:

/path/to/spamassassin --debug FuzzyOcr < /usr/src/FuzzyOcr-3.5.1/samples/ocr-gif.eml > /dev/null

Ad esempio:

/home/admispconfig/ispconfig/tools/spamassassin/usr/bin/spamassassin --debug FuzzyOcr < /usr/src/FuzzyOcr-3.5.1/samples/ocr-gif.eml > /dev/null

oppure, se spamassassin è nel tuo PATH:

spamassassin --debug FuzzyOcr < /usr/src/FuzzyOcr-3.5.1/samples/ocr-gif.eml > /dev/null

Dovresti ora vedere un sacco di output, la fine dovrebbe apparire così:

[...]  
[10025] dbg: FuzzyOcr:  
[10025] dbg: FuzzyOcr: Venerdì 4 agosto, 16:01 ET  
[10025] dbg: FuzzyOcr: LAS VEGAS, NEVADA--(MARKET WIRE)--4 agosto 2006 -- auantum Energy, lnc. (OTC  
[10025] dbg: FuzzyOcr: BB:aEGY.oB-_-  
[10025] dbg: FuzzyOcr: auantum Energy, lnc. è lieta di annunciare che ha presentato domanda per avere le proprie azioni quotate per  
[10025] dbg: FuzzyOcr: la negoziazione sulla Borsa di Francoforte. L'azienda ha mantenuto i servizi di Baltic  
[10025] dbg: FuzzyOcr: lnvestment Group di Amburgo, Germania, per assistere con la domanda.  
[10025] dbg: FuzzyOcr:  
[10025] dbg: FuzzyOcr: _ qEGY,OB "  
[10025] dbg: FuzzyOcr:  
[10025] dbg: FuzzyOcr: <<=end  
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "target" con fuzz di 0.0000  
[10025] info: FuzzyOcr: linea: "obiettivo a breve termine oo"  
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "servizio" con fuzz di 0.0000  
[10025] info: FuzzyOcr: linea: "negoziazione sulla borsa di francoforte l'azienda ha mantenuto i servizi di baltic"  
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "azione" con fuzz di 0.0000  
[10025] info: FuzzyOcr: linea: "azione calda di energia"  
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "azione" con fuzz di 0.0000  
[10025] info: FuzzyOcr: linea: "negoziazione sulla borsa di francoforte l'azienda ha mantenuto i servizi di baltic"  
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "prezzo" con fuzz di 0.0000  
[10025] info: FuzzyOcr: linea: "prezzo attuale o"  
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "prezzo" con fuzz di 0.0000  
[10025] info: FuzzyOcr: linea: "obiettivo a breve termine oo"  
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "azienda" con fuzz di 0.0000  
[10025] info: FuzzyOcr: linea: "negoziazione sulla borsa di francoforte l'azienda ha mantenuto i servizi di baltic"  
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "raccomandazione" con fuzz di 0.0000  
[10025] info: FuzzyOcr: linea: "raccomandazione bup sboog"  
[10025] dbg: FuzzyOcr: Abbastanza colpi OCR senza rimozione degli spazi, salto secondo passaggio di corrispondenza...  
[10025] info: FuzzyOcr: Scanset "ocrad" genera abbastanza colpi (8), saltando ulteriori scansets...  
[10025] info: FuzzyOcr: Il messaggio è spam, punteggio = 15.000  
[10025] info: FuzzyOcr: Aggiunta Hash a "/etc/mail/spamassassin/FuzzyOcr.db" con punteggio "15.000"  
[10025] dbg: FuzzyOcr: Digest: 538584:327:549:7::255:255:255:255:168580::0:0:0:0:9098::0:128:0:75:1086::0:0:128:15:395::128:0:128:53:213::0:0:255:29:115  
[10025] info: FuzzyOcr: Parole trovate:  
[10025] info: FuzzyOcr: "target" in 1 righe  
[10025] info: FuzzyOcr: "servizio" in 1 righe  
[10025] info: FuzzyOcr: "azione" in 2 righe  
[10025] info: FuzzyOcr: "prezzo" in 2 righe  
[10025] info: FuzzyOcr: "azienda" in 1 righe  
[10025] info: FuzzyOcr: "raccomandazione" in 1 righe  
[10025] info: FuzzyOcr: (12 occorrenze di parole trovate)  
[10025] dbg: FuzzyOcr: Rimuovi DIR: /tmp/.spamassassin10025QnPTq8tmp  
[10025] dbg: FuzzyOcr: FuzzyOcr terminato con successo...  
[10025] dbg: FuzzyOcr: Elaborato in 2.191381 sec.

Come vedi /usr/src/FuzzyOcr-3.5.1/samples/ocr-gif.eml è stato categorizzato come spam con un punteggio di 15 punti, quindi FuzzyOCR sta funzionando.

Quindi il tuo SpamAssassin è ora in grado di riconoscere lo spam immagine grazie all’aiuto di FuzzyOCR.

6 Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.