Страница 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
Если кому то это поможет, буду очень рад