移动安全 安全管理 应用案例 网络威胁 系统安全应用安全 数据安全 云安全
当前位置: 主页 > 信息安全 > 应用安全 >

为Apache Web服务器保驾护航的8个简易方法

时间:2014-05-19 15:37来源:TuZhiJiaMi企业信息安全专家 点击:
Apache可以是当今互联网上使用最广泛的Web服务器。它天生是在Unix环境下工作的,不过已移植到了其他服务器操作系统,比如Windows。Apache Web服务器为数百万的网站和互联网应用系统提供服务。
Tags应用安全(1006)服务器(140)Apache Web(2)  

  Apache可以是当今互联网上使用最广泛的Web服务器。它天生是在Unix环境下工作的,不过已移植到了其他服务器操作系统,比如Windows。Apache Web服务器为数百万的网站和互联网应用系统提供服务。一大批的验证方案、支持众多的语言接口以及安全功能特性,让它成为全球各地成千上万用户青睐有加的Web服务器。

为Apache Web服务器保驾护航的8个简易方法

  Apache的这种明星地位、这种爆棚人气,也让它支撑的网站成为黑客们偏爱的下手目标。Apache支撑的网站之所以沦为黑客攻击的牺牲品,常常倒不是由于Apache本身存在安全风险和漏洞,主要是由于编写糟糕的代码以及与数据库有关的其他安全问题。Apache和Linux这对黄金搭档提供了良好的安全性,但是如果你不采取必要的防范措施,还是有可能出岔子。你需要采取几个做法,为Apache保驾护航。为此,我们整理了你应该采取的几个简单易学的措施,确保Web服务器安全。

  第一件事:更新

  每一个Apache版本里面都存在安全漏洞和潜在风险,不过及时得到了修补。开发社区不断努力解决新的安全问题,更新的重要性再怎么强调都不为过。

  良好的更新策略和安全策略相辅相成。你不仅在重大版本发布后时更新Apache,还应该安装所有的补丁。你在更新Apache时,一并更新PHP(如果你使用PHP)也是明智之举。

  你只要使用下面这个命令,就可以检查Apache的当前版本。

  # http -vServer version: Apache/2.*.** (Unix)Server built: Mar 12 2014 13:20:23

  如果结果表明你当前运行的Apache不是最新版本,就要赶紧更新。

  Apache版本和操作系统

  如果出现某个错误,服务器可能会返回关于该错误的信息以及Apache版本和操作系统方面的细节信息。简单的404错误页面可以泄露关于Web服务器和操作系统的关键信息。在一些情况下,它甚至可能会返回同时安装在服务器中的Apache模块方面的细节信息。

  想关闭该功能,使用文本编辑工具打开配置文件(httpd.conf),找到字符串:“ServerSignature On”。它在默认情况下应该是“On”。想关闭它,只要将“On”换成“Off”即可。

  现在,HTTP站点标题和错误页面只会显示它运行Apache,而不会显示版本。

  禁用目录列表

  要是根目录下没有索引文件,Apache在默认情况下会列出根目录下的所有文件。有几个办法可以防止Apache列出根文件夹中的文件。你又需要将几行添加到配置文件。为此,有两种方法。或者将Option Directive设成“-Indexes”或“None”。如果你不知道我们在谈论什么,只将下面几行添加到配置文件。

  Options -IndexesOrder allow,denyAllow from all

  或者使用下列代码。

  Options NoneOrder allow,denyAllow from all

  在一些发行版中,这些命令早已到位,但最好还是检查一下,稳妥点总归是好事。

  保护配置文件

  如果你是个新手,又一直在采取上述步骤,那么就应该想到:httpd.conf配置文件对于确保服务器安全起到了很重要的作用。所以,最好将配置文件隐藏起来。你总是可以在需要时让配置文件显露出来。

  使用下面这个命令,即可将配置文件隐藏起来。

  chattr +i /httpd/conf/httpd.conf

  下面这段文字来自chattr参考手册页:

  “带有‘i’属性的文件无法被修改:它无法被删除或重命名;无法为该文件建立链接;无法将数据写入到该文件。只有超级用户或拥有CAP_LINUX_IMMUTABLE功能的进程才能设置或清空这个属性。”

  限制请求大小,以防范DoS攻击

  如果禁止大请求,就可以预防大多数拒绝服务(DoS)攻击。默认情况下,LimitRequestBody被设成不受限制。你可以更改大小,具体取决于你网站的实际需求。还可以限制对更容易受到攻击的目录(比如上传文件夹)进行请求。

  禁用不需要的模块

  通过禁用几个对你来说毫无用处的模块,就能减少服务器面临的安全漏洞。想详细列出你Web服务器中的所有模块,可以使用下面这个命令。

  # grep LoadModule /etc/httpd/conf/httpd.conf

  分析输出列表中的所有模块,弄清楚哪些模块毫无必要。你甚至没必要删除一行行代码。只要在开头添加“#”,那么重启服务后,它就会变成停用。

  别以root身份运行Apache

  Apache不应该以root身份运行。以另一个用户的身份运行Apache始终是个好主意。它在默认情况下会以守护程序或无任何用户的身份来运行。设立一个专门用于Apache的非特权帐户。千万别将Apache用户或用户组设成root。

  # vi httpd.confGroup apacheUser apache

  选择合适的托管服务提供商

  这与捣鼓你的Web服务器没有任何关系。一些最受欢迎的主机托管服务来自欧美国家。受欢迎并不意味着高度安全。你没必要向这些主机托管服务提供商购买主机托管服务。如果你不住在美国,也能在本国找到许多安全可靠的、收费合理的主机托管服务提供商。如果你住在澳大利亚,可以选择像EZI Hosting这样的澳大利亚主机托管提供商,并且选择最受欢迎的主机托管提供商,它们的IP地址常常不遭到黑客的攻击。

------分隔线----------------------------

推荐内容