Dspam не определяет спам

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
kaa
проходил мимо

Dspam не определяет спам

Непрочитанное сообщение kaa » 2009-03-12 15:37:35

Здравствуйте.
Все настроил, все работает, обучил. Вот только все письма определяются как innocent.
Не могу понять.

Попробую кинуть всю информацию относящуюся к делу, вдруг кто поможет:

Итак:

/etc/dspam.conf

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

Home /var/db/dspam
StorageDriver /usr/lib/libmysql_drv.so
TrustedDeliveryAgent "/usr/sbin/exim -oi -oMr spam-scanned"
OnFail error
Trust root
Trust mail
Trust mailnull 
Trust smmsp
Trust daemon
TrainingMode teft
#TrainingMode toe
TestConditionalTraining on
Feature whitelist
Algorithm graham burton
Tokenizer chain
PValue bcr
WebStats off
Preference "signatureLocation=headers"  
Preference "showFactors=on"
Preference "spamAction=tag"
AllowOverride trainingMode
AllowOverride statisticalSedation
AllowOverride enableBNR
AllowOverride enableWhitelist
AllowOverride showFactors
AllowOverride optIn optOut
AllowOverride whitelistThreshold
MySQLServer      /var/lib/mysql/mysql.sock
MySQLPort        3306
MySQLUser        dspam
MySQLPass        ********
MySQLDb          dspam
MySQLCompress    true
MySQLConnectionCache  95
HashRecMax    98317
HashAutoExtend    on  
HashMaxExtents    0
HashExtentSize    49157
HashPctIncrease 10
HashMaxSeek   10
HashConnectionCache 10
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
ProcessorURLContext on
ProcessorBias on

## EOF
роутеры exim: (все настроено на одного пользователя)

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

dspam_addspam_router:
  driver = accept
  domains                      = +local_domains
  local_parts = spam
  transport = dspam_addspam_transport

dspam_notspam_router:
  driver = accept
  domains                      = +local_domains
  local_parts = notspam
  transport = dspam_notspam_transport


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}'}}

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

dspam_spamscan_router:
  driver = accept
  domains = +local_domains
  no_verify
  local_parts = cat
  condition = "${if and {{!eq {$received_protocol}{spam-scanned}} {!eq {$received_protocol}{local}} } {1}{0}}"
  transport = dspam_spamcheck_transport
  require_files = /usr/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_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
dspam_addspam_transport:
  driver = pipe
  command = "/usr/bin/dspam --user system --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/bin/dspam --user system --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/bin/dspam --deliver=innocent --user "$local_part@$domain" -- %u
  user = mailnull
  group = mail
  home_directory = "/var/db/dspam"
  current_directory = "/var/db/dspam"
  return_path_add = false
  log_output = true
  return_fail_output = true
  headers_remove = X-DSPAM-Result

local_delivery_spam_transport:
  driver = pipe
  #это временно, для теста
  command = /usr/libexec/dovecot/deliver -d garbage@chcat.net 
  message_prefix =
  message_suffix =
  delivery_date_add
  envelope_to_add
  return_path_add

remote_smtp:
  driver = smtp

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


address_pipe:
  driver = pipe
  return_output

address_reply:
  driver = autoreply
Обучение провел,
в базе mysql, в таблице dspam_stats есть тому свидетельство (в таблицах токенов и сигнатур тоже данные присутствуют):

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

+-----+--------------+------------------+--------------------+------------------------+----------------+--------------------+-----------------+---------------------+
| uid | spam_learned | innocent_learned | spam_misclassified | innocent_misclassified | spam_corpusfed | innocent_corpusfed | spam_classified | innocent_classified |
+-----+--------------+------------------+--------------------+------------------------+----------------+--------------------+-----------------+---------------------+
|   5 |         2604 |              298 |                 14 |                      0 |           2587 |                255 |               0 |                   0 |
+-----+--------------+------------------+--------------------+------------------------+----------------+--------------------+-----------------+---------------------+

в /var/db/dspam

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

[root@chcat ~]# ls /var/db/dspam -al
total 500
drwxr-xr-x 3 mailnull mail       4096 Mar 12 11:11 .
drwxr-xr-x 3 root     root       4096 Mar 12 10:32 ..
drwxrwx--- 4 mailnull mail       4096 Mar 12 11:19 data
-rw-r--r-- 1 mail     mailnull     15 Mar 12 10:34 group
-rw-rw---- 1 root     mail     488855 Mar 12 13:15 system.log
в лог ящика письма пишуться (их там уже штук 40, причем много тех, которые я пересылал вложением на spam@chcat.net, а потом слал подобный текст с внешних ящиков

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

tail /var/db/dspam/data/chcat.net/cat/cat.log
...
1236860545      I       "Elina Kathrine" <elinakathrine_fq@eds.com>     49b8fe8179741289883057  Get Cheap Pills Online, NoPrescription. Brand and Generic Drugs, Visa Accepted ovxisd m9      Delivered       <1236857928.2034@eds.com>
1236860587      I       <cat@chcat.net> 49b8feab92731465223968  from admin      Delivered
проверил файл groups

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

[root@chcat ~]# cat /var/db/dspam/group
system:shared:*[root@chcat ~]#


ну вот еще кусок messages

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

Mar 12 13:32:31 chcat deliver(cat@chcat.net): auth input: cat@chcat.net
Mar 12 13:32:31 chcat deliver(cat@chcat.net): auth input: uid=47
Mar 12 13:32:31 chcat deliver(cat@chcat.net): auth input: gid=12
Mar 12 13:32:31 chcat deliver(cat@chcat.net): auth input: home=/var/mail/exim/cat@chcat.net
Mar 12 13:32:31 chcat deliver(cat@chcat.net): auth input: allow_all_users=yes
Mar 12 13:32:31 chcat deliver(cat@chcat.net): maildir: data=/var/mail/exim/cat@chcat.net
Mar 12 13:32:31 chcat deliver(cat@chcat.net): maildir: root=/var/mail/exim/cat@chcat.net, index=/var/mail/exim/cat@chcat.net, control=, inbox=
Mar 12 13:32:32 chcat deliver(cat@chcat.net): msgid=<49B900F0.50304@npbnk.ru>: saved mail to INBOX
Dspam работает, в письма заголовки добавляет свои. Вот только всегда innocent:

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

X-DSPAM-Result: Innocent
X-DSPAM-Processed: Thu Mar 12 13:22:25 2009
X-DSPAM-Confidence: 0.6850
X-DSPAM-Probability: 0.0000
X-DSPAM-Signature: 49b8fe8179741289883057
X-DSPAM-Factors: 27,
	To*chcat.net>, 0.00438,
	Received*by+mail.chcat.net, 0.00452,
	Received*mail.chcat.net+with, 0.00452,
	Received*mail.chcat.net, 0.00452,
	Received*Thu, 0.00728,
	Date*Thu, 0.00837,
	Date*2009+04, 0.99000,
	Received*12+Mar, 0.01284,
	Received*Thu+12, 0.01284,
	Date*Thu+12, 0.01344,
	Date*12+Mar, 0.01344,
	*Thu, 0.02133,
	*From, 0.02133,
	*Mar, 0.02133,
	*12, 0.02133,
	*Thu+Mar, 0.02184,
	*Mar+12, 0.02184,
	360, 0.02781,
	360, 0.02781,
	offer, 0.05412,
	60, 0.93239,
	60, 0.93239,
	better, 0.07905,
	Date*0700, 0.88463,
	30, 0.88190,
	30, 0.88190,
	Subject*Get, 0.12515
Может быть кто подскажет, где еще покопать, а?

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

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

Re: Dspam не определяет спам

Непрочитанное сообщение kaa » 2009-03-12 16:08:20

эээ, извиняюсь. вроде заработало.
появляться начали письма помеченные как спам.
Только странно. Я как-то раз настраивал dspam, так мне наоборот пришлось его постоянно натаскивать, чтобы он нормальные письма как спам не определял. А тут наоборот. Причем исходники одни и теже компилил.