垃圾电子邮件成为了人们最头疼的问题之一。在Windows操作系统中也许您已经尝够了垃圾邮件给您带来的苦头,不要以为在Linux操作系统平台中就能避免垃圾电子邮件给我们带来的骚扰,反击和过滤垃圾电子邮件是一件很重要的工作。下面介绍一些在Lin
(1)关闭Sendmail的Relay功能
所谓Relay就是指别人能用这台SMTP邮件服务器给任何人发信,这样别有用心的垃圾发送者就可以使用这台邮件服务器大量发送垃圾邮件,而最后别人投诉的不是垃圾发送者,而是这台服务器,因此必须关闭Relay。其方法就是,到Linux服务器的/etc/mail目录编辑access文件,去掉"*relay"之类的设置,只留"localhost relay"和"127.0.0.1 relay"两条即可。注意,修改access文件后还要使用命令使修改生效:makemap hash access.db < access。
(2)在Sendmail中添加RBL功能
RBL(Realtime Blackhole List)是实时黑名单。国外有一些机构提供RBL服务,常用的RBL服务器地址有relays.ordb.org、dnsbl.njabl.org、bl.spamcop.net、sbl.spamhaus.org、dun.dnsrbl.net和dnsbl.sorbs.net。查询和删除RBL中的IP地址可以到http://openrbl.org/和http://ordb.org。RBL将收集到的专发垃圾邮件的IP地址加入他们的黑名单,只要在Sendmail中加入RBL认证功能,就会使邮件服务器在每次收信时都自动到RBL服务器上去查实,如果信件来源于黑名单,则Sendmail会拒收邮件,从而使单位的用户少受垃圾邮件之苦。在Sendmail中添加RBL认证,需要对sendmail.mc添加以下内容:
| FEATURE(`dnsbl'',`relays.ordb.org'',`″Email blocked using ORDB.org - see |
最后执行"m4 sendmail.mc>sendmail.cf"和"service sendmail restart"两条命令,使有关Sendmail的修改生效。
(3)打开Sendmail的SMTP认证功能
1、服务器端设置
关掉了Relay功能,用户就不能使用客户端软件发信,此时需要Sendmail配置,开放其SMTP认证功能,再在客户端如Outlook Express 、foxmail等当中打开SMTP认证,这样就可以正常SMTP服务器了。在Red Hat Linux 9.0中配置SMTP认证非常方便,首先用命令检查有没有安装cyrus-sasl软件包。
#rpm -qa|grep sasl
cyrus-sasl-2.1.10-4
cyrus-sasl-plain-2.1.10-4
cyrus-sasl-devel-2.1.10-4
cyrus-sasl-md5-2.1.10-4 |
如果没有安装的话,用命令"rpm -ivh cyrus-sasl*.rpm"安装所有软件包,接着打开/etc/mail/sendmail.mc文件,修改如下三行:
dnl TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN'')dnl
dnl define(`confAUTH_MECHANISMS'',`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN'')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA'')dn1 |
修改为:
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN'')dnl
define(`confAUTH_MECHANISMS'',`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN'')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=192.168.1.200,Name=MTA'')dn1 |
然后产生cf文件,并进行测试:
#m4 sendmail.mc > sendmail.cf
#service sendmail restat
# sendmail d0.1 -bv root |grep SASL
NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS #修改成功标志 |
下一步测试,以Telnet到TCP 25端口的方式:
#telnet localhost 25
ehlo localhost
注意有没有以下的信息出现.
250-xxxxxxxx
250-xxxxxxx
250-AUTH LOGIN CRAM-MD5 DIGEST-MD5
250-xxxxxx |
Outlook Express 和Foxmail 使用LOGIN认证,Netscape Mail使用PLAIN认证。
2、客户端设置
在Outlook Express主窗口,单击"工具(T)"选单,在下拉选单中选中"账号(A)"。在"Internet账号"窗口中,选定某一邮件账号,单击"属性(P)"。在弹出的账号"属性"窗口中(见图3),选择"服务器"选项卡,选中"我的服务器要求身份验证(V)"。单击旁边的"设置(E)"按钮,在"外发邮件服务器"窗口中选择"使用与接收邮件服务器相同的设置(U)"。按"确定"后,设置便完成了。

图1:Outlook Express SMTP认证的设置
(4)使用专用工具防止垃圾邮件
除了利用sendmail的自带功能,还能够利用其他的专用工具来防止垃圾邮件,比较著名的有由Matt Sergeant、Craig Hughes和Justin Mason于发布的SpamAssassin(SA)。目前最新版本是3.0.2,它是较为流行的反垃圾邮件软件,据SpamAssassin供应商 Deersoft的统计,目前大约有3万台Unix服务器上使用了SpamAssassin。SpamAssassin利用Perl语言来对邮件内容进行规则匹配,从而达到判断过滤垃圾邮件的目的。它的判断方式是基于评分的方式,也就是说如果这封邮件符合某条规则,则给与一定分值;当累计的分值超过了一定限度时,则判定该邮件为垃圾邮件。对Sendmail、Qmail、Postfix和Exim等各种邮件平台都适用。当它被最终用户或系统管理员调用时,它可以方便地与大多数流行的邮件处理系统进行接口互连。SpamAssassin在对一封信件应用了各项规则之后,生成一个分值来表示其为垃圾邮件的可能性。它可以设置上百条规则,包括对邮件头的处理、对邮件内容的处理及对邮件结构的处理等。每条规则都对应一个分值(可正、可负),每封信件的分值就是所匹配规则的分值之和。如果分值为负,表示这封信件是正常的;相反,如果分值为正,则表示信件有问题。如果超过了某个默认的分值,过滤器就会标识其可能为垃圾邮件,然后交由用户做出最终抉择。SpamAssassin的安装使用过程比较简单,在互联网上有专业文章介绍,更加专业的叙述可以查看:O''Reilly出版的 SpamAssassin,书号 ISBN : 0-596-00707-8,2004。这里就不赘述了。
文章转载地址:http://www.cnpaf.net/Class/hack/0610111049113813931.html