Spam Filtering · 7 min read · Nov 18, 2025
Combatti lo Spam Immagine Con FuzzyOCR E SpamAssassin Su Fedora 12
Combatti lo Spam Immagine Con FuzzyOCR E SpamAssassin Su Fedora 12
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 Fedora 12. FuzzyOCR è un plugin per SpamAssassin che è mirato a messaggi di posta indesiderati contenenti 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 il carico di sistema basso scansionando solo le email che non sono già state categorizzate come spam da SpamAssassin, evitando così lavoro inutile.
Non rilascio alcuna garanzia che questo funzionerà per te!
1 Nota Preliminare
In questo articolo userò Fedora 12 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 esempio, se hai installato ISPConfig 2, 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 Prerequisiti Per FuzzyOCR
FuzzyOCR ha alcuni prerequisiti come ocrad e gocr che possiamo installare in questo modo:
yum install netpbm gifsicle giflib giflib-utils gocr ocrad ImageMagick tesseract perl-String-Approx perl-MLDBM perl-CPANDobbiamo anche installare il modulo Perl MLDBM::Sync che non è disponibile come pacchetto RPM. Apri una shell Perl….
perl -MCPAN -e shell… e installa il modulo come segue:
install MLDBM::SyncDigita
qsuccessivamente per uscire dalla shell Perl.
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.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 esempio /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 spam immagine di esempio 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 che riconosca 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 usi /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, OPPURE 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 spam immagine di esempio (nella directory samples/):
ls -l /usr/src/FuzzyOcr-3.5.1/samples/L’output dovrebbe apparire così:
total 156
-rw-r--r-- 1 1000 users 13633 2007-01-07 12:55 ocr-animated.eml
-rw-r--r-- 1 1000 users 16108 2007-01-07 12:55 ocr-gif.eml
-rw-r--r-- 1 1000 users 27506 2007-01-07 12:55 ocr-jpg.eml
-rw-r--r-- 1 1000 users 27842 2007-01-07 12:59 ocr-multi.eml
-rw-r--r-- 1 1000 users 24657 2007-01-07 12:55 ocr-obfuscated.eml
-rw-r--r-- 1 1000 users 18236 2007-01-07 12:55 ocr-png.eml
-rw-r--r-- 1 1000 users 16113 2007-01-07 12:55 ocr-wrongext.eml
-rw-r--r-- 1 1000 users 3576 2007-01-07 12:55 READMEPossiamo fornire ciascuna di queste email a SpamAssassin ora 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 usi 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 spam immagine di esempio 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/nullOra dovresti 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 fatto domanda per avere le proprie azioni quotate per
[10025] dbg: FuzzyOcr: la negoziazione alla Borsa di Francoforte. L'azienda ha assunto 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: "short term price target oo"
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "service" con fuzz di 0.0000
[10025] info: FuzzyOcr: linea: "trading on the frankfurt stock exchange the company has retained the services ofbaltic"
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "stock" con fuzz di 0.0000
[10025] info: FuzzyOcr: linea: "hot energy stocki"
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "stock" con fuzz di 0.0000
[10025] info: FuzzyOcr: linea: "trading on the frankfurt stock exchange the company has retained the services ofbaltic"
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "price" con fuzz di 0.0000
[10025] info: FuzzyOcr: linea: "current price o"
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "price" con fuzz di 0.0000
[10025] info: FuzzyOcr: linea: "short term price target oo"
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "company" con fuzz di 0.0000
[10025] info: FuzzyOcr: linea: "trading on the frankfurt stock exchange the company has retained the services ofbaltic"
[10025] info: FuzzyOcr: Scanset "ocrad" trovato parola "recommendation" con fuzz di 0.0000
[10025] info: FuzzyOcr: linea: "sboog bup recommendation"
[10025] dbg: FuzzyOcr: Abbastanza colpi OCR senza stripping 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: "service" in 1 righe
[10025] info: FuzzyOcr: "stock" in 2 righe
[10025] info: FuzzyOcr: "price" in 2 righe
[10025] info: FuzzyOcr: "company" in 1 righe
[10025] info: FuzzyOcr: "recommendation" 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/
- Fedora: http://fedoraproject.org/
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.