﻿<?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博客-linus2k-随笔分类-邮件技术</title><link>http://www.cnitblog.com/linus2k/category/7018.html</link><description>君子常当当的博客</description><language>zh-cn</language><lastBuildDate>Mon, 26 Sep 2011 14:53:07 GMT</lastBuildDate><pubDate>Mon, 26 Sep 2011 14:53:07 GMT</pubDate><ttl>60</ttl><item><title>纪念记忆力衰退之Postfix的header_checks/body_checks功能补充说明(if-endif)</title><link>http://www.cnitblog.com/linus2k/archive/2010/12/17/72361.html</link><dc:creator>君子常当当</dc:creator><author>君子常当当</author><pubDate>Fri, 17 Dec 2010 01:39:00 GMT</pubDate><guid>http://www.cnitblog.com/linus2k/archive/2010/12/17/72361.html</guid><wfw:comment>http://www.cnitblog.com/linus2k/comments/72361.html</wfw:comment><comments>http://www.cnitblog.com/linus2k/archive/2010/12/17/72361.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/linus2k/comments/commentRss/72361.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/linus2k/services/trackbacks/72361.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: "These rules operate on one logical message header or one body line at a time, and a decision made for one line is not carried over to the next line"<br><br>这些规则一次只检视一条表头(header_checks规则)或一行内文(body_checks规则)，你不能把某一行的检查结果带到另一行去。&nbsp;&nbsp;<a href='http://www.cnitblog.com/linus2k/archive/2010/12/17/72361.html'>阅读全文</a><img src ="http://www.cnitblog.com/linus2k/aggbug/72361.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/linus2k/" target="_blank">君子常当当</a> 2010-12-17 09:39 <a href="http://www.cnitblog.com/linus2k/archive/2010/12/17/72361.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>纪念记忆力衰退之Postfix header_checks正则表达式规则</title><link>http://www.cnitblog.com/linus2k/archive/2010/01/28/64034.html</link><dc:creator>君子常当当</dc:creator><author>君子常当当</author><pubDate>Thu, 28 Jan 2010 10:26:00 GMT</pubDate><guid>http://www.cnitblog.com/linus2k/archive/2010/01/28/64034.html</guid><wfw:comment>http://www.cnitblog.com/linus2k/comments/64034.html</wfw:comment><comments>http://www.cnitblog.com/linus2k/archive/2010/01/28/64034.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/linus2k/comments/commentRss/64034.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/linus2k/services/trackbacks/64034.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset="utf-8"">
<meta name="ProgId" content="Word.Document">
<meta name="Generator" content="Microsoft Word 11">
<meta name="Originator" content="Microsoft Word 11">
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CWEILIU%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml>
<w:worddocument>
<w:view>Normal</w:view>
<w:zoom>0</w:zoom>
<w:punctuationkerning/>
<w:drawinggridverticalspacing>7.8 磅</w:drawinggridverticalspacing>
<w:displayhorizontaldrawinggridevery>0</w:displayhorizontaldrawinggridevery>
<w:displayverticaldrawinggridevery>2</w:displayverticaldrawinggridevery>
<w:validateagainstschemas/>
<w:saveifxmlinvalid>false</w:saveifxmlinvalid>
<w:ignoremixedcontent>false</w:ignoremixedcontent>
<w:alwaysshowplaceholdertext>false</w:alwaysshowplaceholdertext>
<w:compatibility>
<w:spaceforul/>
<w:balancesinglebytedoublebytewidth/>
<w:donotleavebackslashalone/>
<w:ultrailspace/>
<w:donotexpandshiftreturn/>
<w:adjustlineheightintable/>
<w:breakwrappedtables/>
<w:snaptogridincell/>
<w:wraptextwithpunct/>
<w:useasianbreakrules/>
<w:dontgrowautofit/>
<w:usefelayout/>
</w:compatibility>
<w:browserlevel>MicrosoftInternetExplorer4</w:browserlevel>
</w:worddocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:latentstyles deflockedstate="false" latentstylecount="156">
</w:latentstyles>
</xml><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
mso-pagination:none;
font-size:10.5pt;
mso-bidi-font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:宋体;
mso-font-kerning:1.0pt;}
/* Page Definitions */
@page
{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:36.0pt;
mso-footer-margin:36.0pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
<p class="MsoNormal" style="text-align: left;" align="left"><strong><span style="font-size: 24pt; font-family: 宋体;" lang="EN-US">Postfix header_checks</span></strong><strong><span style="font-size: 24pt; font-family: 宋体;">正则表达式规则<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<table class="MsoNormalTable" border="0" cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td style="padding: 0cm;">
            <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">在规则詏定文件里面<span lang="EN-US"> ( </span>就是<span lang="EN-US"> header_checks </span>与<span lang="EN-US"> body_checks ) </span>只要是<span lang="EN-US"> # </span>代表该行为批注，系统或直接略过；<span lang="EN-US"><br>
            </span>所谓的过瀡规则即是<span lang="EN-US"> header </span>与<span lang="EN-US"> body </span>里面的『阷锁字』，例如我不想让<span lang="EN-US"> 192.168.100.5 </span>这个<span lang="EN-US"> ip </span>寄件到我的 <span lang="EN-US">mail server </span>，那黱这个<span lang="EN-US"> from:.* 192.168.100.5 </span>就是一条规则了！那个<span lang="EN-US"> .* </span>代表什黱意思呢？他代表『没有或多个任意字符』的意思～更详细的说明请参考各个正规表示法的标准说明了！常见的正规表示法特殊字符与意义为：<span lang="EN-US"><br>
            </span>『<span lang="EN-US">.</span>』：代表任意字符<span lang="EN-US"><br>
            </span>『』：代表跳脱字符，可以让后面接的一个字符变成一般字符；<span lang="EN-US"><br>
            </span>『<span lang="EN-US">*</span>』：代表重复零个或多个前一个<span lang="EN-US"> re </span>的字符，例如『<span lang="EN-US">.*</span>』则代表任意零个或多个字符的意思；<span lang="EN-US"><br>
            </span>『<span lang="EN-US">^</span>』：代表『这一行的第一个字符需要符合规则』的意思；<span lang="EN-US"><br>
            </span>『<span lang="EN-US">$</span>』：代表这一行的最后一个字符必须要符合这个字符的意思，<span lang="EN-US"><br>
            </span>单一规则的詏定方法为：<span lang="EN-US"><br>
            /</span>规则<span lang="EN-US">/&nbsp;&nbsp;</span>动作<span lang="EN-US">&nbsp;&nbsp;</span>显示在登录文件里面的讯息<span lang="EN-US"><br>
            </span>请注意，要使用两个『<span lang="EN-US"> / </span>』将规则包起来喔！举个例子来说明：例如我想要<span lang="EN-US"> (1)</span>抵挡掉标题为<span lang="EN-US"> a funny game </span>的信件，<span lang="EN-US">(2)</span>乲且在登录文件里面显示<span lang="EN-US"> drop header deny</span>，我可以这样写：<span lang="EN-US"><br>
            /^subject:.*a funny game/&nbsp;&nbsp;discard drop header deny<br>
            <br>
            </span>在颊詏的规则当中，大小写是视为相同的；<span lang="EN-US"><br>
            </span>如果有两条以上的规则，那黱就必须要使用<span lang="EN-US"> if </span>了，例如底下的案例：<span lang="EN-US"><br>
            if /^content-type:.*audio.*x-midi/<br>
            /^.*name=.*.scr/&nbsp;&nbsp;discard&nbsp; &nbsp;drop the header inavalid<br>
            endif<br>
            </span>上面的意思是，当一封邮件里面同时包含『<span lang="EN-US"> content-type: audio.x-midi </span>』与『<span lang="EN-US">name=*.scr</span>』时，该封信件就会被乬弃了！那黱如果有三条以上的规则时呢？呵呵！就是使用多个<span lang="EN-US"> if </span>来适行啦！<span lang="EN-US"><br>
            if /rule1/<br>
            if /rule2/<br>
            /rule3/&nbsp;&nbsp;</span>动作<span lang="EN-US">&nbsp; &nbsp;</span>显示字眼<span lang="EN-US"><br>
            endif<br>
            endif<br>
            </span>不过请特别留意，这个<span lang="EN-US"> if .... endif </span>的詏定我僪在<span lang="EN-US"> 2.x </span>版本上面试过，是没有问题的，不过，已经有很多的朋友提出说，在<span lang="EN-US"> 1.xx </span>版本上面执行时会有问题发生，所以如果您的
            <span lang="EN-US">postfix </span>不是<span lang="EN-US"> 2.xx </span>版本，那黱底下鴅哥列出的两个范例就参考看看即可，不可直接套用喔！<span lang="EN-US"><br>
            </span>阷于动作有底下几个动作：<span lang="EN-US"><br>
            reject </span>：将该封信件退回给原发信者；<span lang="EN-US"><br>
            warn&nbsp; &nbsp;</span>：将信件收下来，但是将该封信的基本赕料记录在登录文件内；<span lang="EN-US"><br>
            discard</span>：将该封信件乬弃，乲不给予原发信者回应！<span lang="EN-US"><br>
            </span>一般来说我是比较喜欢以<span lang="EN-US"> discard </span>将信件直接乬弃的啦！<span lang="EN-US"> ^_^<br>
            </span>此外，请特别留意，在各主要<span lang="EN-US"> linux distribution </span>释出的<span lang="EN-US"> 1.xx </span>版本中，乲无法使用<span lang="EN-US"> discard </span>的规则喔！所以您只能使用<span lang="EN-US"> reject </span>了！<span lang="EN-US"><o:p></o:p></span></span></p>
            </td>
        </tr>
    </tbody>
</table><img src ="http://www.cnitblog.com/linus2k/aggbug/64034.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/linus2k/" target="_blank">君子常当当</a> 2010-01-28 18:26 <a href="http://www.cnitblog.com/linus2k/archive/2010/01/28/64034.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>纪念记忆力衰退之Postfix+Maildrop实现虚拟邮件域</title><link>http://www.cnitblog.com/linus2k/archive/2009/09/07/61289.html</link><dc:creator>君子常当当</dc:creator><author>君子常当当</author><pubDate>Mon, 07 Sep 2009 08:28:00 GMT</pubDate><guid>http://www.cnitblog.com/linus2k/archive/2009/09/07/61289.html</guid><wfw:comment>http://www.cnitblog.com/linus2k/comments/61289.html</wfw:comment><comments>http://www.cnitblog.com/linus2k/archive/2009/09/07/61289.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/linus2k/comments/commentRss/61289.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/linus2k/services/trackbacks/61289.html</trackback:ping><description><![CDATA[<a  href="http://www.cnitblog.com/linus2k/archive/2009/07/09/59956.html" id="viewpost1_TitleUrl">1.courier-authlib中的authmysqlrc配置</a><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">##NAME:&nbsp;MYSQL_LOGIN_FIELD:</span><span style="color: #000000;">0</span><span style="color: #000000;"><br>#<br>#&nbsp;The&nbsp;login&nbsp;id,&nbsp;</span><span style="color: #0000ff;">default</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;id.&nbsp;&nbsp;Basically&nbsp;the&nbsp;query&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">:<br>#<br>#&nbsp;&nbsp;SELECT&nbsp;MYSQL_UID_FIELD,&nbsp;MYSQL_GID_FIELD,&nbsp;<img src="http://www.cnitblog.com/Images/dot.gif">&nbsp;WHERE&nbsp;id</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">loginid</span><span style="color: #000000;">'</span><span style="color: #000000;"><br>#<br><br>MYSQL_LOGIN_FIELD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;concat(user_name,&nbsp;concat(</span><span style="color: #000000;">"</span><span style="color: #000000;">@</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;user_email_domain))<br><br>##NAME:&nbsp;MYSQL_NAME_FIELD:</span><span style="color: #000000;">0</span><span style="color: #000000;"><br>#<br>#&nbsp;The&nbsp;user</span><span style="color: #000000;">'</span><span style="color: #000000;">s&nbsp;name&nbsp;(optional)</span><span style="color: #000000;"><br></span><span style="color: #000000;"><br>MYSQL_NAME_FIELD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;concat(user_name,&nbsp;concat(</span><span style="color: #000000;">"</span><span style="color: #000000;">@</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;user_email_domain))</span></div>
2.postfix中master.cf中的配置<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">maildrop&nbsp;&nbsp;unix&nbsp;&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pipe<br>&nbsp;&nbsp;flags</span><span style="color: #000000;">=</span><span style="color: #000000;">DRhu&nbsp;user</span><span style="color: #000000;">=</span><span style="color: #000000;">vmail:vmail&nbsp;argv</span><span style="color: #000000;">=</span><span style="color: #000000;">maildrop&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">w&nbsp;</span><span style="color: #000000;">90</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">V&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d&nbsp;${user}@${nexthop}&nbsp;${extension}&nbsp;${recipient}&nbsp;${user}&nbsp;${nexthop}</span></div>
3.postfix中main.cf中的配置<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">virtual_transport&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;maildrop<br>maildrop_destination_recipient_limit&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;"><br>maildrop_destination_concurrency_limit&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;"><br>receive_override_options&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;no_address_mappings</span></div>
4.maildrop中maildroprc的配置<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">logfile&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">/var/log/maildrop.log</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>VHOST</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">$HOME/$1/$2</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>MAILDIR</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">$VHOME/Maildir</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>CUSTOM_FILTER</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">$VHOME/.mailfilter</span><span style="color: #000000;">"</span></div>
我与网络上其他配置不同的地方是我的user_name字段值记录用户名，而不记录用户的电子邮件，所以按照网络上的配置方法，无法实现虚拟邮件域，所以需要修改这些，赶紧记录一下，免的忘了，其他的有时间再整理出<br><img src ="http://www.cnitblog.com/linus2k/aggbug/61289.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/linus2k/" target="_blank">君子常当当</a> 2009-09-07 16:28 <a href="http://www.cnitblog.com/linus2k/archive/2009/09/07/61289.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转贴]限制部分Postfix用户只能内部收发的例子（完整版）</title><link>http://www.cnitblog.com/linus2k/archive/2009/06/25/59629.html</link><dc:creator>君子常当当</dc:creator><author>君子常当当</author><pubDate>Thu, 25 Jun 2009 07:12:00 GMT</pubDate><guid>http://www.cnitblog.com/linus2k/archive/2009/06/25/59629.html</guid><wfw:comment>http://www.cnitblog.com/linus2k/comments/59629.html</wfw:comment><comments>http://www.cnitblog.com/linus2k/archive/2009/06/25/59629.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/linus2k/comments/commentRss/59629.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/linus2k/services/trackbacks/59629.html</trackback:ping><description><![CDATA[<br>原来的帖子：http://www.extmail.org/forum/viewthread.php?tid=524 这里实现的功能有些缺陷，对于限制的用户，其实只能对其外发（或者说rcpt to）做限制，而对于任意来信人给其发来的email则没有限制能力，真正的内部收发邮件用户，应该是只允许它和指定的内部域名（用户）联系，对于发向任何外部邮件域，或任意外部邮件域发来的邮件，都是禁止的。<br><br>这里给出一个配置，仅供大家参考。<br><br>配置方法：<br><br>1）在main.cf里定义如下的smtpd_restriction_classes：<br>引用:<br><br>&nbsp;&nbsp;&nbsp; # restrictions<br>&nbsp;&nbsp;&nbsp; smtpd_restriction_classes = local_out_only local_in_only<br>&nbsp;&nbsp;&nbsp; local_out_only = check_recipient_access hash:/etc/postfix/local_domains, reject<br>&nbsp;&nbsp;&nbsp; local_in_only = check_sender_access hash:/etc/postfix/local_domains, reject<br><br>2）将main.cf里的smtpd_recipient_restrctions定义为：<br>引用:<br><br>&nbsp;&nbsp;&nbsp; smtpd_recipient_restrictions =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_sender_access hash:/etc/postfix/local_out_senders<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_recipient_access hash:/etc/postfix/local_in_senders<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; permit_mynetworks,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; permit_sasl_authenticated,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reject_non_fqdn_hostname,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reject_non_fqdn_sender,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reject_non_fqdn_recipient,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reject_unauth_destination,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reject_unauth_pipelining,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reject_invalid_hostname,<br><br>3）编辑/etc/postfix/local_in_senders：<br>引用:<br><br>&nbsp;&nbsp;&nbsp; foo@extmail.org local_in_only<br>&nbsp;&nbsp;&nbsp; bar@extmail.org local_in_only<br><br>4）编辑/etc/postifx/local_out_senders：<br>引用:<br><br>&nbsp;&nbsp;&nbsp; foo@extmail.org local_out_only<br>&nbsp;&nbsp;&nbsp; bar@extmail.org local_out_only<br><br>5）编辑/etc/postfix/local_domains：<br>引用:<br><br>&nbsp;&nbsp;&nbsp; internal.foo.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OK<br>&nbsp;&nbsp;&nbsp; internal.bar.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OK<br><br>6）为3，4，5建立对应的hash文件：<br>引用:<br><br>&nbsp;&nbsp;&nbsp; # postmap hash:/etc/postfix/local_in_senders<br>&nbsp;&nbsp;&nbsp; # postmap hash:/etc/postfix/local_out_senders<br>&nbsp;&nbsp;&nbsp; # postmap hash:/etc/postfix/local_domains<br><br>这样就定义了extmail.org域名里两个用户foo和bar，只允许和internal.foo.com和internel.bar.com 两个内部域的用户来往邮件，对于外部的邮件则没有收或发的能力。如果外部邮件企图给这2个用户发送，则遇到如下错误：<br>引用:<br><br>&nbsp;&nbsp;&nbsp; 554 5.7.1 &lt;foo@extmail.org&gt;: Recipient address rejected: Access denied<br><br>如果这2个内部用户要给外部用户发email，将遇到如下错误：<br>引用:<br><br>&nbsp;&nbsp;&nbsp; 554 5.7.1 &lt;bar@extmail.org&gt;: Sender address rejected: Access denied<br><br>目前这样的配置就可以比较完整的实现内部用户的功能需求了。其实这种配置的方法和之前的帖子道理一样，关键得分清楚什么阶段，调用什么restrictions即可。<br><img src ="http://www.cnitblog.com/linus2k/aggbug/59629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/linus2k/" target="_blank">君子常当当</a> 2009-06-25 15:12 <a href="http://www.cnitblog.com/linus2k/archive/2009/06/25/59629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>纪念记忆力衰退之构建MTA层邮件防火墙</title><link>http://www.cnitblog.com/linus2k/archive/2009/06/25/59628.html</link><dc:creator>君子常当当</dc:creator><author>君子常当当</author><pubDate>Thu, 25 Jun 2009 07:07:00 GMT</pubDate><guid>http://www.cnitblog.com/linus2k/archive/2009/06/25/59628.html</guid><wfw:comment>http://www.cnitblog.com/linus2k/comments/59628.html</wfw:comment><comments>http://www.cnitblog.com/linus2k/archive/2009/06/25/59628.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/linus2k/comments/commentRss/59628.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/linus2k/services/trackbacks/59628.html</trackback:ping><description><![CDATA[构建MTA层<span href="http://www.extmail.org/forum/tag.php?name=%E9%82%AE%E4%BB%B6" onclick="tagshow(event)" class="t_tag">邮件</span>防火墙<br>
<br>
不请自来的邮件,我们叫<span href="http://www.extmail.org/forum/tag.php?name=%E5%9E%83%E5%9C%BE%E9%82%AE%E4%BB%B6" onclick="tagshow(event)" class="t_tag">垃圾邮件</span>,垃圾邮件的危害:<br>
占用<span href="http://www.extmail.org/forum/tag.php?name=%E7%B3%BB%E7%BB%9F" onclick="tagshow(event)" class="t_tag">系统</span>资源,包括硬盘空间和带宽<br>
干扰合法邮件的递送<br>
以第三方名义转发的垃圾邮件,会使宿主收到大量的退信和进入<span href="http://www.extmail.org/forum/tag.php?name=%E9%BB%91%E5%90%8D%E5%8D%95" onclick="tagshow(event)" class="t_tag">黑名单</span><br>
<br>
MTA层邮件防火墙的特点<br>
在垃圾邮件进入队列前,进行阻挡,把对系统的影响减少到最低限度<br>
技术手段简单,效率高<br>
只能阻挡特征比较明显的垃圾邮件<br>
缺少容错性,要结合MDA层信件过滤技术,如:proc<span href="http://www.extmail.org/forum/tag.php?name=mail" onclick="tagshow(event)" class="t_tag">mail</span>,maildrop等<br>
<br>
MTA层邮件防火墙机制<br>
MTA层邮件防火墙基于UBE检查,通过对SMTP对话不同层面的逐一控制,从而起到阻挡垃圾邮件的目的,而阻挡作用是双向性的,如果你想发垃圾邮件的话,要赶快拆除防火墙,以下是防火墙不同层面的描述:<br>
SMTP&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;UBE&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;功能<br>
SERVER and CLIENT&nbsp;&nbsp;smtpd_client_restrictions&nbsp; &nbsp;&nbsp; &nbsp;连接的客户端主机名/地址控制<br>
HELO&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;smtpd_helo_restrictions&nbsp; &nbsp;&nbsp; &nbsp;接洽控制<br>
MAIL FROM&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;smtpd_sender_restrictions&nbsp; &nbsp; 发件人地址控制<br>
RCPT TO&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;smtpd_recipient_restrictions&nbsp;&nbsp;<span href="http://www.extmail.org/forum/tag.php?name=%E6%94%B6%E4%BB%B6%E4%BA%BA" onclick="tagshow(event)" class="t_tag">收件人</span>地址控制<br>
DATA&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;smtpd_data_restrictions&nbsp; &nbsp;&nbsp; &nbsp;DATA控制<br>
SUBJECT&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;header_checks&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 信头过滤<br>
正文&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;body_checks&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;正文内容检查<br>
<br>
如何构建防火墙<br>
方法一:在main.cf文件中编写规则<br>
方法二:编制对照表<br>
方法三:实时黑名单(RBL)<br>
<br>
测试方法<br>
postfix提供了一个参数,让你用来测试新限制条件:<br>
&nbsp;&nbsp;soft_bounce = yes<br>
设定yes时,原本应该退信的动作,会改为将邮件放回队列,等待下次递送.在一段等待时间(1000s),让你有充足的时间来调整参数,然后重新发送.<br>
再有就是打开日志功能,观测日志变化.<br>
<br>
注意:<br>
在测试时,如果服务器运行在本机上,不要使用telnet方式测试,telnet是以登陆本服务器上操作的方式,测试client是不起作用的.要运行客户端邮件程序来测试.<br>
单独测试每一项规则,才知道因果关系.<br>
<br>
编写main.cf文件<br>
编写规则时,不一定要将规则分别设定给不同的参数下,可以集中在同一个参数下,任何限制条件都可以用于任何过滤规则,让你更加灵活地安排限制条件.<br>
<br>
规则语法<br>
规则是由permit_或reject_开头,不需要额外的自变量.permit是允许之意,reject是拒绝之意.而内容检查需要在对照表里使用正则表达式.<br>
<br>
允许规则<br>
permit_naked_ip_address<br>
RFC要求客户端的HELO命令包含的ip地址放在方括号内，可以用此参数取消该限制。<br>
<br>
permit_mynetworks<br>
如果客户端的ip地址符合\$mynetworks参数定义的范围则接受该客户端的连接请求，并转发该邮件。<br>
<br>
permit_auth_destination<br>
permit_sasl_authenticated<br>
仅仅中继通过SMTP认证的客户端邮件，以及接收本postfix为最后一站的邮件.SASL认证使用的选项.<br>
<br>
<span href="http://www.extmail.org/forum/tag.php?name=DNS" onclick="tagshow(event)" class="t_tag">DNS</span>限制规则<br>
DNS限制条件确认客户端所在的网络以及信封上的邮件地址,是否有可查验的DNS信息.<br>
reject_unknown_client<br>
当客户端接入后,即可获取其ip地址,postfix通过DNS查找客户端IP地址的PTR记录,不成功,立即拒绝服务.如果成功查出PTR记录,得出主机名称,再用此主机名称向DNS查相对应的IP地址,与先前所得的ip地址比较,相符后返回ok.<br>
拒绝返回码:450.<br>
<br>
reject_unknown_hostname<br>
如果HELO命令提供的主机名称,没有A记录,也没有MX记录的,拒绝服务.拒绝返回码:450.<br>
<br>
reject_unknown_recipient_domain<br>
如果RCPT TO命令提供的收件人地址,其网域部分查不出有效的A或MX记录,拒绝服务.拒绝返回码:450.<br>
<br>
reject_unknown_sender_domain<br>
如果MAIL FROM命令提供的寄件人地址,其网域部分查不出有效的A或MX记录,拒绝服务.拒绝,返回错误代码为450.<br>
MAIL FROM地址是退信通知的收件地址,捏造MAIL FROM地址是垃圾邮件发送者常用的伎俩.<br>
<br>
常用的限制规则<br>
reject_non_fqdn_hostname<br>
reject_non_fqdn_recipient<br>
reject_non_fqdn_sender<br>
客户端提供的邮件地址不是完整形式(FQDN),拒绝服务.拒绝返回码:504.<br>
<br>
reject_invalid_hostname<br>
如果HELO命令所带的主机名参数不符合语法规范则,拒绝客户机的连接请求。拒绝返回码:501。<br>
<br>
reject_unauth_pipelining<br>
拒绝不经批准的流水线操作,pipeling是一种加速处理大宗邮件的技术.<br>
<br>
reject_unauth_destination<br>
如果收件地址不位于辖域,如<img src="http://www.extmail.org/forum/images/smilies/default/shy.gif" smilieid="8" alt="" border="0">relay_domains及其子域,$inet_interfaces、$mydestination<br>
或$virtual_maps、$virtual_alias_maps等等,拒绝返回码:554.<br>
<br>
编制访问表(access map)<br>
涉及运用<span href="http://www.extmail.org/forum/tag.php?name=%E8%B5%84%E6%96%99" onclick="tagshow(event)" class="t_tag">资料</span>核对方式来<span href="http://www.extmail.org/forum/tag.php?name=%E9%AA%8C%E8%AF%81" onclick="tagshow(event)" class="t_tag">验证</span>的,使用对照表是一个好办法.access文件是进出postfix辖域的通行证,里面可以是ip地址,邮件地址,主机名,<span href="http://www.extmail.org/forum/tag.php?name=%E5%9F%9F%E5%90%8D" onclick="tagshow(event)" class="t_tag">域名</span>,等等,对应值是处理动作OK或REJECT等.access文件的范例:<br>
<br>
#access list<br>
sina.com&nbsp; &nbsp;&nbsp; &nbsp;reject<br>
tom.com&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ok<br>
192.168.0.2&nbsp; &nbsp;&nbsp; &nbsp;reject<br>
alange&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; reject<br>
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#97;&#98;&#99;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;">abc@example.com</a>&nbsp; &nbsp;&nbsp; &nbsp;reject<br>
def@&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; reject<br>
<br>
.......<br>
<br>
记得每一次改动后,都要运行postmap来建数据库:<br>
#postmap /etc/postfix/access<br>
<br>
响应动作解释:<br>
响应动作码为:OK,通过当前过滤规则的检查,继续检查下一组过滤规则.<br>
响应动作码为<img src="http://www.extmail.org/forum/images/smilies/default/biggrin.gif" smilieid="3" alt="" border="0">UNNO,没有明确结果,所有规则结果都是DUNNO,默认收下邮件.<br>
响应动作码为:REJECT,立即拒绝.<br>
响应动作码为<img src="http://www.extmail.org/forum/images/smilies/default/biggrin.gif" smilieid="3" alt="" border="0">EFER,婉拒请求,客户端被告知稍后再试 <br>
响应动作码为:FILTER,将邮件转交给指定的内容过滤器.<br>
响应动作码为:HOLD,将邮件放在保留队列,直到删除或释放给MDA处理.<br>
响应动作码为<img src="http://www.extmail.org/forum/images/smilies/default/biggrin.gif" smilieid="3" alt="" border="0">ISCARD,收下邮件后立刻丢弃,慎重使用,暗自丢掉邮件是不道德的行为.<br>
<br>
使用访问表<br>
编辑main.cf文件,添加:<br>
smtpd_client_restrictions = check_client_access&nbsp; &nbsp; hash:/etc/postfix/access<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;check_helo_access&nbsp; &nbsp;&nbsp;&nbsp;hash:/etc/postfix/access<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;check_recipient_access&nbsp;&nbsp;hash:/etc/postfix/access<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;check_sender_access&nbsp; &nbsp; hash:/etc/postfix/access<br>
<br>
把所有匹配项:client_access ,helo_access, recipient_access, sender_access集中在一个access文件里,容易管理和操作,这样的限制是全方位的.<br>
匹配规则:<br>
设定了网址的,其所有子网都包含进去;<br>
设定用户名为条件的,用户名匹配,即使域名不相同也是匹配;<br>
完整邮件地址的要全匹配.<br>
<br>
内容检查<br>
内容检查是通过对邮件内容,包括标题和正文进行<strong><font color="#ff0000">审核</font></strong>,是阻隔垃圾邮件最直接的手段,<span href="http://www.extmail.org/forum/tag.php?name=Postfix" onclick="tagshow(event)" class="t_tag">Postfix</span>提供了四个检查邮件内容的参数:<br>
<br>
参数&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;功能<br>
header_checks&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;检查标题<br>
mime_header_checks&nbsp; &nbsp;&nbsp; &nbsp; 检查标题的MIME相关字段<br>
nested_header_checks&nbsp; &nbsp;&nbsp; &nbsp;检查夹带附件的标题<br>
body_checks&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 检查邮件的正文<br>
<br>
如何进行内容检查<br>
内容检查的主要手段是使用正则表达式来寻找敏感字符(不区分大小写),检索特征放置在/.../之间,然后是要进行的动作.首先:<br>
设定使用的正则表达式类型<br>
regexp: Postfix的标准正则表达式语法<br>
pcre: Perl兼容的语法<br>
<br>
使用下列命令来查出可用的类型:<br>
#<span href="http://www.extmail.org/forum/tag.php?name=postconf" onclick="tagshow(event)" class="t_tag">postconf</span> -m<br>
<br>
修改文件main.cf,使得postfix支持内容检查,添加:<br>
<br>
header_checks = regexp:/etc/postfix/checks<br>
body_checks&nbsp;&nbsp;= pcre:/etc/postfix/checks<br>
body_checks_size_limit = 51200<br>
#限制检查长度,是减轻系统负担的好策略,默认检查50k.<br>
<br>
内容检查的响应动作<br>
响应动作为:REJECT ,如果模式匹配成功,立即拒收邮件,并且将message-text内容传给客户端<br>
响应动作为:WARN ,模拟拒收动作,不会真的拒收,只将message-text内容记录在<span href="http://www.extmail.org/forum/tag.php?name=%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6" onclick="tagshow(event)" class="t_tag">日志文件</span>中,并停止对比后续模式,方便测试之用.<br>
响应动作为:IGNORE,删除符合模式的标题字段或整行文字.常用来删除包含内部网络信息,小心使用.<br>
响应动作为:FILTER transport:nexthop,先将邮件排入队列,然后转交给指定的外部过滤程序.<br>
响应动作为:HOLD,将邮件放在保留队列,直到删除或释放给MDA处理.<br>
响应动作为:DISCARD,收下邮件后立刻丢弃,慎重使用,暗自丢掉邮件是不道德的行为.但另一方面,对付顽固不化的分子,退信,反而加大系统的负荷,干脆丢掉.<br>
<br>
编写内容检查表<br>
只要发现字段符合某正则表达式,整个对比过程就立刻结束,并执行对应的动作.如下是建立checks文件,这里的checks表同时使用在检查标题和正文的,既然是过滤关键字,就不论出现在那里了,维护管理起来会方便许多,范例:<br>
<br>
#checks list<br>
/abc/&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;reject<br>
/中文测试/&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;reject<br>
/^Subject: make money fast/&nbsp; &nbsp;&nbsp;&nbsp;REJECT<br>
/^To: friend@public\.com/&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;REJECT<br>
<br>
.......<br>
<br>
内容检查表不需用postmap命令来生成数据库,直接使用即可,但可以用postmap来测试规则,如下:<br>
#postmap -fq "abc" regexp:/etc/postfix/checks<br>
reject<br>
<br>
整个文件来测试:<br>
#postmap -fq - pcre:/etc/postfix/checks &lt; inputfile<br>
<br>
除了使用正则表达式以外,还能使用简单的条件判断,如:取反,多条件判断等,个人认为,不宜使用条件判断,编辑复杂的规则,还不如直接了当的找出关键字.详细信息参考手册: man regexp_table或 man pcre_table.<br>
<br>
实时黑名单(RBL)<br>
实时黑名单(Real-Time Blacklist ,RBL)是一种专为抵制垃圾邮件而设计的网络服务.让SMTP服务器通过DNS系统实时查询客户端是否为垃圾源.具体使用要联系服务提供商.选项有下:<br>
reject_rbl_client rblprovider.domain<br>
reject_rhsbl_client rblprovider.domain<br>
reject_rhsbl_sender rblprovider.domain<br>
<br>
实例:<br>
main.cf文件(节选)<br>
#SASL<br>
smtpd_sasl_auth_enable = yes<br>
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination reject<br>
broken_sasl_auth_clients = yes<br>
smtpd_sasl_security_options = noanonymous <br>
<br>
smtpd_recipient_restrictions = <br>
#PERMIT:<br>
permit_naked_ip_address<br>
permit_mynetworks <br>
#DNS:<br>
#reject_unknown_client<br>
#reject_unknown_hostname<br>
#reject_unknown_recipient_domain <br>
#reject_unknown_sender_domain <br>
#REJECT:<br>
#reject_non_fqdn_hostname <br>
reject_non_fqdn_recipient<br>
reject_non_fqdn_sender <br>
reject_invalid_hostname<br>
reject_unauth_pipelining<br>
reject_unauth_destination <br>
#ACCESS:<br>
check_client_access&nbsp; &nbsp; hash:/etc/postfix/access<br>
check_helo_access&nbsp; &nbsp;&nbsp;&nbsp;hash:/etc/postfix/access<br>
check_recipient_access&nbsp;&nbsp;hash:/etc/postfix/access<br>
check_sender_access&nbsp; &nbsp; hash:/etc/postfix/access<br>
<br>
#CHECKS:<br>
header_checks = regexp:/etc/postfix/checks<br>
body_checks&nbsp;&nbsp;= regexp:/etc/postfix/checks<br>
body_checks_size_limit = 51200<br>
<br>
此文件要注意格式,属于smtpd\_recipient\_restrictions参数项,前面要有空格.checks不属于这参数项,而是main.cf的参数,所以前面不能有空格.<br>
<br>
刚刚研究邮件系统,参考了&lt;&lt;postfix 权威指南&gt;&gt;一书,并稍稍做了一些实验,写下这篇的心得,欢迎指教 <img src ="http://www.cnitblog.com/linus2k/aggbug/59628.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/linus2k/" target="_blank">君子常当当</a> 2009-06-25 15:07 <a href="http://www.cnitblog.com/linus2k/archive/2009/06/25/59628.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>amavisd-new黑白名单设置经验总结 </title><link>http://www.cnitblog.com/linus2k/archive/2008/10/16/50325.html</link><dc:creator>君子常当当</dc:creator><author>君子常当当</author><pubDate>Thu, 16 Oct 2008 10:38:00 GMT</pubDate><guid>http://www.cnitblog.com/linus2k/archive/2008/10/16/50325.html</guid><wfw:comment>http://www.cnitblog.com/linus2k/comments/50325.html</wfw:comment><comments>http://www.cnitblog.com/linus2k/archive/2008/10/16/50325.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/linus2k/comments/commentRss/50325.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/linus2k/services/trackbacks/50325.html</trackback:ping><description><![CDATA[<h2>amavisd-new黑白名单设置经验总结</h2>
借鉴网上各位老大的这个问题的设置。看到的有以下两种情况：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">vi&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">etc</span><span style="color: #000000;">/</span><span style="color: #000000;">amavisd</span><span style="color: #000000;">.</span><span style="color: #000000;">conf&nbsp;（加入以下两行）<br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;"></span><span style="color: #000000;">---------------------------------------------------------------------------------------</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">read_hash(</span><span style="color: #000000;">\</span><span style="color: #800080;">%whitelist_sender</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000; font-weight: bold;">/var/amavis/var/.spamassassin/whitelist</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">read_hash(</span><span style="color: #000000;">\</span><span style="color: #800080;">%blacklist_sender</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000; font-weight: bold;">/var/amavis/var/.spamassassin/blacklist</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;"></span><span style="color: #000000;">---------------------------------------------------------------------------------------</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">注明：以上两个文件&nbsp;whitelist&nbsp;和&nbsp;blacklist&nbsp;要手动建立<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">touch&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">var</span><span style="color: #000000;">/</span><span style="color: #000000;">amavis</span><span style="color: #000000;">/</span><span style="color: #000000;">var</span><span style="color: #000000;">/.</span><span style="color: #000000;">spamassassin</span><span style="color: #000000;">/</span><span style="color: #000000;">whitelist<br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">touch&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">var</span><span style="color: #000000;">/</span><span style="color: #000000;">amavis</span><span style="color: #000000;">/</span><span style="color: #000000;">var</span><span style="color: #000000;">/.</span><span style="color: #000000;">spamassassin</span><span style="color: #000000;">/</span><span style="color: #000000;">blacklist<br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">两个文件的属主属性为：<br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">chown</span><span style="color: #000000;">&nbsp;amavis</span><span style="color: #000000;">:</span><span style="color: #000000;">amavis&nbsp;whitelist<br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">chown</span><span style="color: #000000;">&nbsp;amavis</span><span style="color: #000000;">:</span><span style="color: #000000;">amavis&nbsp;blacklist<br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;"></span><span style="color: #800000;">1</span><span style="color: #000000;">）建立后，执行&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">etc</span><span style="color: #000000;">/</span><span style="color: #000000;">rc</span><span style="color: #000000;">.</span><span style="color: #000000;">d</span><span style="color: #000000;">/</span><span style="color: #000000;">init</span><span style="color: #000000;">.</span><span style="color: #000000;">d</span><span style="color: #000000;">/</span><span style="color: #000000;">amavisd&nbsp;reload&nbsp;让&nbsp;amavisd&nbsp;重新读取配置文件信息。<br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;"></span><span style="color: #800000;">2</span><span style="color: #000000;">）登记在&nbsp;whitelist&nbsp;的邮件地址或域名均不会被&nbsp;Spamassassin&nbsp;打分为垃圾邮件。<br></span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;"></span><span style="color: #800000;">3</span><span style="color: #000000;">）登记在&nbsp;blacklist&nbsp;的邮件地址或域名均会被&nbsp;Spamassassin&nbsp;打分为垃圾邮件。<br></span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;"></span><span style="color: #800000;">4</span><span style="color: #000000;">）whitelist&nbsp;和&nbsp;blacklist&nbsp;的写法，例如：<br></span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">test</span><span style="color: #800080;">@test</span><span style="color: #000000;">.</span><span style="color: #000000;">com</span><span style="color: #000000;">.</span><span style="color: #000000;">cn<br></span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;"></span><span style="color: #000000;">*</span><span style="color: #800080;">@boss</span><span style="color: #000000;">.</span><span style="color: #000000;">com<br></span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;"></span><span style="color: #800000;">5</span><span style="color: #000000;">）修改了&nbsp;whitelist&nbsp;或&nbsp;blacklist&nbsp;文件，均需要执行&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">etc</span><span style="color: #000000;">/</span><span style="color: #000000;">rc</span><span style="color: #000000;">.</span><span style="color: #000000;">d</span><span style="color: #000000;">/</span><span style="color: #000000;">init</span><span style="color: #000000;">.</span><span style="color: #000000;">d</span><span style="color: #000000;">/</span><span style="color: #000000;">amavisd&nbsp;restart&nbsp;让&nbsp;amavisd&nbsp;重新启动，否则，黑白名单不能生效&nbsp;！！！</span></div>
<br>这种方式我采用的是<br>
<font face="Verdana "><font style="font-size: 10pt;">read_hash(\%whitelist_sender, '/var/amavis/var/.spamassassin/whitelist');<br>
read_hash(\%blacklist_sender, '/var/amavis/var/.spamassassin/blacklist');<br></font></font><br>
<font face="Verdana "><font style="font-size: 10pt;">配置，但是针对这个域的配置是无效的。</font></font><br>
<font face="Verdana "><font style="font-size: 10pt;">在论坛中搜了一下，有如下的配置</font></font><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">amavisd</span><span style="color: #000000;">-</span><span style="color: #000000;">new设置黑白名单问题<br>想再请教各位老大一个问题，在amavisd</span><span style="color: #000000;">-</span><span style="color: #000000;">new中添加黑白名单是只是对用户有效，不能对整个域有效，肯请知道的老大相告怎么写才能通配一个域或者更大</span><span style="color: #000000;">?</span><span style="color: #000000;"><br><br>[&nbsp;本帖最后由&nbsp;isee&nbsp;于&nbsp;</span><span style="color: #800000;">2007</span><span style="color: #000000;">-</span><span style="color: #800000;">10</span><span style="color: #000000;">-</span><span style="color: #800000;">25</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">13</span><span style="color: #000000;">&nbsp;编辑&nbsp;]<br><br>代码</span><span style="color: #000000;">:</span><span style="color: #000000;"><br></span><span style="color: #800080;">@whitelist_sender_maps</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(&nbsp;[qw(example</span><span style="color: #000000;">.</span><span style="color: #000000;">cn&nbsp;</span><span style="color: #000000;">.</span><span style="color: #000000;">exmpl</span><span style="color: #000000;">.</span><span style="color: #000000;">com)]&nbsp;);<br>其中[example</span><span style="color: #000000;">.</span><span style="color: #000000;">cn]指匹配该域下的所有帐号，[</span><span style="color: #000000;">.</span><span style="color: #000000;">exmpl</span><span style="color: #000000;">.</span><span style="color: #000000;">com]匹配该域及子域的所有帐号，如&nbsp;</span><span style="color: #800080;">@sub1</span><span style="color: #000000;">.</span><span style="color: #000000;">exmpl</span><span style="color: #000000;">.</span><span style="color: #000000;">com</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">@sub2</span><span style="color: #000000;">.</span><span style="color: #000000;">exmpl</span><span style="color: #000000;">.</span><span style="color: #000000;">com&nbsp;等等。</span></div>
<br><font face="Verdana "><font style="font-size: 10pt;">配置后，确实解决了对整个域的问题，但是如果添加单个帐号的的话，也要在@whitelist_sender_maps = ( [qw(example.cn .exmpl.com)] ); 里面添加，自己实验一个更好的方法，也是收到上面的二者的启示啊，呵呵<br>
<br>
本人的配置<br>
采用centos 4.6 参考 <a href="http://www.extmail.org/docs/extmail_solution_linux/" target="_blank">http://www.<span href="http://www.extmail.org/forum/tag.php?name=extmail" onclick="tagshow(event)" class="t_tag">extmail</span>.org/docs/extmail_solution_linux/</a> 完成E-mail服务的建立<br>
amavisd-new的版本是 <br>
[root@mail log]# amavisd -V<br>
amavisd-new-2.5.4 (20080312)<br>
<br>
amavisd-new 配置文件（供大家参考，有问题，请各位老大指点啊）<br><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #800080;"><font><font>$max_servers</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #800000;"><font><font>10</font></font></span><span style="color: #000000;"><font><font>;&nbsp;</font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;num&nbsp;of&nbsp;pre-forked&nbsp;children&nbsp;(2..30&nbsp;is&nbsp;common),&nbsp;-m</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #800080;"><font><font>$daemon_user</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>amavis</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000;"><font><font>;&nbsp;</font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;(no&nbsp;default;&nbsp;customary:&nbsp;vscan&nbsp;or&nbsp;amavis),&nbsp;-u</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #800080;"><font><font>$daemon_group</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>amavis</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000;"><font><font>;&nbsp;</font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;(no&nbsp;default;&nbsp;customary:&nbsp;vscan&nbsp;or&nbsp;amavis),&nbsp;-g</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #000000;"><font><font><br></font></font></span><span style="color: #800080;"><font><font>$mydomain</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>'</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>test.com</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>'</font></font></span><span style="color: #000000;"><font><font>;&nbsp;</font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;a&nbsp;convenient&nbsp;default&nbsp;for&nbsp;other&nbsp;settings<br><br>#&nbsp;$MYHOME&nbsp;=&nbsp;'/var/amavis';&nbsp;#&nbsp;a&nbsp;convenient&nbsp;default&nbsp;for&nbsp;other&nbsp;settings,&nbsp;-H</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #800080;"><font><font>$TEMPBASE</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>$MYHOME/tmp</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000;"><font><font>;&nbsp;</font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;working&nbsp;directory,&nbsp;needs&nbsp;to&nbsp;exist,&nbsp;-T</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #800080;"><font><font>$ENV</font></font></span><span style="color: #000000;"><font><font>{TMPDIR}&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #800080;"><font><font>$TEMPBASE</font></font></span><span style="color: #000000;"><font><font>;&nbsp;</font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;environment&nbsp;variable&nbsp;TMPDIR,&nbsp;used&nbsp;by&nbsp;SA,&nbsp;etc.</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #800080;"><font><font>$QUARANTINEDIR</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>/var/virusmails</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000;"><font><font>;<br><br><br></font></font></span><span style="color: #800080;"><font><font>@local_domains_maps</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;(&nbsp;[</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>.$mydomain</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000;"><font><font>,</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>test2.com</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000;"><font><font>]&nbsp;);&nbsp;</font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;list&nbsp;of&nbsp;all&nbsp;local&nbsp;domains</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #000000;"><font><font><br></font></font></span><span style="color: #800080;"><font><font>@mynetworks</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;qw(&nbsp;</font></font></span><span style="color: #800000;"><font><font>127.0</font></font></span><span style="color: #000000;"><font><font>.</font></font></span><span style="color: #800000;"><font><font>0.0</font></font></span><span style="color: #000000;"><font><font>/</font></font></span><span style="color: #800000;"><font><font>8</font></font></span><span style="color: #000000;"><font><font>&nbsp;[</font></font></span><span style="color: #000000;"><font><font>::</font></font></span><span style="color: #800000;"><font><font>1</font></font></span><span style="color: #000000;"><font><font>]&nbsp;[FE80</font></font></span><span style="color: #000000;"><font><font>::</font></font></span><span style="color: #000000;"><font><font>]</font></font></span><span style="color: #000000;"><font><font>/</font></font></span><span style="color: #800000;"><font><font>10</font></font></span><span style="color: #000000;"><font><font>&nbsp;[FEC0</font></font></span><span style="color: #000000;"><font><font>::</font></font></span><span style="color: #000000;"><font><font>]</font></font></span><span style="color: #000000;"><font><font>/</font></font></span><span style="color: #800000;"><font><font>10</font></font></span><span style="color: #000000;"><font><font><br></font></font></span><span style="color: #800000;"><font><font>10.0</font></font></span><span style="color: #000000;"><font><font>.</font></font></span><span style="color: #800000;"><font><font>0.0</font></font></span><span style="color: #000000;"><font><font>/</font></font></span><span style="color: #800000;"><font><font>8</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #800000;"><font><font>172.16</font></font></span><span style="color: #000000;"><font><font>.</font></font></span><span style="color: #800000;"><font><font>0.0</font></font></span><span style="color: #000000;"><font><font>/</font></font></span><span style="color: #800000;"><font><font>12</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #800000;"><font><font>192.168</font></font></span><span style="color: #000000;"><font><font>.</font></font></span><span style="color: #800000;"><font><font>0.0</font></font></span><span style="color: #000000;"><font><font>/</font></font></span><span style="color: #800000;"><font><font>16</font></font></span><span style="color: #000000;"><font><font>&nbsp;);<br><br><br></font></font></span><span style="color: #800080;"><font><font>$sa_tag_level_deflt</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #800000;"><font><font>4.0</font></font></span><span style="color: #000000;"><font><font>;&nbsp;</font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;add&nbsp;spam&nbsp;info&nbsp;headers&nbsp;if&nbsp;at,&nbsp;or&nbsp;above&nbsp;that&nbsp;level</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #800080;"><font><font>$sa_tag2_level_deflt</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #800000;"><font><font>6.3</font></font></span><span style="color: #000000;"><font><font>;&nbsp;</font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;add&nbsp;'spam&nbsp;detected'&nbsp;headers&nbsp;at&nbsp;that&nbsp;level</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #800080;"><font><font>$sa_kill_level_deflt</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #800000;"><font><font>10</font></font></span><span style="color: #000000;"><font><font>;&nbsp;</font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;triggers&nbsp;spam&nbsp;evasive&nbsp;actions&nbsp;(e.g.&nbsp;blocks&nbsp;mail)</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #800080;"><font><font>$sa_dsn_cutoff_level</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #800000;"><font><font>9</font></font></span><span style="color: #000000;"><font><font>;&nbsp;</font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;spam&nbsp;level&nbsp;beyond&nbsp;which&nbsp;a&nbsp;DSN&nbsp;is&nbsp;not&nbsp;sent</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #000000;"><font><font><br><br><br></font></font></span><span style="color: #800080;"><font><font>$sa_spam_subject_tag</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>'</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>***SPAM***&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>'</font></font></span><span style="color: #000000;"><font><font>;<br><br><br><br></font></font></span><span style="color: #800080;"><font><font>$myhostname</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>'</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>mail.test.com</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>'</font></font></span><span style="color: #000000;"><font><font>;&nbsp;</font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;must&nbsp;be&nbsp;a&nbsp;fully-qualified&nbsp;domain&nbsp;name!</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #000000;"><font><font><br><br><br></font></font></span><span style="color: #800080;"><font><font>$final_virus_destiny</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;D_DISCARD;<br></font></font></span><span style="color: #800080;"><font><font>$final_banned_destiny</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;D_BOUNCE;<br></font></font></span><span style="color: #800080;"><font><font>$final_spam_destiny</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;D_BOUNCE;<br></font></font></span><span style="color: #800080;"><font><font>$final_bad_header_destiny</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;D_PASS;<br><br><br><br></font></font></span><span style="color: #800080;"><font><font>$virus_quarantine_to</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>virus\@$mydomain</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000;"><font><font>;<br></font></font></span><span style="color: #800080;"><font><font>$banned_quarantine_to</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>spam\@$mydomain</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000;"><font><font>;<br></font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;$bad_header_quarantine_to,</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #800080;"><font><font>$spam_quarantine_to</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000;"><font><font>=</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>spam\@$mydomain</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000;"><font><font>;<br><br><br><br>read_hash(</font></font></span><span style="color: #000000;"><font><font>\</font></font></span><span style="color: #800080;"><font><font>%whitelist_sender</font></font></span><span style="color: #000000;"><font><font>,</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>'</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>/var/amavis/.spamassassin/whitelist</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>'</font></font></span><span style="color: #000000;"><font><font>);<br>read_hash(</font></font></span><span style="color: #000000;"><font><font>\</font></font></span><span style="color: #800080;"><font><font>%blacklist_sender</font></font></span><span style="color: #000000;"><font><font>,</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>'</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>/var/amavis/.spamassassin/blacklist</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>'</font></font></span><span style="color: #000000;"><font><font>);<br><br><br><br><br></font></font></span><span style="color: #008000;"><font><font>#</font></font></span><span style="color: #008000;"><font><font>&nbsp;###&nbsp;http://www.clamav.net/</font></font></span><span style="color: #008000;"><font><font><br></font></font></span><span style="color: #000000;"><font><font>[</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>'</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>ClamAV-clamd</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>'</font></font></span><span style="color: #000000;"><font><font>,</font></font></span><span style="color: #000000;"><font><font><br></font></font></span><span style="color: #000000;"><font><font>\&amp;</font></font></span><span style="color: #000000;"><font><font>ask_daemon</font></font></span><span style="color: #000000;"><font><font>,</font></font></span><span style="color: #000000;"><font><font>&nbsp;[</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>CONTSCAN&nbsp;{}\n</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000;"><font><font>,</font></font></span><span style="color: #000000;"><font><font>&nbsp;</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>/tmp/clamd.socket</font></font></span><span style="color: #000000; font-weight: bold;"><font><font>"</font></font></span><span style="color: #000000;"><font><font>]</font></font></span><span style="color: #000000;"><font><font>,</font></font></span><span style="color: #000000;"><font><font><br>qr</font></font></span><span style="color: #000000;"><font><font>/\</font></font></span><span style="color: #000000;"><font><font>bOK$</font></font></span><span style="color: #000000;"><font><font>/,</font></font></span><span style="color: #000000;"><font><font>&nbsp;qr</font></font></span><span style="color: #000000;"><font><font>/\</font></font></span><span style="color: #000000;"><font><font>bFOUND$</font></font></span><span style="color: #000000;"><font><font>/,</font></font></span><span style="color: #000000;"><font><font><br>qr</font></font></span><span style="color: #000000;"><font><font>/^.*?:</font></font></span><span style="color: #000000;"><font><font>&nbsp;(</font></font></span><span style="color: #000000;"><font><font>?!</font></font></span><span style="color: #000000;"><font><font>Infected&nbsp;Archive)(</font></font></span><span style="color: #000000;"><font><font>.*</font></font></span><span style="color: #000000;"><font><font>)&nbsp;FOUND$</font></font></span><span style="color: #000000;"><font><font>/</font></font></span><span style="color: #000000;"><font><font>&nbsp;]</font></font></span><span style="color: #000000;"><font><font>,</font></font></span></div>
<br></font></font><font face="Verdana "><font style="font-size: 10pt;"><font face="宋体 "><font style="font-size: 10.5pt;">注明：以上两个文件</font></font><font style="font-size: 10.5pt;"> whitelist </font><font face="宋体 "><font style="font-size: 10.5pt;">和</font></font><font style="font-size: 10.5pt;"> blacklist </font><font face="宋体 "><font style="font-size: 10.5pt;">要手动建立</font></font><font style="font-size: 10.5pt;"><br>
<br>
<font color="red">touch &gt; /var/amavis/.spamassassin/whitelist&nbsp; &nbsp;注意路径<br>
touch &gt; /var/amavis/.spamassassin/blacklist</font><br>
</font><font face="宋体 "><font style="font-size: 10.5pt;">两个文件的属主属性为：</font></font><font style="font-size: 10.5pt;"><br>
chown amavis:amavis whitelist<br>
chown amavis:amavis blacklist</font><br>
<br>
<br>
<font style="font-size: 10.5pt;"><font color="red"><font style="font-size: 10.5pt;">whitelist </font><font face="宋体 "><font style="font-size: 10.5pt;">和</font></font><font style="font-size: 10.5pt;"> blacklist </font><font face="宋体 "><font style="font-size: 10.5pt;">的写法，例如：</font></font></font><font style="font-size: 10.5pt;"><br>
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#116;&#101;&#115;&#116;&#64;&#116;&#101;&#115;&#116;&#46;&#99;&#111;&#109;&#46;&#99;&#110;"><font color="red">test@test.com.cn</font></a><font color="red">&nbsp; &nbsp;&nbsp;&nbsp;单个邮件地址</font></font></font><br>
<font color="red"><font style="font-size: 10.5pt;"><font style="font-size: 10.5pt;">test.com 整个域</font></font><br>
</font><font style="font-size: 10.5pt;"><font style="font-size: 10.5pt;"><font color="red"><font color="black">.</font>test1.com 整个域及其子域（ 注意前面的写法中 <font color="black">.</font> ）</font>&nbsp;&nbsp;</font></font><br>
<font style="font-size: 10.5pt;"><br>
</font><br>
<font style="font-size: 10.5pt;"><font style="font-size: 10.5pt;"><font face="宋体 ">修改了</font> whitelist <font face="宋体 ">或</font> blacklist <font face="宋体 ">文件，均需要执行</font> /etc/rc.d/init.d/amavisd reload <font face="宋体 ">让</font> amavisd <font face="宋体 ">重新应用，否则，黑白名单不能生效</font> <font face="宋体 ">！！！</font></font></font></font></font><br> <img src ="http://www.cnitblog.com/linus2k/aggbug/50325.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/linus2k/" target="_blank">君子常当当</a> 2008-10-16 18:38 <a href="http://www.cnitblog.com/linus2k/archive/2008/10/16/50325.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]Postfix 邮件路由和传输研究</title><link>http://www.cnitblog.com/linus2k/archive/2008/10/16/50301.html</link><dc:creator>君子常当当</dc:creator><author>君子常当当</author><pubDate>Thu, 16 Oct 2008 02:21:00 GMT</pubDate><guid>http://www.cnitblog.com/linus2k/archive/2008/10/16/50301.html</guid><wfw:comment>http://www.cnitblog.com/linus2k/comments/50301.html</wfw:comment><comments>http://www.cnitblog.com/linus2k/archive/2008/10/16/50301.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/linus2k/comments/commentRss/50301.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/linus2k/services/trackbacks/50301.html</trackback:ping><description><![CDATA[<h2><br></h2>
本文最初发表于 http://hi.baidu.com/delphiss/blog/item/9f6c71cead14423bf9dc6148.html<br>
转载请注明出处<br>
作者：wdy<br>
<br>
postfix从各种渠道收到邮件后，先由cleanup程序处理收件地址，就是把一些不规范的发件和收件地址域名&#8220;清理&#8221;一下，比如没有的补全，改写等等。<br>
<br>
cleanup清理后的邮件被队列管理器交给trivial-rewrite来决定下一步的传输路由。<br>
<br>
postfix下一步的传输前需要获得几个目标地址数据：<br>
<br>
&nbsp; &nbsp; mydestination：本地标识；<br>
&nbsp; &nbsp; virtual_mailbox_domains：虚拟邮箱域名；<br>
&nbsp; &nbsp; relay_domains：转发域。<br>
<br>
路由信息包括邮件一下步的传输者(transport)和下一跳收件地址(next-hop&nbsp;&nbsp;destinations)。<br>
<br>
传输者是指 local 或 smtp 这样的在master.cf 里定义的记录。<br>
next-hop destinations 包括 主机或域名等。<br>
<br>
trivial-rewrite 判定的过程如下：<br>
<br>
&nbsp; &nbsp;<strong>如果收件域出现在mydestination里，或目标收件ip地址与&nbsp;&nbsp;$inet_interfaces 或 $proxy_interfaces 匹配，trivial-rewrite把邮件交给 [local_transport]；</strong><br>
&nbsp; &nbsp;[local_transport]的缺省设置是 local:$myhostname。表示transport是local(master.cf里定义的)，next-hop为$myhostname。<br>
<br>
&nbsp; &nbsp;<strong>如果收件域出现在virtual_mailbox_domains里，表示是个虚拟域的邮件，把邮件交给 [virtual_transport]；</strong><br>
&nbsp; &nbsp;[virtual_transport] 缺省的设置是 virtual: ，表示用 virtual 投递，next-hop还是原收件地址。<br>
&nbsp; &nbsp; virtual 根据 virtual_mailbox_base 来确定邮箱根目录，根据 virtual_mailbox_maps
来确定邮箱的存储路径，根据 virtual_uid_maps 和 virtual_gid_maps 来确定保存邮件使用的uid和gid。<br>
&nbsp; &nbsp;当然现在大多数都使用 maildrop 来进行虚拟域的投递，安装好maildrop后先在master.cf里把maildrop配置成一个transport，然后设置 :<br>
&nbsp; &nbsp;&nbsp;&nbsp;virtual_transport&nbsp; &nbsp;= maildrop:<br>
<br>
&nbsp; &nbsp;<strong>如果收件域出现在relay_domains里，就说明发件者因为各种原因无法把信件投递到收件域的主MX服务器了，自己正做为备用MX服务器接收了这些邮件。</strong><br>
&nbsp; &nbsp;&nbsp; &nbsp;postfix收下邮件后将尝试连接主MX服务器，交出之前收到的邮件。<br>
&nbsp; &nbsp;&nbsp; &nbsp;如果邮件在队列里保留时间超过maximal_queue_lifetime规定的时间，就会发一份退信通知给发信人。<br>
&nbsp; &nbsp; [relay_transport] 的缺省设置是 relay: 。<br>
&nbsp; &nbsp; 如果 relay_transport 设置里next-hop destinations为空，则依次查询&nbsp;&nbsp;sender_dependent_relayhost_maps, relayhost 来确定，如果都为空则next-hop 为原收件地址不变。<br>
&nbsp; &nbsp;<br>
&nbsp; &nbsp;<strong> 如果收件域是需要远程投递的其他的域，把邮件交给 [default_transport]；</strong><br>
&nbsp; &nbsp; [default_transport] 的缺省设置是 smtp: 。smtp MDA会先查询收件域名的mx记录，查询出ip后连接25端口进行投递。<br>
&nbsp; &nbsp; 如果 default_transport 设置里next-hop destinations为空，则依次查询 default_transport, sender_dependent_relayhost_maps,<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;relayhost来确定，如果都为空则next-hop 为原收件地址不变。<br>
<br>
以上是postfix缺省的邮件路由方式，如果我们要自己指定一些路由方式，比如把 abc.com 所有邮件转发到另外一台主机让它来投递，把
root@xyz.com
的邮件拒收等等，我们就需要用到transport_maps查询表。transport_maps比缺省的postfix路由方式优先级要高。<br>
<br>
transport_maps数据项的键名为收件地址，键值为 transport:nexthop<br>
收件地址可以是一个域名，表示匹配这个域名下所有的收件地址。<br>
transport必须是master.cf里定义的传输方式。 <br>
如果 transport 传输方式是 inet 类型，则 nexthop 的形式为 host:port。如果 host 是个域名，则先查询mx记录确定ip地址。如果 host 本身就是个ip或是个A记录，则需要用方括号括起来。<br>
port指定要连接的端口，缺省是25。<br>
<br>
举几个例子：<br>
<br>
abc.com&nbsp; &nbsp; smtp:[192.168.12.34]:20025<br>
发送给abc.com的邮件使用smtp MDA传送到192.168.12.34的20025端口上。<br>
<br>
xyz.com&nbsp; &nbsp; maildrop<br>
发送给xyz.com的邮件交给maildrop投递。<br>
<br>
root@abc.com&nbsp; &nbsp;error:No mail accepted for root<br>
当场拒收给root@abc.com的邮件，并给出错误信息：No mail accepted for root<br>
<br>
spam@mydomain.com&nbsp; &nbsp; spam<br>
这个是dspam里的设置，表示把发给spam@mydomain.com的邮件交给spam(同样，spam在master.cf里设置）。 <img src ="http://www.cnitblog.com/linus2k/aggbug/50301.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/linus2k/" target="_blank">君子常当当</a> 2008-10-16 10:21 <a href="http://www.cnitblog.com/linus2k/archive/2008/10/16/50301.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>纪念记忆力衰退之POSTFIX邮件退信日志分析</title><link>http://www.cnitblog.com/linus2k/archive/2008/04/03/41895.html</link><dc:creator>君子常当当</dc:creator><author>君子常当当</author><pubDate>Thu, 03 Apr 2008 05:15:00 GMT</pubDate><guid>http://www.cnitblog.com/linus2k/archive/2008/04/03/41895.html</guid><wfw:comment>http://www.cnitblog.com/linus2k/comments/41895.html</wfw:comment><comments>http://www.cnitblog.com/linus2k/archive/2008/04/03/41895.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/linus2k/comments/commentRss/41895.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/linus2k/services/trackbacks/41895.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 邮件为什么会被退回<br>      经常上网发送邮件的人可能会有邮件被退回的经历，收到被退回的邮件要具体分析，退回的信件一般都会有简短的说明，结合这些说明你可以进一步了解具体的退信原因并作出相应处理。&nbsp;&nbsp;<a href='http://www.cnitblog.com/linus2k/archive/2008/04/03/41895.html'>阅读全文</a><img src ="http://www.cnitblog.com/linus2k/aggbug/41895.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/linus2k/" target="_blank">君子常当当</a> 2008-04-03 13:15 <a href="http://www.cnitblog.com/linus2k/archive/2008/04/03/41895.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Postfix中recipient_bcc 与 sender_bcc + mysql实现邮件监控</title><link>http://www.cnitblog.com/linus2k/archive/2008/04/02/41811.html</link><dc:creator>君子常当当</dc:creator><author>君子常当当</author><pubDate>Wed, 02 Apr 2008 04:19:00 GMT</pubDate><guid>http://www.cnitblog.com/linus2k/archive/2008/04/02/41811.html</guid><wfw:comment>http://www.cnitblog.com/linus2k/comments/41811.html</wfw:comment><comments>http://www.cnitblog.com/linus2k/archive/2008/04/02/41811.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/linus2k/comments/commentRss/41811.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/linus2k/services/trackbacks/41811.html</trackback:ping><description><![CDATA[<span class="bold">recipient_bcc 与 sender_bcc +  mysql实现邮件监控</span><br><br>
&nbsp;&nbsp;添加数据表mail_watch<br>
CREATE TABLE `mail_watch` (<br>
&nbsp;&nbsp;`sender` varchar(100)&nbsp;&nbsp;NOT NULL,<br>
&nbsp;&nbsp;`bcc` varchar(100)&nbsp;&nbsp;NOT NULL,<br>
&nbsp;&nbsp;PRIMARY KEY&nbsp;&nbsp;(`sender`)<br>
)<br>
<br>
main.cf<br>
<br>
sender_bcc_maps = mysql:/etc/postfix/mail_watch.cf<br>
recipient_bcc_maps = mysql:/etc/postfix/mail_watch.cf<br>
<br>
mysql_watch.cf<br>
<br>
user = postfix<br>
password = xxxxx<br>
dbname = postfix<br>
table = mail_watch<br>
select_field = bcc<br>
where_field = sender<br>
hosts = localhost<br>
<br>
这样就可以指定某个人监控某个人的邮件了<img src ="http://www.cnitblog.com/linus2k/aggbug/41811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/linus2k/" target="_blank">君子常当当</a> 2008-04-02 12:19 <a href="http://www.cnitblog.com/linus2k/archive/2008/04/02/41811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用的RBL服务器列表及介绍</title><link>http://www.cnitblog.com/linus2k/archive/2008/03/31/41536.html</link><dc:creator>君子常当当</dc:creator><author>君子常当当</author><pubDate>Mon, 31 Mar 2008 03:38:00 GMT</pubDate><guid>http://www.cnitblog.com/linus2k/archive/2008/03/31/41536.html</guid><wfw:comment>http://www.cnitblog.com/linus2k/comments/41536.html</wfw:comment><comments>http://www.cnitblog.com/linus2k/archive/2008/03/31/41536.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/linus2k/comments/commentRss/41536.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/linus2k/services/trackbacks/41536.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 国内的:<br>国内的实时黑名单服务（RBL）做的最大的就是anti-spam. 它的官方网站是: www.anti-spam.org.cn<br>它提动的实时黑名单服务（RBL）主要包括四个部分：CBL、CDL和CBL+、CBL-。<br>CBL包含近期中国国内的主要垃圾邮件发送源。<br>CDL包含中国国内动态分配地址。<br>CBL+为CBL和CDL的合集。<br>CBL-是CBL+中去除了中国邮件服务运营商白名单服务（CML）的内容后的黑名单，该黑名单方便于既想使用实时黑名单，而又要保证在任何情况下都能收到来着他们的邮件的用户。<br><br>我们可以根据自己的实际情况选择下面的四种模式中的任意一种。<br>CBL: cbl.anti-spam.org.cn<br>CDL: cdl.anti-spam.org.cn<br>CBL+: cblplus.anti-spam.org.cn<br>CBL-: cblless.anti-spam.org.cn<br><br>注:anti-spam是免费的,但用户只能采用DNS查询的方法,它是不对用户开放DNS区&nbsp;&nbsp;<a href='http://www.cnitblog.com/linus2k/archive/2008/03/31/41536.html'>阅读全文</a><img src ="http://www.cnitblog.com/linus2k/aggbug/41536.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/linus2k/" target="_blank">君子常当当</a> 2008-03-31 11:38 <a href="http://www.cnitblog.com/linus2k/archive/2008/03/31/41536.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>纪念记忆力衰退之POP3命令简介</title><link>http://www.cnitblog.com/linus2k/archive/2008/03/26/41479.html</link><dc:creator>君子常当当</dc:creator><author>君子常当当</author><pubDate>Wed, 26 Mar 2008 02:03:00 GMT</pubDate><guid>http://www.cnitblog.com/linus2k/archive/2008/03/26/41479.html</guid><wfw:comment>http://www.cnitblog.com/linus2k/comments/41479.html</wfw:comment><comments>http://www.cnitblog.com/linus2k/archive/2008/03/26/41479.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/linus2k/comments/commentRss/41479.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/linus2k/services/trackbacks/41479.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: POP3 命令<br>POP3 命令包括：<br>USER username 认证用户名<br>PASS password 认证密码认证，认证通过则状态转换<br>APOP name,digest 认可一种安全传输口令的办法，执行成功导致状态转换，请参见 RFC 1321 。<br>STAT 处理请求 server 回送邮箱统计资料，如邮件数、 邮件总字节数<br>UIDL n 处理 server 返回用于该指定邮件的唯一标识， 如果没有指定，返回所有的。<br>LIST n 处理 server 返回指定邮件的大小等<br>RETR n 处理 server 返回邮件的全部文本<br>DELE n 处理 server 标记删除，QUIT 命令执行时才真正删除<br>RSET 处理撤消所有的 DELE 命令<br>TOP n,m 处理 返回 n 号邮件的前 m 行内容，m 必须是自然数<br>NOOP 处理 server 返回一个肯定的响应<br>QUIT 希望结束会话。&nbsp;&nbsp;<a href='http://www.cnitblog.com/linus2k/archive/2008/03/26/41479.html'>阅读全文</a><img src ="http://www.cnitblog.com/linus2k/aggbug/41479.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/linus2k/" target="_blank">君子常当当</a> 2008-03-26 10:03 <a href="http://www.cnitblog.com/linus2k/archive/2008/03/26/41479.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>纪念记忆力衰退之SMTP命令简介</title><link>http://www.cnitblog.com/linus2k/archive/2008/03/26/41478.html</link><dc:creator>君子常当当</dc:creator><author>君子常当当</author><pubDate>Wed, 26 Mar 2008 02:01:00 GMT</pubDate><guid>http://www.cnitblog.com/linus2k/archive/2008/03/26/41478.html</guid><wfw:comment>http://www.cnitblog.com/linus2k/comments/41478.html</wfw:comment><comments>http://www.cnitblog.com/linus2k/archive/2008/03/26/41478.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/linus2k/comments/commentRss/41478.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/linus2k/services/trackbacks/41478.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: SMTP 命令<br>SMTP 命令包括：<br>HELO 向服务器标识用户身份。发送者能欺骗，说谎，但一般情况下服务器都能检测到。<br>EHLO 向服务器标识用户身份。发送者能欺骗，说谎，但一般情况下服务器都能检测到。<br>MAIL FROM 命令中指定的地址是发件人地址<br>RCPT TO 标识单个的邮件接收人；可有多个 RCPT TO；常在 MAIL 命令后面。<br>DATA 在单个或多个 RCPT 命令后，表示所有的邮件接收人已标识，并初始化数据传输，以 CRLF.CRLF 结束<br>VRFY 用于验证指定的用户/邮箱是否存在；由于安全方面的原因，服务器常禁止此命令<br>EXPN 验证给定的邮箱列表是否存在，扩充邮箱列表，也常被禁用<br>HELP 查询服务器支持什么命令<br>NOOP 无操作，服务器应响应 OK<br>RSET 重置会话，当前传输被取消<br>QUIT 结束会话&nbsp;&nbsp;<a href='http://www.cnitblog.com/linus2k/archive/2008/03/26/41478.html'>阅读全文</a><img src ="http://www.cnitblog.com/linus2k/aggbug/41478.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/linus2k/" target="_blank">君子常当当</a> 2008-03-26 10:01 <a href="http://www.cnitblog.com/linus2k/archive/2008/03/26/41478.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个测试垃圾邮件的网站</title><link>http://www.cnitblog.com/linus2k/archive/2008/03/21/41319.html</link><dc:creator>君子常当当</dc:creator><author>君子常当当</author><pubDate>Fri, 21 Mar 2008 10:34:00 GMT</pubDate><guid>http://www.cnitblog.com/linus2k/archive/2008/03/21/41319.html</guid><wfw:comment>http://www.cnitblog.com/linus2k/comments/41319.html</wfw:comment><comments>http://www.cnitblog.com/linus2k/archive/2008/03/21/41319.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/linus2k/comments/commentRss/41319.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/linus2k/services/trackbacks/41319.html</trackback:ping><description><![CDATA[一个测试垃圾邮件的网站<br>进这个网站，他会发30封<u><strong><font color="#ff0000">垃圾邮件</font></strong></u>给你来测试<br><a>http://www.cloudmark.com/spampler/</a><br>做邮件服务器的可以用它来测试一下<br><br><br>   <img src ="http://www.cnitblog.com/linus2k/aggbug/41319.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/linus2k/" target="_blank">君子常当当</a> 2008-03-21 18:34 <a href="http://www.cnitblog.com/linus2k/archive/2008/03/21/41319.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>