架设Linux邮件服务器安全策略的实现—毕业设计.doc
-
资源ID:2397401
资源大小:843.50KB
全文页数:33页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
架设Linux邮件服务器安全策略的实现—毕业设计.doc
目 录一引言1三邮件服务器安全的简介2(一)邮件服务器安全的原理2(二)邮件服务器安全的类型2三搭建DNS服务器3(一)DNS的系统组成3(二)实验环境4(三)搭建DNS服务器4四搭建Sendmail邮件服务器11(一)Sendmail简介11(二)Sendmail邮件服务器的优缺点11(三)搭建Sendmail邮件服务器12(四)测试邮件的发送15六DNS的负载均衡19(一)基于DNS的负载均衡19(二)用客户机测试DNS服务器19(三)测试DNS的负载均衡21七Sendmail邮件服务器安全策略的实现21(一)关闭Sendmail的Relay功能21(二)在Sendmail中实时黑名单过滤22(三)配置Access文件23(四)设置SMTP认证23(五)使用SpamAssassin工具来防止垃圾邮件26(六)Sendmail服务器防范DoS攻击措施28(七)为电子邮件账户设置别名30八结束语32参考文献33致谢33 架设linux邮件服务器安全策略的实现莫佳佳 王杰(浙江商业职业技术学院信息技术学院,网络013班)内容摘要 本文基于Linux操作系统架设Sendmail邮件服务器,在Sendmail服务器中实现黑名单过滤,设置SMTP认证,使用SpamAssassin工具来防止垃圾邮件,通过架设邮件服务器并配置邮件服务器的策略,实现用户收发邮件和提高邮件服务器的安全和可靠性。并利用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系统版本:RedHat 9.0DNSserver IP 192.168.1.10Mailserver1 IP 192.168.1.7Mailserver2 IP 192.168.1.8Windows Xp IP 192.168.1.99DNSserver 作为域名解析服务器启动轮询功能为两台邮件服务器提供负载平衡。Mailserver1与Mailserver2 作为邮件服务器为用户提供收发邮件。Windows Xp 作为测试工作站。(三)搭建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服务#service network restart 如图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转换为域名的过程1)#vi /etc/named.conf添加反向解析区域,如图3-7所示: /“” 定义了区域名称/“Master” 说明这个区为主域名服务器 /“192.168.1.zone” 定义了实现反向解析的区域文件名。 图3-7添加反向解析区域2)进入/var/named复制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 #vi 192.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服务#service named start /启动 named 服务,如图3-11所示: /如果看到如图信息,那么就成功了,要是无法开启,那么查看/var/log/message文件,并作相应的修改。/注意:这里你可能第一次没启动起来,修改文件之后想重新启动#service named restart,有时会发现启动不了named服务,这时就要先杀了named进程,#ps aux|grep named 显示named进程#kill -9 进程号,杀了named进程后在重启named服务就可以了。 图3-11启动named服务(8)查看正向解析 用host命令来查看,输入# 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是最重要的邮件传输代理程序。理解电子邮件的工作模式是非常重要的。一般情况下,我们把电子邮件程序分解成用户代理,传输代理和投递代理。用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如:outlook express、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所示:/device设备名称;/bootproto=static 静态;/IPaddr 网卡的IP;/netmask 网卡的掩码;/onboot 启动引导时是否激活。 图4-1配置IP地址(2)检查Sendmail是否安装 #rpm -q sendmail 如图4-2所示: 图4-2检查sendmail是否安装(3)进入/etc/mail用# vi sendmail.cf命令配置sendmail.cf文件,将Addr=127.0.0.1 修改为 Addr=192.168.1.10,如图4-3所示:图4-3配置sendmail.cf文件(4)启动Sendmail服务器 # pstree |grep sendmail命令确认sendmail是否已经启动.如图4-4所示: 图4-4启动sendmail服务器(5)检查是否安装IMAP #rpm -q imap 如图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服务 #service xinetd restart 如图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-14 4-15所示:图4-14添加邮件账户xxx图4-15添加邮件地址(5)配置邮件SMTP与POP3服务器,如图4-16 4-17所示:图4-16配置SMTP和POP3服务器图4-17设置密码(6)按照以上方法配置mjj mjj(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。现在依然存在并非少数的开放Open Relay服务器,所以,关闭Open Relay功能对反垃圾邮件效果显著。 关闭Open Relay具体实现过程:(1)到/etc/mail目录编辑access文件,去掉“*relay”之类的设置,如图6-1所示: 图6-1编辑access文件(二)在Sendmail中实时黑名单过滤黑名单服务是基于用户投诉和采样积累而建立的、由域名或IP组成的数据库,最著名的是RBL、DCC和Razor等。这些数据库保存了频繁发送垃圾邮件的主机名字或IP地址,供MTA进行实时查询以决定是否拒收相应的邮件。简单地说,即数据库中保存的IP地址或域名都应该是非法的,都应该被阻断。不过,目前各种黑名单数据库难以确保其正确性和及时性,一般该名单的形成需要一段时间的积累。例如,原来一段时期,北美的RBL和DCC包含了我国大量的主机名字和IP地址,其中有些是早期的Open Relay造成的,有些则是由于误报造成的。但这些迟迟得不到纠正,在一定程度上阻碍了我国和北美地区的邮件联系,也妨碍了我国的用户使用这些黑名单服务。 针对每个进入的邮件信息,MTA程序获取远程服务器的地址,并且查询远程互联网服务器对该地址进行认证。如果该地址在垃圾邮件主 机列表中,则MTA拒绝接受这些邮件信息。只要在Sendmail中加入RBL认证功能,就会使邮件服务器在每次收信时都自动到RBL服务器上去查实,如果信件来源于黑名单,则Sendmail会拒收邮件,从而使单位的用户少受垃圾邮件之苦。实时黑名单过滤具体实现过程:(1)用# cd /etc/mail 命令进入mail 文件,再编辑sendmail.mc,如图6-2所示: 图6-2用vi编辑sendmail.mc文件(2)在Sendmail中添加RBL认证,需要对sendmail.mc进行配置,如图6-3所示:图6-3添加RBL认证(3)执行“m4 sendmail.mc> sendmail.cf”和“service sendmail restart”两条命令,使有关Sendmail的修改生效,如图6-4所示: 图6-4使sendmail修改生效(四)设置SMTP认证SMTP用户认证:一种常见并十分有效的方法,在邮件传送代理(MTA)上对来自本地网络以外的互联网的发信用户进行SMTP认证,仅允许通过认证的用户进行远程转发。这样既能够有效避免邮件传送代理服务器为垃圾邮件发送者所利 用,又为出差在外或在家工作的员工提供了便利。如果不采取SMTP认证,在不牺牲安全的前提下,设立面向互联网的Web邮件网关也是可行的。此外,如果SMTP服务和POP3服务集成在同一服务器上,在用户试图发信之前对其进行POP3访问验证(POP before SMTP)是一种更加安全的方法。虽然可以在Sendmail中使用上述的access数据库来管理用户,使其合法地使用SMTP服务器进行邮件的传递。但是,由于用户的不断增多,以及很多用户都是在一个网段里面,如果单单依靠上述的access数据库很难有效地管理SMTP服务器的使用,那样会使得access数据库规模增大,管理混乱, 从而造成效率降低,甚至出错。所以,非常有必要使用Red Hat Linux下自带的身份认证程序库,配合Sendmail服务器一起使用,对使用SMTP服务的用户进行身份认证,从而保证该服务的合法使用。下面是配置SMTP用户认证的具体实现过程:(1)检查系统是否已经安装了sasl相关的RPM包#rpm -qa|grep sasl 如图6-8所示: 图6-8检查是否安装sasl(2)查看sendmail与认证相关的配置#cat /usr/lib/sasl/Sendmail.conf,如图6-9所示: 图6-9查看sendmail相关的配置(3)进入sendmail cd /etc/mail编辑sendmail.mc修改和认证相关的配置内容,#vi sendmail.mc,如图6-10所示:图6-10修改sendmail.mc(4)修改本地MTA的IP地址,如图6-11所示:#vi sendmail.mc 图6-11修改本地MTA的IP(5)使用m4命令生成cf文件#m4 sendmail.mc > sendmail.cf 如图6-12所示: 图6-12生成sendmail.cf文件(6)重新启动sendmail服务器#service sendmail restart 如图6-13所示: 图6-13重启sendmail服务器(7)测试,如图6-14所示:图6-14测试配置好了带SMTP认证的Sendmail服务器后,可以只使用SMTP认证的限制,即可以将access文件清空并重新生成access.db。在Outlook中进行测试,有关SMTP认证的配置界面,如图6-15所示: 图6-15配置SMTP认证(五)使用SpamAssassin工具来防止垃圾邮件SpamAssassin利用Perl语言来对邮件内容进行规则匹配,从而达到判断过滤垃圾邮件的目的。它的判断方式是基于评分的方式,也就是说如果这封邮件符合某条规则,则给与一定分值;当累计的分值超过了一定限度时,则判定该邮件为垃圾邮件。对Sendmail、Postfix和Exim等各种邮件平台都适用。当它被最终用户或系统管理员调用时,它可以方便地与大多数流行的邮件处理系统进行接口互连。SpamAssassin在对一封信件应用了各项规则之后,生成一个分值来表示其为垃圾邮件的可能性。它可以设置上百条规则,包括对邮件头的处理、对邮件内容的处理及对邮件结构的处理等。每条规则都对应一个分值(可正、可负),每封信件的分值就是所匹配规则的分值之和。如果分值为负,表示这封信件是正常的;相反,如果分值为正,则表示信件有问题。如果超过了某个默认的分值,过滤器就会标识其可能为垃圾邮件,然后交由用户做出最终抉择。使用SpamAssassin工具来防止垃圾邮件具体实现过程:(1)查看是否安装SpamAssassin,如图6-16所示: 图6-16查看是否安装spamassassin(2)查看SpamAssassin的预设默认规则,如图6-17所示:#cd/usr/share/spamassassin 图6-17查看默认规则(3)实现添加白名单可以配置通过/etc/mail/spamassassin/local.cf文件实现添加白名单(即可以确信不会发送垃圾邮件的发件人列表)。将test和域添加到白名单,如图6-18所示: 图6-18添加白名单(4)下面还要把SpamAssassin与Sendmail整合在一起。最简单的方法是使用procmail来调用SpamAssassin过滤器。procmail来调用SpamAssassin的过程。如图6-19所示: 图6-19调用过程(5)添加以下内容到/etc/procmailrc文件,如图6-20所示: 图6-20添加内容到procmailrc文件(6)如果想要SpamAssassin不检查大邮件,可以对其做出限制,添加一行,如图6-21所示:/这段代码表示把邮件检查的大小限制在1000K字节以内。 图6-21添加限制(六)Sendmail服务器防范DoS攻击措施通过设置/etc/mail/Sendmail.mc的一些目录限度,DoS攻击的有效性就会大受限制。另外可以考虑使用非root权限运行Sendmail服务,使用基于xinetd的SMTP服务即可。缺省情况下Sendmail的守护进程作为setUID用户进程来运行。如果 Sendmail的守护进程被缓冲区溢出攻击的话,可能危及root账号的安全,而root用户的权限最高,攻击者可以摧毁整个服务器。因此需要降低 Sendmail运行权限为普通用户。(1)建立mail用户名称,如图6-22所示: 图6-22建立mail用户(2)修改Sendmail使用的文件和目录的权限,如图6-23所示:图6-23修改sendmail文件(3)为Sendmail创建一个超级访问程序/etc/xine.d/Sendmail,如图6-24所示: 图6-24创建超级访问程序(4)修改/etc/crontab,如图6-25所示: /10分钟运行一次邮件服务器。图6-25修改crontab文件(5)修改配置文件site.config.m4,如图6-26所示: #vi site.confif.m4 图6-26修改site.confif.m4文件(6)使用“killall -USR1 xinetd”重新启动xinetd超级服务器,如图6-27所示: 图6-27重启xinetd(7)连接Sendmail,如图6-28所示: 图6-28连接sendmail(8)查看Sendmail运行情况,如图6-29所示: #ps aux | grep Sendmail 图6-29查看sendmail运行情况(9)上面显示Sendmail作为mail用户在运行。然后使用quit命令推出即可。(七)为电子邮件账户设置别名利用邮件用户别名来限制某些用户拒绝接受邮件。root用户是Linux操作系统中的特权用户,其具有很高的权限。如通常情况下,其没有硬盘空间的限制。如果有攻击者给这个root用户发垃圾邮件的话,那么其会一直接收下去,直到占满全部硬盘空间位置。从而会给其他用户接收邮件或者邮箱服务器的正常运行造成障碍。所以在部署Linux服务器的时候,往往需要对这个特权用户给与特殊的照顾,如拒绝其接收任何邮件等等。那么如果把root帐户的别名定义为/dev/null会有什么效果呢?此时,发送给root用户的任何邮件都会被邮件服务器所忽视掉。也就是说,root帐户将不能够接收任何邮件。把一些Linux操作系统中的特殊帐号,如root帐户,设置为其不能够接收任何邮件,这对于保护邮箱服务器的安全是非常有帮助的。其可以防止一些特权用户因为没有硬盘容量限制,而导致垃圾邮件占用了大量的硬盘空间,从而给其他用户造成使用上的故障。别名是sendmail最重要的功能之一,它的功能非常强大。由于在默认的mc配置文件中有默认的如图6-30所示设置:/sendmail的别名被定义在/etc/aliases文件中图6-30查看aliases文件定义别名有如下作用:(1)为用户指定别名,如图6-31所示:/利用别名来保护登陆账户,可以将xxxmail的登陆帐号设置为xxx。 图6-31为用户指定别名(2) 实现邮件列表。 别名最重要的功能就是实现邮件列表。有了邮件列表,在发送E-mail时,只要填写一个接收者地址就可以向多个用户发送邮件。如图6-32所示:/把xxx,yjf添加到groupmail这个别名中,当向groupmail发送邮件候,就可以向该组的xxx,yjf发送邮件。/表示由xxx负责维护groupmail这个邮件列表,若在发送邮件给groupmail时发生错误,就将有关错误信息发给xxx。 图6-32实现邮件列表(3)给groupmail发送邮件,如图6-33所示:图6-33接受邮件八结束语经过将近一个月的学习和实践,本次毕业设计已经接近尾声。从开始接到毕业设计的题目到操作的实现,再到毕业设计文章的完成,每一步对我们来说都是巨大的挑战,这也是我们在大学期间合作完成工作量最大的一次。它是一次再系统学习的过程,也是来验收我们三年所学知识。通过团队合作,查看相关的资料和书籍,让那些模糊概念逐渐清晰并且能够运用到实践中。在此毕业设计,在Linux9.0系统的环境下实现Linux邮件服务器安全策略。Sendmail是linux系统下使用最广泛的邮件系统,安全性也相对较高并且对系统和网络资源的要求较低,能够提供给用户更好更快的访问速度。它遵循SMTP协议,提供了很强大的邮件服务功能,可以承载高达数万个用户的电子邮件通信服务。服务器支持POP和IMAP功能,可以为用户开设邮箱账号和别名,并指定邮箱容量限制等基本功能,同时实现了SMTP用户认证、黑名单过滤、内容过滤等垃圾邮件的防范策略,来提高邮件服务器的安全性和可靠性,还利用了DNS服务器来实现最基本的域名解析功能和轮询功能,为用户提更好更快的访问速度。参考文献1.曹占 曾小波 王渊 编著 Linux服务器配置与管理电子工业出版社2.冯昊 编著 Linux服务器配置与管理清华大学出版社3.朱居正 编著 Red Hat Linux 9系统管理清华大学出版社4.林晓飞 万辉 张鑫金 编著 Reb Hat Enterprise Linux 4.0架站实务清华大学出版社5.曹江华 编著 Linux服务器安全策略详解电子工业出版社6.梁如军 丛日权等 编著 Red Hat Linux 9网络服务机械工业出版社 致谢毕业设计是一次系统性学习的过程,毕业论文的完成