设置Linux邮件服务器防垃圾策略

邮件服务器在Internet上扮演着一个非常重要的角色。SMTP简单邮件传输协议)是Internet上计算机之间传送电子邮件所普遍采用的协议,Sendmail是构成邮件服务器的Unix系统中使用极为广泛的一种邮件传输代理程序,它遵循SMTP协议,提供了很强大的邮件服务功能,可以承载高达数万个用户的电子邮件通信服务。

邮件系统是Linux网络应用的重要组成部分。完整的邮件系统包括底层操作系统、邮件传送代理MTA、邮件分发代理MDA和邮件用户代理MUA。

在众多的邮件服务器软件中,Sendmail总是能够在每一次评比中获得荣誉,从而使它成为目前使用最为广泛的一种E-mail服务器。但是,说起Sendmail配置,很多人会感到头痛,希望本文对Sendmail的使用作一个力求完满的说明。

美中不足的是,Sendmail在为用户发送邮件时,并不对用户进行身份认证,这就给一些广告邮件或垃圾邮件的制造者提供了机会──任何人只要想发信,就可以利用任何一台没有带认证功能而又对其“open
relay”的Sendmail邮件服务器,为其发送大量的垃圾或广告信件。虽然Sendmail
8.9.3以上的版本提供了一些限制邮件转发的功能,可以在某种程度上限制这种情况的发生,但它只能根据静态的IP地址、邮件地址或域名来进行限制,这使得合法用户只能在固定的IP地址范围内使用邮件服务器,否则将会被拒绝。这样就给用户带来了使用上的不方便,例如用户下班回家或是出差在外,都无法使用工作单位的邮件服务器发信,学生放假离开学校也不能使用学校的邮件服务器发出信件。但是假如设定邮件服务器为open
relay模式,又怕造成服务器转发功能被滥用。这是个很矛盾的问题,长期困扰着邮件服务器的治理员。

  目前来看,Linux邮件系统面临的主要危险是垃圾邮件、Linux病毒和DoS攻击。本文将重点介绍Linux邮件服务器的防垃圾邮件策略。

Linux sendmail配置安装所需软件
sendmail.8.12.10.tar.gz  
cyrus-sasl-2.1.18.tar.gz 

为了不让自己的邮件成为垃圾邮件的中转站而被外面的邮件服务器拒绝,以往许多邮件服务器的治理员大都只能选择限制mail
relay的模式。现在好了,随着Sendmail软件版本的不断更新,新的功能也随之出现。使用新版本的Sendmail
8.12.5邮件服务器软件,再搭配Cyrus-SASLSimple Authentication and Security
Layer)身份认证程序库,就可以解决对邮件用户进行身份认证的问题。服务器有了认证功能后,任何人想通过邮件服务器发送信件时都得先输入用户名和密码进行身份认证。

  垃圾邮件的防范

Linux sendmail配置安装步骤
1、先安装cyrus-sasl-2.1.18.tar.gz,sendmail
Linux sendmail配置安装时要用到sasl简单认证和安全层协议)的
库文件的头文件。 解压缩: # tar -zxvf cyrus-sasl-2.1.18.tar.gz 编译:
进入刚解压的源码目录,运行以下命令完成安装。 #./configure
–prefix=/usr/local/sasl2 –enable-login
一定要加–enable-login,因为SASL2默认不支持login种验证方式,而OUTLOOK是通过
login来进行SMTP验证的。 #make           # 编译 #make install # 安装
完成以上linux程序安装三步曲之后,就可以开始配置和测试了。

下面就给大家详尽解释一下如何编译、安装Cyrus-SASL程序库和Sendmail
8.12.5软件使邮件系统支持SASL的SMTP认证功能。

  目前广泛使用的防垃圾邮件技术有:


2、Sendmail配置SASL
为了把SASL应用于sendmail认证,还需进行一些配置工作。sendmail会到/usr/lib目录下去
找SASL2库,而我们是把程序安装在/usr/local/sasl2中,为什么不把软件安装在/usr/lib目录
呢?这主要是为了好管理自已安装的软件啦。所以我们要在/usr/lib目录下做一个链接:
# cd /usr/lib # ln -s /usr/local/sasl2/lib/* .
ok,接着要在/var/目录下建一个目录给saslauthd进程存在临时数据。
# cd /var
# mkdir state
# cd state
# mkdir saslauthd
注:如果没有这些目录,运行saslauthd时,会提示出错。
ok,接着为确保CYRUS-SASL2函数库知道怎样验证所收来的SASL认证请求,必须创建一
个SASL的配置文件来把MTA程序定义成一个SASL应用。配置文件名为Sendmail.conf注
意是大写的S),位于/usr/lib/sasl2目录中,也就是/usr/local/sasl2/lib/sasl2这个目录,记得上
面新建的链接了吗?在该文件中你定义你希望使用的认证数据库方法,以下这个例子使用
saslauthd来验证认证请求。
# cd /usr/lib/sasl2
# echo ‘pwcheck_method: saslauthd’ >; Sendmail.conf

一.环境

  (1)SMTP用户认证:一种常见并十分有效的方法,在邮件传送代理(MTA)上对来自本地网络以外的互联网的发信用户进行SMTP认证,仅允许通过认证的用户进行远程转发。这样既能够有效避免邮件传送代理服务器为垃圾邮件发送者所利用,又为出差在外或在家工作的员工提供了便利。如果不采取SMTP认证,在不牺牲安全的前提下,设立面向互联网的Web邮件网关也是可行的。此外,如果SMTP服务和POP3服务集成在同一服务器上,在用户试图发信之前对其进行POP3访问验证(POP
before SMTP)是一种更加安全的方法。

3、测试 ok,现在可以运行saslauthd了,并进行测试。
# cd /usr/local/sasl2/sbin
# ./saslauthd -a shadow
用shadow的用户和密码进行验证
# ./testsaslauthd -u userid -p password
0: OK “Success.”
如果出现以上信息,就说明saslauthd正常运行了。testsaslauthd程序默认是没有编译的,你
需要在源码目录树的saslauthd子目录中行     # make
testsaslauthd命令生成。 以上介绍Sendmail配置。

操作系统平台:Solaris 2.7 或 Linux 6.2 或更高

  (2)关闭Open Relay:现在依然存在并非少数的开放Open
Relay服务器,所以,关闭Open Relay功能对反垃圾邮件效果显著。

文章转载自网管网:

使用软件:Cyrus-SASL 1.5.27和Sendmail 8.12.5

  (3)实时黑名单过滤:前面介绍的防范措施对使用自身合法域名的垃圾邮件无效,这时可以使用黑名单服务列表。针对每个进入的邮件信息,MTA程序获取远程服务器的地址,并且查询远程互联网服务器对该地址进行认证。如果该地址在垃圾邮件主机列表中,则MTA拒绝接受这些邮件信息。其中使用BRL认证过程如图1所示。

二.编译、安装Cyrus-SASL程序库:

www.hj8828.com 1

2、解包:

图1

tar xvfz cyrus-sasl-1.5.27.tar.gz

  (4)内容过滤:MTA、MUA、MDA过滤有自己的特点,通常几种方法同时使用。

3、编译、安装:

  ◆
MTA过滤:大部分MTA提供某种过滤,因为它们在电子邮件的前端,通常更容易控制邮件的到达。

进入cyrus-sasl-1.5.27目录:

  ◆
MDA过滤:大多数MTA不对邮件内容过滤,对信件内容的过滤就由MDA来完成,许多复杂的过滤器都是使用MDA过滤器做的。

#cd cyrus-sasl-1.5.27

  ◆
MUA过滤:MDA位于邮件服务器上,而许多用户希望从邮件界面管理过滤规则,因此需要MUA过滤。主流的MUA如Windows下的Outlook、Foxmail和Linux下的Evolution都带有过滤功能。

编译配置:

  ◆ 专用工具:如SpamAssassin。

#./configure –enable-login –enable-plain

  ◆ 商业软件:如趋势科技IMSS 5.5(整合了垃圾邮件防治服务SPS)。

这里由于SASL库缺省状态下并不支持某些客户端软件的使用方式,所以要在生成配置文件时非凡加入一些功能选项。具体要加什么可以用命令查看:

  应用实例

#./configure -help

  Sendmail是RedHat
Linux以及大多数类Unix操作系统的邮件传送代理,因此是目前配置最广泛的邮件服务器。下面以RedHat
Linux
9.0使用的Sendmail为例,介绍上面几种技术应对垃圾邮件的危害。(1)关闭Sendmail的Relay功能

如加“–enable-login”是因为OutLook
Expresss使用LOGIN的认证方法,SASL库缺省并不支持这种方式,所以要在生成配置文件时非凡加入。

www.hj8828.com,  所谓Relay,就是指别人能用这台SMTP邮件服务器给任何人发信,这样别有用心的垃圾发送者就可以使用这台邮件服务器大量发送垃圾邮件,而最后别人投诉的不是垃圾发送者,而是这台服务器,因此必须关闭Relay。

另外,缺省情况下,所有的库函数是安装到“/usr/local/lib”目录下,但Sendmail使用的库函数是在目录“/usr/lib”中的,所以需要做一些修改。在运行configure脚本前,修改其中的缺省路径就可以了。方法是打开configure文件找到下面这一行:

  其方法是:到Linux服务器的/etc/mail目录编辑access文件,去掉“*relay”之类的设置,只留“localhost
relay”和“127.0.0.1
relay”两条即可。注意,修改access文件后还要使用如下命令使修改生效:

ac_default_prefix=/usr/local

  makemap hash access.db < access

改为:

  (2)在Sendmail中添加RBL功能

ac_default_prefix=/usr

  RBL(Realtime Blackhole
List)是实时黑名单。常用的RBL服务器地址有relays.ordb.org、bl.spamcop.net、dun.dnsrbl.net及dnsbl.sorbs.net等。查询和删除RBL中的IP地址可以去

编译:

  RBL将收集到的专发垃圾邮件的IP地址加入他们的黑名单,只要在Sendmail中加入RBL认证功能,就会使邮件服务器在每次收信时都自动到RBL服务器上去查实,如果信件来源于黑名单,则Sendmail会拒收邮件,从而使单位的用户少受垃圾邮件之苦。

#make

  在Sendmail中添加RBL认证,需要对Sendmail.mc添加以下内容:

安装:

  FEATURE(`dnsbl,`relays.ordb.org,`″Email blocked using ORDB.org

#make install

  • see″)

到这里SASL库就安装好了注重在整个编译安装的过程中都不能有任何错误警告显示才行)。

  最后执行“m4 Sendmail.mc> Sendmail.cf”和“service Sendmail
restart”两条命令,使有关Sendmail的修改生效。(3)打开Sendmail的SMTP

接着必须设置Sendmail的使用者身份验证方式,因为这里要使用的是系统账号与密码来进行验证,所以要在“/usr/lib/Sendmail.conf”文件中指明:

  ◆ 服务器端设置