Linux1 邮件服务器  Postfix的配置
Red Hat Enterprise Linux 5.4中的Postfix与Sendmail一样,默认只监听本地127.0.0.1端口的邮件收发。但如果要对整个Internet开放的话,就需要学会对Postfix进行配置。然而,几乎所有的设置都可以通过/etc/postfix/main.cf文件搞定。对于这个文件的内容需要注意以下几点:
“#”符号表示注释。
所有设置值以类似变量的设置方式来处理。例如myhostname = Linux,其中等号两边要有空格,且第一个字符不可以是空白,也就是要从行首写起。
可以使用“$”来扩展使用变量设置,例如myorigin = $myhostname,其等价于myorigin = Linux。
如果该变量支持2个以上的数据,则需要使用空格符分隔,不过建议使用“,”加空格来处理。例如myorigin = $myhostname, $mydomain,表示myorigin支持2个数据内容。
可使用多行来表示同一个设置值,只要在第1行最后有“,”,且第2行开头为空格,即可将数据延伸到第2行继续书写。
若重复设置某一项目,则以最后一次设置为准。
虽然该配置文件的内容比较多,但其中大部分内容都是注释(以“#”号开头的行),真正需要自行定义的参数并不多,而且这些参数就算不去定义,按照默认值也可以正常运行。下面我们一起来看一看这些基本的postfix参数。需要注意的是,一旦更改了main.cf文件的内容,则必须运行postfix reload命令使其生效。
1myhostname
这个参数用来设置Postfix服务器的计算机名称,且这个设置值被后面许多其它参数所引用,所以必须设置正确,应该设置成为完整的计算机名称(如Linux),如图9-55中第71行所示。
图9-55  设置Postfix的计算机名称
除了myhostname外,还有一个mydomain参数,该项目默认会取myhostname(Linux)中删除第一个“.”之前内容的名称(com)为设置值,而设置Domain Name。当然,用户也可以自行设置它。myhostname和mydomain两个设置值只是用来引用的,只要用户设置正确就可以了。
2inet_interfaces
该参数用来打开Postfix的网络发送邮件支持功能。在默认情况下,Postfix只会监听本计算机的发信需求——由inet_interfaces确定,其值为localhost,这表明只能在本地邮件服务器上寄信。通常是将所有的网络端口都开放,以便接收从任何网络端口来的邮件,即将inet_interfaces参数的值设置为“all”。
其实,Postfix的配置文件中已经列举出了多种可能,我们只需要做的仅仅是将“inet_interfaces = localhost”一行(第107行)注释掉,然后去掉“inet_interfaces = all”前的注释符即可,如图9-56所示。
图9-56  设置Postfix的监听端口
如果邮件服务器上有多个网络端口,但又不希望使全部的网络端口都开放Postfix服务,就可以用计算机名称来指定需要开放的网络端口。
3myorigin
myorigin参数实际上是设置由本台邮件服务器寄出的每封邮件的邮件标头中“Mail from”的地址。由于Postfix默认使用本地计算机名称作为“$myorigin”,所以一封由本地邮件服务器寄出的邮件的邮件标头中就会含有如“From:‘clinuxer’clinuxer@clinuxer.localdomain.tst”这样的内容,它表明这封邮件是从clinuxer.localdomain.tst邮件服务器发送的。
不过,建议用户将myorigin参数设置为本地邮件服务器的域名(即“myorigin = localdomain.tst或$mydomain”),如图9-57中第93行所示。这样,一封由本地邮件服务器寄出的邮件的邮件标头中就会含有如“From:‘lbt’lbt@mydomain”这样的内容。相比之下,显然后者更符合我们平时的使用习惯。
图9-57  使myorigin = $mydomain
4mynetworks
用户的MTA能否帮忙进行Relay与该参数的设置值关系最大。例如,要开放本计算机内部网段的IP地址时,就可以在配置文件中将mynetworks设置为“mynetworks = 127.0.0.0/8, 192.168.1.0/24”,如图9-58所示。
图9-58  开放本计算机内部网段IP地址
还记得在Sendmail内以access来进行Relay的设置吗?如果想要延续这个文件的设置,那么建议用户将“mynetworks = 127.0.0.0/8, 192.168.1.0/24”改为“mynetworks = 127.0.0.0/8, 192.168.1.0/24, hash:/etc/postfix/access”,如图8-59所示。
图9-59  扩展文件设置
5mynetworks_style
除了mynetworks参数外,还有一个用于控制网络邮件转发的参数是mynetworks-style,它主要用来设置可转发邮件网络的方式。一般情况下可以设置为以下3种方式,如图9-60所示。
图9-60  mynetworks-style设置的三种类型
class
在这种方式下,Postfix会自动根据邮件服务器的IP地址得知它所在的IP网络类型(即A类、B类或是C类),从而开放它所在的IP网段。比如,如果邮件服务器的IP地址为192.168.0.2,这是一个C类网络的IP地址,则Postfix会自动开放192.168.0.0/24整个C类网络的转发授权。
subnet
这是Postfix的默认值,Postfix会根据邮件服务器的网络端口上所设置的IP地址、子网掩码来得知所要开放的IP网段。例如,如果邮件服务器的IP地址为192.168.0.2,子网掩码为255.255.255.128,则Postfix会开放192.168.0.1/25子网。
host
在这种方式下,Postfix只会开放本计算机的转发权限。
 
用户通常不用去设置mynetworks-style参数,只需要直接设置mynetgworks参数即可。如果这两个参数同时进行设置,那么以mynetworks参数的设置值为准。
6relay_domains
相对于mynetworks是针对信任的客户端设置而言,relay_domains则可以视为针对下游MTA计算机而设置的。例如,如果这台计算机是slkj的MX计算机时,那就要在relay
_domains中设置针对整个com领域的目标邮件进行转发。在默认情况下这个设置值是$mydestination。
需要注意的是,Postfix默认并不会转发MX计算机内的邮件,即如果有两台邮件服务器,一台是上游MTAup,另一台是下游MTAdown,而MTAdown规范的MX计算机是MTAup,由DNS的MX设置值与邮件传递方向可知,任何想要寄给MTAdown的邮件,都会先经过MTAup来转发才行。此时如果那台MTAup没有开启帮助MTAdown进行Relay权限时,那么任何传给MTAdown的邮件将全部都被MTAup退后。从此MTAdown就无法收到任何邮件了。
如果某用户的服务器在大公司服务且该公司上、下游均有邮件服务器,同时还设置有MX的情况下,这个relay_domains参数就非常重要,上游的MTA设备需要启动这个设置。
一般来讲除非所在的邮件服务器是某台MTA设备的源MX,否则这个设置参数可以忽略不设置,保留默认值即可,如图9-61中第287行所示。而如果想要这台邮件服务器的客户端转发邮件到某台特定的MTA设备时,这个参数也是可以设置的。
图9-61  relay_domains参数的设置
免费永久的linux服务器7mydestination
Postfix并不是将发到本服务器上的所有邮件都无一例外地接收下来,而是需要与mydestination参数中的指定值匹配,因为只有当发来的邮件的收件人地址与该参数值相匹配时,Postfix才会将该邮件接收下来。这个参数很重要,它就像Sendmail内的local-host-names一样。
例如,将该参数值设置为$mydomain和$myhostname,如图9-62第155行所示,表明无论来信的收件人地址是UserName@localdomain.tst(其中UserName即用户的邮件账户名),还是xxx@clinuxer.localdomain.tst,Postfix都会接收这些邮件。
图9-62  设置mydestination参数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。