架设Linux邮件服务器安全策略的实现Word格式文档下载.doc
《架设Linux邮件服务器安全策略的实现Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《架设Linux邮件服务器安全策略的实现Word格式文档下载.doc(33页珍藏版)》请在冰点文库上搜索。
并利用DNS轮询在两台邮件服务器之间实现负载均衡。
[关键词]黑名单过滤;
SMTP认证;
防垃圾邮件;
DNS轮询
一.引言
随着计算机网络的迅速发展,Linux作为一个现代化的操作系统,正在各个方面得到广泛的应用。
电子邮件服务是一种重要的网络服务,如今已经是现代通信方式中不可缺少的一种,继而已经成为当今人们生活中不可或缺的重要部分。
而随着其应用的广泛和地位的提高,邮件服务器也备受关注。
人们要求邮件服务器可用性更强,更加快速,更加安全和使用方便。
邮件服务器提供了邮件系统的基本结构,包括邮件传输、邮件分发、邮件存储等功能,以确保邮件能够发送到Internet网络中的任意地方。
针对此情况基于邮件服务器来实现SMTP用户认证、黑名单过滤、关闭Relay功能等垃圾邮件的防范策略,来提高邮件服务器的安全性和可靠性。
还要利用DNS服务器来实现最基本的域名解析和轮询功能。
我们通过对邮件服务器的安全策略和DNS的域名解析、轮询功能来改善Linux邮件服务器安全策略问题,提高了邮件服务器的安全性和可靠性,为用户提供更好更快的访问速度。
本文共分六个部分。
第一部分:
引言。
简述选题的背景与意义及研究目标与内容。
第二部分:
企业需求分析。
简述公司的背景与需求及其目标。
第三部分:
邮件服务器安全的简介。
介绍了邮件服务器安全的作用和邮件服务器安全的类型。
第四部分:
DNS服务器的搭建。
介绍了负载均衡技术的实现及步骤,如配置NAT负载均衡,叙述了NAT负载均衡技术的优缺点。
第五部分:
Sendmail邮件服务器的搭建。
介绍了Sendmail邮件服务器、优缺点及实现步骤。
第六部分:
Sendmail邮件服务系统安全策略的实现。
第七部分:
结束语。
叙述了采用Linux系统和Sendmail邮件系统的优缺点以及通过本次课题设计的一些小结。
二.邮件服务器安全的简介
邮件服务器构成了电子邮件系统的核心。
每个收信人都有一个位于某个邮件服务器上的邮箱。
接收者的邮箱用于管理和维护已经发送给他的邮件消息。
一个邮件消息的典型旅程是从发信人的用户代理开始,游经发信人的邮件服务器,中转到收信人的邮件服务器,然后投递到收信人的邮箱中。
当接收者想查看自己的邮箱中的邮件消息时,存放该邮箱的邮件服务器将以他提供的用户名和口令认证他。
发送者的邮件服务器还得处理接收者的邮件服务器出故障的情况。
如果发送者的邮件服务器无法把邮件消息立即递送到接收者的邮件服务器中,发送者的服务器就把它们存放在消息队列中,以后再尝试递送。
这种尝试通常每30分钟左右执行一次:
要是过了若干天仍未尝试成功,该服务器就把这个消息从消息队列中去除掉,同时以另一个邮件消息通知发信人。
(一)邮件服务器安全的原理
邮件服务器的工作过程是靠计算机技术和通信技术来完成的。
发信者注明收件人的姓名与地址(即邮件地址),发送方服务器把邮件传到收件方服务器,收件方服务器再把邮件发到收件人的邮箱中。
邮件服务器安全就是为电子邮件账户设置别名,使用专用工具防止垃圾邮件,设置SMTP认证,实时黑名单过滤。
(二)邮件服务器安全的类型
1.邮件的隐私性
电子邮件是通过网络介质来传播的,当你在Internet上发送邮件的时候,它是通过明文封装来传输的,很容易受到来自网络上的监听。
攻击者只要使用简单的监测软件(如超级网管)就能截获网络上传输的数据包,获得邮件的内容,这使我们的隐私受到了威胁。
2.邮件的真实性
电子邮件在发送过程中如果被人截取到了,那就意味着你的电子邮件真实性的问题,会不会是被人改了再发送过来的,而且攻击者这样做往往是有目的的,这样有时候会给双方造成很大的误会和损失。
3.邮件的认证性
既然黑客能够截取并修改我们的电子邮件,那么,他会不会把发信人的名字改成别人的名字呢,例如:
A发给B一封信,C是黑客,他想让B不知道这封信是A发的,就改了发信人的名字为D,当B接到信的时候,往往就会认为这封信是D发给他的。
这个例子也说明了,邮件如果没有身份认证有可能会产生张冠李戴的事情,这样有时也会造成重大损失。
4.邮件的安全性
所有邮件都是通过邮件服务器来转发的,因此,邮件服务器的安全问题变得严峻起来,黑客的攻击、病毒的感染、发件人的群发,乱发(垃圾邮件)等等问题都要求邮件服务器必需要有一个安全稳定的运行环境。
随着网络技术的快速发展,这些问题都上升为邮件系统的核心技术问题。
三.搭建DNS服务器
(一)DNS的系统组成
DNS服务器在互联网的作用是:
把域名转换成为网络可以识别的IP地址。
首先,要知道互联网的网站都是一台一台服务器的形式存在的,但是我们怎么去到要访问的网站服务器呢?
这就需要给每台服务器分配IP地址,互联网上的网站无穷多,我们不可能记住每个网站的IP地址,这就产生了方便记忆的域名管理系统DNS,他可以把我们输入的好记的域名转换为要访问的服务器的IP地址。
简单的说,就是为了方便我们浏览互联网上的网站而不用去刻意记住每个主机的IP地址,DNS服务器就应运而生,提供将域名解析为IP的服务,从而使我们上网的时候能够用简短而好记的域名来访问互联网上的静态IP的主机。
可以将DNS服务器分为3个部分:
1.域名空间。
这是标识一组主机并提供他们的有关信息的树结构的详细说明。
树上的没一个节点都有其控制下的主机的有关信息的数据库。
查询命令试图从这个数据库中提取适当的信息。
这些是域名、IP地址、邮件别名等在DNS系统中能找到的内容。
2.域名服务器。
他们是保持和维护域名空间中数据的程序。
由于域名服务是分布式的,每一个域名服务器含有一个域名空间自己的完整信息,并保存其他有关部分的信息。
一个域名服务器拥有其控制范围内的完整信息。
其控制范围成为区(Zone),对于本区内的请求由负责本区的域名服务器解释;
对于不同区的请求将由本区的域名服务器与负载替他区的相应服务器联系。
3.解析器。
解析器是简单的程序或子程序库,它从服务器中提取信息以响应对域名空间中主机的查询,用于DNS客户。
(二)实验环境
LINUX系统版本:
RedHat9.0
DNSserverIP192.168.1.10
Mailserver1IP192.168.1.7
Mailserver2IP192.168.1.8
WindowsXpIP192.168.1.99
DNSserver作为域名解析服务器启动轮询功能为两台邮件服务器提供负载平衡。
Mailserver1与Mailserver2作为邮件服务器为用户提供收发邮件。
WindowsXp作为测试工作站。
(三)搭建DNS服务器
(1)配置静态IP地址
#vi/etc/sysconfig/network-scrIPts/ifcfg-eth0,如图3-1所示:
//device设备名称;
//bootproto=static静态;
//IPaddr网卡的IP;
//netmask网卡的掩码;
//gateway网关;
//onboot启动引导时是否激活。
图3-1配置静态IP地址
(2)重启network服务
#servicenetworkrestart如图3-2所示:
图3-2重启network
(3)检查BIND域名服务器
检查系统中是否安装了BIND域名服务器,如图3-3所示:
图3-3检查BIND域名服务器
(4)配置正向解析,即域名转换为IP的过程
1)#vi/etc/named.conf
如图3-4所示,添加正向解析区域。
//“”定义了区域名称。
//type类型有三种,它们分别是master,slave和hint它们的含义分别是:
master:
表示定义的是主域名服务器。
slave:
表示定义的是辅助域名服务器。
hint:
表示是互联网中根域名服务器。
//“.zone”定义了实现正向解析的区域文件名。
图3-4添加正向解析区域
2)进入/var/named
把localhost.zone复制到.zone里,如图3-5所示:
//把localhost.zone这个模板复制到.zone这个区域文件中,方便下一步编辑这个区域文件。
图3-5生成.zone区域
3)编辑.zone
#vi.zone如图3-6所示:
图3-6编辑.zone
(5)配置反向解析,即IP转换为域名的过程
添加反向解析区域,如图3-7所示:
//“”定义了区域名称//“Master”说明这个区为主域名服务器//“192.168.1.zone”定义了实现反向解析的区域文件名。
图3-7添加反向解析区域
复制named.local到192.168.1.zone,如图3-8所示:
//把named.local这个模板复制到192.168.1.zone这个区域文件中,方便下一步编辑这个区域文件。
图3-8生成192.168.1.zone区域
3)编辑192.168.1.zone
#vi192.168.1.zone如图3-9所示:
//NS:
表示是这个主机是一个域名服务器,//PTR:
表示反向记录。
图3-9编辑192.168.1.zone区域
(6)配置当前主机DNS服务器
#vi/etc/resolv.conf如图3-10所示:
//nameserver 表明DNS服务器的IP地址。
可以有很多行的nameserver,每一个带一个IP地址。
在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver。
//domain声明主机的域名。
很多程序用到它,如邮件系统;
当为没有域名的主机进行DNS查询时,也要用到。
如果没有域名,主机名将被使用,删除所有在第一个点(.)前面的内容。
图3-10配置DNS服务器
(7)启动named服务
#servicenamedstart//启动named服务,如图3-11所示:
//如果看到如图信息,那么就成功了,要是无法开启,那么查看/var/log/message文件,并作相应的修改。
//注意:
这里你可能第一次没启动起来,修改文件之后想重新启动#servicenamedrestart,有时会发现启动不了named服务,这时就要先杀了named进程,#ps–aux|grepnamed显示named进程#kill-9进程号,杀了named进程后在重启named服务就可以了。
图3-11启动named服务
(8)查看正向解析
用host命令来查看,输入
#host,
#host,出现如图3-12所示的画面,说明正向解析成功。
图3-12查看正向解析
(9)查看反向解析
用nslookup命令来查看:
输入IP地址192.168.1.10出现name=
输入IP地址192.168.1.7出现name=
输入IP地址192.168.1.8出现name=
如图3-13所示说明反向解析成功。
图3-13查看反向解析
(10)在客户端配置网卡如图3-14所示的画面
图3-14查看反向解析
(11)在客户端配置网卡如图3-15所示的画面
图3-15查看反向解析
(12)在客户端配置测试如图3-16所示的画面
图3-16查看反向解析
四.搭建Sendmail邮件服务器
(一)Sendmail简介
Sendmail是最重要的邮件传输代理程序。
理解电子邮件的工作模式是非常重要的。
一般情况下,我们把电子邮件程序分解成用户代理,传输代理和投递代理。
用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如:
outlookexpress、foxmail等。
而投递代理则从信件传输代理取得信件传送至最终用户的邮箱,如:
procmail。
当用户试图发送一封电子邮件的时候,他并不能直接将信件发送到对方的机器上,用户代理必须试图去寻找一个信件传输代理,把邮件提交给它。
信件传输代理得到了邮件后,首先将它保存在自身的缓冲队列中,然后,根据邮件的目标地址,信件传输代理程序将找到应该对这个目标地址负责的邮件传输代理服务器,并且通过网络将邮件传送给它。
对方的服务器接收到邮件之后,将其缓冲存储在本地,直到电子邮件的接收者察看自己的电子信箱。
显然,邮件传输是从服务器到服务器的,而且每个用户必须拥有服务器上存储信息的空间(称为信箱)才能接受邮件(发送邮件不受这个限制)。
可以看到,一个邮件传输代理的主要工作是监视用户代理的请求,根据电子邮件的目标地址找出对应的邮件服务器,将信件在服务器之间传输并且将接收到的邮件缓冲或者提交给最终投递程序。
有许多的程序可以作为信件传输代理,但是sendmail是其中最重要的一个,事实证明它可以支持数千甚至更多的用户,而且占用的系统资源相当少。
不过,sendmail的配置十分复杂,因此,也有人使用另外的一些工具,如qmail、postfix等等。
Sendmail的功能:
1.接受SMTP邮件;
2.为邮件选择路由;
3.传输SMTP邮件;
4.使用邮件别名,从而允许使用邮件列表;
5.错误检测以及速度和代价优化。
(二)Sendmail邮件服务器的优缺点
优点:
Sendmail是互联网上应用最广泛的邮件服务器;
丰富的技术支持;
免费版的开发进程非常积极而且功能强大和可设置性极佳;
商业版提供了技术支持以及管理和设置工具。
在稳定性、可移植性、及确保没有bug方面具有一定特色,且可以在网络中搜索到大量的使用资料,因此Linux下一般都选用此系统搭建,如果用户系统的带宽资源有限,并且要发送很多邮件列表信息,则Sendmail效率更高一些。
缺点:
Sendmail在大多数系统上只能以根用户身份运行,这就意味着任何漏洞都可能导致非常严重的后果,除了这些问题之外,在高负载的情况Sendmail运行情况不是很好。
当然,Sendmail具有一些缺点,其特色功能过多而导致配置文件的复杂性。
当然,通过使用m4宏使配置文件的生成变的容易很多。
但是,要掌握所有的配置选项是一个很不容易的事情。
Sendmail在过去的版本中出现过很多安全漏洞,所以使管理员不得不赶快升级版本。
而且Sendmail的流行性也使其成为攻击的目标,这有好处也有坏处:
这意味着安全漏洞可以很快地被发现,但是同样使Sendmail更加稳定和安全。
另外一个问题是Sendmail一般缺省配置都是具有最小的安全特性,从而使Sendmail往往容易被攻击。
(三)搭建Sendmail邮件服务器
(1)配置Mailserver1邮件服务器的IP地址
#vi/etc/sysconfig/network-scripts/ifcfg-eth0,如图4-1所示:
图4-1配置IP地址
(2)检查Sendmail是否安装
#rpm-qsendmail如图4-2所示:
图4-2检查sendmail是否安装
(3)进入/etc/mail
用#visendmail.cf命令配置sendmail.cf文件,将Addr=127.0.0.1修改为Addr=192.168.1.10,如图4-3所示:
图4-3配置sendmail.cf文件
(4)启动Sendmail服务器
#pstree|grepsendmail命令确认sendmail是否已经启动.如图4-4所示:
图4-4启动sendmail服务器
(5)检查是否安装IMAP
#rpm-qimap如图4-5所示:
图4-5检查是否安装IMAP
(6)修该IMAP和POP3的配置
1)#vi/etc/xinetd.d/ipop3将其中disable=yes改为disable=no,如图4-6所示:
图4-6修改POP3的配置
2)#vi/etc/xinetd.d/imap将其中的disable=yes改为disable=no,如图4-7所示:
图4-7修改IMAP的配置
(7)配置SendMail允许接收的域名
#vi/etc/mail/local-host-names如图4-8所示:
图4-8配置sendmail的域名
(8)显示更改后W类的配置
#senmail–bt如图4-9所示:
图4-9显示W类的配置
(9)启动Xinetd服务
#servicexinetdrestart如图4-10所示:
图4-10启动Xinetd服务
(10)按照以上方法配置Mailserver2服务器步骤一样只是地址改为192.168.1.8。
(四)测试邮件的发送
(1)检查服务器是否启动
#netstat-au,如图4-11所示:
//192.168.1.7:
25表示SendMail服务已经在监听本机的25(SMTP)端口。
图4-11检查服务器是否启动
(2)创建账户
#useradd如图4-12所示:
//添加用户xxx和yjf
图4-12创建账户mjj和wj
(3)创建账户密码
#passwd如图4-13所示:
//要在这里设的用户密码与用户名相同.
图4-13创建账户密码
(4)在客户端创建邮件账户
添加xxx,如图4-144-15所示:
图4-14添加邮件账户xxx
图4-15添加邮件地址
(5)配置邮件SMTP与POP3服务器,如图4-164-17所示:
图4-16配置SMTP和POP3服务器
图4-17设置密码
(6)按照以上方法配置mjjmjj@
(7)创建邮件,如图4-18所示:
图4-18创建邮件
(8)接收邮件,如图4-19所示:
图4-19接受邮件
五.DNS的负载均衡
(一)基于DNS的负载均衡
通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。
因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。
(二)用客户机测试DNS服务器
(1)配置客户机的IP,如图5-1所示:
图5-1配置客户机的IP
(2)测试解析功能
用nslookup命令来查看,如图5-2所示:
图5-2用nslookup命令查看
(三)测试DNS的负载均衡
(1)利用DNS轮询可以实现简单的负载均衡。
这是通过对单个FQDN设置多个IP地址实现的。
为了能够使两台邮件服务器实现负载均衡,我们对配置了2个IP地址如图5-3所示:
图5-3添加两个IP地址给mail
(2)测试负载均衡
用host命令进行测试,如图5-4所示:
图5-4用host命令测试
我们可以看到每次访问时,返回两台邮件服务器的IP,通过DNS的轮询功能,我们就可以实现两台邮件服务器的更替工作,实现负载均衡。
六.Sendmail邮件服务器安全策略的实现
(一)关闭Sendmail的Relay功能
所谓Relay功能就是指别人能用这台SMTP邮件服务器给任何人发信,这样别有用心的垃圾发送者就可以使用这台邮件服务器大量发送垃圾邮件,而最后别人投诉的不是垃圾发送者,而是这台服务器,因此必须关闭Relay。
现在依然存在并非少数的开放OpenRelay服务器,所以,关闭OpenRelay功能对反垃圾邮件效果显著。
关闭OpenRelay具体实现过程:
(1)到/etc/mail目录编辑access文件,去掉“*relay”之类的设置,如图6-1所示:
图6-1编辑access文件
(二)在Sendmail中实时黑名单过滤
黑名单服务是基于用户投诉和采样积累而建立的、由域名或IP组成的数据库,最著名的是RBL、DCC和Razor等。
这些数据库保存了频繁发送垃圾邮件的主机名字或IP地址,供MTA进行实时查询以决定是否拒收相应的邮件。
简单地说,即数据库中保存的IP地址或域名都应该是非法的,都应该被阻断。
不过,目前各种黑名单数据库难以确保其正确性和及时性,一般该名单的形成需要一段时间的积累。
例如,原来一段时期,北美的RBL和DCC包含了我国大量的主机名字和IP地址,其中有些是早期的OpenRelay造成的,有些则是由于误报造成的。
但这些迟迟得不到纠正,在一定程度上阻碍了我国和北美地区的邮件联系,也妨碍了我国的用户使用这些黑名单服务。
针对每个进入的邮件信息,MTA程序获取远程服务器的地址,并且查询远程互联网服务器对该地址进行认证。
如果该地址在垃圾邮件主机列表中,则MTA拒绝接受这些邮件信息。
只要在Sendmail中加入RBL认证功能,就会使邮件服务器在每次收信时都自动到RBL服务器上去查实,如果信件来源于黑名单,则Sendmail会拒收邮件,从而使单位的用户少受垃圾邮件之苦。
实时黑名单过滤具体实现过