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

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
login16
ефрейтор
Сообщения: 50
Зарегистрирован: 2007-10-08 19:00:55

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

Непрочитанное сообщение login16 » 2008-04-08 7:34:38

На данный момент закомментировал твой транспорт и роутер Лис...

Взял вот такой конфиг:

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

######################################################################
#                      ROUTERS CONFIGURATION                         #
#               Specifies how addresses are handled                  #
begin routers
dspam_addspam:
    driver = accept
    expn = false
    domains = +local_domains
    local_parts = spam
    transport = addspam
    headers_add = "X-DSPAM-REPORT: Missclassified"
dspam_falsepositive:
    driver = accept
    expn = false
    domains = +local_domains
    local_parts = ham:nospam
    transport = falsepositive
    headers_add = "X-DSPAM-REPORT: Falsepositive"
spamscan_router:
    no_verify
    headers_remove = X-FILTER-SPAM : X-Spam-Score : X-Spam-Score-Gate : X-Spam-Report : X-Spam-Subject : X-Spam-Flag : X-S
    condition = "${if and {{!eq{$received_protocol}{spam-scanned}} {!def:h_X-FILTER-SPAM:}} {1}{0}}"
    driver = accept
    headers_add = X-FILTER-SPAM: ICF Team Spam Filter on $primary_hostname, $tod_full X-SENDER-INFO: ${if def:authenticated_id {ID - ${authenticated_id},}}  ${if def:authenticated_sender {authenticated_sender - ${authenticated_sender},}}   ${if def:sender_ident {rfc1413(ident) - ${sender_ident},}}     ${if def:originator_uid {UID - ${originator_uid},}}     ${if def:originator_gid {GID - ${originator_gid}}}
    local_parts = !addham:!addspam:!ham:!spam:!sexy
    transport = spamcheck_transport
    require_files = /var/db/dspam:/usr/local/bin/dspam
local_delivery_spam_router:
    driver      = accept
    domains     = +local_domains
    condition   = ${if match{$h_X-DSPAM-Result:}{Spam}}
    transport   = local_delivery_spam_transport
    no_more
spam_reject:
    driver = redirect
    check_local_user
    user = mailnull
    group = mail
    headers_add = "X-DSPAM-Rreport:Rejected"
    condition = ${if eq {$h_X_DSPAM-Result:}{Spam}{yes}{no}}
    allow_fail = true
    require_files = $local_part:/var/mail/exim/$local_part
    errors_to = ""
    data = :blackhole:
    more = false

system_aliases:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE `address`='${quote_mysq                                 l:$local_part@$domain}' OR `address`='${quote_mysql:@$domain}'}}

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


dovecot_user:
  driver = accept
  condition = ${lookup mysql {SELECT `goto` FROM `alias` WHERE `address`='${quot                                 e_mysql:$local_part@$domain}' OR `address`='${quote_mysql:@$domain}'}{yes}{no}}
  transport = dovecot_delivery


######################################################################
#                      TRANSPORTS CONFIGURATION                      #

begin transports
local_delivery_spam_transport:
    driver = pipe
    command = /usr/lib/dovecot/deliver -d spam2@imperea.ru
    message_prefix =
    message_suffix =
    delivery_date_add
    envelope_to_add
    return_path_add
spamcheck_transport:
    driver = pipe
    command = "/usr/local/sbin/exim -oi -oMr spam-scanned -bS"
    transport_filter = /usr/local/bin/dspam --stdout --deliver=innocent,spam --u                                 ser $local_part@domain --mail-from "${lc:$sender_address}" --rcpt-to "${lc:$loca                                 l_part}@${lc:$domain}"
    user = mailnull
    group = mail
    use_bsmtp = true
    home_directory = "/var/db/dspam"
    current_directory = "/var/db/dspam"
    delivery_date_add = true
    return_path_add = true
    envelope_to_add = true
    log_fail_output = true
    log_defer_output = true
    return_fail_output = true
    message_prefix = ""
    message_suffix = ""
    temp_errors = *

addspam:
    driver = pipe
    command = /usr/local/bin/dspam --user ${lc:$sender_address} --class=spam --s                                 ource=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
    message_prefix = ""
    message_suffix = ""

falsepositive:
driver = pipe
    command = /usr/local/bin/dspam --user ${lc:$sender_address} --class=innocent                                  --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
    message_prefix = ""
    message_suffix = ""

remote_smtp:
  driver = smtp

dovecot_delivery:
  driver = pipe
  command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain
  message_prefix=
  message_suffix=
  delivery_date_add
  envelope_to_add
  return_path_add
  log_output
  user = mailnull

address_pipe:
  driver = pipe
  return_output

address_reply:
  driver = autoreply
Шлю спам письмо с ящика Mail.ru на рабочий. Получаю письмо. Пеерслыаю на spam@domain.
Снова посылаю с мейла это же письмо. В логе дспам показывает что это письмо спамовое.

Но мне на мейл ворачивается письмо:

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

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

 admin@imperea.ru
   local delivery failed

------ This is a copy of the message, including all the headers. ------

Return-path: <>
Received: from mailnull by mail.imperea.ru with spam-scanned (Exim 4.68 (FreeBSD))
       (envelope-from <>)
       id 1Jj5kE-000Cmd-4H
       for admin@imperea.ru; Tue, 08 Apr 2008 11:47:42 +0700
Received: from [64.233.166.178] (helo=py-out-1112.google.com)
       by mail.imperea.ru with esmtp (Exim 4.68 (FreeBSD))
       (envelope-from <>)
       id 1Jj5kD-000Cma-Iq
       for admin@imperea.ru; Tue, 08 Apr 2008 11:47:42 +0700
Received: by py-out-1112.google.com with SMTP id x79so461793pyg.5
       for <admin@imperea.ru>; Mon, 07 Apr 2008 21:43:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
       d=gmail.com; s=gamma;
       h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references;
       bh=m4nwOD5kcJnQIhXKp+atZJhNzaV/BRodlzcKD3St81M=;
       b=qtwFY72qdjcqlFNRxH4fJCW1481Dn5KoGqUk0F1ME+NkZ9QphzjdrtZvk+vCUSerYwn3vjmz/deOKYVkPl89mMJo4gpjvXloppwJG6R8uhiMpWd3QgckY6CYJkrTFkaA63+OohPVD8qWkxaW4K49m81KH2NUSYKuyw+Fx+gFKXc=
DomainKey-Signature: a=rsa-sha1; c=nofws;
       d=gmail.com; s=gamma;
       h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references;
       b=avhJPlGtbZHQ0rD1PT3ba0BuAM3MS3atkEplxVvLq5dsCwBeQqDjxJ3pvDIfnkYtKIkFkLr6rH3YM1CtNeEQ33ZwdLOlXl/9U6fJlA6ryKxD3Rt0+GpGP0Wsx2lKaL+Vqv8TS/5PuP6qdzR5CUXOs3XEL3dogli5pZdUd8pX7QQ=
Received: by 10.64.203.4 with SMTP id a4mr11511115qbg.38.1207629800259;
       Mon, 07 Apr 2008 21:43:20 -0700 (PDT)
Received: by 10.65.188.16 with HTTP; Mon, 7 Apr 2008 21:43:20 -0700 (PDT)
Message-ID: <b7ea23bf0804072143n3046a2acldd7488e403b8b87b@mail.gmail.com>
Date: Tue, 8 Apr 2008 11:43:20 +0700
From: "=?KOI8-R?B?4czFy9PBzsTS?=" <>
To: admin <admin@imperea.ru>
Subject: SPAM =?KOI8-R?B?RndkOiDw4evl9Pk6IPfZ0tXCzsHRINXL0sXQzMXOzsHRIMkgzsXVy9I=?= =?KOI8-R?B?xdDMxc7OwdEg0tXey8EsINDBy8XUINTJ0MEgzcHKy8EsIMbB08/Xy8E=?=
In-Reply-To: <000601c89933$045af2b5$8e562093@fvkfdm>
MIME-Version: 1.0
Content-Type: multipart/alternative;
       boundary="----=_Part_13147_13343241.1207629800246"
References: <000601c89933$045af2b5$8e562093@fvkfdm>
X-FILTER-SPAM: ICF Team Spam Filter on mail.imperea.ru, Tue, 08 Apr 2008 11:47:42 +0700 X-SENDER-INFO:             UID - 26,     GID - 6
X-DSPAM-Result: Spam
X-DSPAM-Processed: Tue Apr  8 11:47:42 2008
X-DSPAM-Confidence: 0.7372
X-DSPAM-Probability: 1.0000
X-DSPAM-Signature: 47faf8ee491452684626120
X-DSPAM-Factors: 15,
       Delivery-date*42, 0.01000,
       Received*2008+21, 0.99000,
       Return-path*<>, 0.99000,
       Return-path*<login16, 0.99000,
       Received*21, 0.99000,
       X-FILTER-SPAM*42, 0.01000,
       Return-path*gmail.com>, 0.99000,
       Received*admin+imperea.ru, 0.94488,
       Received*admin, 0.94488,
       Envelope-to*admin+imperea.ru, 0.94488,
       Envelope-to*admin, 0.94488,
       Received*for+admin, 0.94488,
       To*<admin, 0.92784,
       ????????, 0.92784,
       face="Arial", 0.92784
Последний раз редактировалось login16 2008-11-17 13:24:56, всего редактировалось 1 раз.

Хостинговая компания 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/

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

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

Непрочитанное сообщение login16 » 2008-04-08 9:14:26

С этой ошибкой разобрался.
Теперь еще одна:

Apr 8 12:56:14 ND-GW1 deliver(spam2@domain): setgid(26) failed: Operation not permitted

frozz
проходил мимо
Сообщения: 8
Зарегистрирован: 2008-03-23 17:48:59

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

Непрочитанное сообщение frozz » 2008-05-26 20:33:08

login16 писал(а):С этой ошибкой разобрался.
Теперь еще одна:

Apr 8 12:56:14 ND-GW1 deliver(spam2@domain): setgid(26) failed: Operation not permitted
если не сложно подскажите как вы разобрались с той ошибкой? у меня такая же ...не знаю что делать...

dserga
рядовой
Сообщения: 43
Зарегистрирован: 2008-05-23 7:23:36

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

Непрочитанное сообщение dserga » 2008-06-16 9:45:59

Проблема следующего свойства.
Почему-то dspam не ставит сигнатуру письма в базу, хотя в конфигурации стоит, что "MySQLUIDInSignature on" и по идее он должен делать отметку в поле базы dspam_signature_data, но там ничего нет. Хотя новые токены, после сканирования входящих сообщений в базе появляются.
Конфиг dspam лежит по стандартному пути в /usr/local/etc/dspam.conf.
Я пошел по простому варианту как написано в документации dspam и воспользовался алиасами. Лисяра тут приводил подобный пример страницей выше, только для поиска алиасов spam и nospam пришлось сделать такую секцию, иначе в мускульной базе он не находил соответсвующих клиентов:
virtual_alias:
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part}dbm{/etc/mail/aliases.db}}
user = mailnull
pipe_transport = address_pipe
Но после возврата письма на алиас spam возвращается письмо:
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

pipe to | /usr/local/bin/dspam --user system --class=spam --source=error
generated by spam@mydomain.su

The following text was generated during the delivery attempt:

------ pipe to | /usr/local/bin/dspam --user system --class=spam --source=error
generated by spam@mydoamin.su ------

4490: [06/16/2008 08:30:51] Unable to find a valid signature. Aborting.
4490: [06/16/2008 08:30:51] process_message returned error -5. dropping message.
Понятно, что не может найти сигнатуру, но как же он ее найдет, если ее нет в его базе. Какие-нибудь идеи есть на этот счет? Может собралось криво, али чего пропустил?

Да и вот еще чего. Если собрать мускуль с опцией WITH_LINUXTHREADS=yes, то сам мускуль падает с ошибкой. Если собрать без, то все нормально.

dserga
рядовой
Сообщения: 43
Зарегистрирован: 2008-05-23 7:23:36

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

Непрочитанное сообщение dserga » 2008-06-16 19:04:57

Вроде разобрался сам, после добавления в роутер dspam
user = mailnull
group = mail
начали ставиться uid-ы в базу, но только для системного пользователя, а для локальных пользователей доменов так и нет, может надо исправить что-то group файле?
Вот листинг
system:shared:*
main:classification:admin@domain1.su;admin@domain2.ru
other:inoculation:*local_part@domain1.su;*local_part@domain2.ru
Вроде ваял исходя из того, что написано в куцем доке к dspam.

dserga
рядовой
Сообщения: 43
Зарегистрирован: 2008-05-23 7:23:36

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

Непрочитанное сообщение dserga » 2008-06-17 0:06:48

Все, обучается, пусть только shared тип базы - ну и пофиг, юзвери будут скопом обучать.
Но вроде перебрал все возможные варианты с роутерами исходя из логики, и все равно в логе вылетает такая фигня
Jun 17 00:41:10 mail exim[1539]: 1K8LVm-0000Op-EA <= admin@domain.ru H=(localhost) [80.210.20.17] P=esmtpa A=auth_cram_md5:admin@domain.ru S=34821
id=1357283966.20080617004122@domain.ru from <admin@domain.ru> for spam@domain.ru
Jun 17 00:41:11 mail dspam[1542]: query error: VERBOSE DEBUG (INFO ONLY - NOT AN ERROR): see sql.errors for more details
Jun 17 00:41:11 mail exim[1540]: 1K8LVm-0000Op-EA ** | /usr/local/bin/dspam --user system --class=spam --source=error <spam@domian.ru> R=virtual_alias T=address_pipe: return message generated
Jun 17 00:41:11 mail exim[1544]: 1K8LVn-0000Ou-9w <= <> R=1K8LVm-0000Op-EA U=mailnull P=local S=36016 from <> for admin@domain.ru
Jun 17 00:41:11 mail exim[1540]: 1K8LVm-0000Op-EA Completed
Jun 17 00:41:11 mail exim[1545]: 1K8LVn-0000Ou-9w => admin <admin@domain.ru> R=mysqluser T=mysql_delivery
Jun 17 00:41:11 mail exim[1545]: 1K8LVn-0000Ou-9w Completed
При этом переобучение происходит и база соответсвенно корректируется адекватно действиям.
Роутер виртуальных алиасов

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

virtual_alias:
    driver = redirect
    allow_fail
    allow_defer
    data = ${lookup{$local_part}dbm{/etc/mail/aliases.db}}
    user = mailnull
    group = mail
    pipe_transport = address_pipe
стоит в самом начале, иначе генериться еще одно сообщение, если переместить этот роутер ниже.
Но возвращетеся письмо из второго потока, созданное поледующим роутером вот такого типа:
This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

pipe to | /usr/local/bin/dspam --user system --class=spam --source=error
generated by spam@domain.ru

The following text was generated during the delivery attempt:

------ pipe to | /usr/local/bin/dspam --user system --class=spam --source=error
generated by spam@domain.ru ------

1542: [06/17/2008 00:41:11] query error: VERBOSE DEBUG (INFO ONLY - NOT AN ERROR): see sql.errors for more details
Если ставлю при успехе роутера virtual_alias двинаться дальше в роутеры, то больше любые письма отклоняются и почта не ходит. Блин, голову уже сломал.
Может здесь не pipе транспорт нужен? Но тогда что? Другое пробовал не катит, ибо ругатеся на недопустимость исполнения.
Для информации: Использую Exim+Courier+MySQL и прикурчиваю, пока без особых успехов DSPAM в виде демона.

dserga
рядовой
Сообщения: 43
Зарегистрирован: 2008-05-23 7:23:36

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

Непрочитанное сообщение dserga » 2008-06-17 19:10:57

Все, окончательно разобрался. Победил.
Помогло следующее. Очистка таблицы (не удаление, а просто TRUNCATE), обновление до версии 3.6.8_3 (была 3.6.8_2), пересборка без debug-verbose.
Плюс в роутер для dspam была добавлена строка
local_parts = !spam:!notspam
И все, дубление записей и отбивка ошибки прекратились.
Спаисбо всем, что молчаливо меня поддержали :cf:

akam
проходил мимо

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

Непрочитанное сообщение akam » 2008-07-29 19:36:20

Здрасте..
Завел дспам + екзим по статье, все работает, вот только в логах екзима и в заголовках письма добавляется новая, ненужная строка
гугль не помог, решил попробовать здесь спросить.

Например в письме
Received: from root by mail.mydomain.com with spam-scanned (Exim 4.69)
(envelope-from <root [сабака] mydomain.com>)
id 1KNrqY-0003CH-Ge
for akam [сабачко] mydomain.com; Tue, 29 Jul 2008 20:14:46 +0400
Received: from home ([172.26.49.222] helo=akamnote)
by mail.mydomain.com with smtp (Exim 4.69)
(envelope-from <akam [сабачко] mydomain.com>)
id 1KNrqY-0003C9-2i
for akam [сабачко] mydomain.com; Tue, 29 Jul 2008 20:14:46 +0400

И в логах:
2008-07-29 20:14:46 1KNrqY-0003C9-2i <= akam [сабачко] mydomain.com H=home (akamnote) [172.26.49.222] P=smtp S=1319 id=002001c8f196$3746e2c0$9292a8c0@akamnote from <akam [сабачко] mydomain.com> for akam [сабачко] mydomain.com
2008-07-29 20:14:46 1KNrqY-0003CH-Ge <= root [сабачко] mydomain.com U=root P=spam-scanned S=1816 id=002001c8f196$3746e2c0$9292a8c0@akamnote from <root [сабачко] mydomain.com> for akam [сабачко] mydomain.com
2008-07-29 20:14:46 1KNrqY-0003CH-Ge => akam <akam [сабачко] mydomain.com> R=virtual_localuser T=local_delivery
2008-07-29 20:14:46 1KNrqY-0003CH-Ge Completed

2008-07-29 20:14:46 1KNrqY-0003C9-2i => akam <akam [сабачко] mydomain.com> R=dspam_router T=lmtp
2008-07-29 20:14:46 1KNrqY-0003C9-2i Completed

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

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

Непрочитанное сообщение Alex Keda » 2008-07-29 19:39:51

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

akam
проходил мимо

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

Непрочитанное сообщение akam » 2008-07-29 21:34:35

Извиняюсь, наверное собственно вопрос не задал?

Вопрос: возможно ли сделать, чтобы dspam работал "прозрачно", т.е. чтобы этих лишних строчек ни заголовках письма(Received: from root by...), ни в логах exim(<= root [сабачко] mydomain.com U=root P=spam-scanned) не было?

И еще вопросик. В логах exim видно что письмо проходит два роутера:

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

2008-07-29 20:14:46 1KNrqY-0003CH-Ge => akam <akam [сабачко] mydomain.com> R=virtual_localuser T=local_delivery
2008-07-29 20:14:46 1KNrqY-0003CH-Ge Completed
2008-07-29 20:14:46 1KNrqY-0003C9-2i => akam <akam [сабачко] mydomain.com> R=dspam_router T=lmtp
2008-07-29 20:14:46 1KNrqY-0003C9-2i Completed
вот здесь вот непонятно, это нормально? Хотя письмо приходит в одном экземпляре..
Последний раз редактировалось Alex Keda 2008-07-29 22:24:56, всего редактировалось 1 раз.
Причина: [code][/code] - для кого?

dserga
рядовой
Сообщения: 43
Зарегистрирован: 2008-05-23 7:23:36

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

Непрочитанное сообщение dserga » 2008-07-30 16:36:43

Вполне нормально, первый транспорт передает dspam-у на обработку письмо, а он его возвращает уже с другим id обратно exim.

kad2005
проходил мимо
Сообщения: 1
Зарегистрирован: 2010-01-14 9:17:30

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

Непрочитанное сообщение kad2005 » 2010-01-14 9:24:38

frozz писал(а):
login16 писал(а):С этой ошибкой разобрался.
Теперь еще одна:

Apr 8 12:56:14 ND-GW1 deliver(spam2@domain): setgid(26) failed: Operation not permitted
если не сложно подскажите как вы разобрались с той ошибкой? у меня такая же ...не знаю что делать...
у меня такая же ошибка...не знаю что делать...Письмо назад приходит

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

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

Непрочитанное сообщение Alex Keda » 2010-01-15 21:32:58

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