构建Linux系统下的安全Postfix电子邮件服务(一)

日期: 2013-06-03 作者:李洋 来源:TechTarget中国

Postfix是一个由IBM资助、由Wietse Venema负责开发的自由软件工程产物,它的目的就是为用户提供除Qmail之外的邮件服务器选择。Postfix在快速、易于管理和提供尽可能的安全性方面都进行了较好的考虑。Postfix是基于半驻留、互操作的进程的体系结构,每个进程完成特定的任务,没有任何特定的进程衍生关系,使整个系统进程得到很好的保护。同时Postfix也可以和Qmail邮件服务器保持兼容性以满足用户的使用习惯。

  与Qmail相比,Postfix最被人称道的地方就在于其配置文件的可读性很高。Postfix的主配置文件是/etc/postfix/main.cf。虽然该配置文件……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

Postfix是一个由IBM资助、由Wietse Venema负责开发的自由软件工程产物,它的目的就是为用户提供除Qmail之外的邮件服务器选择。Postfix在快速、易于管理和提供尽可能的安全性方面都进行了较好的考虑。Postfix是基于半驻留、互操作的进程的体系结构,每个进程完成特定的任务,没有任何特定的进程衍生关系,使整个系统进程得到很好的保护。同时Postfix也可以和Qmail邮件服务器保持兼容性以满足用户的使用习惯。

  与Qmail相比,Postfix最被人称道的地方就在于其配置文件的可读性很高。Postfix的主配置文件是/etc/postfix/main.cf。虽然该配置文件的内容比较多,但其中大部分内容都是注释(“#”号开头的行),真正需要自行定义的参数并不多。然而,为了对其进行安全配置,还是需要针对某些选项进行细心的设置。

  Postfix配置文件

  在main.cf文件中,参数都是以类似变量的设置方法来设置的,这些参数的使用主要包含两部分的内容:

  (1)定义和声明变量:例如definename = good-better-best。等号左边是变量的名称,等号右边是变量的值。

  (2)引用变量:可以在变量的前面加上符号“$”来引用该变量,如:myname = $ definename(相当于definename = good-better-best)。

  需要注意的是:等号两边需要有空格字符。此外,如果变量有两个以上的设置值,就必须用逗号“,”或者空格符“ ”将它们分开。

  在熟悉了上述变量的定义和引用方法后,下面详细介绍如何安全、高效地配置Postfix服务器的相关选项。

  设置Postfix服务监听的网络接口

  默认情况下,inet_interfaces参数的值被设置为localhost,这表明只能在本地邮件主机上寄信。如果邮件主机上有多个网络接口,而又不想使全部的网络接口都开放Postfix服务,就可以用主机名指定需要开放的网络接口。不过,通常是将所有的网络接口都开放,以便接收从任何网络接口来的邮件,即将inet_interfaces参数的值设置为“all”,如下所示:

  inet_interfaces = all

  安全设置可接收邮件的主机名称或域名

  mydestination参数非常重要,因为只有当发来的邮件的收件人地址与该参数值相匹配时,Postfix才会将该邮件接收下来。通过该选项的设置可以过滤掉许多没有经过认证和授权的邮件,从而节省服务器的存储空间,以及节省用户的邮件处理时间。举一个简单的例子,用户可以将该参数值设置为如下:

  accept_domain = test.net

  mydestination = $accept_domain

  这就表明无论来信的收件人地址是X@test.net(其中X表示某用户在test.net域中的邮件账户名),Postfix都会接收这些邮件。而除此之外的邮件,Postfix都不会接受。

  安全设置可转发邮件的网络(IP设置)

  有关安全设置可转发邮件的网络可以使用mynetworks参数来设置。可将该参数值设置为所信任的某台主机的IP地址,也可设置为所信任的某个IP子网或多个IP子网(采用“,”或者“ ”分隔)。

  比如,用户可以将mynetworks参数值设置为172.168.96.0/24,则表示这台邮件主机只转发子网172.168.96.0/24中的客户端所发来的邮件,而拒绝为其他子网转发邮件:

  mynetworks = 172.168.96.0/24

  除了mynetworks参数外,还有一个用于控制网络邮件转发的参数是mynetworks-style,它主要用来设置可转发邮件网络的方式。通常有以下三种方式:

  (1)class:在这种方式下,Postfix会自动根据邮件主机的IP地址得知它所在的IP网络类型(即A类、B类或是C类),从而开放的它所在的IP网段。

  (2)subnet:这是postfix的默认值,Postfix会根据邮件主机的网络接口上所设置的IP地址、子网掩码来得知所要开放的IP网段。

  (3)host:在这种方式下,Postfix只会开放本机。

  通常,用户一般不需要设置mynetworks-style参数,而直接设置mynetworks参数。如果这两个参数都进行了设置,那么mynetworks参数的设置有效。

作者

李洋
李洋

中国移动研究院

相关推荐