by Steve Frampton
组态 Sendmail E-mail Daemon
我使用 Sendmail 套件提供电子邮件服务。 Sendmail 是最可靠的邮件处理程式 ;事实上根
据估计 Internet 上传送的邮件超过 80% 至少有一方是
透过 Sendmail 处理。它做了所有的事情,我无法想像没了它 Internet伺服器如何运作
(另一个 e-mail 伺服器套件叫做 Qmail,看来一样受欢迎 -- 但我还没有理由去试它).
为了保持新特性及错误修正,为了最重要的安全因素,随时升级 Sendmail是个好主意。此外,
最新版的 Sendmail 包含了强大的 anti-spam 特点
可以避免您的伺服器被未经授权的使用者滥用。
这一节会讨论您假如想使用 Sendmail 作为接收信件伺服器应该做的事, 这应该是做为伺服器
的方案。
在这一节,假设您使用最新版的 Sendmail (在写这篇文章的时候是 8.9.3),安装好且可以运作。
就像是 Red Hat 所发行的套件一样, Sendmail 通常包含恰当的组态资讯可以在大多数的伺服器
设定下正常工作。但是,您可能发现必须编辑 ``/etc/sendmail.cf'' 档并且依需要自订一些设定。
但这已经超出本文所讨论的围了。
我发现一个有用的东西,然而,它需要对组态档做一些修改以阻挡入侵者。这些包括:
O PrivacyOptions=authwarnings
change to:
O PrivacyOptions=authwarnings,noeXPn,novrfy
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
change to:
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b NO UCE C=xx L=xx
(第一个改变避免有心人 在 sendmail 使用``EXPN'' 及 ``VRFY'' 指令。我发现这些指令太常被不道
德的人滥用。第二个改变修改了当接收到连接时 Sendmail 显示的标题。您应该将 ``C=xx L=xx'' 这
项中的 ``xx'' 换成您的国家和地区代码。例如以我来说,我使用 ``C=CA L=ON'' 代表 Ontario, Canada.
(後面的改变事实上不影响任何东西, 但在 news.admin.net-abuse.email 新闻群组中被人们作为公定
的预防措施)
接下来,假如您的邮件伺服器和实际运作的机器的主机名称不同,您可以在 ``/etc/sendmail.cw'' 档中
加入一个或更多化名。例如, 假如您有一个系统叫做“kirk.mydomain.name”用在 mydomain.name 作
为邮件交换, 但是希望进来的信件格式是 ``user@mydomain.name'' 送到您在“kirk”的用户,依下面
加入别名:
mydomain.name
最後,假如您限制一个网域 (或子网) 接到您的 sendmail 服务,您可以编辑 ``/etc/mail/Access''
并且依限制的类型加入网域资讯。例如:
some.domain REJECT
hax0r.another.domain 550 Contact site administrator at (555) 555-1234.
上面的例会拒绝来自 ``some.domain'' 地点的 e-mail 连接,以及用描述的讯息拒绝名称为
``hax0r.another.domain''的机器。
在对这个档案做变更後,您需要更新 ``access.db'' 档,然後依下述重新启动 sendmail :
/usr/sbin/makemap hash /etc/mail/access.db
/etc/rc.d/init.d/sendmail restart
小技巧: 假如您关心 e-mail 的滥用,您可以从 “ Mail Abuse Prevention System(邮件滥用防止系
统)” (MAPS) 计划得到有关对付这些问题的有用资料; 查看网页位於 http://www.mail-abuse.org/
假如您使用 Sendmail 8.9 或之後的版本,已经内建 RBL 支援,但未预设为 enable。要 enable 这个支援
的话, 在您的 sendmail.mc 档加入:
FEATURE(rbl)
然後重新组态及启动 Sendmail daemon。
要得到进一步资料,包括组态的的用法说明及其他邮件转送代理等,查看
http://www.mail-abuse.org/rbl/usage.Html.
有时候,您希望与在 RBL 目录中被终止的网域继续联。也许您很需要和位於黑名单网域中的某些使用者
联络。在这种情况, Sendmail 答应您越过这些网域收到他们的 e-mail。用礼貌的文字描述编辑
``/etc/mail/access'' 档并加上合适的网域资讯 。例如:
blacklisted.domain OK
不要忘了重建自己的 access.db 档 (上面叙述过)!
假如您决定使用 RBL,假如可能的话通知您的邮件使用者是个明智的决定,如此一来假如他们不同意您
的决定的话,可以做其他的服务安排。
要得到更多有关 Sendmail 的资料,查看位於 http://www.sendmail.org/faq/的FAQ