相信大部分使用电子邮件的人每天都会收到大量垃圾邮件。作为单位网管,笔者每天收到垃圾邮件的数量更在数百封以上,预防垃圾邮件已到了刻不容缓的地步。

一、环境说明

单位的服务器使用RedHat Linux 9.0,邮件服务器使用Sendmail 8.12.8;这台服务器放在内网,通过一台Win2000的服务器作网关,连到Internet;网关软件使用的是WinRoute Pro 4.2.5。

二、主要修改措施

1.关闭Sendmail的Relay功能

所谓Relay就是指别人能用这台 SMTP邮件服务器,给任何人发信,这样别有用心的垃圾发送者能够使用笔者单位的这台邮件服务器大量发送垃圾邮件,而最后别人投诉的不是垃圾发送者,而是单位的服务器。所以必须关闭Open Relay,其方法就是到Linux服务器的/etc/mail目录,编辑access文档,去掉“*relay”之类的配置,一般只留 “localhost relay”和“127.0.0.1 relay”两条即可。

注意:修改access文档后还要用命令makemap hash access.db< p>

2.打开Sendmail的SMTP认证功能

关掉了Relay功能,单位的老师就不能使用OE之类的软件发信了不要紧,只要对Sendmail配置好SMTP认证功能,再在OE中打开SMTP认证,就能够在任何地方使用单位的SMTP服务器了。

在RedHat Linux 9.0中配置SMTP认证很方便,首先用命令rpm -qa|grep sasl检查有没有安装cyrus-sasl软件包(一般默认安装已包括了)。假如没有安装的话,用命令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')

改为

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=0.0.0.0,Name=MTA')

3.在Sendmail中添加RBL功能

RBL(Realtime Blackhole List)是实时黑名单。外国有一些机构提供RBL服务,他们把收集到的专发垃圾邮件的IP地址加入他们的黑名单,我们只要在Sendmail中加入 RBL认证功能,就会使我们的邮件服务器在每次收信时都自动到RBL服务器上去查实,假如信件来源于黑名单,则Sendmail会拒收邮件,从而使单位的用户少受垃圾邮件之苦。