11. RBL Options:RBL设置选项;
a) Enable Realtime Blacklist Validation:启用RBL检查;检查失败时默认会发送"550 5.7.1 [Sender not authorized by domain policy]"错误消息给发送者;
b) Whitelisted RBL Validation:对白名单也作RBL检查;默认不启用;
c) Add X-Assp-Received-RBL Header:将RBL检查结果加入到mailheader内;
d) RBL Failed Reply:重新定义发送给发送者的错误消息,默认为"550 5.7.1 Blacklisted by RBLLISTED";
e) Enable RBL logging:启用RBL检查日志(记录所有操作及结果);缺省只记录RBL检查失败的纪录;
f) RBL Service Providers:RBL服务商;默认为"sbl-xbl.spamhaus.org|combined.njabl.org|list.dsbl.org"较多并较为严格,建议使用国内的"cdl.anti-spam.org.cn| cblplus.anti-spam.org.cn";
g) Maximum Replies:最大响应数,应小于或等于RBL Service Providers数量;在Providers中随机选择定义的个数进行查询,如定义为3,Providers有4个,则随机选择其中3个进行查询;
h) Maximum Hits:最大命中数:若定义为2次,则只要在查询3次有2次命中(IP存在于2个Provider的列表中),则判断为垃圾邮件,并标记"X-Assp-Received-RBL:failed"到mailheader中,若命中数小于2,大于0,则标记为neutral;数值必须大于0小于Maximum Replies;
i) Maximum Time:等待RBL check的最大时间(秒),默认10秒;
j) Socket Timeout:读取RBL socket超时的时间,默认1秒;
k) Cache RBL Hits:缓存命中的IP记录;
l) Enforce Cache RBL:与Cache RBL Hits一样都受后面RBLFailLog定义的影响,因此在后面再作说明;
m) Use IP Netblocks in RBL Cache:在RBL Cache内以网段的形式记录,而不是以单个IP的形式记录;
n) RBL Cache Refresh Interval:RBL Cache刷新间隔(小时);默认72小时;
12. SRS Options;
13. Virus Control:病毒扫描选项;由于使用Clamav病毒库,病毒扫描功能比较有限,不推荐使用;
a) External Attachment Blocking:附件过滤级别,0-3的整数,0禁用,即不阻挡附件。3为最高级别,除阻挡级别1和级别2定义的附件外,还阻止级别3定义的附件;
b) Whitelisted & Local Attachment Blocking:对白名单和本地邮件作附件过滤的级别;
c) NoProcessing Attachment Blocking:对发给NoProcessing列表内陆址的邮件作附件过滤的级别;
d) Level 1 Blocked File Extensions:级别1需要阻挡的附件扩展名,默认为"exe|scr|pif|vb[es]|js|jse|ws[fh]|sh[sb]|lnk|bat|cmd|com|ht[ab]";即大部分可执行文件;
e) Level 2 Blocked File Extensions:级别2,在级别1的基础上还需要阻挡的附件扩展名,默认为空,但推荐阻挡"(ad[ep]|asx|ba[st]|chm|cmd|com|cpl|crt|dbx|exe|hlp|ht[ab]|in[fs]|isp|js|jse|lnk|md[abez]|mht|ms[cipt]|nch|pcd|pif|prf|reg|sc[frt]|sh[bs]|vb|vb[es]|wms|ws[cfh]).zip";
f) Level 3 Blocked File Extensions:默认在level 2的基础上添加了zip扩展名;
g) Attachment Error:附件被阻挡时弹回给发送者的错误信息;
h) Path to Anti-virus Databases:定义病毒库的路径(path),默认置空表示使用ASSP自己的病毒过滤功能(即仅查看附件扩展名);
i) List of Anti-virus Signature Database Files:定义Clamav病毒库文件名,多个库文件用","(西文逗号)隔开,不能有空格;留空表示禁用病毒扫描功能;改变此选项需要重新启动ASSP才能生效;
j) Error Message to Reject Infected Email:因病毒扫描邮件被阻挡后弹回给发送者的消息;默认为"500 Mail appears infected with '$infection' -- disinfect and resend.";
k) Virus Scan Local:勾选该选项则对来自本地用户的邮件也进行病毒扫描;
l) AV Bytes:默认定义为100000,即100K,仅扫描附件的前100K部分,因为绝大部分病毒都会在扫描前20-100k时被识别出来;
14. Spam Bombs & Scripting
15. TestMode Options:测试模式选项;所有的功能在测试模式时都不会阻挡邮件,而仅是采取过滤一遍;
a) Prepend Spam Subject:附加到垃圾邮件主题前的内容;如[spam];不要定义为中文,定义为中文我仅在Linux下的evolution中被正确显示了出来;
b) Bayesian Test Mode:贝叶斯分析测试模式;
c) Blacklist Test Mode:黑名单测试模式;
d) Helo-Blacklist Test Mode:Validate Sender时产生的HELO-blacklist测试模式;
e) Spam Address Test Mode:应该是指匹配到Spam Collect Addresses、Spam Trap Addresses、Blacklisted Domains、Expression to Identify Spam时被判定为垃圾邮件发送者的地址;
f) SPF Test Mode:SPF测试模式;
g) RBL Test Mode:RBL测试模式;
h) SRS Test Mode:SRS测试模式
i) Bomb Regex Test Mode:Spam Bombs测试模式;
j) Script Regex Test Mode:Scripting测试模式;
k) Missing MX/A Record Test Mode:Validate Sender Domain MX/A测试模式;
l) Reversed Lookup Test Mode:Reversed Lookup测试模式;
m) Invalid Helo Test Mode:HELO检查测试模式;
n) Forged Local Helo Test Mode:防HELO伪造本地地址策略测试模式;
o) Forged Local Sender Test Mode:防地址伪造本地地址策略测试模式;
p) Penalty Box Test Mode:Penalty Box测试模式;
16. Send All SPAM/HAM:(非)邮件抄送选项;a) Address to CC All Spam:判断为垃圾邮件的邮件抄送到该地址;
b) CC Select Mode:激活选择性抄送功能;
c) CC for this recipients only:部分抄送功能激活后,仅将发送给列表内收件人的垃圾邮件抄送到Address to CC All Spam;
d) Prepend Spam Subject to CC-mail:抄送的垃圾邮件主题也加上前缀;
e) Address to CC Ham for selected RECIPIENTS:非垃圾邮件抄送的收件人;;
f) Activate CC Ham:激活非垃圾邮件选择性抄送功能;
g) CC for this recipients:;将发送给列表内收件人的非垃圾邮件抄送一份给"Address to CC Ham",可以定义
user@domain.com、user(匹配所有本地域)、@domain.com(匹配整个域);
17. Email Interface:Email接口,ASSP的精华所在,通过定义email接口,可以让所有本地用户(非redlist用户)参与到黑白名单的添加删除和(非)垃圾邮件的判断与纠正中来;
a) Enable Email Interface:启用Email接口;
b) Admin Mail Address:管理员地址,设置后所有的警告和信息邮件将会发送到该地址;
c) Report Spam Address:默认为asspspam,1.2.2版本及之前版本为assp-spam,因为有的MTA对带"-"的邮件地址支持不太好(如qmail就声明尽量避免在邮件地址中使用"-"),从1.2.3开始默认值改变为asspspam;定义该地址后,testdomain.com域的本地用户、已通过认证的漫游用户(非redlist用户)就可以将收到的,被误判为正常邮件的垃圾邮件转发(或作为附件转发)到
asspspam@testdomain.com,ASSP接受到该邮件后就会将该邮件(再说一遍,默认是前8k部分噢)保存一份到./error/spam目录内,以便在下次rebuildspamdb时学习使用;另外它旁边有一个"Edit spamreport.txt file"按钮,因为ASSP接受到用户发来的报告邮件后会(根据配置)发送一封"感谢信"给用户,点击这个按钮就可以编辑"感谢信"的内容;直接编辑ASSP路径下的spamreport.txt文件同样可以修改该内容--中文内容不要在Web上面修改,因为Web界面修改保存后会变成乱码;
d) Report not-Spam Address:默认为asspnotspam,1.2.2版本及之前版本为assp-notspam;同理ASSP接受到该邮件后就会将该邮件保存一份到./error/notspam目录内,在下次rebuildspamdb时学习使用;编辑旁边的"Edit notspamreport.txt file"按钮可以编辑"感谢信"的内容;
e) Reply to Spam/Not-Spam Reports:为0-3的数值,0表示不发送"感谢信",1表示回复到提交报告的用户,2表示发送到一个指定的用户(在下面配置),3表示两个都发送;
f) TO Address for Spam/Ham-Reports:当"Reply to Spam/Not-Spam Reports"配置为2或3时发送到指定的帐户;
g) Suppress automatic adding to redlist:禁止自动把从whitelist中移出来的内容添加到redlist;
h) Spam/Ham Report & Whitelist Add/Remove:激活选项后,用户提交notspam报告,会将地址加入到whitelist,提交spam报告则会将地址从白名单移除;
i) Add to Whitelist Address:普通用户提交白名单时发送邮件的目标帐户,默认asspwhite;
j) Remove from Whitelist Address:普通用户取消当前白名单内内容的目标帐户,默认asspnotwhite;需要注意的是用户发送邮件去除百名单内内容时,ASSP会自动到NonProcessing列表中去查找对应的地址,如果找到匹配的地址则会移除出去;
k) Suppress automatic removing from NP-List:禁用NonProcessing自动移除,即用户通过email接口(asspnotwhite)移除白名单时不从NonProcessing中移除;
l) Reply to Add to/Remove from Whitelist:功能同Reply to Spam/Not-Spam Reports一样,为0-3整数;
m) To Address for Whitelist-Reports:功能同TO Address for Spam/Ham-Reports;
n) Add to Redlist Address:Redlist的Email interface地址;默认为asspred;
o) Remove from Redlist Address:用户取消redlist内内容的Email interface地址,默认为asspnotred;
p) Reply to Add to/Remove from Redlist:功能同Reply to Spam/Not-Spam Reports一样,为0-3整数;
q) To Address for Redlist-Reports:功能同TO Address for Spam/Ham-Reports;
r) From Address for Reports:"感谢信"的发件人地址;
s) Don't reply to messages to the Email Interface:勾选该选项后则不发送"感谢信";
18. File Paths:设置各配置文件的路径和文件名,这个比较简单,就不做说明了;
19. Logging:日志选项;
a) Silent Mode:安静模式,不将log输出到主机的console上,激活AsADaemon模式后此选项值无效,log信息将不会输出到console;
b) ASSP local logging:在ASSP的安装目录中记录maillog日志;
c) SYSLOG Centralized Logging:将日志记录到syslog中,需要perl的Sys::Syslog模块;
d) File name logging:日志中记录文件名;将保存的邮件文件名记录到日志中;
e) Enable Maintenance logging:记录维护操作;如保存白名单、greylist刷新,向ASSP官方站点上传状态消息等操作;
f) RegEx Length in Log:记录邮件过滤时匹配到的表达式的最大长度,默认20个字符;
g) Maillog Tail Bytes:点击web管理界面的"Maillog Tail"时输出到浏览器的log大小(Bytes),默认10000即10k;
h) Maillog Tail Wrap Column:通过web界面查看maillog时,自动换行的字符数,默认第80个字符;
i) Debug Mode:将debug信息输出到一个.dbg文件,在需要跟踪错误时使用;
j) Send NOOP Info:Checked means you want ASSP to send a "NOOP Connection from $ip" message to your SMTP server. (Postfix croaks on this.)
k) Whitelisted Blocked Attachments:白名单附件过滤后存放的位置;默认为2;从这里开始的配置都遵循一个规律,值为2-7的整数,其中:
i. 2 = notspam folder;非垃圾邮件文件夹;
ii. 3 = spam folder;垃圾邮件文件夹;
iii. 4 = mailok folder;正常邮件文件夹(如果有定义);
iv. 5 = Virus folder;保存在病毒文件夹;
v. 6 = discard;不保存;
vi. 7 = discard \& ccallspam;不保存(抄送?不抄送?哪位知道?);
l) No Processing Blocked Attachments:No Processing名单发送的邮件附件隔离选项;默认5;
m) External Blocked Attachments:外部邮件附件隔离选项;默认5;
n) Spam Bombs:Spam Bombs检查失败隔离选项;默认6;
o) Scripts:Scripts检查失败隔离选项;默认3;
p) Bayesian Non Spam:贝叶斯判断为非垃圾邮件保存选项;默认4;
q) Blacklisted Domains:来自域黑名单的邮件保存选项;默认3;
r) Spam Helos:HELO检查失败的邮件保存选项;默认6;
s) Spam Addresses:垃圾邮件保存位置;默认3;
t) Bayesian Spams:贝叶斯判断为垃圾邮件保存选项;默认3
u) SPF Failures:SPF检查失败的邮件保存选项;默认3;
v) RBL Failures:RBL检查失败的邮件保存选项;默认3;
w) SRS Failures:SRS检查失败的邮件保存选项;默认3;
x) Invalid Sender Failures:发送者验证失败的邮件保存选项;默认3;
y) PB Blocks:PB是什么东东?谁知道?
z) Non Spam Log Frequency:非垃圾邮件的保存间隔;默认1,即每封都保存下来;若设置成10,则每10封正常邮件保存一封;如果邮件负载很大则推荐设置一个大于1的值;
aa) Spam Log Frequency:垃圾邮件的保存间隔;默认1,即每封都保存下来;推荐1;
bb) Don't Log these IP's*:不保存从列表内IP发过来的邮件;如果某些IP发送的垃圾邮件体积比较大,建议添加到这里面;
cc) Jump to the End of the Maillog:勾选该选项时,管理员web登陆时会跳到maillog tail页面,而不是配置的主界面;
dd) Roll the Logfile How Often?:log rotate的间隔时间,也就是每个日志文件保存多少天的日志内容;
20. Security:安全选项;可以设置ASSP运行的UID,GID,chroot环境,修改webadmin的密码,限制访问Web配置界面的IP(段),是否将访问被拒绝的信息记录到日志等;如果IP访问设置错误,只有修改assp.cfg配置文件;
21. Other Settings:可以设置保存邮件的单个目录内最大的文件数(默认14009)、每封邮件保存多少字节的内容、TCP/IP缓存大小、内存中spamdb的hash表的大小,在services/Daemons模式下异常退出时重起的时间、是否压缩服务器与管理员浏览器间的数据流(需要perl的Compress::Zlib模块)、是否向ASSP官方站点上传状态数据、是否激活配置菜单浮动效果、使用本地时间代替UTC时间等选项;
* 五、综述与回顾:
1、ASSP拥有令人眼花缭乱的功能选项和配置界面,对于国内用户来说,能用上(推荐使用)的功能其实也就Bayes、RBL、Blacklist、Whitelist;Delay选项可用可不用;
2、Email interface的设计的确是一个相当人性化的设计,但除非全新架设一套mail系统,否则系统调整的工作量和风险还是比较大的--因为需要用户把MUA的smtp服务器指向ASSP,无论是修改DNS,还是直接通知用户,管理员都需要做较多的准备和充分的测试;另外一个使用Email interface而不需要修改MUA的smtp服务器设置的方法就是:在DNS内建立一个虚假的域(如assp.com)并添加到ASSP的Local Domains内,而将用户发送到
asspspam@assp.com等的邮件通过smtproute或在DNS内设置MX记录指向ASSP主机--转发给ASSP,这样就可以对用户完全透明地使用ASSP的Email interface了;
3、ASSP截至到1.2.3版本,对中文(和其他双字节语言)的支持非常有限,就不可避免的会出现垃圾邮件的误判;而且在Web界面配置时,如果直接输入中文内容,保存后会变成乱码,这样就导致自定义规则无法生效;我就曾经在Expression to Identify Spam*文件内自定了约100行中文规则,结果保存后一个都没有生效;但后来直接vi了spam_pattern.txt文件输入该规则后就可以正常识别了;使用邮件主题作邮件文件名是乱码;同样保存下来的中文邮件的内容也是一塌糊涂;后来我将CC过来的所有spam和notspam手工分类,传送到ASSP目录下的spam和notspam目录内,rebuildspamdb后,ASSP就可以根据spamdb的内容来给邮件评分了;
4、初始安装下由于没有spamdb,Bayes分析几乎把我所有的邮件都判断成了垃圾邮件,第一次rebuildspamdb时,共判断为垃圾邮件约1100封,经过手动分拣出来约400封左右的误判,几乎达到30%的误判率;但第一次学习之后,误判就明显降低,5天下来,我共收到识别的垃圾邮件32000多封,除去之前的1100封共31000封左右,其中有约10000封为RBL阻挡;在剩下的20000封中约200封为误判,降低到了1%。(注意,这些数字是ASSP抄送给我的垃圾邮件中提取出来的,并不代表没有抄送过来的就不是垃圾邮件,所以这个数字并不严密)
从我的实际测试来看,在绕过了中文识别这个难题后,ASSP的反垃圾邮件能力还是非常强大的;当然可能是因为我所在的域垃圾邮件本身就很猖獗吧,环境不同,效果也就不同。
5、总是来说是喜忧参半吧,ASSP强悍的反垃圾邮件能力和近乎傻瓜化的配置对新手无疑有很大的吸引力(我就是这样,hoho);而对于有能力和经验的程序员来说,修改一下ASSP的源代码,使其能够较好的支持中文应该也不是很难,但还是希望ASSP的后续版本加强对双字节语言的支持。