zsk2000 发表于 2006-9-28 23:08:44

发一个垃圾邮件过滤/防火墙系统(转)

石头将其跑在了freebsd系统下,当然这个系统是perl的,可以跑在win和linux下!macos也是支持的!
http://61.147.254.68:55555
default-user:admin
pwd:nospam4me(我可是找了半边的外文资料才知道这个是密码,55555)

下载地址http://sourceforge.net/projects/assp
以下内容是转载,版权归原作者所有!


接到通知的时候,我正被电话折磨得晕头转向,IT支持的工作有点像做客户服务……。

    任务目标很明确:开源(可以不免费?),反垃圾邮件,效果较好,以proxy/gateway方式运行(对现有系统不做改动),两个星期给出方案!

    于是开始行动……

    无奈要求服务的电话太多,一个多星期过去了,google出来的结果大部分还是SpamAssassin的安装说明,对众多的安装文档弄懵了头,我是个懒人,所以从主观上排除了这个东西(这习惯好像不太好)。于是继续找,但中文的反垃圾邮件的资料是在是太少了,搜来搜去就那几号人物,又不能要不免费的,这下郁闷到了……

    最后聪明了一下,上到sourceforge.net,搜索关键字spam、anti spam、然后按照activity、download排一下序。

ASSP进入了视野范围:

    1、搜索spam关键字,按照activity排序排名第三(第一个是客户端使用的,第二个是IPCop的插件,都不太合适);按download排序排名第四,第一个需要在邮件服务器上作修改,第二个配置非常麻烦,报表功能太弱、第三个是客户端使用的;

    2、搜索anti spam按activity排序排名第三,按download排序排名第七,总的看来都相当不错哦!

    3、功能上:
      BAYES
      RBL
      Virus
      SPF
      SRS
      Penalty Box
      ip域名黑白名单
      自定义垃圾邮件关键字
      自定义非垃圾邮件关键字
      模式匹配
      测试模式
      日志定义和在线搜索

    一个都不少,更令人兴奋的是:
      用户参与定义白名单黑名单
      用户参与调整(非)垃圾邮件
      对特殊帐号使用的Redlist
      针对垃圾邮件发送者行为的Greylist……
      用得着用不着先不说吧,反正足够眼花缭乱的了。而且是用perl写成,perl强大的模式匹配就不必说了。

    4、再看看他的配置和管理界面,酷就一个字啊,而且简单明了;

http://www.cublog.cn/u/1492/upfile/060728225945.jpg
    就是它了!
* 一、特别说明:
1. ASSP的配置包含四种类型:
a) 第一种是checkbox型,勾选则激活,取消则disable;
b) 第二种是设置0、1开关型;0表示disable,1则enable;
c) 第三种是列表型,在一个输入框内输入匹配规则,规则遵循perl的正则表达式,如以"|"表示"逻辑或";
d) 第四种为带"*"的选项,除了支持第二种配置方法外,还可以以"file:FILENAME"的方式指定配置文件,文件内每行一个规则,同样支持perl正则表达式。定义为file:FILENAME形式的输入框后面会有一个"Edit File"按钮,单击可以编辑指定的文件;



* 二、名词介绍:
a) Greylist:灰名单,为独立于黑白名单而命名,内容为IP地址,这类名单不一定就是垃圾邮件的发送者,但服务器在第一次接受到从该IP发送过来的邮件时,会产生一个451错误:Resources_temporarily_unavailable._Please_try_again_later,一般的垃圾邮件发送软件就会放弃重试,但正常的邮件服务器却因为队列时间的原因,会在一定的时间内重试,这在一定程度上可以减少垃圾邮件进入服务器的几率。
b) Redlist:红名单,Redlist是针对某些特殊帐号而引入的,可能也是ASSP特有的吧;因为ASSP可以让用户参与添加、删除黑白名单,但不可避免的也存在部分帐号,管理员不允许(或不希望)对黑白名单有添加删除权限;将这类帐号添加到Redlist中后,他们对黑白名单的添加删除操作将会被忽略。
c) RBL:实时黑名单,通过查询发件IP是否存在于rbl服务商提供的列表,以确定邮件是否是垃圾邮件;国外最知名的是spamhaus.org,还有njabl.org,dsbl.org,sorbs.net等。都提供免费的RBL服务。
d) White/Black list:通过查询发件人IP、域、email地址是否存在于自定义的白/黑名单,来确定该邮件是否为垃圾邮件。
e) Bayes:基于Thomas Bayes的伟大理论:"某件事情发生的概率大致可以由它过去发生的频率近似地估计出来",(他的另外一个理论也同样让人震撼:"上帝的存在可以通过方程式证明")通过对已经存在的垃圾邮件(./spam)和非垃圾邮件(./notspam)进行统计**,可以推断新收到的这封邮件是否是垃圾邮件的概率;ASSP通过对邮件中的现有词汇进行**并给出一个评分值保存在一个库中,在收到一封新邮件时通过对现有库中词汇的匹配程度进行相应的评分,超过某个分值则认为是垃圾邮件。所以进行Bayes**需要大量的已知条件--ASSP要求超过400封垃圾邮件和非垃圾邮件--条件满足时,你就可以通过重建spamdb,让ASSP学习你所处的环境中那些是垃圾邮件,那些不是垃圾邮件了。



* 三、工作模式:
1、 进来的邮件:Internet====〉ASSP=====〉Mailserver======〉Local user;
  出去的邮件:Local user=====〉ASSP======〉Mailserver====〉Internet;
   这也是ASSP推荐的架构方法;而且ASSP可以识别User到Mailserver之间认证成功与否的状态。这样认证成功的用户也拥有和localuser同样的权限。
2、 进来的邮件:Inernet====〉ASSP=====〉Mailserver======〉Local user;
  出去的邮件:Local user=====〉Mailserver=======〉Internet;
   报告垃圾邮件和添加黑白名单:Local user===〉Mailserver=====〉ASSP;



* 四、认识配置选项:
1. network setup:网络设置。
a) SMTP Destination:目标服务器的IP地址和端口,IP:port格式;
b) As a Service/Daemon:设置ASSP运行的方式,包括windows平台下以service方式运行,*nix平台以Daemon方式运行;
c) My Name:设置添加到已扫描邮件header内的名称;
d) Listen Port:监听的端口;
e) Another Listen Port:设置监听的第二个端口,可以在第二个端口上监听smtp连接;(个人感觉该选项的目的是用户客户端smtp认证)
f) SMTP Auth Destination:设置客户端认证的目标地址(当然就是邮件服务器了),IP:PORT格式;
g) Connections Logging:对每个连接都记录到日志;
h) Maximum SMTP Sessions:最大并发smtp会话数,默认50;
i) Maximum Sessions/IP:每个IP最大并发smtp会话数,默认5;
j) SMTP Idle Timeout:smtp会话最大空闲时间,默认为0秒,强烈建议限制在60以内,一般推荐10秒;
k) Session Limit Logging:发生smtp会话限制是记录到日志;
l) Proxy Server:ASSP下载/上传greylist时使用的代理服务器和端口;
m) Web Admin Port:web配置界面端口,默认55555,建议修改到其他端口,设置为0可禁止web界面管理;



2. SPAM Control:垃圾邮件选项。
a) Bayesian Check:1表示启用贝叶斯**,0标志禁用;
b) Bayesian Confidence Level:设置垃圾邮件分数线,高于此分数线的就是垃圾邮件,值为0-1的小数,从spamdb的结果来看应该可以精确到小数点后4位,0表示禁用,缺省禁用;
c) Spam Error:被判定为垃圾邮件时反弹给发件人的邮件内容;
d) Spam Collect Addresses*:所有发送到该地址(列表)的邮件都是垃圾邮件,从而收集垃圾邮件发送者的地址;对白名单内的地址无效;
e) Spam Trap Addresses*:所有发送邮件到该地址(列表)的发送者IP将会被放入Penalty Box;具体怎么个处罚,ASSP的官方文档并没有详细说明,其工作原理我也没有弄清楚;
f) Unprocessed Addresses*:对发送给下列账户的email不做anti-spam检查,比如用于客户服务的邮箱,宁肯漏过一千,也不能错过一个的;
g) Blacklisted Domains*:Domain黑名单,拒收来自该域的所有邮件;
h) Expression to Identify Non-Spam*:自定义非垃圾邮件的规则;
i) Expression to Identify Spam*:自定义垃圾邮件的规则;
j) Expression to Identify Redlisted Mail*:自定义识别Redlist的规则;
k) Expression to Identify No-processing Mail*:满足该规则的邮件不会做垃圾邮件过滤;
l) Check Contents Only RegEx:匹配该规则的邮件将只作内容扫描,而不会做其它过滤操作,比如这些邮件是用户从其它邮箱内转发过来的,已经是可靠的;
m) Don't Upload Greylist Stats:不要上传Greylist的状态;
n) Don't auto-download the greylist file:不要自动下载Grey List;手动下载Grey List或者不想激活GreyList检查,就不要选中该选项;
o) Add Spam Probability Header:添加"X-Assp-Spam-Prob: 0.0123"到扫描过的邮件头,后面的小数表示垃圾邮件的可能性;
p) Add Bayes Confidence Header:添加"X-Assp-Bayes-Confidence: 0.0123"到扫描过的邮件头,小数表示贝叶斯评分的分数。分数越高,垃圾邮件的可能性也越高;
q) Block Outgoing Spam-Prob header:去掉外发邮件中"X-Assp-Spam-Prob"等头部信息,激活该选项后本地用户发送给本地用户的邮件中该信息也会被去掉。
r) Add Black/White RegEx Header:添加(非)垃圾邮件规则匹配结果到扫描过的邮件头;如在"Expression to Identify Spam"内定义了"代开发票",则当有邮件匹配到该关键字则被判定为垃圾邮件,并将结果添加到邮件头内;
s) Add Spam Header:添加垃圾邮件过滤结果到邮件头,如:"X-Assp-Spam: YES";
t) Add Spam Reason Header:添加垃圾邮件判定原因到邮件头,如:"X-Assp-Spam-Reason:Bayes Spam";
u) Use Subject as Maillog Names:ASSP将垃圾邮件和非垃圾邮件分别保存在./spam ./notspam目录内,每封邮件一个文件.eml格式(默认保留邮件的前8K部分,在Other settings内可以设置),勾选改选项将使用邮件主题作为文件名,中文主题会有乱码,所以建议中文用户不要选择本选项;



3. SPAM Lover Options:针对不进行垃圾邮件过滤的本地帐号的设置:
a) 暂时没有弄懂这个选项的意义;



4. Whitelist Options:白名单选项;
a) Whitelisted Domains*:域名白名单列表,从该列表内域发过来的邮件会被直接投递;
b) Max Whitelist Days:白名单最大生存周期(天),该周期内没有发送过邮件进来的域将会从白名单内去除;
c) Reject All But Whitelisted Mail:仅接受白名单内的邮件,除非你知道你在干什么,否则不要勾选该选项;
d) Don't log mail:在"Reject All But Whitelisted Mail"模式下不保存垃圾邮件和非垃圾邮件。
e) Only the envelope-sender is added/compared to the whitelist:仅添加"envelope-sender"到白名单内,默认情况下邮件头内的"FROM、SENDER、REPLY-TO、ERRORS-TO、LIST-*"地址都可以添加到(或用于匹配)白名单内,勾选该选项后将被限制为"仅envelope-sender可以添加到(用于匹配)白名单";
f) Only local or authenticated users contribute to the whitelist:仅本地用户和认证成功的用户可以添加内容到白名单;默认勾选;
g) Only users with a local domain in mailfrom contribute to the whitelist:仅mailfrom地址在本地域内的用户可以添加内容到白名单;默认勾选;
h) Keep Whitelisted Spam:对来自白名单内的邮件也作Anti-spam**;
i) Save Whitelist:每隔一定时间(秒)保存一次白名单;重新设置后需要等到现有设置的时间过期才能生效,或者需要重新启动ASSP才能生效;默认3600秒;



5. Relaying:转发
a) ISP/Secondary MX Servers*:ISP提供的smtp服务器的IP地址,或者其它MX记录IP地址,允许对来自该列表内的邮件做Relay;
b) ISP/Secondary MX Grey Value:指定一个0-1的值,来自ISP/Secondary MX Servers的邮件,如果greylist values超过该值,则bypass掉,没有完全弄清楚什么意思--改学E文了(附上英文原文:It is recommended that for ISP & Secondary MX servers to bypass their greylist values.For eg. 0.5 (Completely grey). If left blank then the greylist "X" value is used.Note: value should be greater than 0 and less than 1, where 0 = never spam & 1 = always spam);
c) Accept All Mail*:接收所有来自该IP列表内的邮件,不做任何Anti-spam检查。
d) Relay Host File:功能和Accept All Mail一样,但ASSP推荐使用Accept All Mail,估计该选项以后会被取消;
e) Local Domains*:本地域,指定本地域的域名。子域名也必须显式指定,如一级域名为test.com,子域dev.test.com也必须显式定义;
f) Local Domains File:类似Relay Host File,估计该选项以后会被取消;
g) Bounce Senders*:反弹邮件的发送者,可以指定完整的地址、仅指定username、仅指定域名;具体区别不明;
h) Pop Before SMTP DB File:用途不明;
i) Relay Host:用途不明;
j) Relay Port:用于mailserver为Exchange/notes等环境中,需要设置Exchange/Notes将邮件全部通过ASSP:Realayport来Relay;(指定该选选项时需要注意该Relayport的访问权限,以免变成open relay主机。)
k) No Relaying Error:不允许Relay时返回给客户端的错误;
l) Default Local Host:缺省本地域,收件人地址不包含域名时默认投递到该域;不需要"@"符号。



6. Validate Local Addresses:本地地址验证,为防止用户名猜解,建议不要使用;
a) No-Valid-Local-User Reply:没有发现本地帐户时返回给发送者的错误内容;
b) Sleep time when rejecting a recipient:当一个发送者在Validate Local Addresse失败后禁止此发送者进行第二次发送的间隔时间,设置此选项有助于抵御地址猜解;
c) Validate local addresses to conform with RFC 822:此选项激活后,将按照RFC822的描述来验证本地地址;
d) Local Addresses*:本地地址列表;建议配置成"file:filename"的方式;
e) Do LDAP lookup for valid local addresses:以LDAP方式查找本地用户地址;激活该选项后下面关于LDAP的设置才会生效;
f) LDAP Host(s):LDAP服务器的主机名(FQDN)或IP地址;
g) LDAP Login:访问LDAP服务器的用户名;
h) LDAP Password:访问LDAP服务器的密码;
i) LDAP Root container:LDAP根;
j) LDAP Filter:LDAP查询语句;
k) Enable Validation logging:勾选该该选项后将会在maillog.txt中记录本地地址查询的结果和采取的操作;



7. Penalty Box
a) 暂时没有弄懂这个选项的意义;



8. Validate Sender:发送者地址验证;
a) Enable Validate Sender Logging:启用发送者地址验证日志;启用后发送者地址验证的结果和操作会纪录到maillog.txt中;
b) Validate Local HELOs:对本地用户也做HELO的内容检查,如果该选项激活,即使地址存在于白名单也将做HELO检查;内容为0-3的整数,0为禁用,1为激活,2为仅记录日志,3为加入评分(用途不明)
c) Skip VLH for Whitelisted:如上述,勾选本选项将对白名单不做HELO检查;
d) Skip VLH for NP-listed:同上,不对匹配non-spam的地址作HELO检查;
e) Secondary Hostnames/IP-Nr(s) of this server:本机的其他名称/IP等,用于HELO检查;
f) Validate Format of HELOs:激活该选项则检查下面列出的HELO正则表达式;值为0-4整数,0禁用,1启用,2仅记录日志,3加入评分(用途不明);
g) Expression to Validate Format of HELO*:检查HELO是否符合该表达式;
h) Invalidate Format of HELOs:不合法的HELO,激活后将检查下一项列出的正则表达式;值为0-4整数,0禁用,1启用,2仅记录日志,3加入评分(用途不明);
i) Expression to Invalidate Format of HELO*:用于检查不合法的HELO的表达式;
j) Don't block these HELO's*:如果HELO内容在列表内,则不拦截;
k) Use the Helo Blacklist:值为0-4整数,0禁用,1启用,2仅记录日志,3加入评分,激活后会启用rebuildspamdb脚本产生的blacklisted-helo数据库,推荐不使用;
l) Validate Local Sender Addresses:对本地发送者启用地址验证,实际上是启用了"Validate Local Addresses",但为什么激活选项要放在这里,感觉比较怪;值为0-4整数,0禁用,1启用,2仅记录日志,3加入评分;
m) Block All Local Sender Addresses (No Spoofing):拒绝所有标记为本地用户的邮件,在本地用户发送邮件时不经过ASSP时很有用,可以防止地址欺骗;
n) Reversed Lookup:反向解析检查,既查询IP的ptr记录;需要perl的Net::DNS模块支持;对国内用户建议不要使用,否则大部分邮件都会被挡掉;值为0-4整数,0禁用,1启用,2仅记录日志,3加入评分;
o) Validate Sender Domain MX/A:验证发送者域的mx记录和A记录,需要perl的Email::Valid模块支持;具体会验证什么东西,还不是特别清楚。值为0-4整数,0禁用,1启用,2仅记录日志,3加入评分;
p) Sender Validation Error:检查失败时返回给发送者的错误信息;



9. Delaying:延迟,针对Greylist内的IP作延迟的配置;
a) Enable Delaying:启用延迟控制;既启用Greylist;
b) Whitelisted Delaying:勾选该选项后对白名单内的IP也会发生delay;
c) Spamlovers Delaying:勾选该选项后对Spamlovers内的IP也会发生delay;
d) Add X-Assp-Delayed Header:如果一封邮件发生了delay操作,则写入X-Assp-Delayed到mailheader内;
e) Enable Delaying logging:在日志文件内记录发生的Delay操作和结果;
f) Embargo Time:delay的时间(分钟);
g) Wait Time:Enter the number of hours to wait for delivery attempts related with recognised 'triplet'; delivery is accepted immediately and the 'tuplet' (IP address of the sending host + sender's domain) is whitelisted. Default is 28 hours.
h) Expiry Time:Enter the number of days for which whitelisted 'tuplet' is considered valid. Default is 36 days.
i) Use IP Netblocks:Perform the IP address checks of the sending host based on the /24 subnet it is at rather than the specific IP. This feature may be useful for legitimate mail systems that shuffle messages among SMTP clients between retransmissions.
j) Normalize VERP Addresses:Some mailing lists (such as Ezmlm) try to track bounces to individual mails, rather than just individual recipients, which creates a variation on the VERP method where each email has it's own unique envelope sender. Since the automatic whitelisting that is built into Delaying depends on the envelope addresses for subsequent emails being the same, the delay filter will attempt to normalize the unique sender addresses, when this option is checked.
k) Expire Spamming Whitelisted Tuplets:If a whitelisted 'tuplet' is ever associated with spam, viri, failed rbl, spf etc, it is deleted from the whitelist. This renews the temporary embargo for subsequent mail involving the tuplet.
l) Clean Up Delaying Database:每隔一段时间(秒)从triplets和whitelisted tuplets库中清除过期的条目;必须在原来设置的时间过期后新的设置才会生效,除非重新启动ASSP;缺省为1小时(3600秒);
m) Don't Delay these IP's*:不要对下列IP进行Delay操作;
n) Reply Message to Refuse Delayed Email:Delay发生时返回给发送者的消息,缺省是:"451 4.7.1 Please try again later";



10. SPF Options:SPF设置选项;



11. RBL Options:RBL设置选项;
a) Enable Realtime Blacklist Validation:启用RBL检查;检查失败时默认会发送"550 5.7.1 "错误消息给发送者;
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|js|jse|ws|sh|lnk|bat|cmd|com|ht";即大部分可执行文件;
e) Level 2 Blocked File Extensions:级别2,在级别1的基础上还需要阻挡的附件扩展名,默认为空,但推荐阻挡"(ad|asx|ba|chm|cmd|com|cpl|crt|dbx|exe|hlp|ht|in|isp|js|jse|lnk|md|mht|ms|nch|pcd|pif|prf|reg|sc|sh|vb|vb|wms|ws).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:附加到垃圾邮件主题前的内容;如;不要定义为中文,定义为中文我仅在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的后续版本加强对双字节语言的支持。
页: [1]
查看完整版本: 发一个垃圾邮件过滤/防火墙系统(转)