邮件服务器的安全解决方案

原创 2001年03月30日 12:32:00
Sendmail作为免费的邮件服务器软件,已被广泛应用于Internet各种操作系统的服务器中。如:Solaris,HPUX,AIX,IRIX,Linux等等。随着互连网的普及,邮件服务器受攻击的机会也大大增加。目前互连网上的邮件服务器所受攻击有两类:一类就是中继利用(Relay),即远程机器通过你的服务器来发信,这样任何人都可以利用你的服务器向任何地址发邮件,久而久之,你的机器不仅成为发送垃圾邮件的帮凶,也会使你的网络国际流量激增,同时将可能被网上的很多邮件服务器所拒绝。另一类攻击称为垃圾邮件(Spam),即人们常说的邮件炸弹,是指在很短时间内服务器可能接收大量无用的邮件,从而使邮件服务器不堪负载而出现瘫痪。这两种攻击都可能使邮件服务器无法正常工作。因此作为一个校园网邮件服务器防止邮件攻击将不可缺少。

  目前对于sendmail邮件服务器,阻止邮件攻击的方法有两种。一种是升级高版本的服务器软件,利用软件自身的安全功能。第二种就是采用第三方软件利用其诸如动态中继验证控制功能来实现。下面就以sendmail V8.9.3为例,介绍这些方法。

  1.服务器自身安全功能

  (1)编译sendmail时的安全考虑

  要利用sendmail 8.9.3的阻止邮件攻击功能,就必须在系统编译时对相关参数进行设置,并借助相关的软件包。目前主要就是利用Berkeley DB数据库的功能,Berkeley DB包可以从相关站点上下载,并需要预先编译好。然后将Berkeley DB的相关参数写进sendmail的有关文件中。

  a.修改site.config.m4文件

  将编译好的Berkeley DB有关库文件路径加入到site.config.m4文件中,使sendmail编译后能够使用Berkeley DB数据库。例如:

  #cd $/sendmail-8.9.3/BuidTools/Site

  修改site.config.m4文件

  define (confINCDIRS, -I/usr/local/BerkeleyDB/include)

  define (confLIBDIRS, L/usr/local/BerkeleyDB/lib)

  b.修改sendmail.mc文件

  sendmail.mc是生成sendmail.cf的模板文件之一,要使sendmail具有抗邮件攻击功能还需在该文件中进行相关定义。主要包括以下几项:

  ......

  FEATURE(relay_entire_domain)

  FEATURE(ACCESS_DB)dn1

  FEATURE(blacklist_recipients)

  ......

  (2)相关文件的配置

  正确编译好sendmail是邮件服务器安全控制的基础,而真正的安全设置主要还是利用相关文件进行的。这种包含控制语句的文件主要是access和relay-domains。

  access是邮件安全控制的主要数据库文件,在该文件中可以按照特定的格式将需控制的域名、IP地址或目标邮件地址,以及相应的动作值写入,然后使用makmap命令生成access.db文件(#makemap hash access.db < access),从而使服务器允许或屏蔽邮件中继和邮件轰炸。access的格式如下:

  spam.com REJECT

  edu.cn OK

  hotmail.com DISCARD

  其中reject动作是拒绝接受从指定地址发来的邮件;ok是允许特定地址用户任意访问;relay允许通过本邮件服务器进行中转邮件;discard是将收到的邮件交给特定命令进行处理,例如:可以设定将收到的邮件丢弃,或者设定收到邮件后返回给使用者一条出错信息等等。

  Relay-domains文件是设定哪些域是该服务器可以中继的域,其格式为每个域占一行。如:

  ......

  CN

  EDU

  JP

  ......

  在服务器开始使用时建议将所有顶级域名加入其中,以后再根据安全需要对其进行修改,否则将会使pop3用户发送邮件时出现relay reject错误,而无法向没有加入的域名目标邮件地址发送邮件。

3)版本号的修改

  对于一台邮件服务器,可以通过远程的25端口telnet命令来获取服务器的版本信息。如:“telnet sendmail服务器主机25”就可以查看sendmail的当前版本。为了防止一些恶意的查看版本信息操作,sendmail提供了可以对显示的版本进行修改的操作。

  在sendmail.cf文件中有一句“SmtpGreetingMessage=$j sendmail $V/$Z; $b”的语句,其中$V/$Z就是版本信息,正常情况下由该参数显示的版本信息为sendmail本身的版本。如果要设定成管理员给定的版本信息,只需将该参数改掉,然后加入你所希望的信息即可。例如:当把这句改成“SmtpGreeting Message=$j sendmail 0.0/0.0; $b”,重启sendmail服务,则sendmail的版本就会变成“sendmail 0.0”。从而达到隐蔽版本信息的目的。

  以上是sendmail 8.9.3本身带有的安全功能设置,通过这些安全设置可以大大加强服务器安全性能。但是在防止邮件中继和邮件炸弹的设置时,如何确定哪些目标地址是需阻止中继的,哪些又是允许中转的,似乎只能通过管理员对日志文件的分析和观测,或者待发现了安全问题后才能确定。因此这种安全控制还仅是事后控制,并且对相关文件修改后还必须重新启动服务器。如要实现事先动态安全控制还需要采用其他方法。

  2.动态中继验证控制

  DRAC(Dynamic Relay Authorization Control)动态中继验证控制是专门为邮件服务器设计的一个服务器端软件(http://mail.cc.umanitoba.ca/drac/index.html),它可以安装在一台SMTP服务器上,并同时为多个邮件服务器提供动态中继验证服务。DRAC主要通过自动获取和动态更新中继验证数据库中的信息来允许合法pop3或IMAP用户使用邮件服务器,从而有效地控制邮件炸弹和非法的邮件中继。DRAC的原理就是利用pop3或imap服务器固有的功能来获取用户名、密码和客户机IP地址等信息,并将这些信息及时映象到验证数据库中,供smtp服务器调用,同时在经过一段时间以后(缺省为30分种),其验证信息将自动失效,需要用户重新输入验证信息。这样不仅可以保证合法的pop3或imap用户能够正常使用邮件服务器,也可以阻止任何非注册用户(包括本地)利用邮件服务器来发送邮件。这种邮件安全控制常常被称为:“邮件服务之前的pop验证”(POP-before-SMTP)。

  (1)DRAC的编译

  在编译DRAC之前,系统的sendmail服务器应该已经正确编译安装了。首先在DRAC源程序目录中编辑Makefile文件,在Solaris 2.x操作系统中其Makefile改成:

  INSTALL=/usr/ucb/install

  EBIN=/usr/local/sbin

  MAN=/usr/local/man/man

  DEFS=-DTI_RPC -DFCNTL_LOCK -DSYSINFO

  CC= (编译器)

  RANLIB= :

  CFLAGS=$(DFES) -g -I/path/to/db/include

  LDLIBS=-L/path/to/db/library -lns1 -1db

  TSTLIBS=-L. -ldrac -lns1

  MANLIB=3

  MANADM=1m

  然后编译并安装即可。

  如果存在多个pop/IMAP服务器,则还需要将这些服务器的IP地址加到文件/etc/mail/dracd.allow中,其文件书写格式与/var/yp/securenets文件格式一样。如:

  255.255.255.255 202.139.244.23

  255.255.255.255 127.0.0.1

  (2)修改sendmail.mc文件重新生成sendmail.cf

  在使用DRAC验证功能之前,还需要将DRAC的验证信息加到sendmail.cf文件中。首先要修改sendmail.mc文件,然后重新生成sendmail.cf。sendmail.mc文件中相关语句修改如下:

  在LOCAL_CONFIG行下增加

  kdrac btree /etc/mail/dracd

  在LOCAL_RULESETS下增加

  Slocal_check_rcpt

  R$* $: $&{client_addr}

  R$+ $: $(drac $1 $: ? $)

  R? $@ ?

  R$+ $@ $#OK

  重新生成sendmail.cf文件后,再重启sendmail进程。

https在电子邮件安全解决方案

电子邮件安全解决方案 电子邮件已经成为现代人最重要和最不可缺少的个人生活和工作的通信工具之一,特别是企业应用。但是,您也许不知道,所有电子邮件系统都是明文传输,也就是说:您的每一个重要邮件都是在...
  • cio_liuguilan
  • cio_liuguilan
  • 2016年05月26日 09:32
  • 509

Tomcat服务器的Web安全的解决方法

1、概述   在任何一种WEB应用开发中,不论大中小规模的,每个开发者都会遇到一些需要保护程序数据的问题,涉及到用户的LOGIN ID和PASSWORD。那么如何执行验证方式更好呢?实际上,有很多...
  • u011794238
  • u011794238
  • 2015年03月04日 16:00
  • 498

数据中心解决方案安全技术

技术特色 在这种咄咄逼人的安全形势下,数据中心需要一个全方位一体化的安全部署方式。H3C数据中心安全解决方案秉承了H3C一贯倡导的“安全渗透理念”,将安全部署渗透到整个数据中心的设计、部署、运维中,...
  • permike
  • permike
  • 2016年04月14日 16:00
  • 8862

运维笔记21 (邮件服务器的搭建)

概述: 1.邮件服务器的搭建
  • No_red
  • No_red
  • 2016年12月09日 16:40
  • 1591

Linux下6种优秀的邮件传输代理

在互联网上,邮件客户端向邮件服务器发送邮件然后将消息路由到正确的目的地(其他客户),其中邮件服务器使用的一个网络应用程序称为邮件传输代理(MTA)。...
  • linuxnews
  • linuxnews
  • 2016年09月03日 22:47
  • 1369

postfix邮件服务器安全

为防止postfix邮件服务器被人冒用,使用它发送伪造的垃圾邮件,进行了以下实验,添加了smtp验证。 分析smtp发送 把内部IP从邮件 的信任网络中去掉, 然后测试邮件发送(依靠邮件发件人...
  • sethcss
  • sethcss
  • 2017年05月24日 17:46
  • 240

搭建邮件服务器之SMTP发送服务器(六)

创建postmaster帐户或别名 RFC 5321规定每个域必须具有邮政管理员邮箱并接受电子邮件。在接收来自您的电子邮件之前,存在检查此邮件的邮件系统。因此,请确保您在邮件服务器上创建一个po...
  • u011628250
  • u011628250
  • 2017年06月16日 08:53
  • 449

浅谈信息安全及解决方案

随着信息技术的发展,随着市场竞争的激烈化与网络攻击技术的飞速发展,信息安全形势变得日益严峻。信息安全是信息社会的保障,而网络环境的开放性复杂性和多变性决定了信息安全的威胁长期客观存在。在信息攻防战中,...
  • linksafe2014
  • linksafe2014
  • 2017年01月16日 15:15
  • 253

Java远程调用邮件服务器,实现邮件发送

写这篇文章的背景是公司Android客户端需要实现一个功能,实现类似于密码找回或者用户注册完发送一个邮件给用户的功能,当然这些逻辑客户端只负责请求自己的服务端,自己的服务端再去请求邮件服务器。 邮件...
  • sunchaoenter
  • sunchaoenter
  • 2013年07月09日 14:10
  • 8160

Windows Server2012搭建邮件服务器

要搭建邮件服务器,需要在服务器上配置 SMTP 和 POP3 服务,SMTP 服务负责发送邮件,POP3服务负责接收邮件。   在 Windows Server 2003 中提供了POP3 服务组件,...
  • qwertyupoiuytr
  • qwertyupoiuytr
  • 2017年03月20日 23:58
  • 9306
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:邮件服务器的安全解决方案
举报原因:
原因补充:

(最多只允许输入30个字)