广州大学华软软件学院网络技术系学位论文 毕业设计:基于Linux平台的Web安全技术研究—Apache安全
广州大学华软软件学院
——毕业论文
题目:基于Linux平台的Web安全技术研究—Apache安全
学生姓名:
指导教师:
2010-5-10
广州大学华软软件学院网络技术系学位论文 毕业设计:基于Linux平台的Web安全技术研究—Apache安全
摘 要 随着网络通信技术的不断发展,WEB服务器技术应用变得相当普遍。目前
windows和linux在WEB服务器市场占得份额都很大,其中windows大多用IIS,linux一般用Apache,由于Apache作为最受欢迎的WEB服务器,而且linux是开源的,稳定性比windows好,所以linux系统在WEB服务器方面应用更为广泛,市场上绝大部分WEB服务器都是基于linux系统的,随着网络的广泛应用,其安全问题变得越来越重要。本文从linux平台安全、Apache安全、防火墙技术以及入侵检测技术等方面探讨如何架设一个安全高效的WEB服务器。
关键词 WEB,Apache,网络安全
ABSTRACT With the continuous development of network communication technology,
WEB server technology has become quite common. Nowadays windows and linux server market share are large in the WEB, windows often use IIS, linux general use Apache, because Apache as the most popular WEB server, and linux is open source, stability better than windows, linux systems are widely used in the application of WEB server.In the market, most WEB server are based on linux systems, but with the wider use of the network, its security is becoming more and more important. This article from the linux platform security, Apache security, firewall and intrusion detection technology, and explore how to set up a safe and efficient WEB server.
KEYWORKS website of WEB;Apache;the network safety
第i页 共iii页 作者:温剑威
广州大学华软软件学院网络技术系学位论文 毕业设计:基于Linux平台的Web安全技术研究—Apache安全
目 录
前 言 .......................................................................................................................................... 1 第一章 WEB服务器平台安全模型 ........................................................................................ 2
1.1 WEB服务器模型(层次化结构模型) .................................................................... 2 1.2 模型安全模块介绍 ..................................................................................................... 3 第二章 linux系统安装及平台架设 ......................................................................................... 5
2.1 linux系统的简介及版本选择 ..................................................................................... 5 2.2 linux目录结构 ............................................................................................................. 5 2.3 linux AS 5.0系统的安全分区 ..................................................................................... 6 2.4 架设LAMP平台环境 ................................................................................................ 9 2.5 LAMP平台环境测试 ................................................................................................ 10 第三章 linux系统平台的安全设置 ....................................................................................... 11
3.1 磁盘分区安全 ........................................................................................................... 11 3.2 系统安全设置 ........................................................................................................... 11
3.2.1 用户及密码安全 ............................................................................................ 11 3.2.2 服务安全 ........................................................................................................ 12 3.2.3 限制root用户和su命令 .............................................................................. 13 3.2.4 登录时隐藏系统信息 .................................................................................... 14 3.2.5 阻止ping请求响应 ....................................................................................... 15 3.2.6 查看系统日志 ................................................................................................ 16
第四章 Apache安全 ............................................................................................................... 16
4.1 概述 ........................................................................................................................... 16 4.2 安全模块 ................................................................................................................... 17 4.3 Apache安全设置 ....................................................................................................... 17
4.3.1 勤打补丁 ........................................................................................................ 17 4.3.2 隐藏伪装Apache版本信息 .......................................................................... 17 4.3.3 目录结构和安全 ............................................................................................ 18 4.3.4 Apache以自身用户账号和组运行 ................................................................ 19 4.3.5 SSI配置 .......................................................................................................... 20 4.3.6 CGI脚本安全 ................................................................................................. 21 4.3.7 Apache服务器的访问控制 ............................................................................ 21 4.3.8 禁止用户使用目录索引 ................................................................................ 22 4.3.9 Apache服务器防范Dos攻击 ........................................................................ 22 4.4 Apache用户认证与授权 ........................................................................................... 23
4.4.1 创建认证配置文件 ........................................................................................ 23 4.4.2 Apahce认证测试 ............................................................................................ 24 4.5 使用SSL加密Apache服务 .................................................................................... 25
4.5.1 创建CA私钥和证书 ..................................................................................... 25 4.5.2 SSL的认证配置 ............................................................................................. 27 4.5.3 为客户端签署交换文件 ................................................................................ 28
第ii页 共iii页 作者:温剑威
广州大学华软软件学院网络技术系学位论文 毕业设计:基于Linux平台的Web安全技术研究—Apache安全
第五章 防火墙设置 ................................................................................................................ 28
5.1 linux防火墙概述 ....................................................................................................... 28 5.2 WEB服务器平台的防火墙设置 .............................................................................. 29
5.2.1 禁止响应ping命令 ....................................................................................... 29 5.2.2 阻止DoS和DDoS攻击 ............................................................................... 31 5.2.3 网络地址转换 ................................................................................................ 33 5.2.4 防止端口扫描 ................................................................................................ 35
第六章 入侵检测系统 ............................................................................................................ 36
6.1 入侵检测系统简介 ................................................................................................... 36 6.2 Snort安全规则设置 .................................................................................................. 36
6.2.1 安装Snort ...................................................................................................... 36 6.2.2 检测ICMP数据包攻击 ................................................................................ 37 6.2.3 监测telnet和ssh登录服务器 ...................................................................... 37 6.2.4 检测SYN FIN扫描 ....................................................................................... 38 6.2.5 监测溢出攻击 ................................................................................................ 38
小结 .......................................................................................................................................... 39 致谢 .......................................................................................................................................... 40 参考文献 .................................................................................................................................. 41
第iii页 共iii页 作者:温剑威
广州大学华软软件学院网络技术系学位论文 毕业设计:基于Linux平台的Web安全技术研究—Apache安全
前 言
在我国,由于受知识产权的限制,无论是使用PC 平台上的Windows,还是使用应用于大中型机的UNIX,都无法窥视到其内部结构。这些系统都会存在不为我们所知的安全问题,而Linux的出现就能很好的解决这个问题,因为Linux是开源的。目前UNIX、Linux、Windows三种操作系统三分天下,而Linux正处于迅速发展当中,就我个人认为,不久的将来,Linux系统将成为市场的主导。
科技发达的今天无处不运用到网络,在这个网络信息处于高度发达的时代,加上Linux系统的迅速发展,让Linux下的WEB服务器安全显得尤为重要。在
Internet/Intranet的大量应用中,网络本身的安全面临着重大的挑战,随之而来的信息安全问题也日益突出。在网络安全问题泛滥的今天,其安全性问题同样面临着考验。根据网络安全的木桶理论,网络的安全性取决于各个网络组件的安全,因此本文从linux安全、Apache安全、MySQL数据库安全及PHP开发技术等几个方面探讨了如何架设一个安全高效的WEB网站技术。
第1页 共41页 作者:温剑威
第一章 WEB服务器平台安全模型
第一章 WEB服务器平台安全模型
1.1 WEB服务器模型(层次化结构模型)
根据网络安全的“木桶理论”,网络安全是由若干“木板”元素的安全决定,因此本文采用层次化结构模型,就WEB服务器的各个安全元素进行分析并给出其增强安全的技术方法,重点探讨了Apache安全(表 1)。
网络安全 防火墙及入侵检测技术
Apache安全
PHP安全
Linux系统平台安全
表1 WEB服务器结构模型
MySQL安全
以上层次化模型的拓扑结构图
图 1.1 结构模型拓扑图
第2页 共41页 作者:温剑威
广州大学华软软件学院网络技术系学位论文 毕业设计:基于Linux平台的Web安全技术研究—Apache安全
一个安全的WEB服务器平台是由系统安全、Apache、PHP、MySQL安全、网络安全以及防火墙安全组成,要建立一个安全的WEB服务器平台,就需要把其各个部分都设置安全才能够确保WEB服务器平台的安全。
1.2 模型安全模块介绍 【网络安全】
网络安全也是WEB服务器平台安全的重要组成部分,要解决网络的安全问题,单靠技术是不行的,更加重要的是管理。很多人认为可以仅仅依靠防火墙来保证网络的安全,其实防火墙仅仅可以阻止外来攻击,内部网络攻击就阻止不到,不怀好心的人常利用网络的安全隐患对整个网络进行攻击,这也是为什么要更加注重管理的原因。
网络安全的隐患主要有网络拓扑不合理、病毒、不安全数据下载与存取、用户身份认证隐患、防火墙局限性、服务器操作系统漏洞,还有本地服务器安全、机房安全等物理安全隐患。
要应对以上网络安全隐患就需要设计正确的网络安全策略,具体设计需要遵循以下原则:整体性、一致性、均衡性、可行性、易操作性、技术与管理相结合、动态发展更新等。网络安全策略包括数据的机密性、完整性和可用性,身份验证和数据鉴别,使用防火墙过滤外来攻击,利用加密软件对数据进行加密,病毒防护和杀毒技术实时更新,依靠入侵检测系统实时监控,安全审计,及时做好数据的备份和恢复。这样就可以最大限度的保证网络安全,进而保证WEB服务器平台的安全。
【linux系统平台安全】
在物理硬件上面的就是linux系统安全,这也是WEB服务器平台底层安全中十分重要的,如果操作系统的安全都得不到保证,那么整个WEB服务器平台就没有安全可言。当我们安装完linux系统后,如果仅仅依靠安装时的默认设置,而只是希望通过防火墙来保证系统安全,那么这个系统是绝对不够安全的,肯定会存在很多安全隐患。架设安全的linux系统需要考虑到各项系统配置、软件包的安装等等,在随后的两章就会详细介绍如何搭建一个安全的linux系统平台。
【Apache安全】
第3页 共41页 作者:温剑威
第一章 WEB服务器平台安全模型
Apache是世界上应用最广泛的WEB服务器,具有很好的跨平台性,它运行平稳、性能高效,针对静态页面解析的速度非常快,安全性也很好,能够有效地使用系统资源,高版本的Apache可以支持SQL数据库、只能过滤、高级缓冲等。
虽然Apache在设计上已经很安全,但是作为一个开放源代码的应用程序来说仍然会存在漏洞。为了搭建安全的Apache服务器,后面章节将详细介绍如何配置安全的Apache。
【PHP安全】
PHP是一种HTML内嵌式的语言,因为是解释性语言,所以访问速度会受到限制,面向对象的特性较少,不适合构建大型企业应用。不过这些问题在后期版本里得到了很大的改善。关于PHP的安全问题,除了要保证WEB服务器平台和Linux操作系统的安全外,安全的代码编写也是很重要的。配置安全的PHP可以通过对php.ini,httpd.conf,.htaccess文件进行设置,也可以通过在脚本程序里运用函数进行设置。为了使PHP的使用更加安全,可以以安全模式运行PHP,使用用户识别和验证,创建安全的PHP脚本,使用加密技术和SSL技术等。
【MySQL安全】
作为WEB服务器平台安全的一部分,MySQL的安全也是非常重要的一个部分,而要建立一个安全的MySQL首先要在安装完MySQL后改变root用户的密码,如果没有必要用到匿名用户,就把匿名用户都删除了,其次设置权限,严格控制用户的权限设置可以有效的提高MySQL的安全性。数据传输时最好使用SSH隧道来加密通信。用访问控制列表来控制完成连接、查询、更新、删除等操作。不适用明文密码,而是用MD5等函数加密算法对密码进行加密。
【防火墙及入侵检测】
防火墙是阻止外来网攻击的一个重要关卡,是网络安全中最重要的设备之一。但是防火墙只是能防止外来攻击,并不能防止网络内部的攻击。网络内部的安全就需要依靠加强管理来保证安全,对于重要的服务器数据安全,可以利用入侵检测系统来保护。外部网络要访问内部网络资源必须经过防火墙,防火墙通过设置安全策略过滤,
第4页 共41页 作者:温剑威
广州大学华软软件学院网络技术系学位论文 毕业设计:基于Linux平台的Web安全技术研究—Apache安全
使得外来访问只有符合安全策略的通信才能够通过,而内部网络访问外网基本不用过滤。这样就可以防止WEB服务器受到外来攻击,保证WEB服务器安全持续的对外提供服务。对于Linux操作系统,可以利用iptables进行防火墙设置,在之后的章节会有详细的介绍。
第二章 linux系统安装及平台架设
2.1 linux系统的简介及版本选择
Linux是一种能运行于多种平台、源代码公开、免费、功能强大、遵守POSIX标准、与UNIX兼容的操作系统。Linux从20世纪中期一直发展到现在,前进的脚步从未停止过。如今更是突飞猛进,发展迅速,一股Linux的热潮正在席卷整个世界,让人们意识到我们的生活中越来越离不开它。Linux的诞生和发展给全球的软件业带来了新的机遇,也使微软的Windows操作系统面临有始以来最大的威胁。由于Linux属于自由软件,它的源代码是公开的,并遵循公共版权许可证(GPL),用户可以免费使用,使Linux在极短的时间内就成为了一套成熟而稳定的操作系统。全世界成千上万的程序专家和Linux爱好者正在通过Internet不断地对Linux进行开发、完善和维护。
linux系统版本有很多,每个版本的linux系统都有自己的一些特点,但是他们都属于linux系统,所以很多基本的命令还是一样的。它们的特点这里就不一一讲述了,这次WEB服务器平台用的linux系统我选择linux AS 5.0。
2.2 linux目录结构
要安装一个安全的系统,首先需要对该系统的结构有所了解,就如linux系统的目录结构,一个安全的linux系统其主要的目录应该分在不同的分区,这样即使其中
第5页 共41页 作者:温剑威
第二章 linux系统安装及平台架设
一个分区遭到了攻击,也不会影响到其它分区的正常工作,所以安装系统前首先要对其目录结构进行分区,计划好如何分区才能够更好的提高系统的安全性。
Linux系统主要目录包括:根目录(/)、引导目录(/boot)、用户目录(/home)、/var、设备目录(/dev)、配置文件存放目录(/etc)、临时文件目录(/tmp)、/mnt、/usr等。这些主要的目录最好可以分开到不同的分区当中。
引导目录(/boot):此目录存放的是系统启动的时候需要用到的程序。 用户目录(/home):此目录主要用于存放用户主目录。
设备目录(/dev):这个目录包含所有系统的外部设备,我们可以通过这个目录像访问文件一样访问系统设备。
配置文件存放目录(/etc):这个目录是linux系统中最重要的目录之一,这里存放的是系统的各种配置文件,我们配置的大部分服务器的配置文件也都是存放在/etc这个目录里面。
临时文件目录(/tmp):此目录用于保存临时文件。
2.3 linux AS 5.0系统的安全分区
安全的系统分区也是重要的安全措施,如果按默认分区安装系统每个盘都划分都同一分区,例如/boot受到攻击无法正常工作,那整个系统都会无法正常工作,倘若将系统重要的盘划分到不同的分区,即使其中一个盘受到攻击无法正常工作,其他盘也不会受到影响,使得系统受到的攻击损害降到最低。另外,为每个分区分配足够大的磁盘空间也是很有必要的,因为磁盘空间分配不恰当可能很容易就导致磁盘爆满,进而系统出现问题,因此要将重要盘划分到不同的分区以及分配足够大的磁盘空间,这也是系统平台安全设计的重要方面。
由于本地环境的限制,只能够建立虚拟的linux系统环境。虚拟机用的是VMware Workstation v7.0。首先要建个虚拟机,具体过程就不一一叙述。
启动虚拟机进入linux AS 5.0系统安装过程,载入安装镜像,随后几步都选默认设置,直到磁盘分区时选择自定义分区。
【分区方案】
第6页 共41页 作者:温剑威
广州大学华软软件学院网络技术系学位论文 毕业设计:基于Linux平台的Web安全技术研究—Apache安全
本系统虚拟了20G大小的磁盘,将/boot、/home、/tmp、/usr分别挂载到独立的分区。
/boot 是开机时引导系统的,一般里面的内容在装完系统后都不会改变,所以划分512M的主分区给/boot就足够了。如图2.1
/home 存放用户目录文件,一般为了系统的安全,可以登录到系统的用户并不多,所以划分2G的分区就够了。如图2.2
/tmp 只是用来存放临时文件,等会话结束后临时文件都会被删除,所以划分1G的分区。如图2.3
/usr 这个目录由于要存放大量文件,所以需要为其划分个尽量大的分区,这里划分10G。如图2.4
接着创建一个交换分区,用于缓存数据,一般大小为内存的两倍就足够了,所以划分512M。如图2.5
/ 根目录里面存放剩下的目录,如/etc、/dev等,把剩下的磁盘空间都划分给根目录。如图2.6
图 2.1 图 2.2
第7页 共41页 作者:温剑威
第二章 linux系统安装及平台架设
图 2.3 图 2.4
图 2.5 图 2.6 分区完毕后就如图2.7所示,继续下一步安装
第8页 共41页 作者:温剑威
广州大学华软软件学院网络技术系学位论文 毕业设计:基于Linux平台的Web安全技术研究—Apache安全
图2.7 系统分区
接着填写好用户密码信息后下一步,确认信息后就等待安装。
系统安装完以后默认的设置相对比较安全,整个系统很干净,安装软件包时要特别注意,并不是说软件包装得越多越好,相反装的软件包越多,系统的漏洞也会越多,所以安装软件包时应该自己手动安装,需要什么包就装什么包,以此提高系统的安全性。除此之外还要通过配置系统的安全设置来进一步优化系统,从而最大限度的保证系统的安全。
2.4 架设LAMP平台环境
这里选择编译的方式架设LAMP平台,首先解压安装包,用./configure指定安装目录并设置具体参数,再用make && make install命令编译安装,具体实现过程不作详细叙述。
需要注意的是为了Apache能识别PHP,需要在Apache的配置文件httpd.conf添加一些语句,并重新启动服务,具体设置如下(图 2.8)
第9页 共41页 作者:温剑威
第二章 linux系统安装及平台架设
图2.8 Apache识别PHP设置
2.5 LAMP平台环境测试
将编写好的index.php文件放到网站的默认目录/var/www/html里面,打开浏览器输入http://127.0.0.1/index.php测试(图 2.9)
图2.9 平台环境测试
至此,LAMP平台已经架设完成,这里只是简单的架设LAMP平台,之后还可以
第10页 共41页 作者:温剑威
广州大学华软软件学院网络技术系学位论文 毕业设计:基于Linux平台的Web安全技术研究—Apache安全
继续安装软件包让此平台更加完善。
第三章 linux系统平台的安全设置
3.1 磁盘分区安全
一个新安装的系统首先应该考虑磁盘分区的安全性,在安装系统的时候就应该有个详细安全的分区方案,把主要目录分开到不同的分区,为各个目录划分足够的磁盘空间,这些在前一章已经做过详细叙述。
3.2 系统安全设置
3.2.1 用户及密码安全
对于系统提供的账号可能过多,需要把不用的账号都删除了,因为账号越多就越容易受到攻击。为了删除系统上你不用的用户,先查看下系统的用户信息(图 3.1)
第11页 共41页 作者:温剑威
第三章 linux系统平台的安全设置
图3.1 查看用户信息
用命令userdel和groupdel将不需要用的用户和组删除,例如不需要用到X windows服务,就把其对应的用户和组删除(图 3.2)
图3.2 删除不需要的用户和组
密码口令设置应该尽可能复杂,最好由大小写英文字母和数字组成,长度起码8位,而且要自己能够记住,这样才可以最大限度的防止黑客破解密码。系统默认的密码长度为5位,应该将它设置为8位,编辑/etc/login.defs文件,修改对应选项(图 3.3)
图3.3 设置密码口令选项
另外,用more /etc/passwd查看后,如果用户名后面紧接两个冒号,说明这个用户没有设置密码,这样是非常不安全的,一定要把这些用户删除。
3.2.2 服务安全
系统的服务安全也和用户安全一样要尽可能的少,因为开启的服务越多,系统的漏洞也就会越多,这样就会给黑客攻击提供了便利,所以要在系统管理的服务配置里将不必要的服务关闭(图 3.4)
第12页 共41页 作者:温剑威
广州大学华软软件学院网络技术系学位论文 毕业设计:基于Linux平台的Web安全技术研究—Apache安全
图3.4 关闭不需要的服务
这里我将不需要的服务,例如nfs、sendmail、telnet等关闭,尽量降低被攻击的可能性。
3.2.3 限制root用户和su命令
设置root用户的登录终端,让其只能够在tty1登录,这样就可以限制root用户进行远程登录,即使root密码被破解也没有办法在远程登录,使得系统被破坏程度减小到最小,可以通过编辑/etc/securetty文件实现(图 3.5)
第13页 共41页 作者:温剑威
第三章 linux系统平台的安全设置
图3.5 限制root用户远程登录
通过编辑/etc/pam.d/su文件限制任何用户su成root用户(图 3.6)
图3.6 限制用户su的使用
这样就只有adim组的用户可以用su命令,大幅度减少su命令带来的麻烦。
3.2.4 登录时隐藏系统信息
Linux系统默认登录时会显示包括版本、主机名等一系列信息,这无疑为黑客的攻击提供了线索,所以应该尽量少显示系统相关信息,可以编辑/etc/rc.d/rc.local把输出系统信息的行注释掉或删除(图 3.7)
第14页 共41页 作者:温剑威
致谢
致谢
本学位论文是在我的指导老师孙勇毅的亲切关怀和悉心指导下完成的。他严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到项目的最终完成,孙老师都始终给予我细心的指导和不懈的支持。在此谨向孙老师致以诚挚的谢意和崇高的敬意。
在做毕业设计的过程中,我加深了对Linux系统的理解,明白了一个安全的平台环境仅仅只依靠某个安全组件是不行的,平台的安全就像一个大木桶,而一个个的安全组件就是组成木桶的板块,所以安全的平台环境需要靠一系列的安全版块来组成。在设计的实验过程中遇到了各种各样的问题,经过不断地尝试和试验,大部分问题都可以自己解决,然而这遇到问题和解决问题的过程就是我学习能力和分析能力不断提高的过程。当然自己不能解决的问题我会请教指导老师,孙勇毅老师他也会不厌其烦地指导和帮助我,让我能够顺利地完成毕业设计,在这里我要再一次感谢我的指导老师孙勇毅老师。
此外,本文最终得以顺利完成,也是与网络系其他老师的帮助分不开的,虽然他们没有直接参与我的论文指导,但在开题时也给我提供了不少的意见,提出了一系列可行性的建议,还有安明忠老师、幺罗野老师、田宏政老师和王淑娟老师,他们给予我详细的修改意见,让我的论文更加完善,在此向他们表示深深的感谢!
在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!
第40页 共41页 作者:温剑威
广州大学华软软件学院网络技术系学位论文 毕业设计:基于Linux平台的Web安全技术研究—Apache安全
参考文献
[1] 杨鹏.Linux服务器架设[S] .北京:清华大学出版社, 2008.12 [2] yanzi.Linux Apache+MySQL+PHP简明指南v2 [EB/OL] , http://www.qqread.com/linux/2006/10/y256881.html,2007.12.16 [3] 宋立新,秦钢.配置安全的Linux服务器[EB/OL] ,
http://www.qqread.com/linux/2006/08/p092195061.html,2006.08.06
[4] 周国添,袁泉.Linux系统高级管理员[S] .广州:广东科技出版社, 2006.4 [5] Oskar Andreasson.Iptables 指南 1.1.19[EB/OL] ,
http://man.chinaunix.net/network/iptables-tutorial-cn-1.1.19.html,2001-2003
[6] 戴英侠 连一峰 王航.系统安全与入侵检测[M] .北京:清华大学出版社,2002.3 [7] China Unix.Snort入侵检测系统安装与配置[EB/OL] ,
http://linux.chinaunix.net/techdoc/net/2006/12/21/946407.shtml,2006.12.21
第41页 共41页 作者:温剑威
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库毕业设计(论文)-基于Linux平台的Web安全技术研究—Apache安全在线全文阅读。
相关推荐: