服务器架设篇 - RedHat 9

Sendmail 设置一文的建议

邮件主机之简易设置、使用 Sendmail 邮件服务器之设置-长老们的建议!

最近更新时间: 2003/02/25

本文数据主要针对 RedHat 9 的系统进行说明,要注意的是,RedHat 9 与 Red Hat Enterprise Linux (RHEL) 是完全不同的东西!RedHat 9 在 2003 年推出,在 2004 年就不再维护了!这部份网站更新到 2005 年,也没有再维护过! 因此,建议您前往本站查找最新版本的 Linux distribution 文章来阅读,比较不会浪费时间。那为何还需要编辑 RedHat 9 的数据呢? 鸟哥只想要做个自己曾经撰写过的文档内容保存而已啰! ^_^!最新文章请前往鸟站首页查阅啰!
自从 Sendmail 一文公告之后,接到 网中人 ( netman ) 大哥与小州前辈 ( kenduest ) 的一些建议,这些建议都相当的棒喔!导正了鸟哥不少的观念与语法说明上面的问题!兹将这些建议原文给他粘贴来,以提供大家参考用喔!感谢 netman 与 kenduest 兄喔!

来自 netman 的建议 ( 2003/02/24 )
  1. MDA ( Mail Delivery Agent ) : 『邮件递送代理人』主要的功能就是将 MTA 所收受的本机信件,放置到本机帐户下的邮件文件中 ( Mailbox )!

  2. 请注意:MDA 不限指 local ,也由 smtp/esmtp 及 uucp 或专门写的 MDA 。而光是 local 也不是只有 procmail 可用...
     
  3. 例如,当我的 tsai.adsldns.org 收到一封给 vbird@tsai.adsldns.org 的邮件,那么我的 tsai.adsldns.org 这部主机,会立刻将该封邮件存放到 /var/spool/mail/vbird 里面去,而不过问这封邮件的来源。

  4. 这是有条件的,比方说,在 access.db 中有设 REJECT 或 DISCARD 。当然,若有设 ORDB 之类的,也会影响这边的写入。
     
  5. 如果这封邮件的『信件收件者』并没有 MTA 本身的用户帐号时,那么 MTA 会开始去检查 /etc/mail/access.db 这个数据库里面,

  6. 不是如此,应是跟据 Class W 来判断是否 lcoal 。而 Class W 可指接用 CW 来指定,也可用 FW 来指定。若为 FW ,那一般在 /etc/mail/local-host-names 内。一但被认为是 local 才看 user 。而 user 在从 system 或 database(或 LDAP 之类) 中判断之前,还会参考 virtusertable, aliase 之类的 rewrite 规则。若判断为 local ,则再看 .forward 来作 rewrite 。若都失败,以 user not found 为由退信。
     
  7. 暂时看到这里,其它日后补充。

来自小州兄的建议 ( 2003/02/25 )
作者: kenduest (小州) 看板: Linux
标题: Re: Sendmail 的完整安装与设置技巧出炉了
时间: Tue Feb 25 01:23:58 2003

※ 引述《VBird.bbs@bbs.csie.ncku.edu.tw (鸟哥)》之铭言:
> 大家好:
> 经过了几个礼拜的奋斗与努力之后,终于将 Sendmail 的简易设置搞定了!
> http://vbird.org.cn/linux_server/0380sendmail.php
> 在这篇文章里面,包含了简单的 mail server 运作流程与原理,
> 使用 sendmail 应该要注意的事项,
> 简略的 procmail 使用与设置,
> 测试 Open Relay 以及 Open Relay 黑名单数据库的应用,
> 以及 SMTP 邮件认证这个大家有兴趣的东西,
> 都包含在里面!与其他文章比较不相同的地方在于,
> 我使用的是较新版的 Cyrus SASL ( 2.xx 版本 ),
> 这个版本与其他的 1.5 比较不一样,因为他的认证的程序改变了,
> 所以设置时,需要特别留意喔!
> 请大家多多指教啰! ^_^

  Hi.. 不错的网页内容 :>

  不过有些内容建议如下:

  1. 几乎所有 linux dist 都会纳入 sendmail,不过像是 mandrake 缺省
     是安装 postifx 而不是 sendmail,但是 sendmail 还是有纳入 dist。

  2. "若有 mx 标志,那么这封 e-mail 将会把信先送到该 mx 主机,然后再由该
      mx 主机将信件送达目地"。这句话怪怪的,因为 mx 纪录可以有很多笔
      纪录外,mx 纪录指向的主机也可能就是目的 mail 实际主机。

  3. 使用协定部份,收信一般常用 pop3,但是 imap 使用的也不少,这两个
     都可以用于收信使用。

  4. "所以我们知道了!一部成功的 MTA ( 不考虑 Web 接口的邮件主机 )
      至少需要两个协定,分别是 SMTP 与 POP3"。其中 "一台成功的 MTA"
      这句话很奇怪。也许可以改成通常一台提供收发信件的邮件主机都需要提供
      SMTP 与 POP3 服务协定。

  5. "在 MTA 当中加入需要检查发信者的『帐号与密码』比对的功能,如果帐号与
      密码比对正确,则帮忙转信,如果比对不正确则将该封信件退回原发送站"。

      auth smtp 部份内,连接至 mail server port 25 时会进行验证动作,若是
      验证成功接下来会进行 MAIL FROM、RCPT TO、DATA 送出相关信件内容。

      若是验证失败,那在 MUA 这端就可以直接看到错误消息,而不是信件送出去
      后再把信件退回原发送站 :)

  6. 所谓 auth smtp,是说当 client 通过验证后,mta 会愿意帮忙该 client
     连接端提供 mail relay 功能。所以说,并不是使用 auth smtp 后不用开
     relay 功能,而应该是开放允许通过验证的连接端能够提供 relay 服务。

  7. imap package 有提供 imap 与 pop3 相关程序,这个也许可以说明一下。

  8. /etc/mail/local-host-names 文件说明内,有一段内容写错了。
     "那么是否每个主机名称做为寄信来源(From)时, sendmail 都能接受呢"。
     这个应该是 "收信目的 (To)",因为是要寄给这台上面的用户。

     "没有写入这个文件的『你的主机名称』,则你将无法使用该主机名称来寄信",
     这应该是说那信件将无法正确寄达至这台机器上。

     bbs.sayya.org、kenduest.sayya.org、info.sayya.org、
     kenduest.math.nctu.edu.tw 这些主机 ip 都是相同的,也就是指向同一台
     机器上。假设这台主机名称缺省为 kenduest.math.nctu.edu.tw,那缺省
     情况寄给 userid@kenduest.math.nctu.edu.tw 都 ok,但是寄给
     userid@bbs.sayya.org、userid@info.sayya.org 都会出现错误。

     其中原因是因为没有告诉 mta 除了 kenduest.math.nctu.edu.tw 这个
     主机名称外,还有 bbs.sayya.org、kenduest.sayya.org、info.sayya.org
     都是指向这台主机上。所以寄给 userid@bbs.sayya.org 会出现错误,
     通常就是 mail loop to me,要不然就是不允许 relay 的错误情况。

  9. Sendmail 的运行档部份,/usr/sbin/ipop3d 这与 sendmail 无关,因为
     sendmail 只是 mta,not pop3 daemon。

     另外 m4 应该不算是 sendmail 的运行文件之一,因为该程序主要是将
     sendmail 提供的 m4 宏文件读入产生最后 sendmail 要使用的 .cf 设置文件。

     还有就是,其实最新版本 sendmail 设置文件有分 sendmail.cf 与 submit.cf,
     目录除了 /var/spool/mqueue 外还有 /var/spool/clientqueue。

     有兴趣可以先阅读:

     http://www.sendmail.org/~ca/email/doc8.12/SECURITY

  10. "Red Hat 7.xx 版本中,为了杜绝广告信件的问题,所以在缺省的情况下,
       您的 sendmail 将『只会监听 127.0.0.1"。听说主要原因是安全性等考量,
       所以缺省只有 listen lo interface 让内部信件处理可以 work 即可,
       需要接收来自 internet 信件需要另外打开。

  11. access 文件设置内,sendmail 8.10 后已经支持另外的 keywork,包含
      connect、from、to 的设置。

      from:test@your-domain.com.tw  REJECT
      to: blah@your-domain.com.tw   REJECT

      这样子提供判定功能会比较详细清楚。另外请建议一下两端要使用
      TAB 隔开才正确 :>

  12. ~/.forward 文件部份...

      1) 该文件所在用户家目录权限,其 group、other 不可以有写入权限。
      2) .forward 文件权限,其 group、other 不可以有写入权限。

  13. Linux 下使用 telnet 功能,在 MAIL FROM、RCPT TO 内,后面接的
      项目若是 e-mail 的话,应该使用 "< >" 包起来,这样子才正确。

      MAIL FROM: kenduest<kenduest.bbs@bbs.sayya.org>
      MAIL FROM: "Kenduest Lee"<kenduest@info.sayya.org>

      另外许多 mta 目前都会限制再使用 MAIL FROM 时要先使用 HELO
      或者是 EHLO 先打招呼过,要不然会不允许进行下面沟通。

      HELO localhost

  就这样子,大家互相讨论啰 :>

--
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

   现代人普遍的现象:  「小学而大遗」、「舍本而逐末」
                      「以偏而概全」、「因噎而废食」
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
--
※ Origin: SayYA 信息站 <bbs.sayya.org> 
◆ From: kendlee.sayya.org
※ X-Info: kenduest -> VBird.bbs@bbs.csie.ncku.edu.tw
※ X-Sign: 0V5KLABtqWNvUlEGj25M (03/02/25  1:24:27 )

其他链接
环境工程模式篇
鸟园讨论区
鸟哥旧站

今日 人数统计
昨日 人数统计
本月 人数统计
上月 人数统计