Помогите раскурить DSPAM

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

Помогите раскурить DSPAM

Непрочитанное сообщение BlackPhantom » 2007-11-21 12:25:57

Все как обычно делаю по статье на этом сайте. Но в статье многие моменты не освещены, man dspam выдает скудную инфу по ключам, доки которые инсталятся тоже ничего толкового не нашел. Итак Freebsd 6,2, exim 4,68, dovecot 1.07, dspam 3.6.8.
Что нужно:
- вести общую базу спама, а не индивидуальную, т.к. рассказать юзерам что нужно слать спам и не спам на адреса spam@ и notspam@ это смерти подобно... :twisted: ....
- вся почта у меня копируется на отдельный ящик через системный фильтр, с этого ящика и буду сортировать, но в идеале хотелось бы....
- через вэб-интерфейс обучать dspam (только мне, а не всем юзерам)

Что есть:
dspam.conf

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

Home /var/db/dspam
StorageDriver /usr/local/lib/libhash_drv.so
TrustedDeliveryAgent "/usr/local/sbin/exim -oMr spam-scanned" # Exim
OnFail error
Trust root
Trust mail
Trust mailnull
Trust smmsp
Trust daemon
TrainingMode teft
TestConditionalTraining on
Feature chained
Feature whitelist
Algorithm graham burton
PValue graham
Preference "signatureLocation=headers"  # 'message' or 'headers'
Preference "showFactors=on"
Preference "spamAction=tag"
Preference "spamSubject=SPAM"
AllowOverride trainingMode
AllowOverride spamAction spamSubject
AllowOverride statisticalSedation
AllowOverride enableBNR
AllowOverride enableWhitelist
AllowOverride signatureLocation
AllowOverride showFactors
AllowOverride optIn optOut
AllowOverride whitelistThreshold
HashRecMax              98317
HashAutoExtend          on
HashMaxExtents          0
HashExtentSize          49157
HashMaxSeek             100
HashConnectionCache     10
IgnoreHeader X-Spam-Status
IgnoreHeader X-Spam-Scanned
IgnoreHeader X-Virus-Scanner-Result
IgnoreHeader X-Spam-Score
IgnoreHeader Date
IgnoreHeader Envelope-to
IgnoreHeader Delivery-date
IgnoreHeader Received
IgnoreHeader User-Agent
IgnoreHeader Content-Type
IgnoreHeader Content-Transfer-Encoding
IgnoreHeader To
Notifications   off
PurgeSignatures 14          # Stale signatures
PurgeNeutral    90          # Tokens with neutralish probabilities
PurgeUnused     90          # Unused tokens
PurgeHapaxes    30          # Tokens with less than 5 hits (hapaxes)
PurgeHits1S     15          # Tokens with only 1 spam hit
PurgeHits1I     15          # Tokens with only 1 innocent hit
LocalMX 127.0.0.1
SystemLog on
UserLog   on
Opt out
MaxMessageSize 200000
ProcessorBias on
/var/db/dspam/group

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

system:shared:*
exim.conf

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

begin routers

dspam_addspam_router:
  driver = accept
  domains = +local_domains
  local_part_prefix = spam-
  transport = dspam_addspam_transport


dspam_notspam_router:
  driver = accept
  domains = +local_domains
  local_part_prefix = notspam-
  transport = dspam_notspam_transport


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

system_aliases:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup{$local_part}lsearch{/etc/aliases}}
  user = mailnull
  group = mail
  file_transport = address_file
  pipe_transport = address_pipe


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

local_delivery_spam_router:
  driver = accept
  domains = +local_domains
  condition = ${if match{$h_X-DSPAM-Result:}{Spam}}
  transport = local_delivery_spam_transport
  no_more

localuser:
  driver = accept
  check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
  transport = local_delivery
  cannot_route_message = Unknown user



begin transports

remote_smtp:
  driver = smtp


local_delivery:
  driver = appendfile
  file = /var/mail/$local_part
  delivery_date_add
  envelope_to_add
  return_path_add
  group = mail
  user = $local_part
  mode = 0660
  no_mode_fail_narrower


address_pipe:
  driver = pipe
  return_output

address_file:
  driver = appendfile
  delivery_date_add
  envelope_to_add
  return_path_add



address_reply:
  driver = autoreply

vacation_reply:
  driver = autoreply

dspam_addspam_transport:
  driver = pipe
  command = "/usr/local/bin/dspam --user \
    $local_part@$domain --class=spam --source=error"
  return_path_add = false
  return_fail_output = true
  log_output = true
  home_directory = "/var/db/dspam"
  current_directory = "/var/db/dspam"
  user = mailnull
  group = mail


dspam_notspam_transport:
  driver = pipe
  command = "/usr/local/bin/dspam --user \
        $local_part@$domain --class=innocent \
  --source=error --deliver=innocent %u"
  return_path_add = false
  return_fail_output = true
  log_output = true
  home_directory = "/var/db/dspam"
  current_directory = "/var/db/dspam"
  user = mailnull
  group = mail

dspam_spamcheck_transport:
  driver = pipe
  command = /usr/local/bin/dspam --deliver=innocent --user $local_part@$domain -- %u
  user = mailnull
  group = mail
  return_path_add = false
  log_output = true
  return_fail_output = true
  headers_remove = X-DSPAM-Result


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

system_filter

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

unseen deliver bigeye@domain.ua

А теперь вопрос. Я не вкурю куда дальше мне двигаться? Вроде настроил вэб интерфейс, но картинка там всегда одна и та же:
Изображение

Как сделать чтоб в вэбе появлялась почта, и ей мог говорить что спам, а что нет?

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Помогите раскурить DSPAM

Непрочитанное сообщение Alex Keda » 2007-11-21 12:51:02

ничё не понял...
я сделал так:
роутер - перед доставкой локальным адресатам

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

# DSPAM verify
dspam_spamscan_router:
        driver          = accept
#       domains         = MS_EXCHANGE_DOMAIN_LOCAL : MS_EXCHANGE_DOMAIN_RU : MS_EXCHANGE_DOMAIN_TEST
        no_verify
        condition       = "${if and {{!eq {$received_protocol}{spam-scanned}} \
                                {!eq {$received_protocol}{local}} {!eq{$h_X-White-List:}{YES}}} {1}{0}}"
#       more            = ${if eq{$h_X-White-List:}{YES} {yes}{no}}
        transport       = dspam_spamcheck_transport
        require_files   = /usr/local/bin/dspam
        address_test    = false
        self            = pass
транспорт:

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

# DSPAM
dspam_spamcheck_transport:
        driver                  = pipe
        command                 = /usr/local/bin/dspam --deliver=innocent --user "$local_part@$domain" -- %u
        user                    = mailnull
        group                   = mail
        return_path_add         = false
        log_output              = true
        return_fail_output      = true
        headers_remove          = X-DSPAM-Result
для приёма ошибок/спама заюзал системные альясы:

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

mail# cat /etc/aliases | grep spam
# spam aliases
spam:           "| /usr/local/bin/dspam --user system --class=spam --source=error"
notspam:        "| /usr/local/bin/dspam --user system --class=innocent --source=error"
mail#    
морду не юзаю.
работет нормально.
Убей их всех! Бог потом рассортирует...

BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

Re: Помогите раскурить DSPAM

Непрочитанное сообщение BlackPhantom » 2007-11-21 13:34:55

а как обучать его?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Помогите раскурить DSPAM

Непрочитанное сообщение Alex Keda » 2007-11-21 13:42:19

последний листинг
Убей их всех! Бог потом рассортирует...

BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

Re: Помогите раскурить DSPAM

Непрочитанное сообщение BlackPhantom » 2007-11-21 13:53:33

lissyara писал(а):последний листинг
понял. этот роутер и транстпорт насколько я понял для писем которые не спам, а что происходит с письмами которые как "спам" метяться?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Помогите раскурить DSPAM

Непрочитанное сообщение Alex Keda » 2007-11-21 14:44:15

юзеру приходят, разумеется.
не знаю как у тебя, но у меня одно недошедшее до юзера письмо может стоить несколько миллиионов :)))
поэтому последнее решение принимает юзер
Убей их всех! Бог потом рассортирует...

BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

Re: Помогите раскурить DSPAM

Непрочитанное сообщение BlackPhantom » 2007-11-21 15:00:45

т.е. смысл DSPAM в твоем случае это помечание в теме "*SPAM*" ?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Помогите раскурить DSPAM

Непрочитанное сообщение Alex Keda » 2007-11-21 17:35:56

да.
собственно - можно их разрулить отдельным роутером на сервере, но это тактически неправильно.
НИКТО кроме пользователя не может решить что есть спам, а что нет
Убей их всех! Бог потом рассортирует...

BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

Re: Помогите раскурить DSPAM

Непрочитанное сообщение BlackPhantom » 2007-11-21 18:03:47

вот и сижу и думаю, если вместо 10 будет 5 спамовых писем приходить, никто спасибо не скажет, а если пропадет важное письмо, начальство может и вкатить... :twisted:

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Помогите раскурить DSPAM

Непрочитанное сообщение Alex Keda » 2007-11-21 20:10:12

фильтры настроить, чтоб в спам валило помеченное и всё.
все щасливы, нy а если неглядя грохнут - у тя есть логи что пришло, а отвечают что грохнули - они.
Убей их всех! Бог потом рассортирует...

BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

Re: Помогите раскурить DSPAM

Непрочитанное сообщение BlackPhantom » 2007-11-22 11:19:31

lissyara писал(а):фильтры настроить, чтоб в спам валило помеченное и всё.
в смысле на клиентах?

BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

Re: Помогите раскурить DSPAM

Непрочитанное сообщение BlackPhantom » 2007-11-22 11:22:07

lissyara, мне только кажется ты неправильный транспорт привел, в твоем убирается header, а где в тему письма добавляется "SPAM" ?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Помогите раскурить DSPAM

Непрочитанное сообщение Alex Keda » 2007-11-22 11:26:51

дспам добавляет.
============
незнаю что тебе кажется, тока это работет не в одном месте и уже давно
Убей их всех! Бог потом рассортирует...

BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

Re: Помогите раскурить DSPAM

Непрочитанное сообщение BlackPhantom » 2007-11-22 11:38:42

ага, я просто подумал что DSPAM метит его в заголовке, а в тему должен Exim добавлять. Просто должен быть уверен в конфигурации, чтоб ничего не напортачить в работающем почтовике...

BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

Re: Помогите раскурить DSPAM

Непрочитанное сообщение BlackPhantom » 2007-11-22 12:50:19

теперь в ящик копирования почты стало падать по 2 копии одного сообщения. Как сделать чтоб только одна копия была?

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

11:43:33 1Iv8ar-000BfW-OE <= blackphantom@mail.ru H=mail.ru [XX.XXX.XX.XX] P=esmtp S=969 id=1972560336.20071122114237
11:43:33 1Iv8ar-000Bfh-R9 <= blackphantom@mail.ru U=mailnull P=spam-scanned S=1986 id=1972560336.20071122114237@ru
11:43:33 1Iv8ar-000BfW-OE => ua <admin@domain.ua> R=dspam_spamscan_router T=dspam_spamcheck_transport
11:43:33 1Iv8ar-000Bfh-R9 => copymail <system-filter> R=localuser T=local_delivery
11:43:33 1Iv8ar-000Bfo-TS <= blackphantom@mail.ru U=mailnull P=spam-scanned S=2094 id=1972560336.20071122114237@ru
11:43:33 1Iv8ar-000BfW-OE => copymail <system-filter> R=dspam_spamscan_router T=dspam_spamcheck_transport
11:43:33 1Iv8ar-000BfW-OE Completed
11:43:34 1Iv8ar-000Bfh-R9 => ua <ua@domain.ua> R=localuser T=local_delivery
11:43:34 1Iv8ar-000Bfh-R9 Completed
11:43:34 1Iv8ar-000Bfo-TS => copymail <system-filter> R=localuser T=local_delivery
11:43:34 1Iv8ar-000Bfo-TS Completed

системный фильтр:

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

unseen deliver copymail@domain.ua

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Помогите раскурить DSPAM

Непрочитанное сообщение Alex Keda » 2007-11-22 13:28:26

поместить роутер в нужную позицию.
скорей всего - выше
Убей их всех! Бог потом рассортирует...

BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

Re: Помогите раскурить DSPAM

Непрочитанное сообщение BlackPhantom » 2007-11-22 13:45:54

Поместил в самый вверх, собственно ничего не поменяло.
Я так понимаю, оно один копирует когда передают DSPAM, а второй раз когда от DSPAM в local_delivery. Для unseen delivery можно условие написать что проверялся какой транспорт используется? Что не могу найти такого нигде..

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Помогите раскурить DSPAM

Непрочитанное сообщение Alex Keda » 2007-11-22 14:04:46

ну тада дебажь и смотри где косяк - откуда второе берётся
Убей их всех! Бог потом рассортирует...

BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

Re: Помогите раскурить DSPAM

Непрочитанное сообщение BlackPhantom » 2007-11-22 16:11:50

lissyara писал(а):ну тада дебажь и смотри где косяк - откуда второе берётся
exim -d? что-то там ничего полезного не вижу :(

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Помогите раскурить DSPAM

Непрочитанное сообщение Alex Keda » 2007-11-22 17:08:13

я тоже
Убей их всех! Бог потом рассортирует...

BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

Re: Помогите раскурить DSPAM

Непрочитанное сообщение BlackPhantom » 2007-11-22 18:29:23

хрен с ними, дублирующими сообщениями... а когда этот Dspam начнет письма помечать, а то сейчас на все говорит Innocent

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Помогите раскурить DSPAM

Непрочитанное сообщение Alex Keda » 2007-11-22 19:42:32

когда научишь
Убей их всех! Бог потом рассортирует...

BlackPhantom
мл. сержант
Сообщения: 128
Зарегистрирован: 2007-11-02 11:34:10

Re: Помогите раскурить DSPAM

Непрочитанное сообщение BlackPhantom » 2007-11-22 19:58:24

да вот, шлю всякий мусор на spam@ , пока безтолку...

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: Помогите раскурить DSPAM

Непрочитанное сообщение Al » 2007-11-23 23:38:04

там надо слать на spam-user@domen по дефолту...
А про веб-морду - пощи по форуму+погугли+доки почитай.Я тож хотел веб прикрутить, но в итоге оказалось,что апач надо пересобирать с модулем SUEXEC (кажись,так),а это лишняя дыра..Если не заморачиваешься на безопасность - пересобери апач и посмотри на офф сайте или в доках что конкретно надо писать в httpd.conf

login16
ефрейтор
Сообщения: 50
Зарегистрирован: 2007-10-08 19:00:55

Re: Помогите раскурить DSPAM

Непрочитанное сообщение login16 » 2008-04-08 6:24:46

lissyara писал(а):ничё не понял...
я сделал так:
роутер - перед доставкой локальным адресатам

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

# DSPAM verify
dspam_spamscan_router:
        driver          = accept
#       domains         = MS_EXCHANGE_DOMAIN_LOCAL : MS_EXCHANGE_DOMAIN_RU : MS_EXCHANGE_DOMAIN_TEST
        no_verify
        condition       = "${if and {{!eq {$received_protocol}{spam-scanned}} \
                                {!eq {$received_protocol}{local}} {!eq{$h_X-White-List:}{YES}}} {1}{0}}"
#       more            = ${if eq{$h_X-White-List:}{YES} {yes}{no}}
        transport       = dspam_spamcheck_transport
        require_files   = /usr/local/bin/dspam
        address_test    = false
        self            = pass
транспорт:

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

# DSPAM
dspam_spamcheck_transport:
        driver                  = pipe
        command                 = /usr/local/bin/dspam --deliver=innocent --user "$local_part@$domain" -- %u
        user                    = mailnull
        group                   = mail
        return_path_add         = false
        log_output              = true
        return_fail_output      = true
        headers_remove          = X-DSPAM-Result
для приёма ошибок/спама заюзал системные альясы:

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

mail# cat /etc/aliases | grep spam
# spam aliases
spam:           "| /usr/local/bin/dspam --user system --class=spam --source=error"
notspam:        "| /usr/local/bin/dspam --user system --class=innocent --source=error"
mail#    
морду не юзаю.
работет нормально.
Лис, я все сделал как ты пишешь в этой цитате. Но письма не помечаются.
Ошибок нет. Ничего понять не могу.
Спамовые писбма шлю на spam@domain.
===
Взял свой личный ящик. взял письмо со спамом. Переслал его на рабочий ящик. Получил. Переслал его на spam@domain.
повторяю процедуру заново. Анологичный результат.
Где рыть? Какие можно таблицы mysql почистить? Я просто 3-4 конфига перепробовал, примерно около 1000 писем обучал. Хочу очистить все обучение и заново попробовать.