Стоит FreeBSD 9.0-RELEASE на которой dspam-3.9.0_2dspam работает и никаких ошибок не выдаёт.
Обучен на большом количестве писем.Но 100% писем, проходящих через него имеют такие хеадеры:
X-DSPAM-Result: Innocent
X-DSPAM-Processed: Fri Nov 30 00:45:12 2012
X-DSPAM-Confidence: 0.9899
X-DSPAM-Probability: 0.0000
X-DSPAM-Signature: 50b7c958575206899212605Как следствие весь спам валится в общую кучу.
Что я делаю не так? Крутил его уже во все стороны - результат один и тот же.
Если обучать заново - он спам-письма нормально учит как спам. Но результата всё равно никакого.
Конфиг dspam.conf
Home /var/db/dspam
StorageDriver /usr/local/lib/dspam/libmysql_drv.so
TrustedDeliveryAgent "/usr/local/sbin/exim -oMr spam-scanned" # Exim
QuarantineAgent "/usr/local/sbin/exim"DeliveryHost 127.0.0.1
OnFail error
Trust root
Trust dspam
Trust apache
Trust mail
Trust mailnull
Trust smmsp
Trust daemon
#Trust nobody
#Trust majordomoDebug *
TrainingMode teft
TestConditionalTraining on
Feature tb=5
ParseToHeaders on
ChangeModeOnParse on
ChangeUserOnParse fullAlgorithm graham burton
Tokenizer chain
PValue bcr
WebStats on
Preference "trainingMode=TEFT" # { TOE | TUM | TEFT | NOTRAIN } -> default:teft
Preference "spamAction=quarantine" # { quarantine | tag | deliver } -> default:quarantine
Preference "spamSubject=[SPAM]" # { string } -> default:[SPAM]
Preference "statisticalSedation=5" # { 0 - 10 } -> default:0
Preference "enableBNR=on" # { on | off } -> default:off
Preference "enableWhitelist=on" # { on | off } -> default:on
Preference "signatureLocation=headers" # { message | headers } -> default:message
Preference "tagSpam=off" # { on | off }
Preference "tagNonspam=off" # { on | off }
Preference "showFactors=off" # { on | off } -> default:off
Preference "optIn=off" # { on | off }
Preference "optOut=off" # { on | off }
Preference "whitelistThreshold=10" # { Integer } -> default:10
Preference "makeCorpus=off" # { on | off } -> default:off
Preference "storeFragments=off" # { on | off } -> default:off
Preference "localStore=" # { on | off } -> default:username
Preference "processorBias=on" # { on | off } -> default:on
Preference "fallbackDomain=off" # { on | off } -> default:off
Preference "trainPristine=off" # { on | off } -> default:off
Preference "optOutClamAV=off" # { on | off } -> default:off
Preference "ignoreRBLLookups=off" # { on | off } -> default:off
Preference "RBLInoculate=off" # { on | off } -> default:offAllowOverride enableBNR
AllowOverride enableWhitelist
AllowOverride fallbackDomain
AllowOverride ignoreGroups
AllowOverride ignoreRBLLookups
AllowOverride localStore
AllowOverride makeCorpus
AllowOverride optIn
AllowOverride optOut
AllowOverride optOutClamAV
AllowOverride processorBias
AllowOverride RBLInoculate
AllowOverride showFactors
AllowOverride signatureLocation
AllowOverride spamAction
AllowOverride spamSubject
AllowOverride statisticalSedation
AllowOverride storeFragments
AllowOverride tagNonspam
AllowOverride tagSpam
AllowOverride trainPristine
AllowOverride trainingMode
AllowOverride whitelistThreshold
AllowOverride dailyQuarantineSummaryMySQLServer /tmp/mysql.sock
MySQLPort
MySQLUser dspam
MySQLPass dspam
MySQLDb dspam
MySQLCompress true
MySQLReconnect trueHashRecMax 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 hitLocalMX 127.0.0.1
SystemLog on
UserLog onTrainPristine on
Opt outClamAVPort 3310
ClamAVHost 127.0.0.1
ClamAVResponse acceptProcessorURLContext on
ProcessorBias on
StripRcptDomain off/var/db/dspam/group
primary:classification:kirill@16v.rudspam_stats -H kirill@16v.ru
kirill@16v.ru:
TP True Positives: 3130
TN True Negatives: 2676
FP False Positives: 41
FN False Negatives: 558
SC Spam Corpusfed: 0
NC Nonspam Corpusfed: 0
TL Training Left: 0
SHR Spam Hit Rate 84.87%
HSR Ham Strike Rate: 1.51%
PPV Positive predictive value: 98.71%
OCA Overall Accuracy: 90.65%
И тишина.Может быть кто-то предложит альтенативную защиту от спама, кроме ухода на гугль и покупку Iron Port? Пусть даже платное...
Нужно сделать вот так в dspam.conf:
TrainPristine off
ParseToHeaders off
ChangeModeOnParse off
ChangeUserOnParse offИ на всякий случай вот так в /var/db/dspam/group:
globalgroup:shared:*
> Нужно сделать вот так в dspam.conf:
> TrainPristine off
> ParseToHeaders off
> ChangeModeOnParse off
> ChangeUserOnParse offПробовал в разных комбинациях. Не помогает.
> И на всякий случай вот так в /var/db/dspam/group:
> globalgroup:shared:*Это сделано, только system вместо globalgroup.
Какое-то время всё работало корректно. После переезда системы на 9.1 (система с нуля, конфиги из бекапа, версии софта остались точно теми же) работать всё перестало.
Он учится, счётчики растут, но спам сквозь него проходит 100%.
Может есть какое-то другое средство защиты от спама? Имею негативный опыт по СпамАссассину.
Dspam хорошо работает, но когда слетает это уже не лечится - черный ящик без документации по сути.
Что-то ещё?
>[оверквотинг удален]
> Обучен на большом количестве писем.
> Но 100% писем, проходящих через него имеют такие хеадеры:
> X-DSPAM-Result: Innocent
> X-DSPAM-Processed: Fri Nov 30 00:45:12 2012
> X-DSPAM-Confidence: 0.9899
> X-DSPAM-Probability: 0.0000
> X-DSPAM-Signature: 50b7c958575206899212605
> Как следствие весь спам валится в общую кучу.
> Что я делаю не так? Крутил его уже во все стороны -
> результат один и тот же.1) изучить почтовые протоколы
2) настроить анализ и соотвествующую реакцию на X-заголовки в Вашей почтовой системе.
> 1) изучить почтовые протоколы
> 2) настроить анализ и соотвествующую реакцию на X-заголовки в Вашей почтовой системе.Хочется ответить что-нибудь колкое о том, что с 96-го года я, конечно, так и не удосужился почитать как работает почта, но отвечу по делу для тех кто столкнётся и будет искать решение:
Вылечилось всё очисткой базы данных от всех сигнатур методом drop database && create database, потом переключил dspam на работу с сокетом, а не адресом:портов (/tmp/mysql.sock в строку адреса, строку порта оставить пустой) и последующим повторным обучением.
Ему необходимо выучить минимум 2500 писем чтобы он заработал (dspam_stats -H user показывает сколько писем недоучено).
Ошибки SQL в логи продолжают сыпаться, но это создатели dspam так понимают verbose debug.
Если сказать TrainPrestine on, то начинают ещё проскакивать ошибки о том, что не получены сигнатуры, но система продолжает работать (выключил это на всякий случай).
Ну и да, экзим у меня сортирует почту по заголовку X-DSPAM-Result. Так что он вполне настроен.