Начал прикручивать DSPAM к exim по статье http://www.lissyara.su/?id=1301 .Вроде половину граблей прошел, но вот оставшаяся часть никак не проходится.
Растолкуйте следующие вещи.
В приходящие письма dspam втыкается сигнатура. Я это вижу, когда открываю струкутру пришедшего письма. Так же в самой базе сигнатура добавляется. Я ее там нахожу и принадлежит она соответсвующему юзеру. При попытке
отправить письмо на адрес spam-user@domen.ru в логах появляется:
Код: Выделить всё
Aug 30 20:01:04 mail exim[99518]: 1KZSsq-000Pt8-Gi <= аа@domen.ru H=([192.168.10.5]) [192.168.10.5] I=[192.168.10.20]:25 P=esmtpa A=auth_cram_md5: S=752 from <aa@domen.ru> for spam-aa@domen.ru
Aug 30 20:01:04 mail dspam[99527]: Unable to find a valid signature. Aborting.
Aug 30 20:01:04 mail dspam[99527]: process_message returned error -5. dropping message.
Aug 30 20:01:04 mail exim[99525]: 1KZSsq-000Pt8-Gi <spam-aa@domen.ru>: dspam_addspam_transport transport output: 99527: [08/30/2008 20:01:04] Unable to find a valid signature. Aborting.
Aug 30 20:01:04 mail exim[99525]: 1KZSsq-000Pt8-Gi => aa <spam-aa@domen.ru> R=dspam_addspam_router T=dspam_addspam_transport
Aug 30 20:01:04 mail exim[99525]: 1KZSsq-000Pt8-Gi Completed
Нужная папка не создается.
Вот лог dspam.debug
Код: Выделить всё
99527: [08/30/2008 20:01:04] No QuarantineAgent option found. Using standard quarantine.
99527: [08/30/2008 20:01:04] DSPAM Instance Startup
99527: [08/30/2008 20:01:04] input args: /usr/local/bin/dspam --debug --user aa@domen.ru --class=spam --source=error
99527: [08/30/2008 20:01:04] pass-thru args:
99527: [08/30/2008 20:01:04] processing user aa@domen.ru
99527: [08/30/2008 20:01:04] uid = 26, euid = 0, gid = 26, egid = 26
99527: [08/30/2008 20:01:04] loading preferences for user aa@domen.ru
99527: [08/30/2008 20:01:04] default preferences empty. reverting to dspam.conf preferences.
99527: [08/30/2008 20:01:04] Loading preferences from dspam.conf
99527: [08/30/2008 20:01:04] using /var/db/dspam/opt-in/aa@domen.ru.dspam as path
99527: [08/30/2008 20:01:04] using /var/db/dspam/opt-out/aa@domen.ru.nodspam as path
99527: [08/30/2008 20:01:04] sedation level set to: 0
99527: [08/30/2008 20:01:04] DSPAM Instance Shutdown. Exit Code: 0
Чтение документации особо не пролило свет на проблему и поиски тоже. Единственное что я понял, так это то что там можно организовывать различные политики создания базы.
Я еще до конца не определился какую стратегию баз выбрать одну на всех пользователей или каждый пользователь создает собственную..Хочется
понять как реализовать и тот и тот варианты и возможно ли по дороге смена политик??
Так же очень актуален вопрос использование одной спамовой базы несколькими почтовыми машинами. Я кроме своей машинки присматриваю за машинкой знакомого. Что у него что у меня ящиков не много и
лепить каждому по dspam помоему как то не очень правильно..В идеале хотелось бы иметь одну общую базу на два релея и что бы базу обучали оба релея...
Например если я на второй машине поставлю DSPAM но адрес базы укажу своей и сделаю этот доступ например через ssl. Такое будет жизнеспособно??
Так же растолкуйте про веб интерфейс. Я вроде все настроил. У них там во всех упоминаниях про веб интерфейс говорится, что надо делать авторизацию. Я ее пока настраивать не стал, что бы лишних граблей не набрасывать. Это может быть причина или нет. Сейчас я вижу страницу с менюшками и вот какую ошибку на сранице:
Код: Выделить всё
An Error Has Occured
The following error occured while trying to process your request:
System Error. I was unable to determine your identity.
If this problem persists, please contact your administrator.
Пожалуйста растолкуйте принцип настройки веб интерфейса.
Вот конфиг exim (кусок роутеры и транспорты)
Код: Выделить всё
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 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_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
#Транспорты
remote_smtp:
driver = smtp
dspam_addspam_transport:
driver = pipe
command = "/usr/local/bin/dspam --debug --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 = mailnull
dspam_notspam_transport:
driver = pipe
command = "/usr/local/bin/dspam --debug --user $local_part@$domain --class=innocent --source=error --deliver=i nnocent %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 = mailnull
dspam_spamcheck_transport:
driver = pipe
command = /usr/local/bin/dspam --debug --deliver=innocent --user "$local_part@$domain" -- %u
user = mailnull
group = mailnull
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
user = mailnull
.....
Код: Выделить всё
Home /var/db/dspam
StorageDriver /usr/local/lib/libmysql_drv.so
#StorageDriver /usr/local/lib/libhash_drv.so
TrustedDeliveryAgent "/usr/local/sbin/exim -oMr spam-scanned"
OnFail error
Trust root
Trust mail
Trust mailnull
TrainingMode teft
TestConditionalTraining on
Feature chained 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 SECRET
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
Код: Выделить всё
primary:classification:local_part@domain.com
Код: Выделить всё
<VirtualHost *:80>
ServerAdmin noc@domen.ru
DocumentRoot /usr/local/www/dspam/w
ServerName xxxxxxx.spb.ru
# Options FollowSymLinks ExecCGI
SuexecUserGroup dspam dspam
CustomLog /usr/local/www/dspam/log/httpd-access.log combined
ErrorLog /usr/local/www/dspam/log/httpd-error.log
<Directory "/usr/local/www/dspam/w">
Options FollowSymLinks ExecCGI
AllowOverride None
Order deny,allow
Allow from all
</Directory>