版权声明:
本文版权归作者所有,如其他个人、第三方网站或媒体报刊等需转载全文或节选,为支持我们的工作,请务必注明如下信息:
文档所有者:Extmail Dev Team;
文章原始出处:http://www.extmail.org/forum/thread-11746-1-1.html
项目首页:http://wiki.extmail.org
如果因此而给您带来麻烦,请您原谅,谢谢合作。
感谢 stevan
关于此文
版 本:0.10
作 者:Liu shaobo <liushaobo (at) extmail (dot) org>
项目主页:http://www.extmail.org
个人主页:http://www.extmail.org
创建日期:2010-8-19
Dspam特点:
DSPAM是一个专为企业设计的可扩展并且基于开放源码的垃圾邮件过滤器.在正确配置系统,过滤成功率达99.5 % - 99.95%。 DSPAM支持多种MTA,并还可以部署作为一个独立的SMTP设备。对于软件开发商而言,DSPAM的核心引擎( libdspam )可以很容易地直接引入其过滤器系统,目前,DSPAM已经应用到350000个邮箱中。
DSPAM能够学习每个用户的不同邮件的习性:根据这些习性告诉过滤器什么是垃圾邮件。这就使得即使在一个很庞大的系统中,DSPAM仍要为每个用户提供高精确度的、智能的过滤功能。并提供了一个能够学习每个用户的邮件习性的管理维护功能,这些习性可能会有些许的误判。DSPAM是很流行的防垃圾工具之一。
DSPAM的缺点就是依赖用户长时期培训才能取得非常高的垃圾邮件捕获率,不过经过我们的努力,可以减轻甚至克服这个问题。
DSPAM代理可以集成到任何网络,甚至可以作为 SMTP 网关实现。
本文档在EMOS 1.5的基础上,升级Dspam并测试通过。而同类RHEL 4/5 及同系列CentOS 4/5均可基于本文档进行配置使用,具体RPM包下载路径见下文;
Dspam-3.9在Dspam-3.8的基础上,对数据库和内存方面做了很多的优化,WEB界面也更加人性化;
本文档由Extmail项目组负责解释,并根据Extmail项目的建设和发展,适时予以更新;
备注:其他配置文件参考EMOS1.5或相关软件的下载站点:
http://mirror.extmail.org/yum/rpms/5/i386/
相关 rpm 包
dspam-3.9.0-7ext.i386.rpm
dspam-client-3.9.0-7ext.i386.rpm
dspam-devel-3.9.0-7ext.i386.rpm
dspam-hash-3.9.0-7ext.i386.rpm
dspam-libs-3.9.0-7ext.i386.rpm
dspam-mysql-3.9.0-7ext.i386.rpm
dspam-pgsql-3.9.0-7ext.i386.rpm
dspam-sqlite3-3.9.0-7ext.i386.rpm
dspam-web-3.9.0-7ext.i386.rpm
upgrade_3.8_to_3.9
备注:
Dspam常见问题解答:(本文档在安装中遇到的问题大部分都有提到)
http://www.extmail.org/forum/thread-10451-1-1.html
Dspam使用效果调查:(请使用dspam的朋友能够贴出一个月后的效果)
http://www.extmail.org/forum/thread-10552-1-1.html
文档目录
一、配置 Dspam-3.9
二、升级 Dspam-3.8数据库
三、配置 Dspam-Web 界面
一、配置 Dspam-3.9
1、卸载 Dspam-3.8 (因为Dspam-3.9的一些目录改变了,所以卸载早期版本后重新安装)
# service dspamd stop
# service dspam-webd stop
# rpm -qa |grep dspam |xargs rpm -e --nodeps
# rm /usr/share/dspam/
2、安装Dspam-3.9
以下为软件的存放目录:/root/rpm ,安装和配置全部以root身份进行
# cd /root/rpm
# rpm -ivh dspam-libs-3.9.0-7ext.i386.rpm
# rpm -ivh dspam-3.9.0-7ext.i386.rpm
# rpm -ivh dspam-client-3.9.0-7ext.i386.rpm
# rpm -ivh dspam-mysql-3.9.0-7ext.i386.rpm
# rpm -ivh dspam-web-3.9.0-7ext.i386.rpm
3、配置 dspam.conf 文件,内容如下:
# vi /etc/dspam/dspam.confHome /var/lib/dspam
StorageDriver /usr/lib/dspam/libmysql_drv.so
TrustedDeliveryAgent "/usr/bin/sendmail"
DeliveryHost 127.0.0.1
DeliveryPort 10024
DeliveryIdent localhost
DeliveryProto SMTP
OnFail error
Trust root
Trust dspam
Trust extmail
TrainingMode teft
TestConditionalTraining on
Feature whitelist
Algorithm 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=message" # { 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:off
AllowOverride 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 dailyQuarantineSummary
MySQLServer /var/lib/mysql/mysql.sock
MySQLUser dspam
MySQLPass dspam
MySQLDb dspam
MySQLCompress true
MySQLReconnect true
MySQLConnectionCache 1
MySQLUIDInSignature on
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
ServerPort 10028
ServerQueueSize 32
ServerPID /var/run/dspamd.pid
ServerMode auto
ServerPass.Relay1 "secret"
ServerParameters "--user extmail --deliver=innocent,spam -d %u"
ServerIdent "localhost.localdomain"
ClientHost 127.0.0.1
ClientPort 10028
ClientIdent "secret@Relay1"
ProcessorURLContext on
ProcessorBias on
StripRcptDomain off 4、启动 Dspam 进程:
# chkconfig dspam on
# service dspam start
查看Dspam启动进程
# ps aux |grep dspam
root 23465 0.2 0.8 7408 2128 pts/0 S 18:15 0:00 /usr/bin/dspam --daemon
root 23468 1.0 0.2 3908 700 pts/1 S+ 18:15 0:00 grep dspam
二、升级 Dspam-3.8数据库
1、备份Dspam-3.8数据库
# mysqldump -u root -p --opt dspam > /root/dspam-3.8.sql
2、升级Dspam-3.8数据库
执行以下脚本升级MySQL的架构到3.9.0模式:
# mysql -u root -p < upgrade_3.8_to_3.9
3、DSPAM的token数据库的定时清理:
# crontab -e
修改以下内容:0 0 * * * /usr/bin/mysql -u dspam -p'dspam' dspam < /usr/share/dspam/sql-scripts/mysql/purge-4.1.sql
0 0 * * * /usr/bin/dspam_logrotate -a 30 -d /var/lib/dspam/data 4、重启Mysql服务
# service mysqld restart
三、配置DSPAM Web 界面
备注:因为以 EMOS 为基础,里面包含了 perl-GD ,如果没有安装 perl-GD 的, 请自行安装
1、创建dspam-web 认证用户:
# cd /usr/share/dspam/webui/cgi-bin
# echo "extmail" > admins
# htpasswd -c .htpasswd extmail
输入认证密码
New password:
Re-type new password:
2、启动 dspam-web 进程
# service dspam-webd start
这实际是启动了mini_httpd进程,查看 mini_httpd 是否启动正常:
# ps aux |grep mini
dspam 23695 0.0 0.2 5084 764 ? Ss 18:22 0:00 /usr/bin/mini_httpd -C /etc/dspam/webui.conf
root 23698 0.0 0.2 3908 704 pts/1 S+ 18:22 0:00 grep mini
3、重启 apache
# service httpd restart
4、访问 Dspam-web
http://mail.example.com/dspam
输入你在 .htpasswd 文件中创建的用户和密码 |