DSPAM简介和使用 (2).ppt
DSPAM简介和使用,Xueron2007-06-16,反垃圾概述,基本MTA控制(防止OpenRelay,SMTP认证,IP并发、频率等)关键字过滤黑、白名单(IP、DOMAIN、用户)DNS测试IP,HELO,SENDER的一些DNS查询SPF、DKIM实时黑名单技术(RBL、URIBL)贝叶斯过滤垃圾邮件评分(SA)指纹识别行为检测蜜罐图片识别HashCashReputation,DSPAM简介,Dspam是一个开源的垃圾邮件过滤软件作者:Jonathan A.Zdziarski Ending Spam:Bayesian Content Filtering and the Art of Statistical Language Classification 目前版本:3.8.0(2007.3)特点:高效 准确 99.5%-99.95%,DSPAM的其他一些特性,数据库支持Hash DBSqlite,Sqlite3MysqlPgsqlOracle(最新的已经去掉了)ClamAV集成WebUI自动白名单,DSPAM的分词技术,Word-逐个“词”的切分Chain-链式切分Sbph(Sparse Binary Polynomial Hashing)Osb(Orthogonal Sparse biGram),DSPAM使用的算法,Nave(朴素bayes算法)Graham(A Plan for Spam)Burton(SpamProbe)Robinson(Robinsons Geometric Mean Test)Chi-square(Fisher-Robinson),DSPAM的训练方法,Toe train-on-error 遇到错误才学习优点:数据库写操作少些,学习效率高缺点:准确性低一些Teft train-everything 学习所有优点:简单实时缺点:数据库增长很快,I/O频繁易出错 Tum train-until-mature 学习到成熟介于Teft和Toe之间的一个方法Tunetrain-until-no-errors 学习到没有错误优点:准确率很高缺点:学习需要的时间很长,DSPAM的处理能力,最大的部署在35,000用户的系统上通常处理一封邮件需要0.01s 到 0.07s(最高的 0.20s左右),DSPAM的应用,学习Dspam自带的工具 dspam_trainDspam程序,$./dspam_train Usage:./dspam_train username-i index|spam_dir nonspam_dir,$./dspam-user user1-class=spam|innocent-source=error|corpus|inoculation message,DSPAM的应用,学习方式:source 参数error针对dspam作成错误判断的邮件,使用这个方法学习。它要求邮件中dspam判断的特征串,或者以参数形势给它,以便对数据库相应的内容做修改corpus 对分好类的样本集做学习,通常在最开始的时候使用这个方式,这些样本没有被dspam判断或者学习过inoculation 接种方法,通常用来学习Honeypot收到的邮件,这些邮件的token将被额外的计数,以便突出,对识别新spam效果很好,DSPAM的应用,部署dspam(postfix)作为content-filterDspam设置,Postfix(LMTP)-DSPAM Postfix-Delivery|_(SMTP Reinjection)_|,#ServersideServerMode autoServerParameters-deliver=innocentServerIdent localhost.localdomainServerPID/var/run/dspam.pidServerDomainSocketPath/tmp/dspam.sock“#ClientsideDeliveryHostDeliveryPort 10026DeliveryIdent localhostDeliveryProto SMTP,DSPAM的应用,部署dspam(postfix)Postfix的设置Re-inject设置,smtp inet n-n-smtpd-o content_filter=lmtp:unix:/tmp/dspam.sock,localhost:10026 inet n-n-smtpd-o content_filter=-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks-o smtpd_helo_restrictions=-o smtpd_client_restrictions=-o smtpd_sender_restrictions=-o smtpd_recipient_restrictions=permit_mynetworks,reject-o mynetworks-o smtpd_authorized_xforward_hosts,DSPAM的应用,部署dspam(amavisd-new)amavisd.confamavisd,my($proc_fh,$pid)=run_command(#-mode=teft#qw(-stdout-deliver-spam)#dspam 3.0#use option-feature instead of-tokenizer with dspam,$path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/bin:/bin;$dspam=/usr/bin/dspam;,DSPAM的应用,做为SA的一个插件同直接使用一样部署,但是设置dspam让其只在header上添加处理结果SA增加插件,根据邮件头上dspam的结果增减不通的分数插件下载http:/,ServerParameters-deliver=innocent,spam,DSPAM的应用,自动白名单Dspam跟踪完整“From:”行,如果同一From:有10(可调)封正常邮件并且0封垃圾邮件,那么该记录被标记为白名单。一旦有用户报告来自该记录的spam,这个白名单记录将被删除。启动白名单dspam.conf命令行参数,Feature whitelist,-feature=wh,随着时间的增长,dpsam的不断使用和学习,他的token数据库和特征库也在不断的增长,所以需要定时的对过时的或者无用的数据进行清理。Hash-dbSql对于mysql,有两个脚本,4.1的脚本支持事务,0 0*mysql-user=user-pass=pass db/path/to/purge-4.1.sql,DSPAM的数据库的清理,0 0*/usr/local/bin/dspam_clean options,DSPAM的web管理,统计监测参数调节(用户级)隔离区管理图形分析系统管理(超级管理员),参考资料,http:/,Q&A,Email:MSN:,谢谢,