Spamassassin自动学习
出处:http://www.yijiaqing.cn/blog/article.asp?id=467 作者:松鼠 时间:2013-4-25 0:16:53
基于阈值的贝叶斯自动学习系统,自动学习评分高(垃圾邮件)或评分低(非垃圾邮件)的邮件,在扫描过程中无需用户干预,配置成功后,在邮件头会出现autolearn="yes|no|spam|ham" 1、配置Spamassassin修改local.cf文件的以下配置:# vi /etc/mail/spamassassin/local.cf修改内容如下:use_bayes 1use_bayes_rules 1##指定贝叶斯数据库的目录和权限bayes_path /var/amavis/.spamassassin/bayesbayes_file_mode 0770##启用自动学习bayes_auto_learn 1##指定最小学习正常邮件数量bayes_min_ham_num 200##指定最小学习垃圾邮件数量bayes_min_spam_num 200##指定正常邮件学习的分数bayes_auto_learn_threshold_nonspam 0.0## 指定垃圾邮件学习的分数,这里的值可以指定和amavisd的$sa_tag2_level_deflt的值一样bayes_auto_learn_threshold_spam 5.0加载自动学习模块# vi /etc/mail/spamassassin/init.preloadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold 建立贝叶斯目录# mkdir /var/amavis# chown -R amavis.amavis /var/amavis 2、建立贝叶斯数据库同步数据库和日志# su amavis -c "sa-learn --sync"下载邮件样本,这里有200封垃圾邮件200封正常邮件,手动学习一下邮件样本 下载# tar zxvf ham_spam.tgz学习垃圾邮件# su amavis -c "sa-learn -D --showdots --spam --dir spam200/"学习正常邮件# su amavis -c "sa-learn -D --showdots --ham --dir ham200/"查看贝叶斯数据库的tokens# su amavis -c "sa-learn --dump data"会出现如下信息:0.987 1 0 1120834933 97450208150.987 1 0 1120842811 7d3d2086eb0.987 1 0 1120836448 c14fa913d3"sa-learn --dump data"字段表示的意思:spam的概率,in_spam,in_ham,时间戳,token 查看贝叶斯数据库的统计# su amavis -c "sa-learn --dump magic"会出现如下信息:0.000 0 3 0 non-token data: bayes db version0.000 0 200 0 non-token data: nspam0.000 0 200 0 non-token data: nham0.000 0 13957 0 non-token data: ntokens0.000 0 1095652393 0 non-token data: oldest atime0.000 0 1120901206 0 non-token data: newest atime0.000 0 0 0 non-token data: last journal sync atime0.000 0 0 0 non-token data: last expiry atime0.000 0 0 0 non-token data: last expire atime delta0.000 0 0 0 non-token data: last expire reduction count查看贝叶斯数据库的所有内容:# su amavis -c "sa-learn --dump all" 重启amavisd-new服务# service amavisd restart