Соотвествено вопрос стоит так - либо допилить текущую статью под фряху, либо заводим раздел под линух.
во втором случае - будут ли желающие его напоолнять?
Ну и в первом ищется желающий допилить статью. Мне щас реально некогда....
Andrew Vedischeff писал(а): Боремся с графическим спамом, с помощью FuzzyOCR и SpamAssasin на Debian/Ubuntu
Данный туториал описывает, как сканировать электронную почту на предмет графического спама с помощью FuzzyOCR. FuzzyOCR - это плагин для SpamAssasin'а который направлен против ненужных почтовых сообщений содержащих в себе графику, в качестве содержания письма. Используя разные методы программа анализирует содержание и свойства изображений, отличая нормальную почту от спама. FuzzyOCR пытается свести загрузку системы к минимуму сканируя только почту, которая не была распознана как спам программой SpamAssassin, во избежании ненужной работы.
Я не даю никаких гарантий, что это будет работать у Вас.
1 Предварительная информация
В качестве основной операционной системы, я буду использовать Debian Etch.
Инсталляция для системы ubuntu должна быть схожей.
Я предполагаю, что SpamAssasin уже установлен и работает в /etc/mail/spamassassin/ в качестве основной конфигурационной директории.
если ваша директория другая (например установлен ISPConfig, то директория будет home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/) - нет проблем. Я сообщу, где что менять.
убедитесь что ваш SpamAssassin может работать с FuzzyOCR. Например та версия FuzzyOCR (fuzzyocr-3.5.1-devel.tar.gz) которую я собираюсь инсталлировать требует SpamAssassin 3.1.4 или более новой.
2. Установка зависимостей для FuzzyOCR
FuzzyOCR требует ряда дополнительного программного обеспечения для работы, например ocard и gocr которые можно инсталлировать следующим образом:
apt-get install netpbm gifsicle libungif-bin gocr ocrad libstring-approx-perl libmldbm-sync-perl imagemagick tesseract-ocr
3. Установка FuzzyOCR
Следующим шагом мы скачаем и установим последнюю девелопер версию FuzzyOCR с сайта (http://fuzzyocr.own-hero.net/wiki/Downloads).
Мы качаем именно деволопер версию, а не стабильную, потому как разработчики говорят, что: "На данный момент, рекомендуем скачать девелопер версию, потому как стабильная версия имеет мало возможностей и устарела"
cd /usr/src/
wget http://users.own-hero.net/~decoder/fuzz ... vel.tar.gz
Затем мы распакуем FuzzyOCR и перенесем все FuzzyOCR* файлы и FuzzyOCR директорию в (Они все в FuzzyOcr-3.5.1/ директории) /etc/mail/spamassassin:
tar xvfz fuzzyocr-3.5.1-devel.tar.gz
cd FuzzyOcr-3.5.1/
mv FuzzyOcr* /etc/mail/spamassassin/
Если ваша директория со SpamAssassin'ом отличается, например, /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/
тогда последняя комманда должна быть заменена на следующую:
mv FuzzyOcr* /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/
не удаляйте пока директорию /usr/src/FuzzyOcr-3.5.1/, там есть директория с образцами графического спама в письмах (в директории samples/), которая нам потребуется позже для проверки, что FuzzyOcr работает так как ожидалось.
Итак FuzzyOCR теперь установлен, и нам нужно его сконфигурировать.
4. конфигурирование FuzzyOCR
Конфигурационный файл FuzzyOCR - это /etc/mail/spamassassin/FuzzyOcr.cf. в данном файле почти все закомментировано. сейчас мы откроем этот файл и произведем некоторые модификации.
vi /etc/mail/spamassassin/FuzzyOcr.cf
Впишите следующую строку для того что бы определить местоположение словаря спама для FuzzyOcr
[...]
focr_global_wordlist /etc/mail/spamassassin/FuzzyOcr.words
[...]
/etc/mail/spamassassin/FuzzyOcr.words это определенный словарь который поставляется с FuzzyOcr
вы можете использовать его, если желаете.
Следующее изменение:
меняем:
[...]
# Include additional scanner/preprocessor commands here:
#
focr_bin_helper pnmnorm, pnminvert, pamthreshold, ppmtopgm, pamtopnm
focr_bin_helper tesseract
[...]
на:
[...]
# Include additional scanner/preprocessor commands here:
#
focr_bin_helper pnmnorm, pnminvert, convert, ppmtopgm, tesseract
[...]
и, наконец добавляем/расскоментируем следующие строки:
[...]
# 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
[...]
Последние 4 строки активируют хэш графических изображений
Вот то, что разработчики FuzzyOCR говорят о хешировании изображений:
"База данных хешированных изображений позволяет плагину сохраниять векторы
особенностей изображений (сигнатур?) в базе данных, это значит, что если такое же изображение придет второй раз, то не придется сканировать его второй раз. Особенностью этой функции является то, что она так же распознает изображение если оно немного изменилось (так как делают спаммеры)"
Если вы используете /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin вместо etc/mail/spamassassin, то файл конфигурации FuzzyOCR будет в /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/FuzzyOcr.cf вместо /etc/mail/spamassassin/FuzzyOcr.cf, поэтому редактируйте тот файл. В файле конфигурации можно теперь заменить все пути с /etc/mail/spamassassin на /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin или оставить как было и создать символические ссылки в директории /etc/mail/spamassassin на файлы в директории /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin например таким образом:
mkdir /etc/mail/
ln -s /home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/ /etc/mail/spamassassin
Вот и все конфигурирование FuzzyOCR. теперь посмотрим, работает ли он так как ожидалось.
5. Проверяем FuzzyOCR
Как я упоминал ранее, FuzzyOCR, поставляется с примерами графического спама (в директории samples/)
ls -l /usr/src/FuzzyOcr-3.5.1/samples/
Вывод должен быть примерно таким:
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
Мы можем скормить каждое из этих писем SpamAssassin'у, что бы увидеть правильно ли FuzzyOcr интегрирован в SpamAssassin. Выясните, где находится исполняемый файл spamassassin (обычно он находится в path, вы можете уточнить этот момент набрав
which spamassassin
если spamassassin находится в вашем Path, то вам не нужно указывать полный путь к файлу spamassassin что бы запустить его.
если вы не знаете где находится файл spamassassin, то можно выяснить это набрав
updatedb
locate spamassassin
Если вы используете ISPConfig то файл spamassassin находится тут home/admispconfig/ispconfig/tools/spamassassin/usr/bin/spamassassin
Теперь, когда вы знаете где находится файл spamassassin, вы можете скормить
графический спам spamassassin'у следующим образом:
/path/to/spamassassin --debug FuzzyOcr < /usr/src/FuzzyOcr-3.5.1/samples/ocr-gif.eml > /dev/null
либо:
/home/admispconfig/ispconfig/tools/spamassassin/usr/bin/spamassassin --debug FuzzyOcr < /usr/src/FuzzyOcr-3.5.1/samples/ocr-gif.eml > /dev/null
или, если spamassassin в Path
spamassassin --debug FuzzyOcr < /usr/src/FuzzyOcr-3.5.1/samples/ocr-gif.eml > /dev/null
Вы должны увидеть огромный вывод, конец которого должен выглядеть примерно следующим образом:
[...]
[10025] dbg: FuzzyOcr:
[10025] dbg: FuzzyOcr: Friday Augurt 4, 4:01 pm ET
[10025] dbg: FuzzyOcr: LAS VEGAS, NEVADA--(MARKET WIRE)--Aug 4, 2006 -- auantum Energy, lnc. (OTC
[10025] dbg: FuzzyOcr: BB:aEGY.oB-_-
[10025] dbg: FuzzyOcr: auantum Energy, lnc. is pleased to announce that it has applied to have its shares listed for
[10025] dbg: FuzzyOcr: trading on the Frankfurt Stock Exchange. The company has retained the services ofBaltic
[10025] dbg: FuzzyOcr: lnvestment Group of Hamburg, Germany to assist with the application.
[10025] dbg: FuzzyOcr:
[10025] dbg: FuzzyOcr: _ qEGY,OB "
[10025] dbg: FuzzyOcr:
[10025] dbg: FuzzyOcr: <<=end
[10025] info: FuzzyOcr: Scanset "ocrad" found word "target" with fuzz of 0.0000
[10025] info: FuzzyOcr: line: "short term price target oo"
[10025] info: FuzzyOcr: Scanset "ocrad" found word "service" with fuzz of 0.0000
[10025] info: FuzzyOcr: line: "trading on the frankfurt stock exchange the company has retained the services ofbaltic"
[10025] info: FuzzyOcr: Scanset "ocrad" found word "stock" with fuzz of 0.0000
[10025] info: FuzzyOcr: line: "hot energy stocki"
[10025] info: FuzzyOcr: Scanset "ocrad" found word "stock" with fuzz of 0.0000
[10025] info: FuzzyOcr: line: "trading on the frankfurt stock exchange the company has retained the services ofbaltic"
[10025] info: FuzzyOcr: Scanset "ocrad" found word "price" with fuzz of 0.0000
[10025] info: FuzzyOcr: line: "current price o"
[10025] info: FuzzyOcr: Scanset "ocrad" found word "price" with fuzz of 0.0000
[10025] info: FuzzyOcr: line: "short term price target oo"
[10025] info: FuzzyOcr: Scanset "ocrad" found word "company" with fuzz of 0.0000
[10025] info: FuzzyOcr: line: "trading on the frankfurt stock exchange the company has retained the services ofbaltic"
[10025] info: FuzzyOcr: Scanset "ocrad" found word "recommendation" with fuzz of 0.0000
[10025] info: FuzzyOcr: line: "sboog bup recommendation"
[10025] dbg: FuzzyOcr: Enough OCR Hits without space stripping, skipping second matching pass...
[10025] info: FuzzyOcr: Scanset "ocrad" generates enough hits (8), skipping further scansets...
[10025] info: FuzzyOcr: Message is spam, score = 15.000
[10025] info: FuzzyOcr: Adding Hash to "/etc/mail/spamassassin/FuzzyOcr.db" with score "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: Words found:
[10025] info: FuzzyOcr: "target" in 1 lines
[10025] info: FuzzyOcr: "service" in 1 lines
[10025] info: FuzzyOcr: "stock" in 2 lines
[10025] info: FuzzyOcr: "price" in 2 lines
[10025] info: FuzzyOcr: "company" in 1 lines
[10025] info: FuzzyOcr: "recommendation" in 1 lines
[10025] info: FuzzyOcr: (12 word occurrences found)
[10025] dbg: FuzzyOcr: Remove DIR: /tmp/.spamassassin10025QnPTq8tmp
[10025] dbg: FuzzyOcr: FuzzyOcr ending successfully...
[10025] dbg: FuzzyOcr: Processed in 2.191381 sec.
как вы видете, usr/src/FuzzyOcr-3.5.1/samples/ocr-gif.eml был распознан как спам набрав 15 баллов, вывод - FuzzyOCR работает. Итак ваш SpamAssassin теперь может распознавать графический спам, с помощью FuzzyOCR.
6 ссылки
* FuzzyOCR: http://www.fuzzyocr.net
* SpamAssassin: http://spamassassin.apache.org
* Debian: http://www.debian.org
* Ubuntu: http://www.ubuntu.com
оригинал статьи: http://www.howtoforge.com/fight_image_s ... amassassin