⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1900.html

📁 著名的linux英雄站点的文档打包
💻 HTML
📖 第 1 页 / 共 5 页
字号:
      [root@mail src]# <span class="type">mv /usr/bin/newaliases /usr/bin/newaliases.orig</span></p>
      <p>[root@mail src]# <span class="type">mv /usr/bin/mailq /usr/bin/mailq.orig</span></p>
      <p>[root@mail src]# <span class="type">mv /usr/sbin/sendmail /usr/sbin/sendmail.orig</span></p>
    </td>
  </tr>
</tbody></table>
<p>&#160;</p>
<p>  然后添加两个组:postfix和maildrop和一个用户:postfix</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr> 
    <td> <p>[root@mail src]# <span class="type">groupadd -g 400 postfix</span></p>
      <p>[root@mail src]# <span class="type">groupadd -g 401 postdrop</span></p>
      <p>[root@mail src]# <span class="type">useradd -u 400 -g 400 -c postfix
           -M -d/no/where -s/no/shell postfix</span></p>
    </td>
  </tr>
</tbody></table>
<p>  这里的组和用户的ID是系统中未使用的ID。</p>
<p>&#160;</p>
<p>  编译Postfix,并支持mysql和sasl:</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr> 
    <td> <p>[root@mail src]# <span class="type">tar -xvzf postfix-2.0.16.tar.gz</span></p>
      <p>[root@mail src]# <span class="type">cd postfix-2.0.16</span></p>
      <p>&#160;</p>
      <p>[root@mail postfix-2.0.16]# <span class="type">make -f Makefile.init
          makefiles  \</span></p>
      <p>&gt; <span class="type">'CCARGS=-DUSE_SASL_AUTH -DHAS_MYSQL -I/usr/include/mysql
        -I/usr/include/sasl' \</span></p>
      <p>&gt; <span class="type">'AUXLIBS=-L/usr/lib/mysql -L/usr/lib/sasl2 
        -lmysqlclient -lsasl2 -lz -lm'</span></p>
      <p>[root@mail postfix-2.0.16]# <span class="type">make install</span></p>
    </td>
  </tr>
</tbody></table>
<p>  安装时,安装程序会提问一些问题,可以直接按回车采用默认值。</p>
<p>  这里切记要指定正确的SASL2的INCLUDE和LIB位置。由于现在很多linux发行版上都已经带有了sasl,如果不指定的话,很可能会使用了不同版本的头文件和库,在这种情况下,每次连接SMTP时,smtpd就会发生致命错误“Fatal:
  SASL per-connection server init...”而崩溃。</p>
<p>&#160;</p>
<p>  给postfix用户做一个系统别名,并将超级用户的邮箱转发到一个普通用户如tester。使用/etc/postfix/aliases别名数据库:</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr> 
    <td><p>[root@mail postfix-2.0.16]# <font color="#ff0000">cd /etc/postfix</font></p>
      <p>[root@mail postfix]# <span class="type">echo 'root: virtualuser@cngnu.org' &gt;&gt; 
        /etc/postfix/aliases</span></p>
    </td>
  </tr>
</tbody></table>
<p>  生成/etc/postfix/aliases别名数据库:</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr> 
    <td>[root@mail postfix]# <span class="type">postalias /etc/postfix/aliases</span></td>
  </tr>
</tbody></table>
<p>  生成/etc/postfix/virtual的DB库:</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr>
    <td>
      <p>[root@mail postfix]# <span class="type">postmap virtual</span></p></td>
  </tr>
</tbody></table>
<p>  保留db格式的virtual库是为了系统临时增加转发方便起见。</p>
<h2><a name="a.7.3"></a>7.3.&#160; 配置</h2>
<p>  修改/etc/postfix/master.cf中的关于maildrop的配置:</p>
<table width="100%" border="0" bgcolor="#ccffcc">
  <tbody><tr> 
    <td><p>[root@mail postfix]# <span class="type">vi master.cf</span></p>
    </td>
  </tr>
</tbody></table>
<p>  将如下两行:</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr> 
    <td bgcolor="#ffffcc"> maildrop unix - n n - - pipe<br>
       flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}</td>
  </tr>
</tbody></table>
<p>  修改为:</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr> 
    <td bgcolor="#ffffcc"> maildrop unix - n n - - pipe<br>
 flags=DRhu user=maildrop argv=/usr/local/bin/maildrop -d ${recipient}</td>
  </tr>
</tbody></table>
<p>  这里要把maildrop的路径修改为上面安装的maildrop实际安装路径,用户maildrop是我们上面添加过的。
  记着flags=...这行前面是以空格缩进的。</p>
<p>&#160;</p><table width="100%" border="0" bgcolor="#ccffcc">
  <tbody><tr> 
    <td><p>[root@mail postfix]# <span class="type">vi main.cf</span></p>
    </td>
  </tr>
</tbody></table>
<p>&#160;</p>
<p>  修改/etc/postfix/main.cf的配置:</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr> 
    <td bgcolor="#ffffcc"> 
      <p>myhostname = mail.cngnu.org</p>
      <p>mydomain = cngnu.org</p>
      <p>myorigin = $mydomain</p>
      <p>mydestination = $mydomain,$myhostname</p>
      <p>mynetworks_style = host</p>
      <p>&#160; </p>
      <p>alias_maps = hash:/etc/postfix/aliases</p>
      <p>alias_database = hash:/etc/postfix/aliases</p>
      <p>&#160;</p>
      <p>home_mailbox = Maildir/</p>
      <p></p>
      <p>&#160;</p>
      <p>mailbox_transport = maildrop </p>
      <p>fallback_transport = maildrop </p>
      <p>&#160;</p>
      <p>virtual_maps = hash:/etc/postfix/virtual,mysql:/etc/postfix/virtual.mysql</p>
      <p>&#160;</p>
      <p>smtpd_sasl_auth_enable = yes</p>
      <p>broken_sasl_auth_clients = yes</p>
      <p>smtpd_sasl_security_options = noanonymous</p>
      <p>&#160;</p>
      <p>smtpd_recipient_restrictions = <br>
&#160;&#160;&#160;&#160;permit_mynetworks,<br>
&#160;&#160;&#160;&#160;permit_sasl_authenticated,<br>
&#160;&#160;&#160;&#160;check_recipient_access mysql:/etc/postfix/filter.mysql,<br>
&#160;&#160;&#160;&#160;reject_invalid_hostname,<br>
&#160;&#160;&#160;&#160;reject_non_fqdn_hostname,<br>
&#160;&#160;&#160;&#160;reject_unknown_sender_domain,<br>
&#160;&#160;&#160;&#160;reject_non_fqdn_sender,<br>
&#160;&#160;&#160;&#160;reject_non_fqdn_recipient,<br>
&#160;&#160;&#160;&#160;reject_unknown_recipient_domain,<br>
&#160;&#160;&#160;&#160;reject_unauth_pipelining,<br>
&#160;&#160;&#160;&#160;reject_unauth_destination,<br>
&#160;&#160;&#160;&#160;permit</p>
    <p></p></td>
  </tr>
</tbody></table>
<p>  如果希望支持更多的虚拟域,可以在mydestination参数后面加上你所要支持的域即可。</p>
<p>  通过virtual和virtual.mysql为系统提供了邮箱本地查询表。</p>
<p>  在上面的配置文件里面使用了SASL来进行SMTP发信认证。</p>
<p>&#160;</p>
<p>  通过smtpd_recipient_restrictions提供了基本的反垃圾邮件功能。首先允许本地网络(这里是本机)和通过SASL认
证的用户可以使用本服务器发信;然后检查每个用户的全局邮件过滤功能是否打开,如果关闭则不进行后面的反垃圾邮件检查;其后是一些Postfix支持的基
本反垃圾邮件功能。</p>
<p>  创建/etc/postfix/virtual.mysql,它提供了本地用户和邮件转发功能。FORWARD字段默认是指向用户的存储邮箱名
的(Courier-IMAP所管理的邮箱名称),即进行本地投递;如果FORWARD字段是另外一个用户名或者邮件地址,则该邮件被转发到别的用户或其
它邮件地址。</p>
<table width="100%" border="0" bgcolor="#ccffcc">
  <tbody><tr> 
    <td><p>[root@mail postfix]# <span class="type">vi virtual.mysql</span></p></td>
  </tr>
</tbody></table>
<p>&#160;</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr> 
    <td bgcolor="#ffffcc"> 
      <p>#</p>
      <p># mysql config file for alias lookups on postfix</p>
      <p>#</p>
      <p>&#160;</p>
      <p># the user name and password to log into the mysql server</p>
      <p>hosts = localhost</p>
      <p>user = mail</p>
      <p>password = secret</p>
      <p>&#160;</p>
      <p># the database name on the servers</p>
      <p>dbname = mail</p>
      <p>&#160;</p>
      <p># the table name</p>
      <p>table = USER</p>
      <p>&#160;</p>
      <p>select_field = FORWARD</p>
      <p>where_field = USERNAME</p>
      <p>additional_conditions = and STATUS = 1 limit 1</p>
    </td>
  </tr>
</tbody></table>

<p>&#160;</p>
<table width="100%" border="0" bgcolor="#ccffcc">
  <tbody><tr>
    <td><p>[root@mail postfix]# <span class="type">vi filter.mysql</span></p></td>
  </tr>
</tbody></table>
<p>&#160;</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr>
    <td bgcolor="#ffffcc">
      <p>#</p>
      <p># mysql config file for filter flag on postfix</p>
      <p>#</p>
      <p>&#160;</p>
      <p># the user name and password to log into the mysql server</p>
      <p>hosts = localhost</p>
      <p>user = mail</p>
      <p>password = secret</p>
      <p>&#160;</p>
      <p># the database name on the servers</p>
      <p>dbname = mail</p>
      <p>&#160;</p>
      <p># the table name</p>
      <p>table = USER</p>
      <p>&#160;</p>
      <p>select_field = FILTER</p>
      <p># OK : ignore filter</p>
      <p># DUNNO : filter </p>
      <p>where_field = MAIL </p>
      <p>additional_conditions = and STATUS = 1 limit 1</p></td>
  </tr>
</tbody></table>
<h2><a name="a.7.4"></a>7.4.&#160; 运行</h2>
<p>  启动命令如下:</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr> 
    <td> <p>[root@mail postfix]# <span class="type">/usr/sbin/postfix start</span></p></td>
  </tr>
</tbody></table>
<p>  可以使用文末所附脚本设置postfix在系统启动时候自动运行。</p>
<h2><a name="a.7.5"></a>7.5.&#160; 测试Postfix</h2>
<p>  启动Postfix后,首先检查日志/var/log/messages有无错误信息,然后检查进程,应该有如下进程存在:检查端口及进程:</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr> 
    <td> <p>[root@mail postfix]#<font color="#ff0000"> </font><span class="type">pstree 
        |grep master</span></p>
      <p>&#160;</p>
      <p>|-master-+-pickup</p>
      <p>&#160;</p></td>
  </tr>
</tbody></table>
<p>  接着检查端口,应该有如下端口打开:</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr> 
    <td> <p>[root@mail postfix]# <span class="type">netstat -an |grep LISTEN</span></p>
      <p>&#160;</p>
      <p>tcp  0  0 0.0.0.0:25  0.0.0.0:*  LISTEN</p>
      <p>&#160;</p></td>
  </tr>
</tbody></table>
<p>  再检测SMTP服务是否正常:</p>
<table border="0" width="100%" bgcolor="#ccffcc">
  <tbody><tr> 
    <td> <p>[root@mail postfix]# <span class="type">telnet localhost 25</span></p>
      <p>Trying 127.0.0.1...<br>
        Connected to localhost.<br>
        Escape character is '^]'.<br>
        220 mail.cngnu.org ESMTP Postfix<br>
        <span class="type">QUIT</span><br>
        221 Bye<br>
        Connection closed by foreign host.</p></td>
  </tr>
</tbody></table>
<p>  使用如下命令测试postfix的SMTP的认证(这里仅测试了“virtualuser@cngnu.org”,“trueuser”请自行测试):</p>
<p>  PLAIN认证方式:</p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -