﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-network-随笔分类-linux_mail</title><link>http://www.cnitblog.com/snfnvtk/category/7377.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 27 Sep 2011 22:49:59 GMT</lastBuildDate><pubDate>Tue, 27 Sep 2011 22:49:59 GMT</pubDate><ttl>60</ttl><item><title>postfix邮件服务器安全策略</title><link>http://www.cnitblog.com/snfnvtk/archive/2008/07/09/46493.html</link><dc:creator>network</dc:creator><author>network</author><pubDate>Wed, 09 Jul 2008 08:22:00 GMT</pubDate><guid>http://www.cnitblog.com/snfnvtk/archive/2008/07/09/46493.html</guid><wfw:comment>http://www.cnitblog.com/snfnvtk/comments/46493.html</wfw:comment><comments>http://www.cnitblog.com/snfnvtk/archive/2008/07/09/46493.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/snfnvtk/comments/commentRss/46493.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/snfnvtk/services/trackbacks/46493.html</trackback:ping><description><![CDATA[<img height=20 src="http://www.cnitblog.com/Emoticons/QQ/13.gif" width=20 border=0>
<table cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr borderColor=#cccccc bgColor=#e3e3e3>
            <td colSpan=2 height=80>
            <div class=14 align=center><strong><font color=#000000>postfix邮件服务器安全策略</font></strong> <br><br></div>
            <div align=center>作者：<a title=曹江华 href="http://www.chinaemail.com.cn/ShowAuthor.asp?ChannelID=1008&amp;AuthorName=曹江华">曹江华</a> 文章来源：<a href="http://www.chinaemail.com.cn/ShowCopyFrom.asp?ChannelID=1008&amp;SourceName=计世网">计世网</a>&nbsp; 更新时间：2006-4-12 9:23:10</div>
            </td>
        </tr>
        <tr borderColor=#cccccc>
            <td colSpan=2 height=174>
            <table width="98%" align=center>
                <tbody>
                    <tr>
                        <td vAlign=center align=middle height=256>
                        <div align=center>
                        <div align=left><span class=black style="FONT-SIZE: 14px; LINE-HEIGHT: 23px"><font face=Verdana>　　邮件系统是Linux网络应用的重要组成，一个完整的邮件系统包括三个部分：底层操作系统（Linux Operation），邮件传送代理（Mail Transport Agent，MTA）,邮件分发代理（Mail Delivery Agent，MDA），邮件用户代理（Mail User Agent，MUA）。</font>
                        <p align=left><font face=Verdana>　　Postfix是一个非常优秀的MTA，她素以高效、安全的特点而著称。Postfix是作者在UNIX上所见过的MTA中在反垃圾邮件（Anti-Spam或Anti-UCE）方面做得最好的一个，甚至有很多公司在Postfix代码的基础上进行二次开发而推出反垃圾邮件网关产品。MTA的反垃圾邮件功能，实际上就是在MTA处理过程中对会话进行过滤。这个过滤不但过滤了发往自身的垃圾邮件，而且还防止了自身被恶意利用发送垃圾邮件。Postfix实现了目前所有主要的MTA过滤技术。postfix是Wietse Venema在</font><font face=Verdana><strong>IBM</strong></font><font face=Verdana>的GPL协议之下开发的MTA（邮件传输代理）软件。和Sendmail相比Postfix更快、更容易管理、更灵活、更安全，同时还与sendmail保持足够的兼容性。Sendmail相比Postfix对比见表1.</font></p>
                        <p align=left><font face=Verdana>　　表1 Sendmail与Postfix的对比 </font></p>
                        <p align=left>　　
                        <table cellPadding=0 width=416 border=1>
                            <tbody>
                                <tr>
                                    <td width=50>
                                    <div align=left twffan="done">MTA</div>
                                    </td>
                                    <td width=50>
                                    <div align=left twffan="done">成熟性</div>
                                    </td>
                                    <td width=50>
                                    <div align=left twffan="done">安全性</div>
                                    </td>
                                    <td width=50>
                                    <div align=left twffan="done">特色</div>
                                    </td>
                                    <td width=50>
                                    <div align=left twffan="done">性能</div>
                                    </td>
                                    <td width=100>
                                    <div align=left twffan="done">Sendmail兼容性</div>
                                    </td>
                                    <td width=80>
                                    <div align=left twffan="done">模块化设计</div>
                                    </td>
                                </tr>
                                <tr>
                                    <td width=50>
                                    <div align=left twffan="done">Postfix</div>
                                    </td>
                                    <td width=50>
                                    <div align=left twffan="done">中</div>
                                    </td>
                                    <td width=50>
                                    <div align=left twffan="done">中</div>
                                    </td>
                                    <td width=50>
                                    <div align=left twffan="done">中</div>
                                    </td>
                                    <td width=50>
                                    <div align=left twffan="done">中</div>
                                    </td>
                                    <td width=100>
                                    <div align=left twffan="done">支持</div>
                                    </td>
                                    <td width=80>
                                    <div align=left twffan="done">是</div>
                                    </td>
                                </tr>
                                <tr>
                                    <td width=50>
                                    <div align=left twffan="done">Sendmail</div>
                                    </td>
                                    <td width=50>
                                    <div align=left twffan="done">高</div>
                                    </td>
                                    <td width=50>
                                    <div align=left twffan="done">低</div>
                                    </td>
                                    <td width=50>
                                    <div align=left twffan="done">中</div>
                                    </td>
                                    <td width=50>
                                    <div align=left twffan="done">低</div>
                                    </td>
                                    <td width=100>
                                    <div align=left twffan="done"></div>
                                    </td>
                                    <td width=80>
                                    <div align=left twffan="done">否</div>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        </p>
                        <p align=left><font face=Verdana>　　垃圾邮件(SPAM) 也称作UCE (Unsolicited Commercial Email，未经许可的商业电子邮件) 或UBE (Unsolicited Bulk Email,未经许可的大量电子邮件) 。中国互联网协会对垃圾邮件给出了一个正式的定义，只要是符合下述四条之一的电子邮件都可被称为垃圾邮件： </font></p>
                        <p align=left><font face=Verdana>　　（1）收件人事先没有提出要求或同意接收的广告、电子刊物、各种形式的宣传品等宣传性的电子邮件。 </font></p>
                        <p align=left><font face=Verdana>　　（2）收件人无法拒收的电子邮件。 </font></p>
                        <p align=left><font face=Verdana>　　（3）隐藏发件人身份、地址、标题等信息的电子邮件；。</font></p>
                        <p align=left><font face=Verdana>　　（4）含有虚假的信息源、发件人、路由等信息的电子邮件。 <br>　　垃圾电子邮件成为了人们最头疼的<a class=channel_keylink href="http://bbs.chinaemail.com.cn/" target=_blank><font color=#000000>问题</font></a>之一。在Windows操作系统中也许您已经尝够了垃圾邮件给您带来的苦头，不要以为在Linux操作系统平台中就能避免垃圾电子邮件给我们带来的骚扰，反击和过滤垃圾电子 邮件是一件很重要的工作。下面是一些在Linux中广泛使用的防垃圾邮件技术。 </font></p>
                        <p align=left></p>
                        <p align=left><font face=Verdana>　　（1）SMTP用户认证 </font></p>
                        <p align=left><font face=Verdana>　　目前常见并十分有效的方法是，在邮件传送代理（Mail Transport Agent，MTA）上对来自本地网络以外的互联网的发信用户进行SMTP认证，仅允许通过认证的用户进行远程转发。这样既能够有效避免邮件传送代理服务器为垃圾邮件发送者所利用，又为出差在外或在家工作的员工提供了便利。如果不采取SMTP认证，则在不牺牲安全的前提下，设立面向互联网的Web邮件网关也是可行的。此外，如果SMTP服务和POP3服务集成在同一服务器上，在用户试图发信之前对其进行POP3访问验证（POP before SMTP）就是一种更加安全的方法，但在应用的时候要考虑到当前支持这种认证方式的邮件客户端程序还不多。 </font></p>
                        <p align=left><font face=Verdana>　　（2）逆向名字解析 </font></p>
                        <p align=left><font face=Verdana>　　无论哪一种认证，其目的都是避免邮件传送代理服务器被垃圾邮件发送者所利用，但对于发送到本地的垃圾邮件仍然无可奈何。要解决这个<a class=channel_keylink href="http://bbs.chinaemail.com.cn/" target=_blank><font color=#000000>问题</font></a>，最简单有效的方法是对发送者的IP地址进行逆向名字解析。通过DNS查询来判断发送者的IP与其声称的名字是否一致，例如，其声称的名字为mx.hotmail.com，而其连接地址为20.200.200.200，与其DNS记录不符，则予以拒收。这种方法可以有效过滤掉来自动态IP的垃圾邮件，对于某些使用动态域名的发送者，也可以根据实际情况进行屏蔽。但是上面这种方法对于借助Open Relay的垃圾邮件依然无效。对此，更进一步的技术是假设合法的用户只使用本域具有合法互联网名称的邮件传送代理服务器发送电子邮件。例如，若发件人的邮件地址为someone@yahoo.com，则其使用的邮件传送代理服务器的Internet名字应具有yahoo.com 的后缀。这种限制并不符合SMTP协议，但在多数情况下是切实有效的。需要指出的是，逆向名字解析需要进行大量的DNS查询。</font></p>
                        <p align=left><font face=Verdana>　　（3）实时黑名单过滤 </font></p>
                        <p align=left><font face=Verdana>　　以上介绍的防范措施对使用自身合法域名的垃圾邮件仍然无效。对此比较有效的方法就是使用黑名单服务了。黑名单服务是基于用户投诉和采样积累而建立的、由域名或IP组成的数据库，最著名的是RBL、DCC和Razor等，这些数据库保存了频繁发送垃圾邮件的主机名字或IP地址，供MTA进行实时查询以决定是否拒收相应的邮件。但是，目前各种黑名单数据库难以保证其正确性和及时性。例如，北美的RBL和DCC包含了我国大量的主机名字和IP地址，其中有些是早期的Open Relay造成的，有些则是由于误报造成的。但这些迟迟得不到纠正，在一定程度上阻碍了我国与北美地区的邮件联系，也妨碍了我国的用户使用这些黑名单服务。其中使用BRL认证过程见图1.</font></p>
                        <p align=left><font face=Verdana><img src="http://www.chinaemail.com.cn/server/UploadFiles_2618/200604/20060412112839101.jpg" border=0 twffan="done"></font></p>
                        <p align=left><font face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图1 使用BRL过滤垃圾邮件的过程 </font></p>
                        <p align=left><font face=Verdana>　　（4）内容过滤 </font></p>
                        <p align=left><font face=Verdana>　　即使使用了前面诸多环节中的技术，仍然会有相当一部分垃圾邮件漏网。对此情况，目前最有效的方法是基于邮件标题或正文的内容过滤。其中比较简单的方法是，结合内容扫描引擎，根据垃圾邮件的常用标题语、垃圾邮件受益者的姓名、电话号码、Web地址等信息进行过滤。更加复杂但同时更具智能性的方法是，基于贝叶斯概率理论的统计方法所进行的内容过滤，该算法最早由Paul Graham提出（http://www.paulgraham.com/spam.html），并使用他自己设计的Arc语言实现。这种方法的理论基础是通过对大量垃圾邮件中常见关键词进行分析后得出其分布的统计模型，并由此推算目标邮件是垃圾邮件的可能性。这种方法具有一定的自适应、自学习能力，目前已经得到了广泛的应用。最有名的垃圾邮件内容过滤是Spamassassin，它使用Perl语言实现，集成了以上两种过滤方法，可以与当前各种主流的MTA集成使用。内容过滤是以上所有各种方法中耗费计算资源最多的，在邮件流量较大的场合，需要配合高性能服务器使用。 下面以RHEL 4.0为例，介绍上面几种技术应对安全隐患。<br>安装postfix </font></p>
                        <p align=left></p>
                        <p align=left><font face=Verdana>　　1、查询Sendmail是否安装：</font></p>
                        <p align=left><font face=Verdana>　　＃rpm -qa |grep sendmail</font></p>
                        <p align=left><font face=Verdana>　　2、强行卸载Sendmail</font></p>
                        <p align=left><font face=Verdana>　　# rpm -e sen </p>
                        <p align=left>　　dmail sendmail-cf sendmail-doc &#8211;nodeps</font></p>
                        <p align=left><font face=Verdana>　　3、用以下命令杀死运行中的sendmail进程：</font></p>
                        <p align=left><font face=Verdana>　　#&nbsp; kill all sendmail</font></p>
                        <p align=left><font face=Verdana>　　4、下载安装Posfix</font></p>
                        <p align=left><font face=Verdana>　　#wget ftp://ftp.midvalleyhosting.com/pub/postfix/official/postfix-2.1.4.t ar.gz /tmp</font></p>
                        <p align=left><font face=Verdana>　　＃tar -vxf postfix-2.1.4.tar.gz</font></p>
                        <p align=left><font face=Verdana>　　#cd postfix-2.1.4</font></p>
                        <p align=left><font face=Verdana>　　5．编译源代码包</font></p>
                        <p align=left><font face=Verdana>　　# make</font></p>
                        <p align=left><font face=Verdana>　　6．建立一个新用户&#8220;postfix&#8221;，该用户必须具有唯一的用户ID号和组ID号，同时应该让该用户不能登录到系统，也即不为该用户指定可执行的登录外壳程序和可用的用户宿主目录。我们可以先用adduser postfix 添加用户再编辑/etc/passwd文件中的相关条目如下所示：</font></p>
                        <p align=left><font face=Verdana>　　# useradd postfix</font></p>
                        <p align=left><font face=Verdana>　　＃ postfix:*:12345:12345:postfix:/no/where:/no/shell</font></p>
                        <p align=left><font face=Verdana>　　#groupadd postdrop</font></p>
                        <p align=left><font face=Verdana>　　7．确定/etc/aliases文件中包含如下的条目：</font></p>
                        <p align=left><font face=Verdana>　　# postfix: root</font></p>
                        <p align=left><font face=Verdana>　　8． 以root用户登录，在/tmp/ postfix目录下执行命令：</font></p>
                        <p align=left><font face=Verdana>　　# ./INSTALL.sh</font></p>
                        <p align=left><font face=Verdana>　　9.启动postfix</font></p>
                        <p align=left><font face=Verdana>　　#&nbsp; postfix start</font></p>
                        <p align=left><font face=Verdana>　　postfix的配置文件位于/etc/postfix下，这四个文件就是postfix最基本的配置文件，它们的区别在于：mail.cf：是postfix主要的配置文件。Install.cf：包含安装过程中安装程序产生的postfix初始化设置。　　　　　master.cf：是postfix的master进程的配置文件，该文件中的每一行都是用来配置postfix的组件进程的运行方式。postfix-script：包装了一些postfix命令，以便我们在linux环境中安全地执行这些postfix命令。</font></p>
                        <p align=left><font face=Verdana>　　10、使用postfix本身规则拒收垃圾邮件：</font></p>
                        <p align=left><font face=Verdana>　　1、&nbsp; 使用头信息过滤邮件：</font></p>
                        <p align=left><font face=Verdana>　　通常我们可以使用例如To、From、Subject等这样标准的邮件头来拒收垃圾邮件。在mail.cf中加入一行：header_checks = regexp:/etc/postfix/header_checks，它告诉postfix读取名为/etc/postfix/reject-headers的文件， 因为缺省地，postfix不进行信头过滤。</font></p>
                        <p align=left><font face=Verdana>　　格式是：regexp REJECT ；其中regexp是常规表达式，下面是一个标准的/etc/postfix/reject-headers文件其中一般以下包括内容：</font></p>
                        <p align=left><font face=Verdana>　　/^To You @xoom\.com $/ REJECT</font></p>
                        <p align=left><font face=Verdana>　　/^From mailer-daemon @myclient.com $ / REJECT</font></p>
                        <p align=left><font face=Verdana>　　/^Subject: Make menoey fast / REJECT<br>　　以上三行分别说明： </font></p>
                        <p align=left></p>
                        <p align=left><font face=Verdana>　　1、拒收邮件头中包括字符串：You @xoom\.com 的邮件。</font></p>
                        <p align=left><font face=Verdana>　　2、拒收来自mailer-daemon @myclient.com的邮件。</font></p>
                        <p align=left><font face=Verdana>　　3、拒收邮件主题：包括Make menoey fast内容的邮件。</font></p>
                        <p align=left>　　2、 通过阻止IP地址或主机名方式访问邮件服务器来拒收邮件：</p>
                        <p align=left>　　（1）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在main.cf配置文件中使用以下行定义网络地址&#8220;</p>
                        <p align=left>　　# mynetwork=192.168.1.0/24</p>
                        <p align=left>　　表示除非客户端的ip地址符合$mynetworks参数定义的范围则接受该客户端的连接请求，才转发该邮件。</p>
                        <p align=left>　　（2）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加一行拒绝本地网络以外的主机访问本地邮件服务器：</p>
                        <p align=left>　　smtpd_client_restrictions = permit_mynetworks, reject_unknown_client</p>
                        <p align=left>　　（3）在postfix中添加RBL功能</p>
                        <p align=left>　　RBL（Realtime Blackhole List）是实时黑名单。国外有一些机构提供RBL服务，它们把收集到的专发垃圾邮件的IP地址加入他们的黑名单，我们只要在postfix中加入RBL认证功能，就会使我们的邮件服务器在每次收信时都自动到RBL服务器上去查实，如果信件来源于黑名单，则postfix会拒收邮件，从而少受垃圾邮件之苦。通常在mail.cf加入</p>
                        <p align=left>　　map_rb1_domains=mail-abuse.org</p>
                        <p align=left>　　smtp_client_restrictions=reject_map1_rb1</p>
                        <p align=left>　　其中第一行设置需要联系得到的RBL列表的所有主机，接着设置需要进行应用的限制。然后存盘，从新启动postfix服务器。</p>
                        <p align=left>　　国外比较有名的RBL是http//www.ordb.org，他们的RBL可免费使用，去年国内的http://anti-spam.org.cn也提供类似的服务，但它必须先注册才能使用免费。</p>
                        <p align=left>　　另外垃圾邮件的防范必须掌握好尺度，postfix本身提供了header_check、body_check、access、classes等方式来拒绝邮件，可以参考如下地址的样例，结合自己的情况进行修改也能阻止一部分垃圾邮件： <br>　　<a href="http://www.securitysage.com/guides/postfix_uce_header.html"><font color=#000000>http://www.securitysage.com/guides/postfix_uce_header.html</font></a> <br>　　<a href="http://www.securitysage.com/guides/postfix_uce_body.html"><font color=#000000>http://www.securitysage.com/guides/postfix_uce_body.html</font></a> <br>　　<a href="http://www.securitysage.com/guides/postfix_uce_access.html"><font color=#000000>http://www.securitysage.com/guides/postfix_uce_access.html</font></a> <br>　　<a href="http://www.securitysage.com/guides/postfix_uce_class.html"><font color=#000000>http://www.securitysage.com/guides/postfix_uce_class.html</font></a>&nbsp;<br>&nbsp;　　不过以上配置文件需要管理员根据自己情况手工进行修改，如果直接采用的话，那么国内很多邮件你将收不到。</p>
                        <p align=left>　　二、安装IMSS </p>
                        <p align=left><font face=Verdana><strong>　　趋势科技</strong></font>的IMSS（InterS<font face=Verdana><strong>ca</strong></font>n Messaging Security Suite）版整合了垃圾邮件防治服务SPS（Spam Prevention Solution）2.0版。一般来说，过滤服务器上的垃圾邮件主要采取如下两种方法：一是根据设置的规则直接拒收垃圾邮件；二是将邮件接收下来后再实施过滤。相比来看，前一种方法具有更高的效率，对邮件直接拒收，既节省网络带宽，又可减小服务器的性能开销。但是，这样做常常容易&#8220;殃及无辜&#8221;，使邮件用户丢失信件。后一种方法尽管效率不高，却可能减少出错的频率。如果服务器首先对接收下来的邮件进行有效分析，然后再交由用户进行选择，那么用户就不会为E-mail的无故丢失而烦恼。IMSS属于后者。<br>IMSS主要功能： </p>
                        <p align=left></p>
                        <p align=left><font face=Verdana>　　1. 利用数据库对比实现垃圾邮件过滤 ：提供被动式的垃圾邮件拦阻方式，利用建立垃圾邮件的黑名单数据库，根据来源的IP地址、网域，寄件人的电子邮件地址或是内容、标头所含的关</font><font face=Verdana>键词等做为数据库的基础。再将寄达的电子邮件与这已知的垃圾邮件数据库比对，藉以判别是否为垃圾邮件然后再来做拦阻的动作</font></p>
                        <p align=left>　　2. 智能型判断过滤垃圾邮件 ：提供启发式（Heuristic）扫描引擎，实现主动式的智能拦阻方式，根据邮件的多项特征，包括内容、标头、格式等来判断这封email会不会是封垃圾邮件，再来针对这封电子邮件做处理。可以用来辨识和监测已识别及未识别的新型垃圾邮件。</p>
                        <p align=left>　　3. 支持弹性设定垃圾邮件过滤器规则 ：为了规避误判风险，当SPS检测出垃圾邮件之后，还会依照确信程度的不同分作四种等级，再依据设定进行&#8220;只做标记&#8221;、&#8220;隔离邮件&#8221;及&#8220;直接删除&#8221;操作。</p>
                        <p align=left>　　4. 支持黑名单及白名单功能 ：支持黑名单（恶意邮件地址）及白名单（可信邮件地址）功能 。可以针对邮件来源网域，寄件者甚至是电子邮件本身的关键词来做特别处理的动作。这项功能可以实现针对某些网域或是寄件者的信件设定规则，不仅要严加看管，必要情况下可以直接列入拒绝往来列表。</p>
                        <p align=left>　　5. 实现与IMSS邮件病毒过滤网关集成： 通过产品的深度集成，可以实现多种判别条件的组合，能够更准确、更高效地进行网关级的邮件过滤，更完善地保护企业内部网络资源。</p>
                        <p align=left>　　6. 多平台支持（Windows 2000/2003、Linux、Unix）。</p>
                        <p align=left>　　硬件配置：CPU：<font face=Verdana><strong>Intel</strong></font> Pentium III processor 1 GHz 以上处理器,Memory：1 GB RAM,Disk Space：最小 2 GB 硬盘空间.交换空间2GB。</p>
                        <p align=left>　　1．&nbsp; 修改/etc/postfix/main.cf中如下参数，更改为：</p>
                        <p align=left>　　myhostname = trendmicro.com.cn</p>
                        <p align=left>　　mydomain = trendmicro.com.cn</p>
                        <p align=left>　　myorigin = trendmicro.com.cn</p>
                        <p align=left>　　inet_interfaces＝all</p>
                        <p align=left>　　mydestination = trendmicro.com.cn</p>
                        <p align=left>　　local_recipient_maps =</p>
                        <p align=left>　　/黑色域名部分请填写对应的domain name.</p>
                        <p align=left>&nbsp;　　2．&nbsp; 在 /var/spool/postfix目录下新建etc目录，并运行：</p>
                        <p align=left>　　# cp /etc/resolv.conf /var/spool/postfix/etc/</p>
                        <p align=left>　　3、下载安装IMSS 5.5</p>
                        <p align=left>　　下载之前需要到软件官方网站，注册并且得到一个AC—CODE，您需要提供以上激活码以得到病毒码及其他安全补丁的下载.下载链接：<a href="http://www.trendmicro.com/ftp/products/interscan/imss55linux1064.tar.gz"><font color=#000000>http://www.trendmicro.com/ftp/products/interscan/imss55linux1064.tar.gz</font></a> </p>
                        <p align=left>　　将下载文件拷贝到一个临时目录/tmp中。</p>
                        <p align=left>　　# tar vxf imss55linux1064.tar.gz</p>
                        <p align=left>　　#make;make install</p>
                        <p align=left>　　#./isinst </p>
                        <p align=left>　　系统提供了一个交换式的命令行界面，安装中请选择支持postfix，并根据实际情况确定是否安装集中管理平台（TMCM）。安装结束系统提示可以打开Web管理的IP地址和端口号：见图2。</p>
                        <p align=left><img src="http://www.chinaemail.com.cn/server/UploadFiles_2618/200604/20060412112840306.jpg" border=0 twffan="done"><br>　　图2 IMSS 5.5 安装完成<br>　　4、命令行下的参数配置： </font></p>
                        <p align=left></p>
                        <p align=left><font face=Verdana>　　1、/etc/postfix/main.cf文件末尾添加如下内容：</font></p>
                        <p align=left><font face=Verdana>　　default_process_limit=200</font></p>
                        <p align=left><font face=Verdana>　　imss_timeout=10m</font></p>
                        <p align=left><font face=Verdana>　　imss_connect_timeout=1s</font></p>
                        <p align=left><font face=Verdana>　　content_filter = imss:localhost:10025</font></p>
                        <p align=left><font face=Verdana>　　imss_destination_recipient_limit=200</font></p>
                        <p align=left><font face=Verdana>　　imss_destination_concurrency_limit=20</font></p>
                        <p align=left><font face=Verdana>&nbsp;　　2、在/etc/postfix/master.cf文件末尾添加以下内容：</font></p>
                        <p align=left><font face=Verdana>　　#IMSS: content filter smtp transport "imss" for IMSS</font></p>
                        <p align=left><font face=Verdana>　　imss&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unix&nbsp; -&nbsp;&nbsp; -&nbsp;&nbsp; n&nbsp;&nbsp; -&nbsp;&nbsp; -&nbsp;&nbsp; smtp</font></p>
                        <p align=left><font face=Verdana>　　-o disable_dns_lookups=yes</font></p>
                        <p align=left><font face=Verdana>　　-o smtp_connect_timeout=$imss_connect_timeout</font></p>
                        <p align=left><font face=Verdana>　　-o smtp_data_done_timeout=$imss_timeout</font></p>
                        <p align=left><font face=Verdana>　　#IMSS: content filter loop back smtpd</font></p>
                        <p align=left><font face=Verdana>l　　ocalhost:10026&nbsp;&nbsp;&nbsp;&nbsp; inet&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; smtpd</font></p>
                        <p align=left><font face=Verdana>　　-o content_filter=</font></p>
                        <p align=left><font face=Verdana>　　-o smtpd_timeout=$imss_timeout</font></p>
                        <p align=left><font face=Verdana>　　-o local_recipient_maps=</font></p>
                        <p align=left><font face=Verdana>　　-o myhostname=localhost.$mydomain</font></p>
                        <p align=left><font face=Verdana>　　3．&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Relay 控制</font></p>
                        <p align=left><font face=Verdana>　　a．&nbsp; 允许Relay的Domain设置：</font></p>
                        <p align=left><font face=Verdana>　　编辑/etc/postfix/main.cf文件，在如下位置添加允许的任意Relay的Domain，如：</font></p>
                        <p align=left><font face=Verdana>　　relay_domains =&nbsp; 263.net</font></p>
                        <p align=left><font face=Verdana>　　b．&nbsp; 允许接受的Domain设置：</font></p>
                        <p align=left><font face=Verdana>　　编辑/etc/postfix/main.cf文件，在如下位置添加允许接受的Domain</font></p>
                        <p align=left><font face=Verdana>　　mydestination = trendmicro.com.cn</font></p>
                        <p align=left><font face=Verdana>　　c．&nbsp; 不受Relay限制的地址设置</font></p>
                        <p align=left><font face=Verdana>&nbsp;&nbsp;&nbsp; 编辑/etc/postfix/main.cf文件，在如下位置添加允许接受的Domain</font></p>
                        <p align=left><font face=Verdana>&nbsp;&nbsp;&nbsp; mynetworks = 10.11.240.0/24, 127.0.0.1</font></p>
                        <p align=left><font face=Verdana>　　说明：所谓Relay就是指别人能用这台SMTP邮件服务器，给任何人发信，这样别有用心的垃圾发送者可以使用笔者单位的这台邮件服务器大量发送垃圾邮件，而最后别人投诉的不是垃圾发送者，而是单位的服务器。</font></p>
                        <p align=left><font face=Verdana>　　参数relay_domains &amp; mydestination的主要区别在于：</font></p>
                        <p align=left><font face=Verdana>　　Postfix会转发目的地符合 $relay_domains及其子域的邮件；</font></p>
                        <p align=left><font face=Verdana>　　Postfix会接受目的地符合 $mydestination的邮件，并且在没有smart host的情况下尝试对这些域进行本地落地处理，因而，为了能正常的接受这些邮件，一定要对齐设置smart host；IMSS UNIX的Relay 控制界面设置中的域，即是$mydestination参数值，因而，一定要在IMSS的Domain-Based Delivery中做相应Deliver设置。<br></p>
                        <p align=left><font face=Verdana>　　5、重新启动Postfix服务器：</font></p>
                        <p align=left><font face=Verdana>　　#postfix start</font></p>
                        <p align=left><font face=Verdana>　　重新让postfix读取更改后的配置只需运行&#8220;postfix reload&#8221;即可。</font></p>
                        <p align=left><font face=Verdana>　　打开服务器的8081端口：</font></p>
                        <p align=left><font face=Verdana>　　# iptables -A FORWARD -i eth0 -p tcp --dport 8081 -j ACCEPT</font></p>
                        <p align=left><font face=Verdana>　　iptables -A FORWARD -i eth0 -p udp --dport 8081 -j ACCEPT</font></p>
                        <p align=left><font face=Verdana></font></p>
                        <p align=left><font face=Verdana>　　&nbsp;6、启用Web方式管理：</font></p>
                        <p align=left><font face=Verdana>　　服务器从新启动完毕，可以进行Web方式管理，开Web浏览器中输入：<a href="http://yourip:8081/IMSS.html"><font color=#000000>http://yourip:8081/IMSS.html</font></a>或者http://yourhost:8445/IMSS.html 即可。第一次进入Web界面时系统提示输入密码，此时密码是空的，可以直接用鼠标点击&#8220;Enter&#8221;键进入Web管理界面后，马上设定管理员密码。见图3。</font></p>
                        <p align=left><font face=Verdana></font>&nbsp;</p>
                        <p align=left><font face=Verdana><img src="http://www.chinaemail.com.cn/server/UploadFiles_2618/200604/20060412112841173.jpg" border=0 twffan="done"></font></p>
                        <p align=left><font face=Verdana>图－3 首次登陆界面</font></p>
                        <p align=left><font face=Verdana>　　点击&#8220;Policy Manager&#8221;选项，下面就可以制定自己的邮件服务器邮件管理策略，见图4。</font></p>
                        <p align=left><font face=Verdana><img src="http://www.chinaemail.com.cn/server/UploadFiles_2618/200604/20060412112841398.jpg" border=0 twffan="done"></font></p>
                        <p align=left><font face=Verdana>图－4 基于Web方式的IMSS 5.5的邮件管理策略界面<br>　　5 、软件升级 </font></p>
                        <p align=left></p>
                        <p align=left><font face=Verdana>　　可以采取两种方法Web方式和命令行，这里笔者喜欢在命令行下操作：</font></p>
                        <p align=left><font face=Verdana>　　下载升级布丁，链接：<a href="http://www.trendmicro.com/ftp/products/"><font color=#000000>http://www.trendmicro.com/ftp/products/</font></a> patches/isem522-imss55-linux-patch1.tar.gz </font></p>
                        <p align=left><font face=Verdana>　　＃mv isem522-imss55-linux-patch1.tar.gz /tmp</font></p>
                        <p align=left><font face=Verdana>　　#cd /tmp</font></p>
                        <p align=left><font face=Verdana>　　#gunzip isem522-imss55-linux-patch1.tar.gz</font></p>
                        <p align=left><font face=Verdana>　　#./patchinstall install</font></p>
                        <p align=left><font face=Verdana>　　软件升级过程中IMSS5.5服务将暂时中止，升级后系统会自动启动IMSS 5.5服务。见图－5。</font></p>
                        <p align=left><font face=Verdana><img src="http://www.chinaemail.com.cn/server/UploadFiles_2618/200604/20060412112841855.jpg" border=0 twffan="done"></font></p>
                        <p align=left><font face=Verdana>图5 升级IMSS数据库</font></p>
                        <p align=left><font face=Verdana>　　三、使用专用工具防止垃圾邮件</font></p>
                        <p align=left><font face=Verdana>　　还可以利用其他的专用工具来防止垃圾邮件，比较著名的有由Matt Sergeant、Craig Hughes和Justin Mason于发布的SpamAssassin（SA）。目前最新版本是3.0.2，它是较为流行的反垃圾邮件软件，据SpamAssassin供应商 Deersoft的统计，目前大约有3万台Unix服务器上使用了SpamAssassin。SpamAssassin利用Perl语言来对邮件内容进行规则匹配，从而达到判断过滤垃圾邮件的目的。它的判断方式是基于评分的方式，也就是说如果这封邮件符合某条规则，则给与一定分值；当累计的分值超过了一定限度时，则判定该邮件为垃圾邮件。对Sendmail、Qmail、Postfix和Exim等各种邮件平台都适用。当它被最终用户或系统管理员调用时，它可以方便地与大多数流行的邮件处理系统进行接口互连。SpamAssassin在对一封信件应用了各项规则之后，生成一个分值来表示其为垃圾邮件的可能性。它可以设置上百条规则，包括对邮件头的处理、对邮件内容的处理及对邮件结构的处理等。每条规则都对应一个分值（可正、可负），每封信件的分值就是所匹配规则的分值之和。如果分值为负，表示这封信件是正常的；相反，如果分值为正，则表示信件有<a class=channel_keylink href="http://bbs.chinaemail.com.cn/" target=_blank><font color=#000000>问题</font></a>。如果超过了某个默认的分值，过滤器就会标识其可能为垃圾邮件，然后交由用户做出最终抉择。SpamAssassin的安装过程比较简单。启动SpamAssassin服务器：</font></p>
                        <p align=left><font face=Verdana>　　# service spamassassin start （启动SpamAssassin服务器）</font></p>
                        <p align=left><font face=Verdana>　　Starting spamd:[&nbsp; 确定&nbsp; ]</font></p>
                        <p align=left><font face=Verdana>　　配置过程：</font></p>
                        <p align=left><font face=Verdana>　　SpamAssassin预设了许多默认规则，可以在/usr/share/spamassassin下找到，用户想添加自己的规则，可以配置通过/etc/mail/spamassassin/local.cf文件实现。要在其中添加白名单（即可以确信不会发送垃圾邮件的发件人列表）。设置代码如下：</font></p>
                        <p align=left><font face=Verdana>　　whitelist_from_rcvd&nbsp; people@basic.com</font></p>
                        <p align=left><font face=Verdana>　　whitelist_from_rcvd&nbsp; @ people.com</font></p>
                        <p align=left><font face=Verdana>　　以上两条规则将people@basic.com 邮箱和@ people.com 整个域加入了白名单。下面还要把SpamAssassin与Sendmail（此处以Postfix为例、Qmail略有不同）整合在一起。最简单的方法是使用procmail来调用SpamAssassin过滤器。procmail来调用SpamAssassin的过程见图6。</font></p>
                        <p align=left><font face=Verdana><img src="http://www.chinaemail.com.cn/server/UploadFiles_2618/200604/20060412112841647.jpg" border=0 twffan="done"></font></p>
                        <p align=left><font face=Verdana>　　图6 procmail来调用SpamAssassin的过程<br>　　添加以下内容到/etc/procmailrc文件： </font></p>
                        <p align=left></p>
                        <p align=left><font face=Verdana>:0fw </font></p>
                        <p align=left><font face=Verdana>| /usr/bin/spamassassin</font></p>
                        <p align=left><font face=Verdana>：0</font></p>
                        <p align=left><font face=Verdana>* X-Spam-Status: Yes </p>
                        <p align=left></font><font face=Verdana>spam</font></p>
                        <p align=left><font face=Verdana>　　如果希望SpamAssassin不检查大邮件，可以对其做出限制，添加一行： </font></p>
                        <p align=left><font face=Verdana>:0fw * &lt; 1000000 | /usr/bin/spamassassin</font></p>
                        <p align=left><font face=Verdana>　　这段代码表示把邮件检查的大小限制在1000K字节以内。SpamAssassin还提供了一个专门的spamd后台守护程序，可以设置为系统启动时自动启动它。在Mail-SpamAssassin-3.-0.2/spamd/下有一个redhat-rc-script.sh脚本，将此脚本放入Red Hat的启动目录/etc/rc.d/init.d/下即可。同时，还需要对/etc/procmailrc文件做如下修改： </font></p>
                        <p align=left><font face=Verdana>:0fw</font></p>
                        <p align=left><font face=Verdana>| /usr/bin/spamc -s 100000</font></p>
                        <p align=left><font face=Verdana>　　这样就可以通过控制spamd进程来调整过滤器的运行状态。配置完成后，可以发邮件进行测试。如果看到在邮件头出现与spam检查相关的几项内容，表示SpamAssassin已经开始发挥作用。</font></p>
                        <p align=left><font face=Verdana>　　除了设置内部的规则之外，SpamAssassin也可以访问其它外部的垃圾邮件过滤规则集，这样可以进一步增强其适用性。Chinese_rules.cf是用于垃圾邮件过滤系统SpamAssassin的中文垃圾邮件过滤规则集。由于以前没有中文的过滤规则集，SpamAssassin对中文邮件过滤的准确性不高。CCERT反垃圾邮件研究小组推出了第一个基于SpamAssassin的中文垃圾邮件过滤规则集Chinese_rules.cf。该规则集每周更新一次。把Chinese_rules.cf复制到/usr/share/spamassassin配置文档中的命令：</font></p>
                        <p align=left><font face=Verdana># wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf</font></p>
                        <p align=left><font face=Verdana>　　自动更新：</font></p>
                        <p align=left><font face=Verdana>　　CCERT每周更新一次规则集，更新使用CCERT反垃圾邮件服务在6个月内处理过的垃圾邮件为样本。经常更新Chinese_rules.cf会使过滤效果更好。</font></p>
                        <p align=left><font face=Verdana>　　Linux有一个称为crond的守护程序，主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容，并在设定的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。例如用 crontab命令实现每周一08:35自动更新：</font></p>
                        <p align=left><font face=Verdana>　　首先建立一个文件，文件名称myproject(名称自己设定)：</font></p>
                        <p align=left><font face=Verdana>＃crontab －e</font></p>
                        <p align=left><font face=Verdana>　　文件内容：</font></p>
                        <p align=left><font face=Verdana>　　35 08 * * 1 wget -N -P /usr/share/spamassassin 　　<a href="http://www.ccert.edu.cn/spam/sa/Chinese_rules.cf"><font color=#000000>www.ccert.edu.cn/spam/sa/Chinese_rules.cf</font></a>; /etc/init.d/init-script restart </font><font face=Verdana>用vi编辑后存盘退出。</font></p>
                        <p align=left><font face=Verdana>　　（3）使用 crontab命令添加到任务列表中：</font></p>
                        <p align=left><font face=Verdana>　　＃crontab myproject</font></p>
                        <p align=left><font face=Verdana>　　这样Linux服务器会在每星期一的8点35分会自动下载Chinese_rules.cf更新规则。</font></p>
                        <p align=left><font face=Verdana>　　SpamAssassin使用基于规则的垃圾邮件过滤技术，比分布式黑名单运行得更快，因为分布式黑名单需要查询网络服务器。对大多数用户而言，它能捕捉几乎所有的垃圾邮件，而不需要隔离合法邮件。实际上它还提供了无限的调整和定制选项。</font></p>
                        <p align=left><font face=Verdana>　　四、其他措施</font></p>
                        <p align=left><font face=Verdana>　　1.隐藏邮件服务器IP地址</font></p>
                        <p align=left><font face=Verdana>　　如果网络中有专门发送邮件的中央邮件服务器，为许多主机提供访问，那么必须隐藏邮件地址的主机名部分，（以postfix邮件服务器为例）例如一条名为：pc-jok.cao.com的主机上有一个jok用户那么它的邮件名称是：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#111;&#107;&#64;&#112;&#99;&#45;&#106;&#111;&#107;&#46;&#99;&#97;&#111;&#46;&#99;&#111;&#109;"><font color=#000000>jok@pc-jok.cao.com</font></a> main.cf加入两行：</font></p>
                        <p align=left><font face=Verdana>masquerade_domain=$mydomian</font></p>
                        <p align=left><font face=Verdana>masquerade_exceptions=root</font></p>
                        <p align=left><font face=Verdana>　　第一行通知postfix邮件服务器对所在德 域允许地址化装，通过$mydomian变量完成，这样jok@pc-jok.cao.com变为jok@cao.com，第二行将root用户排除，即不对root用户伪装。</font></p>
                        <p align=left><font face=Verdana>　　&nbsp;2.防范DOS攻击：</font></p>
                        <p align=left><font face=Verdana>　　DOS（拒绝服务攻击）一段时间以来成为许多单位邮件服务器的最大杀手。对于邮件服务器的拒绝服务攻击原理很简单，就是不断地向邮件服务器发送大量的邮件，直到超过最大容量而崩溃为止。拒绝服务攻击有时并非有针对性的黑客行为，现在的病毒常常会利用自身的SMTP引擎，向感染电脑里的存在的地址狂发大量邮件。如果中小企业认为自己的公司小，不会成为攻击目标，这种想法已经不现实了。对于中小企业来说，要预防DOS攻击比大型企业要容易，因为小型企业往往不会有太多的邮件来往，我们可以根据业务量的大小，限制每个连接的邮件数，以及每封邮件的收件人数。这样，用户对于DOS攻击就可以做到尽早地发现并采取措施，而不会等到服务器崩溃的时候才发现被人实施了DOS攻击。步骤如下：</font></p>
                        <p align=left><font face=Verdana>　　2. 限制服务器使用的进程数目</font></p>
                        <p align=left><font face=Verdana>　　可以通过指定/etc/postfix/main.cf文件的下列参数来控制使用的并发进程总量：</font></p>
                        <p align=left><font face=Verdana>　　default_process_limit = 50 </font></p>
                        <p align=left><font face=Verdana>　　这样服务器被允许同时允许60个并发进程（例如smtp客户端、smtp服务器端和本地分发）。如果希望增加同时接受1000条信息，可以修改 /etc/postfix/ master.cf文件，使smtp服务的最大进程达到1000,如下所示：</font></p>
                        <p align=left><font face=Verdana>#============================================================= </font></p>
                        <p align=left><font face=Verdana># service type private unpriv chroot wakeup maxproc command + args </font></p>
                        <p align=left><font face=Verdana># (yes) (yes) (yes) (never) (60) </font></p>
                        <p align=left><font face=Verdana># =========================================== </font></p>
                        <p align=left><font face=Verdana>smtp inet n - n - 1000 smtpd </font></p>
                        <p align=left><font face=Verdana>&nbsp;　　3.控制最大邮件尺寸</font></p>
                        <p align=left><font face=Verdana>可以修改/etc/postfix/main.cf如下参数控制邮件尺寸 </font></p>
                        <p align=left><font face=Verdana>message_size_limit = 1073741824</font></p>
                        <p align=left><font face=Verdana>这样服务器可以处理最大邮件尺寸是1073741824字节 (10兆).</font></p>
                        <p align=left><font face=Verdana>　　4. 控制同时发送一个远程服务器的邮件数量 </font></p>
                        <p align=left><font face=Verdana>同时向远程服务器发送太多SMTP连接是不合理的，也是危险的（可能会被认为是<br>发送垃圾邮件）。</font><font face=Verdana>一些大的ISP站点（AOL、 Yahoo!、 Hotmail）通常要求优<br>化等到许可才能使用发送并发连接。Postfix 也能通过下面参数设定一个站点的最<br>大并发连接数量： </font></p>
                        <p align=left><font face=Verdana>default_destination_concurrency_limit = 20 </font></p>
                        <p align=left><font face=Verdana>&nbsp;这样使到达单一站点的并发连接数量不能超过20个。</font></p>
                        <p align=left><font face=Verdana>　　5.安装防病毒软件：</font></p>
                        <p align=left><font face=Verdana>F-Prot Antivirus软件包安装和配置过程：软件包格式： fp-linux-ws.rpm</font></p>
                        <p align=left><font face=Verdana>软件包的大小（KB）：3970KB，下载地址：<br>http://files.f-prot.com/files/linux-x86/fp-linux-ws.rpm</font></p>
                        <p align=left><font face=Verdana>安装F-Prot Antivirus软件包前，请先启动SpamAssassin服务器：</font></p>
                        <p align=left><font face=Verdana>Wget&nbsp; http://files.f-prot.com/files/linux-x86/fp-linux-ws.rpm</font></p>
                        <p align=left><font face=Verdana>Wget －ivh fp-linux-ws.rpm</font></p>
                        <p align=left><font face=Verdana>&nbsp;升级的F-Prot Antivirus病毒库的操作：</font></p>
                        <p align=left><font face=Verdana># cd /usr/local/f-prot/tools/</font></p>
                        <p align=left><font face=Verdana># ./check-updates.pl （升级命令）</font></p>
                        <p align=left><font face=Verdana>***************************************</font></p>
                        <p align=left><font face=Verdana>* F-Prot Antivirus Updater&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *</font></p>
                        <p align=left><font face=Verdana>***************************************</font></p>
                        <p align=left><font face=Verdana>Nothing to be done...</font></p>
                        <p align=left><font face=Verdana>　　总结：Postfix是目前比较流行的，拥有相当好的安全性和高效率的邮件系统。<br>Postfix自身带了很多反垃圾邮件的功能可以阻止一部</font></p>
                        </font></span></div>
                        </div>
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.cnitblog.com/snfnvtk/aggbug/46493.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/snfnvtk/" target="_blank">network</a> 2008-07-09 16:22 <a href="http://www.cnitblog.com/snfnvtk/archive/2008/07/09/46493.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>