Проблема с DSPAM ом

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
VGZ
проходил мимо
Сообщения: 6
Зарегистрирован: 2008-09-22 21:02:11

Проблема с DSPAM ом

Непрочитанное сообщение VGZ » 2009-02-04 21:19:47

Доброго времени суток!
Проблема такая настроил DSPAM по статье http://www.lissyara.su/?id=1301 , отправляю письма со спамом на spam-user@domain.com начию кормить его спамом и он нифига не обучается.
В БД и в Дебагах ничего не появляется (

Роуты и Транспорты из /usr/local/etc/exim/configure

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

begin routers

#0
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

# Поиск маршрута к хосту в DNS. Если маршрут не найден в DNS -
# то это `унроутабле аддресс`. Не проверяются локальные
# домены, 0.0.0.0 и 127.0.0.0/8
dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  no_more

# 1.Смотрим системные Алиасы
system_aliases:
    driver = redirect
    allow_fail
    allow_defer
    data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
            `address`='${quote_mysql:$local_part@$domain}' OR \
                `address`='${quote_mysql:@$domain}'}}

# 2.Доставляем почты в dovecot
dovecot_user:
  driver = accept
  condition = ${lookup mysql{SELECT `goto` FROM \
  `alias` WHERE \
  `address`='${quote_mysql:$local_part@$domain}' OR \
  `address`='${quote_mysql:@$domain}'}{yes}{no}}
  transport = dovecot_delivery


t_router:
    driver = manualroute
    transport = t_transport
    route_list = * smtp.domain.com

# смотрим альясы
#system_aliases:
#    driver      = redirect
#    allow_fail
#    allow_defer
#    data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
#            `address`='${quote_mysql:$local_part@$domain}' OR \
#                `address`='${quote_mysql:@$domain}'}}

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



# Всё что осталось - это локальные адресаты.
# Доставляем почту в dovecot
#dovecot_user:
#  driver = accept
#  condition = ${lookup mysql{SELECT `goto` FROM \
#  `alias` WHERE \
#  `address`='${quote_mysql:$local_part@$domain}' OR \
#  `address`='${quote_mysql:@$domain}'}{yes}{no}}
#  transport = dovecot_delivery



# начинаются транспорты - как доставляем почту
begin transports


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

# начинаются транспорты - как доставляем почту
begin transports

# Доставка на удалённые хосты - по SMTP
remote_smtp:
  driver = smtp


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

# Тут создается специальная папка, доступная пользователю по IMAP,
# куда складывается помеченный спам для
# последующего осмотра и разбора.

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



# Доставка локальным адресатам - в dovecot
# Надо заметить что тут использовалась ранее прямая доставка
# в директорию, но щас с портами стал-таки устанавливаться deliver
# программа dovecot занимающаяся доставкой мессаг.
# Соответственно юзаем его.
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

# Транспорт на smtp.domain.com
t_transport:
    driver = smtp
    hosts = smtp.domain.com

# Начинаются повторы недоставленных писем.
begin retry
Вот сам конфиг Дспама /usr/local/etc/dspam.conf

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

Home /var/db/dspam
StorageDriver /usr/local/lib/libmysql_drv.so
TrustedDeliveryAgent "/usr/local/sbin/exim -oMr spam-scanned"
OnFail error
Trust root
Trust mail
Trust mailnull
TrainingMode teft
TestConditionalTraining on
Feature noise
Algorithm graham burton
PValue graham
Preference "signatureLocation=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
MySQLServer     localhost
MySQLPort       3306
MySQLUser               dspam
MySQLPass               ПАСС
MySQLDb                 dspam
MySQLConnectionCache    1000
HashRecMax              98317
HashAutoExtend          on
HashMaxExtents          0
HashExtentSize          49157
HashMaxSeek             100
HashConnectionCache     100
IgnoreHeader X-Spam-Status
IgnoreHeader X-Spam-Score
IgnoreHeader X-Spam-Scanned
IgnoreHeader X-Virus-Scanner-Result
IgnoreHeader Date
IgnoreHeader Envelope-to
IgnoreHeader Delivery-date
IgnoreHeader Received
IgnoreHeader User-Agent
IgnoreHeader Content-Type
IgnoreHeader Content-Transfer-Encoding
IgnoreHeader To
Notifications   off
LocalMX 127.0.0.1
SystemLog on
Opt out
MaxMessageSize 200000
ProcessorBias on
Скормил тестовое письмо согласно мануалу:

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

/usr/local/bin/dspam --debug --deliver=innocent --user 
local_part@domain.com -- %u < spam.txt
В дебаг добавилось.
Пересылаю письмо со спамом на адресс spam-имя_юзера@домен.com
Письма в дебаг не попадают и в БД тоже

а вот что говорит при этом /var/log/maillog

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

Feb  4 19:42:57 gate exim[41249]: no host name found for IP address 192.168.0.20
Feb  4 19:42:57 gate exim[41249]: Delay 0s for  [192.168.0.20] with HELO=SERVERS. Mail from имя_юзера@домен to spam-имя_юзера@домен.
Feb  4 19:42:57 gate exim[41249]: 1LUlm5-000AjJ-FT <= имя_юзера H=(SERVERS) [192.168.0.20] I=[192.168.0.2]:25 P=esmtp S=3352 id=382790591.20090204194810@домен from <имя_юзера@домен> for spam-имя_юзера@домен
Feb  4 19:42:57 gate dspam[41255]: Unable to find a valid signature. Aborting.
Feb  4 19:42:57 gate dspam[41255]: process_message returned error -5.  dropping message.
Feb  4 19:42:57 gate exim[41253]: 1LUlm5-000AjJ-FT <spam-имя_юзера@домен>: dspam_addspam_transport transport output: 41255: [02/04/2009 19:42:57] Unable to find a valid signature. Aborting.
Feb  4 19:42:57 gate exim[41253]: 1LUlm5-000AjJ-FT => ukrprice <spam-имя_юзера@домен> R=dspam_addspam_router T=dspam_addspam_transport
Feb  4 19:42:57 gate exim[41253]: 1LUlm5-000AjJ-FT Completed

Помогите разобратся с ДСПАМОМ что бы наконец-то избавится от спама +))

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

Re: Проблема с DSPAM ом

Непрочитанное сообщение InventoR » 2009-02-04 22:06:05

Не много поиска и внимательно чтение:
http://forum.lissyara.su/viewtopic.php?f=20&t=6390
мне помогли и теперь все работает.
в день приходит порядка 200 спамовых писем, и порядка 15 нормальных.
нареканий и жалоб нету.
прочитай все внимательно, а потом попробуй снова описать проблему.
советую особенно уделить внимание последним постам.
и еще. я юзаю единную базу для всех писем от имени одного пользователя.
у меня письма дублируются в специальный ящик, где уже и смотрю что спам, а что нет, ну и соответственно обучаю dspam как жить в тяжелых условиях.
ну вот и сказочке конец, кто слушал, тот молодец.