首页
社区
课程
招聘
为Apache Web服务器保驾护航的8个简易方法
发表于: 2014-5-16 22:22 669

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

2014-5-16 22:22
669
新闻链接:http://netsecurity.51cto.com/art/201405/439570.htm
新闻时间:2014-05-16
新闻正文:Apache可以是当今互联网上使用最广泛的Web服务器。它天生是在Unix环境下工作的,不过已移植到了其他服务器操作系统,比如Windows。Apache Web服务器为数百万的网站和互联网应用系统提供服务。一大批的验证方案、支持众多的语言接口以及安全功能特性,让它成为全球各地成千上万用户青睐有加的Web服务器。

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

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

第一件事:更新

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

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

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

# http -v
Server 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”。如果你不知道我们在谈论什么,只将下面几行添加到配置文件。

<directory /var/www/html>
Options -Indexes
Order allow,deny
Allow from all
</directory>
或者使用下列代码。

<directory></directory>
Options None
Order allow,deny
Allow 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.conf
Group apache
User apache
选择合适的托管服务提供商

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

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//