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

企业开源电子邮件系统安然保障实战

时间:2013-05-04 10:19来源:TuZhiJiaMi企业信息安全专家 点击:
电子邮件系统已成为现代企业必不成少的收集根本举措措施,开源电子邮件系统也逐步成为企业构建利用时的首选。但是,若何确保电子邮件系统安然、抵抗垃圾邮件、邮件病毒等安然威胁是
Tags系统安全(735)安全防护(101)电子邮件(44)  

  电子邮件系统已成为现代企业必不成少的收集根本举措措施,开源电子邮件系统也逐步成为企业构建利用时的首选。但是,若何确保电子邮件系统安然、抵抗垃圾邮件、邮件病毒等安然威胁是企业在利用构建过程中需要侧重解决的标题问题。作为本系列的第一部门,本文将具体介绍企业开源电子邮件系统的安然道理及 Sendmail、Qmail 邮件办事的安然防护实战。

  企业开源电子邮件系统简介

  企业开源电子邮件系统模型根基可分为邮件传递代办署理 MTA、邮件存储和获得代办署理 MSA 和邮件客户代办署理 MUA 三大年夜模块,下面就邮件系统的构成作介绍。

  邮件传递代办署理(MTA)

  企业 Linux 开源系统下的邮件传递代办署理(Mail Transfer Agent)凡是利用 Sendmail,该系统几近在任何 UNIX 平台上都有响应的版本。别的,还有 D.J. Bernstein 的 Qmail 和 Wietse Venema 的 Postfix 系统。它们负责领受并转递邮件。这当然看起来很简单,实际上设置可能相当复杂。在邮件策略治理时需要设置一系列的路由和假装选项,而良多功能是由说话编程实现的,用以过滤或点窜中继动静的头信息。别的邮件路由和寻址邮件存储信箱的过程包含了复杂的与各类目次办事交互把持,这些目次办事可能包含 DNS、暗码文件、NIS、LDAP 别号 / 数据库治理文件,和各类的通用数据库系统。

  此刻的 MTA 还要实现反垃圾邮件功能,节制邮件头的 to 和 from 地址格局,达到承诺或限制特定域名或地址范围目标,以上主如果经由过程点窜存取节制表和法则实现的。这一过程凡是包含查询数据表或目次办事,例如 Paul Vixie 的及时黑洞列表法度 RBL,邮件滥用预防系统 MAPS,和同类的 Dorkslayer/ORBS 系统。MTA 一向在不竭加强当中,以实现加强的策略节制和反病毒和反蠕虫等功能。

  在大年夜大都环境下,安装和设置 MTA 系统比较等闲,不外强大年夜功能的实现是以高度复杂性为代价的。假定用户地点的机构选择定制的 MTA 来知足特定的路由、系统、安然性和反垃圾邮件等要求,就需要加倍复杂的设置选项,建设包含设计并措置 MTA 和各类子系统如 LDAP、DNS 办事器之间的复杂关系。

  浩繁的 MTA 软件中,最为有影响的应当是 Sendmail、Qmail 和 Postfix。Sendmail 是最古老的 MTA 之一,也具有一批固定的利用者;Qmail 是新生一代的 MTA 代表,其特点是速度快、体积小,并且等闲建设安装。Postfix 发源于 1996 年,它采取模块化设计,利用了大年夜量优良的手艺,以达到安然高效的目标。Postfix 成长到此刻已成为功能很是丰硕、扩大性和安然性很是强的优良 MTA 软件。

  起首谈谈 Sendmail。MTA 软件的良多进步前辈功能都是在 Sendmail 上最早实现的。但 Sendmail 也有典型的汗青标题问题,主如果全部法度的没有实现杰出的模块化,运行时需要 SID 权限,和建设文件复杂难懂。这些是阻碍 Sendmail 更好普及利用的一些客不雅标题问题。

  接着是 Qmail。Qmail 是新生一代的 MTA 代表,实现了模块化设计,避免了 SID 标题问题,根基功能齐备,建设较 Sendmail 简单,并且用户也很遍及。但 Qmail 比来几年的开辟工作根基遏制,补丁法度也相对零乱,这些都是持久利用 Qmail 的用户或邮件办事供给商不克不及不当真考虑的标题问题。别的,Qmail 的扩大性其实不是很好,常常需要补丁来完成功能的扩大。

  最后介绍 Postfix。Postfix 是新生一代的 MTA 代表,它以速度快、体积小、易建设安装等特点而著称。Postfix 在设计上可以说是最为美好的,其实现了杰出的模块化,邮件的措置流程是经由过程调用各个功能模块来完成,在效力、功能、可用性、扩大及安然等方面都考虑得比较充分。Postfix 以替代 Sendmail 为目标,并供给了一个更安然、更高机能的矫捷的系统。它一样也采取模块化设计,利用了大年夜量优良的手艺,以达到安然的目标。因为作者的设计理念独到,颠末 7、8 年时候,Postfix 当今已成长成为功能很是丰硕,扩大性和安然性强的优良 MTA。

  邮件存储和获得代办署理(MSA)

  一旦安装并设置完成了 MTA,还要对 MSA 系统进行一样的建设过程。如本大年夜大都机构其实不直接将邮件传送到桌面客户系统,而是将邮件存储到办事器,让用户经由过程 POP 或 IMAP 来读取各自的邮件。

  邮件存储的治理有良多种和谈,但此刻最常常利用的是 POP3 和 IMAP4。对 MTA 来讲,由一些法度,或称之为 Daemon(守护过程)来实现响应和谈的办事。大年夜大都 MSA(Mail Submission Agent)可以与通用的 MTA 交互,别的这些系统还包含加锁或其他安然机制,使良多个 MSA 可以并行工作而不产生冲突。

  这意味着一些用户可以经由过程 POP 和谈获得邮件、同时其余一些用户可利用 IMAP 和谈,而别的一些用户可以登录系统,利用本地邮件客户代办署理例如 Pine、Mutt 或 Elm 措置邮件。伶仃用户也能够从一种存取和谈切换到另外一种,而其实不需要系统治理员的干涉干与。在一个已安装了 Linux 系统机械上设置 POP 办事相当等闲,乃至不需要甚么把持。凡是 POP Daemon 在最初的 Linux 把持系统安装时已设立,IMAP 也是如斯。POP 将邮件转递到客户端并从办事器上移除,而 IMAP 承诺用户将邮件存贮在办事器端的文件夹中,而客户端的拷贝是缓存或工作副本,如许做需要更多的办事器存储空间,却可让 IT 部门集中在办事器端进行备份和恢复,并让客户端保持相当的矫捷性和安然性。IMAP 也能够设置成像 POP 那样在客户端读取后就删除办事器端的邮件,从把持上讲,二者并没有甚么不合。

  邮件客户代办署理(MUA)

  邮件客户代办署理 MUA(Mail User Agent)种类繁多,并且层见叠出。这些代办署理大年夜都合适 POP 和 IMAP 和谈。这也包含微软的 Outlook 系列、Foxmail 等。在 Linux 下,良多人利用 Fetchmail 抓取邮件并保留在本地邮箱。然后利用任何一种邮件客户代办署理 MUA,好比 Elm、Pine、Mutt、MH/exmh、EMACS 的 Rmail,Vmail、Mh-e、Gnus 和大年夜量的带有 GUI 界面的如 Balsa、Mahogany 等来措置邮件。也有浩繁 Linux 用户选择利用 Netscape Communicator 内置的邮件客户端。

  电子邮件传输和谈道理

  SMTP(Simple Mail Transfer Protocol)和谈是为了包管电子邮件的靠得住和高效传送。TCP/IP 和谈的利用层中包含有 SMTP 和谈,但事实上其与传输系统和机制无关,仅要求一个靠得住的数据畅通道。该和谈可以工作在 TCP 上,也能够工作在 NCP、NITS 等和谈上。在 TCP 上,其利用端口 25 进行传输。SMTP 的一个首要特点是可以在可交互的通信系统中转发邮件。

  SMTP 供给了一种邮件传输的机制,当领受方和发送方都在一个收集上时,可以把邮件直传给对方;当两边不在统一个收集上时,需要经由过程一个或几个中间办事器转发。SMTP 起首由发送方提出申请,要求与领受方 SMTP 成立双向的通信渠道,领受方可所以最终收件人也能够是中间转发的办事器。领受方办事器确承认以成立连接后,双发便可以开端通信。

  发送方 SMTP 向领受方发出 MAIL 号令,奉告发送方的身份;假定领受方接管,就会答复 OK。发送方再发出 RCPT 号令,奉告收件人的身份,领受方 SMTP 确认是不是领受或转发,假定同意就答复 OK;接下来便可以进行数据传输了。通信过程中,发送方 SMTP 与领受方 SMTP 采取对话式的交互编制,发送方提出要求,领受方进行确认,确认后才进行下一步的动作。全部过程由发送方节制,有时需要确认几回才可以(如图 1 所示)。

http://s5.51cto.com/wyfs01/M01/07/0E/wKioJlFuF6njYv5kAABG4yHsfUA546.jpg

  图 1. SMTP 和谈工作流程

  为了包管答复号令的有效,SMTP 要求发送方必需供给领受方的办事器及邮箱。邮件的号令和答复有严格的语法定义,并且答复具有响应的数字代码。所有的号令由 ASCII 码构成。号令代码是大年夜小写无关的,如 MAIL 和 mail、mAIL 都是等效的。

  今朝利用的 SMTP 和谈是存储转发和谈,意味着其承诺邮件经由过程一系列的办事器发送到最终目标地。办事器在一个队列中存储达到的邮件,等候发送到下一个目标地。下一个目标地可所以本地用户,或是另外一个邮件办事器,如图 2 所示。假定下流的办事器临时不成用,MTA 就临时在队列中保留信件,并在今后测验测验发送。

http://s8.51cto.com/wyfs01/M00/07/0E/wKioOVFuF6nDI0BUAAAjw50yJl4244.jpg

  图 2. SMTP 存储 - 转发工作流程

  SMTP 定义了 15 个号令,别离是:HELO、MAIL FROM、RCPT TO、DATA、RSET、SEND FROM、SOML FROM、SAML FROM、VRFY、EXPN、HELP、NOOP、QUIT、TURN。此中 SMTP 工作的根基的号令有 7 个:HELO、MAIL FROM、RCPT TO、DATA、REST、NOOP 和 QUIT。

  下面别离对这些号令进行介绍。

  HELO:发送方问候领受方,后面是发件人的办事器地址或标识。领受方答复 OK 时标识本身的身份。问候和确认过程表白两台机械可以进行通信,同时状况参量被复位,缓冲区被清空。

  MAIL FROM:这个号令用来开端传送邮件,厥后面跟从发送方邮件地址(返回邮件地址)。也用来当邮件没法送达时,发送掉败通知。为包管邮件的成功发送,发送方的地址应是被对方或中间转发方同意接管的。这个号令会清空有关的缓冲区,为新的邮件做预备。

  RCPT TO:这个号令奉告领受方收件人的邮箱。当有多个收件人时,需要多次利用该号令,每次只能指明一小我。假定领受方办事器不合意转发这个地址的邮件,其必需报 550 弊端代码通知发送方。假定办事器同意转发,其要更改邮件发送路径,把最开端的目标地(该办事器)换成下一个办事器。

  DATA:领受方把该号令以后的数据作为发送的数据。数据被加进数据缓冲区中,以单独一行是“.”的行结束数据。结束行对领受方同时意味当即开端缓冲区内的数据传送,传送结束后清空缓冲区。假定传送接管,领受方答复 OK。

  REST:这个号令用来通知领受方复位,所有已存进缓冲区的收件人数据,发件人数据和待传送的数据都必需断根,领受方必需答复 OK。

  NOOP:这个号令不影响任何参数,只是要求领受放答复 OK,不会影响缓冲区的数据。

  QUIT:SMTP 要求领受方必需答复 OK,然后间断传输;在收到这个号令并答复 OK 前,领受方不得间断连接,即便传输呈现弊端。发送方在发出这个号令并收到 OK 答复前,也不得间断连接。

  VERY:用于确认领受用户。

  SEND:使领受主机知道动静必需送到另外一个终端,当前传输被打消。

  HELP:查询办事器撑持的号令调集。

  EXPN:验证给定的邮箱列表是不是存在,并扩充邮箱列表。

  TURN:要求领受主机向发送主机返回动静。

  SAML:发送并邮寄。通知领受主机动静必需发送到其他终端和邮箱。

  企业开源电子邮件系统面对的安然威胁

  一般说来,电子邮件系统面对以下三种安然威胁:

  电子邮件系统本身的安然标题问题:电子邮件系统本身作为一个收集办事器,存在着建设和误把持上的安然威胁和隐患,如没有合理建设办事器的相干建设文件中的首要选项等,极有可能造成暗藏的安然隐患。别的,电子邮件系统版本的及时更新与否也影响到其安然;

  垃圾邮件标题问题:垃圾邮件标题问题是当今最让收集用户头疼的恶疾之一。良多不请自来的垃圾邮件不单据有收集带宽,也极大年夜地耗损了邮件办事器的存储资本,给用户带来很是大年夜的不便。若何应对该标题问题,是电子邮件系统面对的最大年夜的挑战;

  开放性中继的安然标题问题:正如本文前脸部门所谈到的 open relay 的道理,假定设置不合理,将直接引发电子邮件系统的滥用,乃至会成为垃圾邮件的温床,它可以说是电子邮件系统中的“按时炸弹”。

  实战安然建设 Sendmail 电子邮件办事器

  sendmail.cf 是 Sendmail 的建设文件。一般来讲在安装了 Linux 系统以后,将主动生成一个合适本系统利用的 sendmail.cf 文件,并且在 sendmail.8.9.3/cf 目次下还有良多适应各类系统的 sendmail.cf 的文件样本,按照文件名也能够鉴定出它们所合用的场合。可以选择它们替代原本的 sendmail.cf 文件,也就是说,将它们复制到 /etc 目次中往,笼盖掉落本来的 sendmail.cf 文件。并且 Sendmail 还供给了一个 sendmail.cf 的生成器 m4,其经由过程一系列的人机对话来生成一个用户定制的 sendmail.cf 文件。具体的用法可以浏览 m4 的帮忙文档,在此就不再胪陈。

  建设文件 sendmail.cf 中的信息仍然是以行动单位。假定行首的第一个字符为“#”,则暗示该行动注释,假定第一个字符为空格则暗示该行动上一行的延续。别的,行首的第一个字符均为号令,可是号令同变量或值之间没有距离。这类格局便于 Sendmail 进行阐发,但很难浏览。下面介绍 sendmail.cf 建设文件中的号令。

  D(定义宏)

  号令 D 定义宏并为其赋值。当宏被定义以后,其就负责供给供给其存储的值给 sendmail.cf 文件中其他的号令利用或直接供给给 Sendmail 利用。宏的名字可所以任何单字符,小写的用于 Sendmail 内部宏,用户成立的宏只能利用大年夜写字母作为名字。一些 Sendmail 的内部宏也在 sendmail.cf 文件里定义。例以下面两行定义了宏 D 和内部宏 n:

  DDcs.mit.edu

  DnMAILER-DEAMON

  则宏 D 的值为 cs.mit.edu,宏 n 的值为 MAILER-DEAMON。要利用宏的值时,必需在宏的名字前面加上符号“$”,以这类情势来援引其值。例如:

  #my official host name

  Dj$w.$D

  假定宏 w 的值为主机名 moon,此时宏 j 的值就为 moon.cs.mit.edu,这便是本主机的全称名(FQDN)。

  C 与 F(定义类)

  号令 C 与 F 都是用来定义 Sendmail 的类。所谓类,实际上就是由措置编制不异的多个变量构成的数组。与宏一样,类也利用单字符名字,大年夜小写法则也一样。类可以定义在一行当中,也能够分多行定义,例如,下面的示范为内部类 w 赋值为系统的主机名,而系统可以有多个名字:

  Cwmoon sun

  Cwearth

  Cwlocalhost

  号令 F 是从文件中获得类的值,例如,可以把 moon、sun、earth 保留在 sendmail.cw 当中,然后用 F 号令便可以实现同上述号令完全不异的成果:

  Fw/etc/sendmail.cw

  对类的援引与宏的援引完全一样,事实上宏就是一种类。二者独一的辨别在于:宏只能有一个独一的值,而类可以有多个值,当然也能够只有一个值。

  O(设置选项)

  号令 O 是为 Sendmail 的选项赋值,赋给选项的值可所以字符串、整数或布尔值,所有的选项值都是直接由 Sendmail 来利用。寄望:这里所说的选项与 Sendmail 利用的号令行参数不一样。凡是环境下,不需要点窜这些选项。

  T(定义可托任的用户)

  号令 T 用来定义一组用户列表,这组用户可利用 Sendmail 号令带 -f 参数来点窜用户发出的邮件地址。一般环境下,包含 root、daemon 和 uucp。治理员最好不要随便添加其他的用户,不然这类权限在某些用户手中可能会对系统安然构成威胁。可托任的用户可以在一行或多行中定义,可是被定义的用户必需是 /etc/passwd 中的合法用户。默许是:

  Troot

  Tdaemon

  Tuucp

  P(设置优先级)

  Sendmail 利用号令 P 定义不合的优先级来措置进进出局缓冲区的电子邮件。号令 P 定义的值越高,则优先级也越高,缺省的优先级为 0。负优先级的电子邮件是不产生弊端信息的,是以在批量发送邮件是应当定义较底的优先级。常常利用的优先级为:

  Pfirst-class=0

  Pspecial-delivery=100

  Plist=30

  Pbulk=-60

  Pjunk=-100

  假定用户在发送邮件是要指定优先级,则需要在邮件的首部中添加 Precedence,例如:

  Precedence:bulk

  K(关头文件声明)

  特别的映照可以定义成:Kmapname mapclass arguments。此中,mapname 是可重写法则中利用这个映照的句柄,mapclass 是映照类型的名字,arguments 的诠释依托与映照类型,凡是是包含映照的文件名。

  V(建设版本级别)

  供给与老版本建设文件的兼容机能。

  M(定义邮件传输法度)

  号令 M 定义邮件传输法度(mailer)的规格 / 具体参数,其情势为:Mname,[field=value]。

  Sendmail 其实不是直接发送各类各样的电子邮件,它起首将要发送的邮件分类,然后交给响应的 mailer 来发送,本身只发送基于 SMTP/TCP/IP 的邮件。此中,[IPC] 暗示利用 Sendmail 经由过程 SMTP 来传送邮件。关于 IPC mailer,在 Sendmail 的文档里有一段特别的诠释:当法则集 0 解析到 IPC mailer 时会措置一些特别的过程。好比直接用 IP 地址发送邮件可以用 [128.32.149.78] 的情势,若用 [ucbvax.berkeley.edu] 将会被作为字符串传递,用如许的编制用户可以机关一个特别的邮件地址,使本身的邮件按指定的线路发送,而凡是常利用户是不关心也不知道本身邮件的发送线路的。

  H(定义邮件的首部格局)

  号令 H 定义 Sendmail 号令插进电子邮件首部的行的格局。

  R(定义重写法则)

  重写法则是 Sendmail 建设文件的核心内容,每个重写法则由号令 R 定义,其情势以下:

  Rpattern transformation comment

  号令 R 中的字段由制表符进行分隔,系统措置时忽视注释字段(comment),模式字段(pattern)与改写字段(transformation)为该号令的核心。重写法则将输进地址与模式进行匹配,假定匹配,则将该地址用法则中改写字段的法则重写为新的格局。每个法则都可以多次措置统一地址,这是因为地址在重写以后,仍要再次同该模式进行匹配,假定仍然匹配则再次改写,直到不再匹配为止(利用“$:”可以避免无限轮回)。

  S(设置重写法则集)

  法则集是一组可以用数字来援引的相干重写法则。号令 S 是法则集的开端并付与其一个数字以便由邮件传输法度来调用。法则集可以被看感化来措置电子邮件地址的子法度或函数。具有特别功能并可由 sendmail 直接调用的法则集有 5 个:

  法则集 3:为最大年夜最复杂的法则集,也是用于地址的第一个法则集。它将地址转化为正规情势,如:user@host.domain。

  法则集 0:利用于传输邮件的地址。必需在法则集 3 以后利用,并仅用于实际邮件传输中领受者的地址。其可以将地址解析成(mailer,host,user)的情势,由邮件传输者、领受方主机和领受用户的名字构成。

  法则集 1:利用于动静中所有发送者地址。

  法则集 2:利用于动静中所有领受者地址。

  法则集 4:利用于动静中所有地址并将内部地址格局转化为外部地址格局。

  安然建设 sendmail.mc 文件

  Sendmail 的建设十分复杂,其建设文件是 sendmail.cf,位于 /etc/mail 目次下。因为 sendmail.cf 的语法艰深难懂,很少有人会直接往点窜该文件来对 Sendmail 办事器进行建设。我们一般经由过程 m4 宏措置法度来生成所需的 sendmail.cf 文件。成立的过程中还需要一个模板文件,系统默许在 /etc/mail 目次下有一个 sendmail.mc 模板文件。

  用 m4 宏编译东西成立 sendmail.cf 文件比较便利,并且不等闲犯错,更可以避免某些带有安然缝隙或过时的宏所酿成的粉碎。一个 sendmail.mc 模板的大年夜致内容以下:

  pert(-1)dnl

  ……

  include('/usr/share/sendmail-cf/m4/cf.m4')dnl

  VERSIONID('setup for Red Hat)dnl

  OSTYPE('Linux')dnl

  ……

  dnl #

  dnl define('SMART_HOST','smtp.your.provider')

  dnl #

  define('confDEF_USER_ID',''8:12'')dnl

  define('confTRUSTED_USER', 'smmsp')dnl

  dnl define( ′ confAUTO_REBUILD ′ )dnl

  ……

  下面介绍 ndmail.mc 模板的语法构成:

  dnl:用来注释各项,同时 dnl 号令还用来标识一个号令的结束。

  pert(-1):位于 mc 模板文件的顶部,目标是让 m4 法度输出时加倍精简一些。

  OSTYPE ('OperationSystemType'):定义利用的把持系统类型,明显这里应当用 Linux 代替 OperationSystemType,寄望要用一个反引号和一个正引号把对应的把持系统类型括起来。

  define:定义一些全局设置,对 Linux 系统,设置了 OSTYPE 以后,可以定义下面的一些全局参数,假定不定义,就利用默许值。下面给出例子:define('ALIAS_FILE','/etc/aliases'):定义别号文件 (alia file) 的保留路径,默许是 /etc/aliases。Define('STATUS_FILE', '/etc/mail/statistics'):定义 sendmail 的状况信息文件。

  是以,用户可以按照简单、直不雅的 sendmail.mc 模板来生成 sendmail.cf 文件,而不必直接编纂 sendmail.cf 文件。可以直接经由过程点窜 sendmail.mc 模板来达到定制 sendmail.cf 文件的目标。这里介绍成立 sendmail.cf 文件的步调:

  (1)备份原有 sendmail.cf 文件:

  #cp /etc/mial/sendmail.cf /etc/mail/sendmail.cf.BAK

  (2)生成 sendmail.cf 文件,按照 sendmail.mc 模板文件产生 sendmail.cf 建设文件,并导出到 /etc/mail/ 目次下:

  #m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

  (3)重启 Sendmail 办事:

  #service sendmail restart

  在该文件中,有 6 个很是首要的参数需要进行细心的设置,因为它们对 Sendmail 办事器的机能和应对拒尽办事报复打击方面具有很大年夜的影响:

  ConfCONNECTION_RATE_THROTTLE:该参数暗示办事器可以或许接管的最大年夜连接数量。一般环境下 Sendmail 不会对其进行限制。可是假定不设置,将会可能使得办事器的机能“透支”,建议设置为:Define(’ confCONNECTION_RATE_THROTTLE ’ , 5);

  ConfMAX_MESSAGE_SIZE:该参数暗示单个动静可接管数据的最大年夜限度(以字节为单位),此参数设置可以过滤一些异常的携带大年夜附件的邮件,从而减轻办事器的传输压力和存储空间压力,建议设置为:Define(’ ConfMAX_MESSAGE_SIZE ’ , 10000000);

  ConfMIN_FREE_BLOCKS:此参数定义办事器保留的用于领受邮件的余暇块的最小数量,一般定义为 100 便可,即:Define(’ ConfMIN_FREE_BLOCKS ’ , 100);

  ConfMAX_DAEMON_CHILDREN:此参数定义办事器主过程可以或许派生的子过程的最大年夜数量,一般不宜过大年夜,设定为 10 便可,即:Define(’ ConfMAX_DAEMON_CHILDREN ’ , 10);

  ConfMAX_HEADER_LENGTH:该参数定义动静头的最大年夜限度(以字节为单位),定义该参数可以过滤部门黑客报复打击,建议设置为:Define(’ ConfMAX_HEADER_LENGTH ’ , 16000);

  ConfMAX_RCPTS_PER_MESSAGE:设定邮件最大年夜领受者的数量,对该参数进行限制可以过滤大年夜量的垃圾邮件,因为垃圾邮件一般都具有巨大年夜数量标领受者。建议设置为:Define(’ ConfMAX_RCPTS_PER_MESSAGE ’ , 100)。

  实战安然建设利用 Qmail 邮件办事器

  Qmail 的建设文件是由多个文件构成的,不是集中在一个文件中。每个文件节制响应部门的功能和属性,一个可履行法度可能有多个建设文件节制,所有的建设文件共同决定了 Qmail 运行的实现和模式。这些建设文件都在 Qmail 的 control 目次中,即位于 /var/qmail/control 目次中。合理设定以下选项,可以有效地加强 Qmail 办事器的安然机能。

  (1)badmailfrom

  这个建设文件是节制邮件系统拒尽领受的邮件地址和邮件域,主如果为了不垃圾邮件。假定一个邮件地址或邮件域被列进到这个文件中,系统就会拒尽领受这个邮件地址发来的邮件,或拒尽邮件域下所有邮件地址发来的邮件。不外这个建设文件只是一般的垃圾邮件防备手段,对比较周全的垃圾邮件过滤手艺还要靠第三方软件来实现。该文件的格局以下:

  example@deny.com // 拒尽这个地址发来的邮件

  @deny.com // 拒尽这个邮件域下的所有帐号发来的邮件

  (2)concurrencylocal

  这个文件定义了 Qmail 可以同时送达的本地邮件的个数。这个参数的缺省值是 10,也就是说系统承诺同时有 10 个邮件在本地送达。 concurrencylocal 这个参数的最大年夜值是由编译时的 conf-spawn 参数来决定的,缺省值是 120,最大年夜值是 255。该值应当设置得当,设得过大年夜或太小会华侈或损掉 Qmail 办事器的机能。

  (3)concurrencyremote

  这个参数定义了 Qmail 可以同时送达的远端邮件的个数,这个参数的缺省值是 20。这个参数的最大年夜值也是由 conf-spawn 来决定的。设置的首要性犹如选项(2)所示。

  (4)databyes

  它定义了 qmail-smtpd 所承诺领受的邮件的最大年夜字节数。

  这个参数的缺省值为 0,暗示对领受邮件的字节数没有限制。假定要限制最大年夜的领受为 10M,把持以下:

  echo 10485760 > /var/qmail/control/databytes

  这是任何大年夜于 10M 的邮件城市被拒尽。这个参数最好合理设置,以避免歹意的对你办事器发送大年夜量的超大年夜邮件,产生邮件办事器负荷过大年夜,乃至系统解体的危险。

  (5)me

  这个建设文件是 Qmail 系统十分首要的一个文件,假定这个文件不存在,Qmail 系统将没法运行。 me 是用来定义本地邮件办事器的主机名的。有多个建设文件是和 me 有联系关系的。假定那些建设文件不存在,系统默许会从 me 中读取参数值的。me 这个建设文件一般都是在 Qmail 系统安装时利用 configure-fast 来成立的。

  (6)queuelifetime

  这个建设文件是定义一个邮件在邮件队列中存活的时候。

  缺省值为 7 天(604800s),这个刻日掉落了今后 qmail-send 将会进行最后一次的送达测验测验,假定送达掉败,该邮件将会从邮件队列中删除。

  (7)rcphosts

  这个建设文件也是 Qmail 一个十分首要的文件,这个文件是定义系统承诺转发邮件的邮件域。 假定这个文件不存在或为空,你的系统将会领受 Internet 上所有的域的邮件转发,即你的系统是 Open relay(存在被歹意用户作为垃圾邮件发送办事器的危险!!!)。建设文件 rcpthosts 最多可以撑持 50 个主机名和域名。假定超个这个数字,就需要保留到他的扩充建设文件 morercphosts 中,然后利用 Qmail 的号令法度 qmail-newmrh (该文件一般在 /var/qmail/bin 目次下)来生成二进制的 morercpthosts.cdb 文件,如许 qmail-smtpd 才可以从这个二进制文件中读守信息。

  (8)virtualdomains

  这也是 Qmail 的一个很是首要的建设文件,它定义了 Qmail 的虚拟邮件域,Qmail 连络 vpopmail 的虚拟域治理功能可以定义多个虚拟邮件域。

  总结

  本文作为本系列的第一部门,具体介绍了企业开源电子邮件系统的安然道理及 Sendmail、Qmail 安然防护实战。第二部门将具体介绍 Postfix 的安然防护实战,和若何进行企业垃圾邮件防备。

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

推荐内容