移动安全安全管理 应用案例 网络威胁 系统安全 应用安全 数据安全 云安全
当前位置: 主页 > 信息安全 > 安全管理 >

构建Linux系统下的安然Postfix电子邮件办事

时间:2013-06-05 20:31来源:TuZhiJiaMi企业信息安全专家 点击:
Postfix是一个由IBM帮助、由Wietse Venema负责开辟的自由软件工程产品,它的目标就是为用户供给除Qmail以外的邮件办事器选择。Postfix在快速、易于治理和供给尽可能的安然性方面都进行了较好的考
Tags安全管理(325)Linux系统(18)Postfix(1)电子邮件服务(1)  

  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_inte***ces参数的值被设置为localhost,这表白只能在本地邮件主机上寄信。假定邮件主机上有多个收集接口,而又不想使全数的收集接口都开放Postfix办事,便可以用主机名指定需要开放的收集接口。不外,凡是是将所有的收集接口都开放,以便领受从任何收集接口来的邮件,即将inet_inte***ces参数的值设置为“all”,以下所示:

  inet_inte***ces = 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参数的设置有效。

  设置可转发邮件的收集(域名设置)

  上面介绍的mynetworks参数是针对邮件来历的IP来设置的,而relay_domains参数则是针对邮件来历的域名或主机名来设置的,其实从道理上来讲是一致的,不外是辨别了IP地址和域名罢了,不外,relay_domains还需要依托DNS这个根本举措措施。

  例如,用户可以将relay_domains参数值设置为test.net,则暗示任何由域test.net发来的邮件城市被觉得是信赖的,Postfix会主动对这些邮件进行转发,以下所示:

  relay_domains = test.net

  那么,要使它能在实际收集中更好地转发邮件,还必需进行响应的DNS设置。那么,需要在该收集的DNS办事器上定义了一个主区域test.net,并在该区域建设文件中定义了以下记实:

  //定义邮件办事器的IP地址

  patterson.test.net. IN A 172.168.96.254

  //定义邮件办事器的别号

  mail.test.net. IN CNAME patterson.test.net.

  //定义优先级别

  test.net. IN MX 10 mail.test.net.

  上述记实只对邮件办事器进行了定义,还有诸如SOA、NS等的定义,在这里就不再赘述。

  Postfix利用SMTP安然认证

  为了不无限制的转发环境的呈现,Postfix默许不会对外开放转发功能,而仅对本机(localhost)开放转发功能。可是,在实际利用中,必需在Postfix主建设文件中经由过程设置mynetworks、relay_domains参数来开放一些所信赖的网段或网域,不然该邮件办事器几近没有甚么用处。在开放了这些所信赖的网段或网域后,还可以经由过程设置SMTP认证,对要求转发邮件的客户端进行用户身份(用户账户名与暗码)验证。只有经由过程了验证,才能领受该用户寄来的邮件并帮忙转发。一样,Postfix中今朝比较常常利用的SMTP认证机制是经由过程Cyrus SASL包来实现的。

  默许环境下,Postfix并没有启用SMTP认证机制。要让Postfix启用SMTP认证,就必需对Postfix的主建设文件/etc/postfix/main.cf进行点窜。用户需要在main.cf文件中添加以下有关SMTP认证的设置部门:

  smtpd_sasl_auth_enable = yes

  smtpd_sasl_local_domain = ''

  smtpd_recipient_restrictions = permit_mynetworks

  permit_sasl_authenticated, reject_unauth_destination

  broken_sasl_auth_clients=yes

  smtpd_client_restrictions = permit_sasl_authenticated

  smtpd_sasl_security_options = noanonymous

  此中,每个选项的具体含义以下:

  (1)smtpd_sasl_auth_enable:指定是不是要启用SASL作为SMTP认证编制。默许不启用,这里必需将它启用,所以要将该参数值设置为yes。

  (2)smtpd_sasl_local_domain:假定采取Cyrus-SASL版进行认证,那么这里不做设置。

  (3)smtpd_recipient_restrictions:暗示经由过程收件人地址对客户端发来的邮件进行过滤。凡是有以下几种限制法则:

  permit_mynetworks:暗示只如果收件人地址位于mynetworks参数中指定的网段便可以被转发邮件。

  permit_sasl_authenticated:暗示承诺转发经由过程SASL认证的邮件。

  reject_unauth_destination:暗示拒尽转发含未信赖的方针地址的邮件。

  (4)broken_sasl_auth_clients:暗示是不是兼容非尺度的SMTP认证。有一些Microsoft的SMTP客户端采取非尺度的SMTP认证和谈,只需将该参数设置为yes便可解决这类不兼容标题问题。

  (5)smtpd_client_restrictions:暗示限制可以向Postfix倡议SMTP连接的客户端。假定要避免未颠末认证的客户端向Postfix倡议SMTP连接,则可将该参数值设置为permit_sasl_authenticated。

  (6)smtpd_sasl_security_options:用来限制某些登录的编制。假定将该参数值设置为noanonymous,则暗示避免采取匿名登录编制。

  在完成上述设置后,必需利用号令/etc/init.d/postfix reload从头载进建设文件,或利用号令/etc/init.d/postfix restart从头启动Postfix办事,以使该建设生效。当然,这两个号令的具体利用需要按照不合的Linux版本来选用。

  别的,因为当Postfix要利用SMTP认证时,会读取/usr/lib/sasl2/smtpd.conf文件中的内容,以肯定所采取的认证编制,是以假定要利用saslauthd这个守护过程来进行暗码认证,就必需确保/usr/lib/sasl2/smtpd.conf文件中的内容为:

  pwcheck_method: saslauthd

------分隔线----------------------------

推荐内容