(3)打开Sendmail的SMTP认证功能
1、服务器端设置
关掉了Relay功能,用户就不能使用客户端软件发信,此时需要Sendmail配置,开放其SMTP认证功能,再在客户端如Outlook Express 、foxmail等当中打开SMTP认证,这样就可以正常SMTP服务器了。在Red Hat Linux 9.0中配置SMTP认证非常方便,首先用命令检查有没有安装cyrus-sasl软件包。
#rpm -qagrep 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)"。按"确定"后,设置便完成了。
(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。这里就不赘述了。