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

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

Добавлено: 2007-11-21 12:25:57
BlackPhantom
Все как обычно делаю по статье на этом сайте. Но в статье многие моменты не освещены, 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

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

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

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

Добавлено: 2007-11-21 12:51:02
Alex Keda
ничё не понял...
я сделал так:
роутер - перед доставкой локальным адресатам

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

# 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#    
морду не юзаю.
работет нормально.

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

Добавлено: 2007-11-21 13:34:55
BlackPhantom
а как обучать его?

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

Добавлено: 2007-11-21 13:42:19
Alex Keda
последний листинг

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

Добавлено: 2007-11-21 13:53:33
BlackPhantom
lissyara писал(а):последний листинг
понял. этот роутер и транстпорт насколько я понял для писем которые не спам, а что происходит с письмами которые как "спам" метяться?

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

Добавлено: 2007-11-21 14:44:15
Alex Keda
юзеру приходят, разумеется.
не знаю как у тебя, но у меня одно недошедшее до юзера письмо может стоить несколько миллиионов :)))
поэтому последнее решение принимает юзер

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

Добавлено: 2007-11-21 15:00:45
BlackPhantom
т.е. смысл DSPAM в твоем случае это помечание в теме "*SPAM*" ?

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

Добавлено: 2007-11-21 17:35:56
Alex Keda
да.
собственно - можно их разрулить отдельным роутером на сервере, но это тактически неправильно.
НИКТО кроме пользователя не может решить что есть спам, а что нет

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

Добавлено: 2007-11-21 18:03:47
BlackPhantom
вот и сижу и думаю, если вместо 10 будет 5 спамовых писем приходить, никто спасибо не скажет, а если пропадет важное письмо, начальство может и вкатить... :twisted:

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

Добавлено: 2007-11-21 20:10:12
Alex Keda
фильтры настроить, чтоб в спам валило помеченное и всё.
все щасливы, нy а если неглядя грохнут - у тя есть логи что пришло, а отвечают что грохнули - они.

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

Добавлено: 2007-11-22 11:19:31
BlackPhantom
lissyara писал(а):фильтры настроить, чтоб в спам валило помеченное и всё.
в смысле на клиентах?

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

Добавлено: 2007-11-22 11:22:07
BlackPhantom
lissyara, мне только кажется ты неправильный транспорт привел, в твоем убирается header, а где в тему письма добавляется "SPAM" ?

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

Добавлено: 2007-11-22 11:26:51
Alex Keda
дспам добавляет.
============
незнаю что тебе кажется, тока это работет не в одном месте и уже давно

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

Добавлено: 2007-11-22 11:38:42
BlackPhantom
ага, я просто подумал что DSPAM метит его в заголовке, а в тему должен Exim добавлять. Просто должен быть уверен в конфигурации, чтоб ничего не напортачить в работающем почтовике...

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

Добавлено: 2007-11-22 12:50:19
BlackPhantom
теперь в ящик копирования почты стало падать по 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

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

Добавлено: 2007-11-22 13:28:26
Alex Keda
поместить роутер в нужную позицию.
скорей всего - выше

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

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

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

Добавлено: 2007-11-22 14:04:46
Alex Keda
ну тада дебажь и смотри где косяк - откуда второе берётся

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

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

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

Добавлено: 2007-11-22 17:08:13
Alex Keda
я тоже

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

Добавлено: 2007-11-22 18:29:23
BlackPhantom
хрен с ними, дублирующими сообщениями... а когда этот Dspam начнет письма помечать, а то сейчас на все говорит Innocent

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

Добавлено: 2007-11-22 19:42:32
Alex Keda
когда научишь

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

Добавлено: 2007-11-22 19:58:24
BlackPhantom
да вот, шлю всякий мусор на spam@ , пока безтолку...

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

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

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

Добавлено: 2008-04-08 6:24:46
login16
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 писем обучал. Хочу очистить все обучение и заново попробовать.