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-ocr3 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.gzPoi 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.cfMetti 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/spamassassinQuesto è 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 READMEPossiamo 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 spamassassinSe 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 spamassassinSe 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/nullAd esempio:
/home/admispconfig/ispconfig/tools/spamassassin/usr/bin/spamassassin --debug FuzzyOcr < /usr/src/FuzzyOcr-3.5.1/samples/ocr-gif.eml > /dev/nulloppure, se spamassassin è nel tuo PATH:
spamassassin --debug FuzzyOcr < /usr/src/FuzzyOcr-3.5.1/samples/ocr-gif.eml > /dev/nullDovresti 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
- FuzzyOCR: http://www.fuzzyocr.net/
- SpamAssassin: http://spamassassin.apache.org/
- Debian: http://www.debian.org/
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.