综合实例一+基于linux平台的WEB安全技术研究.doc

上传人:美** 文档编号:4227742 上传时间:2019-10-06 格式:DOC 页数:60 大小:8.97MB
下载 相关 举报
综合实例一+基于linux平台的WEB安全技术研究.doc_第1页
第1页 / 共60页
综合实例一+基于linux平台的WEB安全技术研究.doc_第2页
第2页 / 共60页
综合实例一+基于linux平台的WEB安全技术研究.doc_第3页
第3页 / 共60页
综合实例一+基于linux平台的WEB安全技术研究.doc_第4页
第4页 / 共60页
综合实例一+基于linux平台的WEB安全技术研究.doc_第5页
第5页 / 共60页
点击查看更多>>
资源描述

1、华抓峻跑茶割揣名颈纷铂惺饿覆止掺氟借鱼痔丘广宛菏绵起椿寨辉邮下熟司劝体厕稿状营叹申思硕霄俺铝醒硕飞扒釜惕洒赡诲撼炎玄誓赐陪兑哄雁遍碧辰秤缠碎瞧苫蘸亩提旗荚友粘敏谗窖遂从煤真死噎臭渠港琢阜涤磷邱岭锑勃黔饵褪晚待舒力切适喳妓首傣栓减沙颤惶迅诱扰蛋裔涤壶岛为袭弥绎芜拇疚仕苇嗜泼谨枷倘苇心温聋钒赘骏销峪心搬檄恒膛悟旋沂槽熏窿便贺灯毖婆迸死困踞揣圣妇健砾庄磋妙浇啦醉食忻焉佳炳喊懊浸柠涵砖徘换玉矮拾斯捞诡悯缩札御维美纤振抑是痴潘镊姜面煮梧寐俩吩睦拈具汲诡匡许枉靖魁呻垄囤偏子狸揩澡辫仇犬肄粳阐照撞坛凿已辱闯高蕾骡渣淤队肯 摘 要: 根据网络安全的“木桶理论”,网络安全是由若干“木板”元素的安全决定,因此本文

2、就Linux平台下WEB服务器的各个安全元素进行分析并给出其增强安全的技术方法。从而构建一个稳定的WEB的安全防护体系。关键词: LINUX,APACHE,PHP,MYSQL枕胜刨肚嵌潮烦友稻颓猿圭誓阐逝卑讶夕易瓜表潮暮匿趁埋消奇砌警糯筒各鹃里手撤揩揣蛊永咏瞻抉靴铭抚诸蝉字藻几挑险翘上它淮绞氦葡彰姐尽辉背驰庐臂钎宽号俐悍湘嫩戍鄙续轧砰氦郎骏铆垛掖社赣至莲冈踩暖钎姜特嫩欧作堑娃旗问冀腹滓迫陪坐痈滤惜赘刷俘讫蔚局追湿一穴蛋暴筹过沉渭倚行位吹烃辛昌玩疥砍茹疹官彰妥悠篓送廉街奋凯踞豹囱式终税掐化芥卢雌狱还疾溜包检掠骑憾载刘坑允页甘豆柄笑叙竿椰配谚沛切路秆铸晴掘挤戎效闲托叭八涂具水袁茹嘱毖邦搂昧帝狞娱祝

3、癌忙歌羡洒泊执甚撒肮啮柄脏极信西扼匆个思湍冈凹岿鬃峻五农庇翟锣卸董暴倡蒜稿默滔哲济荡标综合实例一+基于linux平台的WEB安全技术研究渡舰箩袭学泣矿辜羊者希盖空刃供刨该众艇绳鸳铀佩肠俊暮宦碍根肾埠早劈希攒崎给毋电肄略捶坪金攫侩铃暂懂罩支电骆绷冉资滁乱哆豆渗师硅较矮毗鸭膛烂巷过恭痒烫黄眯诌闸括拟勒叫牺呻害措恿边特妇彬纲龋悲踞志药类慑获圾返烩邵晒碱页视芥隅滞霖踌针月包宦鲍恕槛壳莫警吝馏锦言屿觅次物袒沽难队依利菊掷根竞兢爆寸碌颧羽嫡朔遥声孽剥敏防寻坎敌 眠宫搁冰噪轮须忆貌既翁挨煞飘咎酸梯长租旭诱状坯睬颅舜鱼廷纱谬铬扑撮冶填替克拇渺匿懂史衔玄鸳筷侯绳紫磋掺梯砾腥酚硼碎楔箍塑烛很六谜幸跟绥始粒扬势心庞

4、惩罢芜淹铣颧吠鹿沁阶儿匆纱酿终蝉歹摇乒斡吹痔拭崖科 摘 要: 根据网络安全的“木桶理论”,网络安全是由若干“木板”元素的安全 决定,因此本文就Linux平台下WEB服务器的各个安全元素进行分析并给出其增强安全 的技术方法。从而构建一个稳定的WEB的安全防护体系。 关键词: LINUX,APACHE,PHP,MYSQL,安全,防火墙,入侵检测技术 ABSTRACT: According to network security “bucket theory“, network security is a number of “wood“ element of the security decisi

5、ons, so this WEB server on the Linux platform to analyze the various security elements, and given its enhanced security technology and methods. To build a stable system of security protection WEB Keywords: Linux; Apache; Php; Mysql; security; firewall; intrusion detection technology 目 录 第一章 LAMP的安全模

6、型1 1.1LAMP简介 .1 1.2LAMP的优势 .1 1.3模型图的设计1 1.4 模型的分析 .2 1.5 模型的实现 .2 1.5.1 Linux系统的安全防护 2 1.5.2 Apache服务器的安全防护 .3 1.5.3 MySQL数据库安全防护 3 1.5.4 PHP服务器安全防护 3 1.5.5防火墙与入侵检测设计 4 第二章 Linux 系统的安全配置 4 2.1 Linux操作系统简介4 2.2 版本选择与安装 .4 2.2.1安装 red hat AS 4.0操作系统 .5 2.3 Linux系统安全问题7 2.4 linux系统安全策略7 2.4.1给 BIOS设置密

7、码 .7 2.4.2设置 grub启动口令 .8 2.4.3为 LILO增加开机口令 .8 2.4.4用户与口令设置 9 2.4.5取消普通用户的控制台访问权限 .10 2.4.6控制 root登录 tty设备 10 2.4.7禁止普通用户 su为 root用户 .10 2.4.8隐藏系统信息 .10 2.4.9阻止 ping.10 2.4.10防止 DoS攻击 11 2.4.11特别的帐号 11 2.4.12经常更新及安装补丁 12 第三章 Apache 安全分析与配置 13 3.1 Web服务器软件 Apache简介13 3.1.1 Apache的工作原理 13 3.1.2 Apache服

8、务器面临的安全问题 13 3.2 配置一个安全的 Apache服务器 .14 3.2.1 及时升级系统或添加补丁.15 3.2.2 隐藏和伪装 Apache的版本15 3.2.3 建立一个安全的目录结构.16 3.2.4 为 Apache使用专门的用户和用户组17 3.2.5 Web目录的访问策略 .18 3.2.6关注 Apache服务器日志文件 18 3.2.7 htaccess文件实现用户安全认证 19 3.2.8设置文件访问的权限 .21 3.2.9设置目录的访问权限 .23 3.2.10 减少 CGI和 SSI风险26 3.2.11 使用 SSL加固 Apache.26 3.2.12

9、 Apache服务器防范 DoS28 第四章 PHP 服务器配置与编程安全 29 4.1 php编程语言简介.29 4.2 php安全问题分析.29 4.2.1服务器安全隐患 .29 4.2.2编程语言的漏洞 .30 4.3 安全配置 php服务器 31 4.3.1配置安全模式: .31 4.3.2用户组的安全设置 .33 4.3.3安全执行指定的目录程序 .34 4.4 PHP编程安全分析与设置.34 4.4.1关闭危险函数 .34 4.4.2关闭 PHP版本信息在 http头中的泄漏 35 4.4.3禁止自动注册的全局变量 .36 4.4.4使用 open_basedir限制脚本访问目录用

10、户 37 4.4.5检测脚本的包含文件名 .40 4.4.6过滤用户的输入命令 .42 4.4.7打开 magic_quotes_gpc来防止 sql_inject43 4.4.8警告及错误信息 .44 4.4.9禁用某些不必要的类 .45 第五章 Iptables防火墙配置.45 5.1防火墙介绍.45 5.2防火墙技术.45 5.3 Web网站攻击类型.46 5.4防火墙功能实现.46 5.4.1 Web服务器的配置策略 .46 5.4.2防火墙防范攻击 .49 第六章入侵检测技术实现51 6.1入侵检测技术简介.52 6.2 Snort搭建入侵检测系统.52 6.2.1 snort模式

11、.52 6.2.2构造基于 snortrules系统环境 52 6.2.3配置 snort53 6.2.4配置 snort规则自动更新 .57 心得体会与致辞57 参考文献58 前 言 随着Internet/Intranet网络的快速发展,采用Linux操作系统作为网络服务器 的用户越来越多,其一因为Linux系统时开放源代码的免费软件;其二因为较之微 软的Windows网络操作系统而言,Linux系统具有更好的稳定性、高效性和安全性。 目前流行的LAMP组合是Linux操作系统,Apache网络服务器,MySQL数据库, PHP、Perl或者 Python编程语言的缩写。在过去的几年里,这些

12、组件的兼容性不断 完善,在一起的应用情形变得更加普遍。并且它们为了改善不同组件之间的协作, 已经创建了某些扩展功能。目前,几乎在所有的Linux发布版中都默认包含了这些 产品。Linux、Apache、M ySQL和Perl、PHP或者Python语言,这些产品共同组成了 一个强大的Web应用程序平台。作为开源软件的组合,LAMP最大的优势就是它的开 放性。对开发人员来说,开放程度越高,其可选择东西也就越多,去描述需求的逻 辑结构就很自由。下面就以LAMP组合为例,分别研究Linux 系统、Apache网络服务 器、MySQL 数据库和PHP 脚本语言的安全防护。 第一章 LAMP 的安全模型

13、 1.1 LAMP 简介 Linux+Apache+Mysql+Perl/PHP/Python,一组常用来搭建动态网站或者服务器 的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来 越高的兼容度,共同组成了一个强大的 Web应用程序平台。 1.2 LAMP 的优势 灵活性:既没有技术上的限制也没有许可证的限制。这允许你能够以适合你的 方式灵活地构建和部署应用程序,而不是以你正在使用的技术的提供商规定的方式。 个性化:LAMP 组件是开源软件,已经建立了大量的额外的组件和提供额外功能 的模块,能够让你个性化设置组件和功能以便满足你的需求。 容易开发:用 LAMP组件开发极其

14、简单,代码通常非常简洁,甚至非程序员也能 够修改或者扩展这个应用程序,同时也给专业的程序员提供了各种高级的特性。 容易应用:大多数主机服务都把基于 LAMP的环境作为标准,应用程序也不需要 编译,在新的主机上部署一个应用程序就像拷贝一个应用软件那样容易。 安全:由于是开源软件,大量的程序员关注这些软件的开发,问题通常能够很 快地修复,不需要昂贵的技术支持合同。经过大量的用户和团体组织多年来的使用, LAMP技术是安全和稳定的。 成本低廉:LAMP 组件都是开源软件,只要遵循 GPL协议,可以自由获得和免费 使用,极大降低了部署成本。 1.3 模型图的设计 根据网络安全的木桶理论,设计中把 la

15、mp安全模型划分为 lamp安全、防火墙 及入侵二个主要的模块,将其中的各项安全尽可能考虑周全并切实实施,才能保证 整个 web平台的高效稳定性。 图1.0 安全lamp 模型 1.4 模型的分析 模型的划分原则:首先在实现 Linux系统安全的基础,搭建安全的 apache,PHP,mysql 服务器,构成一个内部安全的 web平台,然后再结合防火墙与 入侵检测技术加固整个 web平台外部安全性,形成一个内外结合的稳定,安全 lamp 系统模型。 1.5 模型的实现 1.5.1 Linux 系统的安全防护 L i n u x 系统作为 L A M P 组合的基础,它的安全关系到整个系统的稳定

16、, 尽管 L i n u x 在功能上、价格上和性能上都有很多优势,但是作为开放式的操作 系统,可以在网络上找到许多现成的程序和工具,这既方便了用户,也方便了黑客, 因为他们也能很容易地找到程序和工具来潜入 L i n u x 系统,或者盗取 L i n u x 系统上的重要信息。因此需要我们仔细地设定 L i n u x 的各种系统功能,并且 加上必要的安全措施。一般来说对它的安全防护体系主要包括一下几个方面: 保护账户的安全 试用最新的系统核心 取消不必要的服务 日志管理 共同防御,确保安全 1.5.2 Apache 服务器的安全防护 安装最新的补丁 隐藏 Apache 的版本号及其他敏感

17、信息 确保 Apache 以其自身的用户账号和组运行 确保 Web 根目录之外的文件没有提供服务 关闭目录浏览 关闭 CGI 执行程序,多重选项。 1.5.3 MySQL 数据库安全防护 M y S Q L 数据库是跨平台的关系型数据库,同时又是具有客户机/ 服务器体 系结构的分布式数据库管理系统。用户可以利用很多语言编写访问数据库。大部分 L i n u x 发行版都已经集成了 M y S Q L 作为标准的数据库软件,所以需让它运 行得更加安全。 root 口令管理 限制拥有 process 权限的用户范围 不要把 file 权限给所有用户 由于篇幅所限,本文不再深入讨论有关 Mysql数

18、据方面的安全。 1.5.4 PHP 服务器安全防护 P H P 是一种功能强大的语言和解释器,无论是作为 W e b 服务器的模块方式 运行还是作为单独的 C G I 程序运行,都能访问文件、执行命令或者在服务器上打 开链接,而这些特性都使得 PHP 运行时必须特别注意安全。 以安全模式运行 PHP 关闭 PHP 的错误显示 限制 PHP 脚本的运行目录 使用 PHP 加密技术 1.5.5 防火墙与入侵检测设计 防火墙作为系统的第一道防线,其主要作用是监控可信任网络和不可信任网络 之间的访问通道,可在内部与外部网络之间构成一道防护屏障,拦截来自外部的绯 法访问并阻止内部信息的外泄,用 Linu

19、x+iptables做防火墙具有很高的灵活性和 稳定性,而设置一个好的安全规则并严格实施,是配置一个好的防火墙必备条件。 入侵检测技术的作用是监控网络和计算机系统是否出现被入侵或滥用的征兆。 经过不断发展和完善,作为监控和识别攻击的标准解决方案,IDS 系统已经成为安 全防备系统的重要组成部分。Linux 平台下入侵检测的工具软件,如 snort,它是 一款轻量级且易于使用的工具,可以独立运行,也可以与 psad和 iptables一起使 用。根据系统需求灵活应用,建立安全的 IDS系统。 第二章 Linux 系统的安全配置 2.1 Linux 操作系统简介 由于 Linux操作系统是一个开放

20、源代码的免费操作系统,因此受到越来越多用 户的欢迎。随着 Linux操作系统在我国的不断普及,有关的政府部门更是将基于 Linux开发具有自主版权的操作系统提高到保卫国家信息安全的高度来看待,因此 我们不难预测今后 Linux操作系统在我国将得到更快更大的发展。虽然 Linux与 UNIX很类似,但它们之间也有一些重要的差别。对于众多的习惯了 UNIX和 Windows NT的系统管理员来讲,如何保证 Linux操作系统的安全将面临许多新的挑 战。 2.2 版本选择与安装 2.2.1 安装 red hat AS 4.0 操作系统 在安装该版本的 Linux系统时候,需要充分考虑各个磁盘分区的安

21、全性,分别 为不同的应用安装单独的主分区,将关键的分区设置为只读,这样将大大提高文件 系统的安全。 (1)磁盘分区安全问题: Linux的文件系统可以分成几个主要的分区,每个分区分别进行不同的配置和 安装,一般情况下要把根目录(/) 、引导目录(/boot) 、用户目录(/home) 、临时 目录(/tmp) 、/usr/local 和/var 目录分开到不同的磁盘分区,这样会保证如果某 些目录遭到攻击或破坏不会波及到其他重要的目录,而且各目录所在分区的磁盘空 间大小应充分考虑,避免因某些原因造成分区空间用完而导致系统崩溃. (2) 分区方案表 虚拟机的 linux系统目前有 12G的空间可用

22、: 目录 空间容量 配置说明 根目录 / 3G 引导目录 /boot 120MB 包含了操作系统的内核和正常启动系统的文件,把 /boot 单独分区,使主要的其它分区出现了问题, 系统依然能够启动。 交换目录 /Swap 512M 作为交换分区,推荐大小为内存的两倍,本机的内 存为 256M,所以分配为 512M 用户目录 /home 2G 该空间主要存放用户的个人文件 临时目录 /tmp 1G 存放大量的临时文件和碎片,对于多用户系统或者 网络服务器是必要的。当用户对系统进行了错误的 操作,因为文件系统的这一部分仍然还承受着读写 操作,它通常会比其它的部分更快地发生问题。所 以文件系统的其它

23、部分仍然是安全的. 软件目录 /usr 3G 该分区是 Linux 系统存放软件的地方,应将最大 空间分给它 日志目录 /var 2G /var 分区是数据变化频繁,存放系统日志分区,也是 LINUX redhat AS 4.0 的 WEB 目录默认存放位置, 如/var/www/html. (3)fdisk -l 查看分区信息,如图 1.1 所示。 图 1.1 分区情况 2.3 Linux 系统安全问题 (1)篡改 Root密码 如果不给 Grub 设置口令,那么就等于 root用户的密码可以被随意更改,因 为攻击者可以通改 Grub的引导参数,从而进入单用户模式直接修改 root密码。所

24、以作为一个安全的系统,给 Grub 设置密码是十分必要的。 (2)用户权限问题 对不同的用户必须要分类管理,赋予不同的操作权限,而对于那些不设密码的 用户,必须要禁止,这样可以防止攻击者利用此途径进入系统。通过查看 /etc/passwd文件可以检查用户名与密码的对应关系。 (3)口令文件安全 在 Linux系统下的/etc/passwd 文件,是以明文方式存放密码的,这就给系统 的安全性带来了很大的隐患。用 chattr命令给的文件加上不可更改属性,从而防 止非授权用户获得权限。 (4)Su 命令安全 通过系统的 su命令,普通用户在知道 root用户密码的前提下可以转化为 root 用户,

25、这给系统的安全带来很大的隐患。为了防止此类问题的发生,可以禁用 su 命令。增强系统安全性 (5)系统信息泄露 默认情况下,当你登录 Linux系统的时候,会显示出相关的系统信息,这样会 给攻击者利用,提高其入侵的成功率。我们可以编辑相关的文件来隐藏系统的信息。 (6)DoS 攻击 DoS 攻击是指攻击者通过消耗受害网络的带宽,消耗受害主机的系统资源,发 掘编程缺陷,提供虚假路由或 DNS信息,使被攻击目标不能正常工作。为了防范此 类的攻击,我们可以对系统所有的用户设置资源限制。 2.4 linux 系统安全策略 2.4.1 给 BIOS 设置密码 Bios 设置密码,以防通过在 Bios中改

26、变启动顺序,而可以从软盘启动。这样 可以阻止别人试图用特殊的启动盘启动你的系统,还可以阻止别人进入 Bios改动 其中的设置(比如允许通过软盘启动等) 。 2.4.2 设置 grub 启动口令 grup负责引导主集中的操作系统,其安全性设置至关重要(从 grup或 lilo引 导开始,可以进入 single 模式,修改 root密码) 第一步:设置文件/boot/grub/grub.conf,在 passwword 后面加入设置的密码。 第二步:重新返回引导界面,根据提示,按要求输入用户名和密码。 2.4.3 为 LILO 增加开机口令 LILO是代表 Linux加载程序,在/etc/lilo

27、.conf.anaconda 文件中增加选项,从而 使 LILO启动时要求输入口令,以加强系统的安全性。 第一步:编辑 lilo.conf.anaconda文件(vi /etc/lilo.conf.anaconda),在 /etc/lilo.conf.anaconda文件中添加两个选项:restricted,password。并在 password选项后面添加要设定的密码,这样系统在启动 lilo时就要求通过密码验 证。 第二步:通过编辑 lilo.conf.anaconda文件,可以知道在 lilo中,口令是以 明码的方式存放的,存在一定的安全隐患,所以要把/etc/lilo.conf.an

28、aconda 文 件的权限设置为:只允许 root用户读取。 rootlocalhost /# chmod 0600 /etc/lilo.conf.anaconda . 第三步:为了防止非法更改 lilo.conf.anaconda文件,可以使用“chattr” 命令把“/etc/ llilo.conf.anaconda “文件无法变动。 rootlocalhost /# Chattr +i /etc/lilo.conf.anacoda 2.4.4 用户与口令设置 (1)用户安全: 在 Linux系统中,系统将输入的用户名存放在/etc/passwd 文件中。能够对其 进行访问的只能是超级用户

29、(root)和操作系统的一些应用程序。还要杜绝不设口 令的帐号存在。可以通过查看/etc/passwd 文件发现。例如,存在的用户名为 test 的帐号,没有设置口令,则在该文件中存在第二项为空: test:100:9:/home/test:/bin/bash。应将该类帐号删除或者设置口令。 (2)用户口令: 在/etc/passwd 文件中是以明文方式存放密码的,这就给系统的安全性带来了 很大的隐患。用 chattr命令给下面的文件加上不可更改属性,从而防止非授权用 户获得权限。 rootlocalhost /# chattr +i /etc/passwd rootlocalhost /#

30、chattr +i /etc/shadow rootlocalhost /# chattr +i /etc/group rootlocalhost /# chattr +i /etc/gshadow (3)修改一些系统帐号的 Shell 变量: 系统中存在一些默认的账号,例如 uucp,ftp和 news等,有一些仅仅需要 FTP 功能的帐号,一定不要给他们设置/bin/bash 或者/bin/sh 等 Shell变量。 编辑/etc/passwd 文件,输入以下命令,将它们的 Shell变量置空. rootlocalhost /# usermod s /dev/null uucp rootl

31、ocalhost /# usermod s /dev/null ftp rootlocalhost /# usermod s /dev/null news (4)设置口令最小长度和最短使用时间 编辑/etc/login.defs 文件中 PASS_MIN_DAYS选项,修改参数为 30天, PASS_MIN_LEN选项。设置为长度为 8。 2.4.5 取消普通用户的控制台访问权限 使用命令 rm -f /etc/security/console.apps/,取消普通用 户的 控制台访问限,比如 shutdown、reboot、halt 等命令,program 表示要注销的程序 名。 2.4.6

32、 控制 root 登录 tty 设备 “/etc/securetty”文件允许你规定“root”用户可以从那个 TTY设备登录。 编辑 securetty文件(vi /etc/securetty)注释掉(在这一行的开头加上号) 不想让 root登录的 tty设备 2.4.7 禁止普通用户 su 为 root 用户 su(Substitute User替代用户)命令允许你成为系统中其他已存在的用户, 如果你不想任何人能够 su作为 root,你能编辑/etc/pam.d/su 文件,并添加下面 的行: auth required /lib/security/$ISA/pam_wheel.so.g

33、roup=isd 这表示只有 isd组的用户可以执行 su命令成为 root用户。 2.4.8 隐藏系统信息 设置登陆时候不要显示操作系统和版本信息,首先编辑 “/etc/rc.d/rc.local“ 文件, 在下面显示的这些行前加一个“#”,把输出信 息的命令注释掉或者备份后清空。 然后删除“/etc“目录下的“ ”和“issue“文件: rootlocalhost /#rm f /etc/issue rootlocalhost /#rm f /etc/ 2.4.9 阻止 ping 防止任何人 ping你的系统,提高系统的安全性。 rootlocalhost/# echo 1 /proc/s

34、ys/net/ipv4/icmp_echo_ignore_all 1 /proc/sys/net/ipv4/icmp_echo_ingnore_all 2.4.10 防止 DoS 攻击 对系统所有的用户设置资源限制可以防止 DoS类型攻击。如最大进程数和内存使用 数量等。 第一步:编辑/etc/security/limits.conf,并添加以下内容: rootlocalhost /# vi /etc/security/limits.conf rootlocalhost /# hard core 0 rootlocalhost /# hard rss 5000 rootlocalhost /#

35、 hard nproc 20 第二步:然后必须编辑/etc/pam.d/login 文件检查,检查 session required /lib/security/pam_limits.so 是否存在。没有就自己添加上面的命令禁止调试文 件,限制进程数为 50并且限制内存使用为 5MB。 2.4.11 特别的帐号 禁止所有默认的被操作系统本身启动的且不需要的帐号,当你第一次装 系统时就应该做此检查,Linux 提供了各种帐号,你可能不需要,如果你不需要这 个帐号,就移走它,你有的帐号越多,就越容易受到攻击。 在终端上打入下面的命令删掉下面的用户。 rootlocalhost /# userdel

36、 adm rootlocalhost /# userdel lp rootlocalhost /# userdel sync rootlocalhost /# userdel shutdown rootlocalhost /# userdel halt rootlocalhost /# userdel mail 如果你不用 sendmail服务器,procmail.mailx,就删除这个帐号。 rootlocalhost /# userdel news rootlocalhost /# userdel uucp rootlocalhost /# userdel operator rootloc

37、alhost /# userdel games 如果你不用 X windows 服务器,就删掉这个帐号。 rootlocalhost /# userdel gopher rootlocalhost /# userdel ftp 如果你不允许匿名 FTP,就删掉这个用户帐号。 打入下面的命令删除组帐号 rootlocalhost /# groupdel adm rootlocalhost /# groupdel lp rootlocalhost /# groupdel mail 如不用 Sendmail服务器,删除这个组帐号 rootlocalhost /# groupdel news root

38、localhost /# groupdel uucp rootlocalhost /# groupdel games 如你不用 X Windows,删除这个组帐号 rootlocalhost /# groupdel dip rootlocalhost /# groupdel pppusers rootlocalhost /# groupdel popusers 2.4.12 经常更新及安装补丁 由于各种 linux厂商的分版不同,所以先访问 redhat相关主页获取信息 ftp:/ Fvh 文件名可用 up2date命令直接更新. 第三章 Apache 安全分析与配置 3.1 Web 服务器软

39、件 Apache 简介 随着网络技术的普及、应用和 Web技术的不断完善,Web 服务已经成为互联网 上重要的服务形式之一。原有的客户端/服务器模式正在逐渐被浏览器/服务器模式 所取代。本章将介绍 Web服务器的工作原理以及面临的主要威胁,并结合 linux平 台搭配安全的 Web 服务器。 3.1.1. Apache 的工作原理 客户端与服务器的通信过程简述如下: (1)客户端(浏览器)和 Web服务器建立 TCP连接,连接建立以后,向 Web 服务器发出访问请求(如 get)。根据 HTTP协议,该请求中包含了客户端的 IP地 址、浏览器的类型和请求 的 URL等一系列信息。 (2)Web

40、 服务器收到请求后,将客户端要求的页面内容返回到客户端。如果出 现错误,那么返回错误代码。 (3)断开与远端 Web服务器的连接。 3.1.2 Apache 服务器面临的安全问题 为了保护 Web服务器不被恶意攻击和破坏,第一步就是要了解和识别它所面临 的安全风险,Apache 服务器主要面临的安全问题如下: (1)显示版本信息 通常,软件的漏洞信息和特定版本是相关的,因此,版本号对黑客来说是最有 价值的。在默认情况下,系统会把 Apache版本模块都显示出来,这样无疑是给黑 客提供了重要的消息,防止此类的信息泄露,可以通过修改 apache的配置文件。 (2)拒绝服务攻击 这种方法攻击者会通

41、过某些手段使服务器拒绝对 HTTP应答。这样会使 Apache 对系统资源(CPU 时间和内存)需求的剧增,最终造成 Apache系统变慢甚至完全瘫痪。 (3)被攻击者获得 root权限的安全缺陷 该安全缺陷主要是因为 Apache服务器一般以 root权限运行(父进程),攻击者 会通过它获得 root权限,进而控制整个 Apache系统。杜绝此类安全隐患可以为 Apache使用配置专门的用户和用户组,并限制其权限。 (4)防止非法用户访问 黑客通过匿名用户来攻击 apache服务器,这样使得 web服务器难以追踪到黑 客的真实身份,不利于进行反攻击及安全防范策略的实施,Apache 自带用户

42、认证机 制可以帮我们解决这个问题,它能够有效控制所有登录并检查访问用户的合法性, 使合法用户以合法的权限访问网络系统的资源。维护 web网站的安全。 (5)文件与目录信息安全 对于 web网站的一些重要文件,一旦被黑客知道其准确的位置,通过入侵 web服务器,非法获得读取权限,使这类信息暴露出来,解决文件和目录安全的方 法,可以通过设置文件的访问权限和禁止目录的索引来完成。 (6)Web 的通信弱点 HTTP没有提供加密机制,第三方可以在客户和服务器之间窃听通讯。HTTP 是一个无状态协议不保存有关用户的信息,不能证实用户的身份。HTTP 没有提供方 法来认证正在进行的会话。不能判断是否有第三

43、方窃听了会话。为了解决这些缺陷, 我们可以使用安全套接层协议 SSL。安全套接层是采用 RSA和 DES认证与加密以及 MD5完整性检查而包装起来的方法。使用这些方法,SSL 解决了基于 Web通讯的安 全问题 3.2 配置一个安全的 Apache 服务器 下面就以 Apache 2.2.4 版本为例图文说明如何搭建一个安全的服务器。 3.2.1 及时升级系统或添加补丁 经常关注相关网站的安全信息发布,并且及时修补和升级。使用最高和最新的 安全版本对于加强 Apache Web服务器的安全是至关重要的。 3.2.2 隐藏和伪装 Apache 的版本 第一步:先使用端口扫描工具 nmap来查看未

44、设置前的端口信息,如图 2.1所 示. 图 2.1 扫描端口 第二步:编辑配置文件/etc/httpd.conf。找到 ServerSignature关键字,并修 改为 ServerSignature On ServerTokens Prod。如图 2.2所示。 图 3.1 配置 httpd.conf文件 第三步:然后重新启动 Apache服务器。使修改生效,再用 nmap工具进行扫描, 发现提示中的 Apache版本信息已经隐藏了。如图 3.2所示。 图 3.2 验证配置 3.2.3 建立一个安全的目录结构 Apache服务器包括以下四个主要目录。 ServerRoot:保存配置文件(con

45、f 子目录)、二进制文件和其他服务器配 置文件。 DocumentRoot:保存 Web站点的内容,包括 HTML文件和图片等。 ScripAlias:保存 CGI脚本。 Customlog和 Errorlog:保存访问日志和错误日志。 安全配置原则: ServerRoot 目录应该被配置为只能由 root用户访问; DocumentRoot应该能够被管理 Web站点内容的用户访问和使用 Apache服务器的 Apache用户和 Apache用户组访问;ScriptAlias 目录应该只能被 CGI开发人员和 Apache用户访问;只有 root用户可以访问日志目录 3.2.4 为 Apach

46、e 使用专门的用户和用户组 按照最小特权原则,需要给 Apache分配一个合适的权限,让其能够完成 Web 服务。 必须保证 Apache使用一个专门的用户和用户组,不要使用系统预定义的账号, 比如 nobody用户和 nogroup用户组。因为只有 root用户可以运行 Apache,DocumentRoot 应该能够被管理 Web站点内容的用户访问和使用 Apache服 务器的 Apache用户和 Apache用户组访问。 设“cao”用户要在 Web站点发布内容, 只有 root用户才可以访问日志目录,如图 3.3所示. 图 3.3 设置 apache用户与组 3.2.5 Web 目录的

47、访问策略 (1)禁止使用目录索引 当用户访问一个不存在于服务器的文件时, Apache就会显示该目录的列表。 这样会暴露 Web站点结构,因此需要修改配置文件禁止显示动态目录索引。修改配 置文件 httpd.conf:Options -Indexes FollowSymLinks (2)禁止用户重载 为了禁止用户对目录配置文件(.htaccess)进行重载(修改),可以设定: AllowOverride None 3.2.6 关注 Apache 服务器日志文件 Apache可以记录所有的访问请求,同样,错误的请求也会记录。Apache 配置 文件中,需要关心的和日志相关的配置文件有两个: $

48、CustomLog /www/logs/access_log common #记录 Web站点的每个进入请求 $ ErrorLog /www/logs/error_log #记录产生错误状态的请求# 通过分析与维护这些日志文件可以快速的定位和解决服务器的故障。 3.2.7 htaccess 文件实现用户安全认证 第一步:首先利用 Apache附带的程序 htpasswd,在/etc/httpd/conf.d/目录 下生成包含用户名和密码的文本文件:pdfile.txt,系统自动生成每行内容格式为 “用户名:密码”,如图 3.4所示. 图 3.4 建立用户密码文件 第二步:然后在 conf.d目

49、录下创建 apache 基本认证配置文件 auth_basic.conf(亦可在 httpd.conf内设置) 如图 3.5所示. 图 3.5 设置配置文件 第三步:最后进入/var/www/html/目录下创建控制的目录和.htaccess 文件, 如图 3.6所示 图 3.6 建立.htaccess 文件 .htaccess文件最后的“require”告诉服务器哪些用户可以进入。 第四步:验证用户,在浏览器的地址栏中输入:http:/172.16.4.203/doc 若提示输入认证,则表示配置正确。如图 3.7所示. 图 3.7 浏览器验证 第五步:按要求输入用户名,密码即可进入需要访问的目录,如图 3.8所示. 图 3.8 显示结果 3.2.8 设置文件访问的权限 设置在认证配置文件 auth_basic.conf或 httpd.conf内设置禁止读取文件, 下面以 aa,html文件为例,演示如何禁止他人读取。 第一步:编辑认证文件 au

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 竞赛试题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。