Exim Mysql DSPAM

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Re: Exim Mysql DSPAM

Непрочитанное сообщение neyro » 2009-01-25 18:43:16

Попробуйте почитать прилепленные темы - помогает...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2520 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Fedor
ефрейтор
Сообщения: 67
Зарегистрирован: 2007-12-19 18:17:30
Откуда: Москва

Re: Exim Mysql DSPAM

Непрочитанное сообщение Fedor » 2009-01-25 21:43:51

а ты вот это сделал?
А вообще роутер mysqluser поставь последним после local_delivery_spam_router
Всего хорошего, Федор

Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

Re: Exim Mysql DSPAM

Непрочитанное сообщение InventoR » 2009-01-25 22:13:47

да, уже сделал.
сейчас колупаю не много дальше.
нашел что dovecot собран был без поддерки LDA, уже добивил и бьюсь потихоньку дальше над логами.
ну вот и сказочке конец, кто слушал, тот молодец.

Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

Re: Exim Mysql DSPAM

Непрочитанное сообщение InventoR » 2009-01-25 23:51:37

итак. все таки я добился того чтобы спам ложился в папку со спамом.
кое что у меня получилось.
надеюсь что я до разберусь до конца и потом опишу все действия.
чтобы больше не наступать на эти грабли.
ну вот и сказочке конец, кто слушал, тот молодец.

Аватара пользователя
AndyS
рядовой
Сообщения: 30
Зарегистрирован: 2008-10-23 15:55:11
Откуда: Киев
Контактная информация:

Re: Exim Mysql DSPAM

Непрочитанное сообщение AndyS » 2009-01-28 14:50:16

Есть проблемка:
freebsd 7.0
exim dspam mysql
Так если пускать руками все в таком порядке, то все нормально.
При рестарте сервака dspam создает туеву хучу сокетов, и пока руками не стопонуть/стартонуть dspam и mysql так и висит все.
Порядок запуска такой-же.
Если даже воткнуть что-то тяжелое между dspam mysql
#REQUIRE, #BEFORE в стартовых скриптах не помогли :(
А то иногда свет отключают на выходных, и приходит куча спама.

Где-то пробегало, но решения найдено небыло.

npu3pak
мл. сержант
Сообщения: 121
Зарегистрирован: 2007-07-08 2:49:39

Re: Exim Mysql DSPAM

Непрочитанное сообщение npu3pak » 2009-09-22 19:22:47

InventoR писал(а):При рестарте сервака dspam создает туеву хучу сокетов, и пока руками не стопонуть/стартонуть dspam и mysql так и висит все.
Порядок запуска такой-же.
в dspam.conf ищи
MySQLConnectionCache кажецо.
не спеши, а то успеешь.

npu3pak
мл. сержант
Сообщения: 121
Зарегистрирован: 2007-07-08 2:49:39

Re: Exim Mysql DSPAM

Непрочитанное сообщение npu3pak » 2009-09-22 19:23:33

нихрена себе, нашел где ответить...
не спеши, а то успеешь.

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Exim Mysql DSPAM

Непрочитанное сообщение mediamag » 2011-01-06 12:54:58

Хм...не понятно, топикстартер решил проблему или нет??? Если решил, подскажи плиз как??? Ошибка один в один!!! Сигнатура есть и в базе и в хидере тела письма, но все равно пишет

Код: Выделить всё

Unable to find a valid signature. Aborting.
process_message returned error -5.  dropping message.
Вот maillog в момент сканирования письма

Код: Выделить всё

exim[14829]: 1Pak01-0003rB-AU <= mcfr.deliver@gmail.com U=mailnull P=spam-scanned S=23613 id=b128ad6341f36a8dfd2baf4fc811ef6e@gmail.com from <mailnull@mydomain.ua> for hr@mydomain.ua
В таблице dspam_virtual_uid есть юзер hr@mydomain.ua его уид 13, далее иду в базу сигнатур в таблицу dspam_signature_data и ищу сигнатуру вручную..вижу что сигнатура соответствует уиду 13 . Как обучаю dspam: В вебморде roundcube или outlook express пришедший спам я нажимаю переслать и ввожу в поле "кому" адрес spam-hr@mydomain.ua Что же все таки я не так сделал?

Sailor777
проходил мимо
Сообщения: 2
Зарегистрирован: 2013-03-26 11:54:36

Re: Exim Mysql DSPAM

Непрочитанное сообщение Sailor777 » 2013-03-26 13:08:43

Стоит задача использовать dspam также для обработки исходящей почты, что идет наружу (out-of-the-box).
Уже работает проверка входящей кореспонденции:
1. Dspam v3.10.2 + MySQL v5.5 + Exim 4.80.1
2. В dspam обученный классификационный пользователь "dspam@our_domain" как основной в глобальной группе и запущен режим TOE:
Группа:

Код: Выделить всё

global:classification:*dspam@our_domain
Результат тренировки:

Код: Выделить всё

dspam_stats-H dspam@our_domain
dspam@our_domain:
        TP True Positives: 359
        TN True Negatives: 5652
        FP False Positives: 6
        FN False Negatives: 242
        SC Spam Corpusfed: 0
        NC Nonspam Corpusfed: 0
        TL Training Left: 0
        SHR Spam Hit Rate 59.73%
        HSR Ham Strike Rate: 0.11%
        PPV Positive predictive value: 98.36%
        OCA Overall Accuracy: 96.04%
3. Локальные пользователи пользуются словарем "dspam@our_domain", пока формируют собственный словарь.
4. Спам складываю в отдельные каталоги:

Код: Выделить всё

local_delivery_dspam_transport:
    driver = appendfile
    group = mail
    mode = 0660
    mode_fail_narrower = false
    envelope_to_add = true
    return_path_add = true
    directory = /var/mail/$domain/${local_part}/.Junk
    maildir_format
Все бы ничего, но как быть со спамом наружу.
Возникла задача:
1. Перед транспортом remote_smtp нужно проверить письмо на спам, и если будет обнаружено, временно хранить в выделенном каталоге, доступном только для root.
2. Должен использоваться словарь обученного классификационного юзера "dspam@our_domain"
3. Не должны записываться в базу dspam записи об адресате (out-of-the-box username)

Что удалось сделать:
1. Успешно проверяется, используя режим без тренировки "notrain", соответственно записи в таблице dspam_signature_data и dspam_token_data не происходит,
и также спам ложиться в отдельный каталог.

Код: Выделить всё

begin routers

    dspam_out_spamcheck_router:
        driver = accept
        domains = ! +local_domains
        no_verify
        condition = "${if and { {!eq {$received_protocol}{spam-scanned}} \
                                {!eq {$received_protocol}{local}} } {1}{0}}"
        headers_add = "X-DSPAM-FILTER: by $primary_hostname on $tod_full"
        transport = dspam_out_spamcheck

     remote_delivery_dspam_router:
        driver = accept
        domains = ! +local_domains
        condition = ${if match{$h_X-DSPAM-Result:}{Spam}}
        transport = remote_delivery_dspam_transport

    dnslookup:
        driver = dnslookup
        domains = ! +local_domains
        transport = remote_smtp
        ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
        no_more

Код: Выделить всё

begin transports

dspam_out_spamcheck:
  driver = pipe
  command = /usr/bin/dspam --mode=notrain --deliver=spam,innocent,summary --user $local_part@$domain -f '$sender_address' -- %u
  home_directory = "/var/lib/dspam"
  current_directory = "/var/lib/dspam"
  user = exim
  group = mail
  log_output = true
  return_fail_output = true
  return_path_add = false
  message_prefix =
  message_suffix =

remote_delivery_dspam_transport:
    driver = appendfile
    group = mail
    mode = 0660
    mode_fail_narrower = false
    envelope_to_add = true
    return_path_add = true
    directory = /var/mail/.Junk
    maildir_format
2. Используется словарь нашего "dspam@our_domain" но политика группы предполагает обучение (альтернативы не придумал) в результате пункт "3" не выполняется, посколько в таблице таблице dspam_virtual_uids /dspam_stats происходит запись uid/username (табл. dspam_virtual_uids) и "TP True Positives:" (табл. dspam_stats)

Статистика выглядит так, например:

Код: Выделить всё

dspam_stats-H out.of.the.box@gmail.com

 out.of.the.box@gmail.com:
        TP True Positives: 12
        TN True Negatives: 0
        FP False Positives: 0
        FN False Negatives: 0
        SC Spam Corpusfed: 0
        NC Nonspam Corpusfed: 0
        TL Training Left: 2500
        SHR Spam Hit Rate 100.00%
        HSR Ham Strike Rate: 100.00%
        PPV Positive predictive value: 100.00%
        OCA Overall Accuracy: 100.00%
Пункт "3" важен, посколько выходной трафик большой и не хочется загружать БД ненужными транзакциями.
Вариант периодического удаления записей через планировщик не предлагать.
Вариант комбинации груп global и merged пробовал, не получилось, посколько у нас много виртуальных локальных доменов.
Вот такая задача, возможно кто-то тоже об этом думал, или решил это альтернативным методом, буду благодарен за любые идеи.
Спасибо за внимание.

Sailor777
проходил мимо
Сообщения: 2
Зарегистрирован: 2013-03-26 11:54:36

Re: Exim Mysql DSPAM

Непрочитанное сообщение Sailor777 » 2013-04-15 18:04:17

решение свелось к одной ключевой строке в транспорте, если кому интересно:

Код: Выделить всё

command = /usr/bin/dspam --mode=notrain --deliver=innocent,spam,summary -f '$sender_address' --user dspam@our_domain -- $local_part@$domain
спасибо за внимание.