Страница 1 из 1

Вопрос по DSPAM

Добавлено: 2007-10-15 15:50:49
Andy2k
Установил и настроил DSPAM из портов согласно статье на сайте.
Конфиги exim'a пока не трогал, так что реально dspam пока входящую почту не фильтрует.
Создал классификационного пользователя, с помощью утилиты dspam_train создал для него базу данных.
В spam.txt сложил заведомо спамерское письмо.
Тестирую DSPAM

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

#dspam --debug --deliver=innocent --user my_user@mydomen.org -- %u < spam.txt
В логах вижу:

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

98289: [10/15/2007 16:41:57] Graham-Bayesian Probability: 1.000000 Samples: 15
98289: [10/15/2007 16:41:57] Burton-Bayesian Probability: 1.000000 Samples: 27
98289: [10/15/2007 16:41:57] using Graham factors
98289: [10/15/2007 16:41:57] Result Confidence: 0.99
98289: [10/15/2007 16:41:57] CLASSIFY CATCH: globaluser
98289: [10/15/2007 16:41:57] processing signature.  length: 4416
98289: [10/15/2007 16:41:57] reversing 368 tokens
98289: [10/15/2007 16:41:58] Control: [10 10] [11 9] Delta: [1 -1]
98289: [10/15/2007 16:41:58] saving signature as 47136016982891504189220
98289: [10/15/2007 16:41:58] libdspam returned probability of 0.150113
98289: [10/15/2007 16:41:58] message result: SPAM
То есть письмо опознано системой как спам. Замечательно, но почему то в заголовках самого письма вижу

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

Subject: SPAM =?koi8-r?B?7MXexc7JxSDc0sXLw8nJLCDV18XMyd7FzsnFINDPzM/Xz8fPIN7MxQ==?=
        =?koi8-r?B?zsEgzsEgMjUl?=
MIME-Version: 1.0
Content-Type: multipart/mixed;
  boundary="----------E1D33AE1D3A75FF"
X-DSPAM-Result: Innocent
X-DSPAM-Processed: Mon Oct 15 16:41:58 2007
X-DSPAM-Confidence: 0.6000
X-DSPAM-Probability: 0.1501
X-DSPAM-Signature: 47136016982891504189220
X-DSPAM-Factors: 27,
То есть он в Subject добавил SPAM, а X-DSPAM-Result почему то Innocent. Подозреваю, что при этом роутер exim'a

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

local_delivery_spam_router:
  driver                       = accept
  domains                      = +local_domains
  condition                    = ${if match{$h_X-DSPAM-Result:}{Spam}}
  transport                    = local_delivery_spam_transport
  no_more
не сработает.
Вопрос: с DSPAM что-то не так или я чего-то не понимаю?

Re: Вопрос по DSPAM

Добавлено: 2007-10-15 16:01:47
Morty
попробуй в
dspam.conf

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

вместо Preference "signatureLocation=headers"
Preference "signatureLocation=message"
може будет не в тему письма писать СПАМ а в тело сообщения
а може нада что то вроде

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

сondition = ${if eq {$h_X-DSPAM-Result:}{Spam}{yes}{no}}
вопшем я не разобрался в этом , работало так же как у тебя , я просто забил на него и снес.

Re: Вопрос по DSPAM

Добавлено: 2007-10-15 16:15:16
Andy2k
Morty писал(а):попробуй в
dspam.conf
вместо Preference "signatureLocation=headers"
Preference "signatureLocation=message"
може будет не в тему письма писать СПАМ а в тело сообщения
Да не в этом проблема. То что он пишет именно в тему - совершенно нормально и отвечает текущим потребностям и собственно параметрам конфига.
Загвоздка в другом - почему он, определяя письмо как спам, внося пометку SPAM в тему письма в зголовках упорно ставит пометку Innocent (НЕ спам)?

Или это такая логика работы dspam: пока анализ письма производится с использованием базы данных общего (глобального) пользователя - не ставить в X-DSPAM-Result пометку Spam, но в тему письма SPAM добавлять, чтобы пользователю это письмо упало во "Входящие", а он, видя пометку SPAM переслал его по адресу spam-<user_name>@domain.com и натренировал уже собственную базу в dspam?

Знатоки dspam, что скажете?

Re: Вопрос по DSPAM

Добавлено: 2007-10-16 12:55:34
Andy2k
Как говорил незабвенный Карлсон - "Продолжаем разговор!"
Вчера поставил ряд экспериментов, результаты которых частично подтвердили мои предположения о логике работы DSPAM. Он действительно, для каждого юзера, у которой нет своей базы использует общую базу токенов, ставит в X-DSPAM-Result Innocent. Но после каждого такого письма он АПДЕЙТИТ базу уже конкретного адресата, и спустя некоторое время (10-15 писем спама) начинает для принятия решения юзать уже локальную базу пользователя, после чего в X-DSPAM-Result появляется долгожданный Spam (каламбурчик, однако, вышел :)). Теперь настало время следующих граблей: при работе траспорта exim'a вот такого вида

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

local_delivery_spam_transport:
  driver = pipe
  command = /usr/local/libexec/dovecot/deliver -d \
  		$local_part@$domain -m INBOX.Spam
  message_prefix =
  message_suffix =
  delivery_date_add
  envelope_to_add
  return_path_add
В системном логе такие сообщения об ошибке:

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

Oct 16 07:01:53 my-server exim[20943]: 1IhaOj-0004V4-Q1 == my_user@mydomen.org
R=local_delivery_spam_router T=local_delivery_spam_transport defer (0):
Child process of local_delivery_spam_transport transport returned 75 (could mean temporary error) from command: /usr/local/libexec/dovecot/deliver
Подскажите, чего значит ошибка 75 от deliver и куда теперь копать?
Я так себе мну, что собака порылась в этой строке
command = /usr/local/libexec/dovecot/deliver -d \
$local_part@$domain -m INBOX.Spam
но что делать - пока не пойму... :(
Выручайте плиз!

Re: Вопрос по DSPAM

Добавлено: 2007-10-16 13:24:11
Alex Keda
можно включить отладку деливера - он будет писать всё что делает в отдельный лог.

Re: Вопрос по DSPAM

Добавлено: 2007-10-16 14:52:06
Andy2k
Вот чего "в этом супе не хватало" :)

local_delivery_spam_transport:
driver = pipe
command = /usr/local/libexec/dovecot/deliver -d \
$local_part@$domain -m INBOX.Spam
message_prefix =
message_suffix =
delivery_date_add
envelope_to_add
return_path_add
user = mailnull

Посмотрел на аналогичную секцию для deliver из конфига Лиссяры и сразу вкурил.

2 Лиссяра: золотой ты человечище, дай Бог тебе здоровья и благ всяческих.

Re: Вопрос по DSPAM

Добавлено: 2007-10-16 14:55:42
Alex Keda
:)
просто у меня память постоянная плохая.
крупное забываю, а мелочи помню.
приходитьься вести записную книжку :)

Re: Вопрос по DSPAM

Добавлено: 2007-10-18 15:47:00
borisen
Поступил вопрос:

Как так замутить, чтоб проверки ДСПАМом велись только для тех почтовых ящиков которые я укажу (например списком в файлике)

подозреваю что крутить нужно вот этот роутер:

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

dspam_spamscan_router:
  driver = accept
  domains                      = +local_domains
  no_verify
  condition = "${if and {{!eq {$received_protocol}{spam-scanned}} \
                {!eq {$received_protocol}{local}} } {1}{0}}"
  transport = dspam_spamcheck_transport
  require_files = /usr/local/bin/dspam
  address_test = false
Прикручивал ДСПАМ по статье лиссяры...

Подозреваю что в этот кондишен

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

condition = "${if and {{!eq {$received_protocol}{spam-scanned}} \
                {!eq {$received_protocol}{local}} } {1}{0}}"
нужно дописать что то типа если адрес получателя есть в списке то юзаем этот роутер если нет то нет...

Помогите плз, очень нада. Потому как юзерей у меня ой как много... Да и для всех эту тему принципиально нельзя включать...

Re: Вопрос по DSPAM

Добавлено: 2007-10-18 16:40:08
Alex Keda
пользователи где?

Re: Вопрос по DSPAM

Добавлено: 2007-10-18 16:51:15
borisen
lissyara писал(а):пользователи где?
Пользователи в мастер.пассвд :)

Возможно ты не понял что я хочу...
попытаюсь поподробнее, есть куча доменов и куча ящиков на сервере, есть огромное желание включить ДСПАМ для определенных ящиков. Они определены (точнее будут определены) в обыкновенном файлике (например dspam_users)...

примерное содержание файлика dspam_users:

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

user1@domain.ru
user2@domain.ru
user1@domain123.com

Re: Вопрос по DSPAM

Добавлено: 2007-10-18 18:28:22
Alex Keda
ну организуй поиск по файлу...
в чём проблема?

Re: Вопрос по DSPAM

Добавлено: 2007-10-18 18:54:48
borisen
lissyara писал(а):ну организуй поиск по файлу...
в чём проблема?
Я и прошу чтоб вы мне помогли написать этот роут...

сейчас есть

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

dspam_spamscan_router:
  driver = accept
  domains                      = +local_domains
  no_verify
  condition = "${if and {{!eq {$received_protocol}{spam-scanned}} \
                {!eq {$received_protocol}{local}} } {1}{0}}"
  transport = dspam_spamcheck_transport
  require_files = /usr/local/bin/dspam
  address_test = false
В него нада включить єту проверку по файлу...
буду признателен если Вы поможете :)

Re: Вопрос по DSPAM

Добавлено: 2007-10-19 23:42:10
borisen
Решение вопроса нашел!
его реализация описана тута http://forum.lissyara.su/viewtopic.php?f=20&t=5436
Если кому то это поможет, буду очень рад :)