Linux1 邮件服务器 Sendmail文件
Sendmail是配置Sendmail邮件服务器的关键,里面包括许多配置文件,且各个功能都有所不同。主要包括以下几个:
● /etc/mail/sendmail.cf sendmail的主配置文件。
● /etc/mail/access 文件继访问控制。
● /etc/mail/domaitable 域名映射。
● /etc/mail/local-host-name 本地计算机别名。
● /etc/mail/mailertable 为特定的域指定特殊的路由规则。
● /etc/mail/virtusertable 虚拟域配置。
其中,sendmail.cf文件是Sendmail最主要的配置文件,没有它Sendmail就无法运行。
Sendmail文件一向以其内容较长、费解、难以配置而著称。如果查看里面的内容就会发现它
和其它服务器的配置文件截然不同,没有任何的可读性,因此除非真的熟悉其语法原则,否则不建议用户直接对其进行编辑。Sendmail提供一个宏处理器m4,用户可以先编辑一个相对简单的m4宏配置文件,然后用m4宏处理器把这个文件转换成为Sendmail的配置文件。
在Red Hat Enterprise Linux5.4的/etc/mail目录下,存放着默认的m4宏配置文件,对于满足一般需求的邮件服务器来讲,用户只需在终端下输入“vi /etc/”命令,然后按【回车】键进入文件的编辑界面,对文件进行简单的修改即可满足需求。此文件的内容如图9-34所示。
图9-34 默认的m4宏文件内容
下面来详细的讲解一下这个配置文件。第1行divert(-1),代表这一行开始一直到divert(0)的部分将在m4进行处理时被忽略掉,不会出现在生成的配置文件中,一般会在这两行之间加入一些版本信息等内容。文件中有的行是以字符串dnl开头,dnl的作用是注释从它开始到下一行开始的所有字符,即注释部分;还有的行是以dnl结尾,因为m4宏处理器是不识别行的,所以在一行的结尾处需要用dnl注释后面的空格和换行符,以免在生成配置文件中出现不必要的空行。
在这个宏配置文件中的配置信息包括VERSIONID(版本信息)、OSTYPE(操作系统类型)、DOMIAN(域设置)、FEATURE(功能设置)、localmacro definitions(本地宏定义)、MAILER(邮递方式定义)及LOCAL_*rulesets(本地规则集)等部分。
在宏配置文件中应该按照上面的顺序对每个项目进行配置,其中localmacro definitions(本地宏定义)是一个例外。如果某个本地宏定义影响FEATURE(功能设置),则可把它放在FEATURE(功能设置)的前面。
1.VERSIONID
VERSIONID是一个宏,用来设置Sendmail配置文件的版本信息,它对用户的配置文件能够起到一个标识作用,如果用户设置多个配置文件,可以以此来进行区分。这是一个可选的设置,可以使用默认值。
例如,图9-34所示的宏文件中的设置是为VERSIONID(`setup for Red Hat Linux’)dnl,这说明该.mc文件是针对Red Hat Linux提供的配置方法。
2.OSTYPE
OSTYPE用于设置服务器操作系统的类型,是必须设置的。因为许多设置如帮助文件、服务器状态文件等的存放目录在不同系统中是不一样的。此外,还有很多重要的设置也依赖于操作系统。对于各种Linux操作系统来讲,则可以将其设置为“Linux”。
3.DOMAIN
如果用户在同一网络上配置多个Sendmail服务器时,可以把一些所有服务器都会使用到的相同设置项(如本地网络的中继计算机名称等),保存到一个单独的宏文件中。例如,将v.m4存放到目录/usr/share/sendmail-cf/domain下,然后在此用DOMAIN指定服务
器所在域,如:
DOMAIN(`v.m4’)
这样Sendmail会自动调用v.m4中的设置。在本域中的每一个服务器都可以通过DOMAIN的设置调用这个宏文件,应用相同的设置,这是针对大量服务器进行配置的标准做法,如果用户只是配置一台服务器则可以不必对齐进行设置。
4.FEATURE
在Sendmail中有大量预定义的特别设置(Feature),如果用户要对服务器进行这些设置的话,直接引用这些Feature就行了,这使Sendmail的配置工作方便了很多。引用Feature的方式是使用宏FEATURE,格式为FEATURE(`Feature 名称’,`参数’)。
而在Sendmail中提供的Feature非常多,其中比较重要和常用的Feature及其含义如表9-2所示。
表9-2 Feature及相关解释
Feature | 解释 |
Use_cw_file | 从/etc/mail/local-host-names文件中读取本地计算机的其它可选名称 |
Use_ct_file | 从/etc/mail/trusted-users文件中读取信任用户的用户名,Sendmail在处理这些用户的邮件信封上From地址时会使用“-f”选项,而不会产生警告信息 |
Redirect | 拒绝所有投递地址为address.REDIRECT的邮件,并返回信息“551 User has moved,please try<address>”。如果一个用户已经不再使用一个邮件地址时,就可以在alias文件中给它的邮件地址设置这个别名,这样寄信中就会收到用户已经迁移的信息 |
Mailer table | 调用“mailer table”,对发往其中包含的域的邮件指定特殊规则 |
Always_add_domain | 即使是本地投递邮件,也需要加上本计算机的域 |
Smrsh | 用Sendmail提供的受限制shell(即smrsh)来代替/bin/sh来运行邮件程序 |
Access_db | 启用访问控制数据库,在数据库中可以设置允许或拒绝接收来自特定域的邮件,能够用于阻止垃圾邮件 |
No_default_msa | 不允许默认的MSA守护进程 |
Virtusertable | 允许在同一台计算机上使用多个虚拟域 |
Local_procmail | 用procmail或其它程序进行本地投递 |
Accept_unresolvalbe_domains | 通常在投递过程中,如果服务器无法解析到发件人地址中的计算机,会拒绝对邮件进行投递。如果服务器是在防火墙内,对外部计算机不能完全解析,就会产生问题,这时可以使用这个设置,对发件地址中计算机无法解析到的邮件也进行投递 |
Relay_entire_domain | 允许所有服务器所在域中的计算机用服务器转发邮件 |
Relay_hosts_only | 默认情况下,在访问控制文件access中列出的允许Relay的名称是被当作域来对待的,也就是在整个域中的计算机都被允许转发邮件,启用这个设置之后,Relay列表中的名称将被当作具体的计算机 |
Relay_based_on_MX | 启用基于DNS中MX记录的邮件转发控制 |
服务器的主机名称应该在“Use_cw_file”定义的文件中设置,也可以在配置文件中直接用“cw.计算机名称”来设置,默认的设置是localhost.localdomain,应该把它改为用户自己的计算机名称。如果用户要设置虚拟域,最好不要这样设置,这样一旦更改计算机名称就需要重新编辑、生成配置文件,所以建议使用规范的做法,将计算机名加入到文件/etc/mail/local-host-name中。
另外,在Red Hat提供的宏配置文件中,设置了no_default_msa,也就是不产生默认的守护进程MSA,取而代之的是MTA。配置文件设置为DAEMON_OPTIONS(`port=smtp,Addr=127.0.0.1,Name=MTA’)。
守护进程MTA监听的端口是smtp(端口25),监听的网络接口为lookup(IP地址是127.0.0.1),这样Sendmail就只能处理本地计算机的邮件投递,如果要让Sendmail能够接收来自Internet上的邮件,应该把此处的IP地址更改为服务器外部IP地址。
5.local macro definition
在Sendmail的宏配置文件中,许多宏都有大量的变量来设置,对宏的变量进行设置的格式是Define(`变量名称’,`变量值’)。
在上面Red Hat Linux提供的宏配置文件中,主要的变量及说明如表9-3所示。
表9-3 宏变量及说明
变量 | 说明 |
ConfDEF_USER_ID | 默认用户的ID |
UUCP_RELAY | 如果定义了该变量,服务器将接收UUCP地址的邮件,否则所有UUCP(免费永久的linux服务器Unix间复制协议)站点必须直接进行连接 |
BITNET_RELAY | 如果定义了这个变量,服务器接收BITNET(学术网络)地址的邮件 |
confAUTO_REBUILD | 在需要时自动重建alias文件 |
confTO_CONNECT | 等待初始化连接完成的超时时间 |
PROCMAIL_MAILER_PATH | Procmail程序的路径 |
ALIAS_FILE | 文本格式的alias文件 |
ATATUS_FILE | 服务器状态信息文件 |
UUCP_MAILER_MAX | 允许接受的通过UUCP传送的邮件最大长度 |
confUSERDB_SPEC | 用户数据库文件 |
6.MAILER
最后是MAILER的设置,它包括Local(默认的本地邮件投递);Smtp(Internet投递)及Procmail(提供procmail的接口)几种设置。
提 示 | 对宏配置文件进行相应的修改后,就可以用它来生成最终的Sendmail配置文件了(命令:m4 /etc/>etc/sendmail.cf)。需要提醒的是,在生成最终的配置文件之前,最好把原先的和sendmail.cf做好备份,特别是后者。 |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论