由 syd168 在 07-08-2003 08:20 发表:
配置高效的SendMail服务器
Sendmail是一个很受欢迎的SMTP服务器,在企业环境中,无论是只有少量用户还是数以千计的雇员它都可以灵活的给以足够支持
。它也是个复杂的软件,在你的Linux服务器上配置Sendmail以使它运行起来并不是一件容易的事。尽管Sendmail的开发者一直试图使配置过程简单化,但你所在公司的需求将最终决定配置一个高效的Sendmail服务器的难度。
我的文章“在Linux中配置Sendmail服务器”回顾了最初的安装过程以及在Linux中配置和运行Sendmail所要用到的一些基础配置文件。这篇文章将告诉你怎样进一步掌握基础的配置文件并且解释将Sendmail配置成一台可靠的SMTP服务器的步骤。
配置文件
从8.9版本开始,Sendmail所必需的所有配置文件都放在目录/etc/mail/下,而且命名规则有些改变。如果你用的是老版本,请注意表格A。
Pre-Sendmail 8.9 location
/etc/sendmail/sendmail.cw
/etc/aliases
/etc/sendmail.ct
/etc/sendmail.hf
Sendmail 8.9+ location
/etc/mail/local-host-names
/etc/mail/aliases
/etc/mail/trusted-users
/etc/mail/helpfile
主配置文件还是/etc/mail/sendmail.cf。这个文件是在初始安装时由sendmail.mc创建的。它允许Sendmail根据诸如OSTYPE和MAILER这样的一些选项来推断自己的初始配置。
虽然大多数人都不需要重新编辑主配置文件,但有些人还是要通过这些晦涩难懂的语法来创建新的Sendmail管理员账户。然而,振作起来,事情并不象开始看到的那么糟。
首先,我们默认Sendmail已经安装并且是初始的设置状态。普通人在第一次安装使用Sendmai时,总是会运行一个开放的中继,这样做使得很容易被无聊的人发现并利用。现在你通过修改/etc/mail/relay-domains文件可以很容易的指定可以通过你的服务器的地址。在这个文本文件中列出了可以通过你的服务器发送电子邮件的主机名。对大多数公司而言,只需要列出本地主机名和别名,但大一些的公司可能需要添加大量主机。
这一步很重要,设置Realtime Blackhole Lists(RBLs)添加权限。如果你一个想捣乱的人使用你的服务器并且利用列表中的信息来发送垃圾邮件,就会引起发送失败和550错误,直到你将其从列表中删去。所以最好是只将那些有权访问Sendmail权限的主机写在列表中。
对服务器而言,/etc/mail/local-host-names文件是很有用的
。将FEATURE(use_cw_file)包含在你的sendmail.mc文件当中,Sendmail将用本地主机名来作为你的本地别名。
local-host-names - aliases for your server
andsky.com
mail.andsky.com
otherdomain.com
如果Sendmail没有在收件列表中发现相应的主机名,它将拒绝接受对方发来的邮件。请记住在修改了这个或其他任何配置文件后你必须重启Sendmail。这些修改可以这样完成,重新启动/etc/init.d/sendmail或发送命令kill –1
别名
文件/etc/mail/aliases允许为本地用户,应用程序,甚至其他别名提供虚拟邮箱:
Basic system aliases
MAILER-DAEMON: postmaster
postmaster: root
General redirections for pseudo accounts
bin: root
daemon: root
Well-known aliases
manager: root
webmaster: tnooning, bmarley, hsimpson
complaints: /var/log/complaints
sysadmin: root
你会发现Web管理员别名有多重收件人列表。这是正确的。只要确保所有的本地用户名都是用逗号隔开的。而且,有关别名的意见将会以电子邮件的形式发到/var/log/complaints文件中。这是我最近发现的并且已经开始大量应用。需要注意的事,在你修改了别名文件之后,你必须执行新的别名。这是Sendmail自带的程序,可以根据别名文件创建必要的数据库。
设置可信任用户
这个可选的特性在sendmail.mc中的名称为use_ct_file
。这个列表中的用户可以改变电子邮件的寄件人。在/etc/mail/trusted-users文件中每个用户名占一行。这对运行在你的服务器上的脚本或应用程序给某个人或组发信息是非常有用的。它可以更容易的快速识别一个电子邮件的信息。例如,一个查询DNS服务器的脚本和邮件错误可以由dns_[email protected]发出。
虚拟用户表格
虚拟用户表格(/etc/mail/virtusertable)向你服务器上的真实邮箱发送虚拟域和邮箱的邮件。这些邮箱可以是本地的,远程的,或是由/etc/mail/aliases定义的别名。这些是在你的sendmail.mc文件中一命令行的形式进行初始配置的。这个文件一般为:
[email protected] root
[email protected] [email protected]
@andsky.com tom
在以上的例子中,我们已经有了一个andsky.com文件。第一行[email protected]用来定位本地邮箱位置。下一行的[email protected]是指远程邮件地址[email protected]。@andsky.com是一个通配符,它允许任何用户名接受以@andsky.com结尾发送来的邮件。因此,任何向andsky.com发送的邮件都存放在本地邮箱中。
RBLs
RBLs是由公众组织维护的数据库,他们的目标是努力阻止服务器被持续不断的无聊的垃圾邮件所淹没。即使是今天,这样的事情还是时常发生,包括很受欢迎的 http://www.orbz.org/, http://relays.osirusoft.com/, 和 http://mail-abuse.org/rbl/,你可以