apache服务器的安全设置

[复制链接]
查看412 | 回复0 | 2012-4-1 16:17:41 | 显示全部楼层 |阅读模式
本文下面介绍20种让你的Apache配置更黑客所用,并且黑客还可以从中得知你所配置的服务器上的很多设置都是默认状态。这里有两条语句,你需要添加到你的httpd.conf文件中:

ServerSignatureOff

ServerTokensProd

ServerSignature出现在Apache所产生的像404页面、目录列表等页面的底部。

ServerTokens目录被用来判断Apache会在ServerHTTP响应包的头部填充什么信息。

如果把ServerTokens设为Prod,那么HTTP响应包头就会被设置成:Server:Apache如果你非常想尝试其它事物,你可以通过编辑源代码改成不是Apache的其它东西,或者你可以通过下面将要介绍的mod_security实现。

三、确保Apache以其自身的用户账号和组运行

有的Apache安装过程使得服务器以nobody的用户运行,所以,假定Apache和你的邮件服务器都是以nobody的账号运行的,那么通过Apache发起的攻击就可能同时攻击到邮件服务器,反之亦然。

Userapache

Groupapache

四、确保web根目录之外的文件没有提供服务

我们不让Apache访问web根目录之外的任何文件。假设你的所以web站点文件都放在一个目录下(例如/web),你可以如下设置:

orderDeny,Allow

Denyfromall

OptionsNone

AllowOverrideNone

orderAllow,Deny

Allowfromall

注意,因为我们设置OpitinsNone和AllowOverrideNone,这将关闭服务器的所有Option和Override。你现在必须明确把每个目录设置成Option或者Override。

五、关闭目录浏览(Turnoffdirectorybrowsing)

你可以在Directory标签内用Option命令来实现这个功能。

设置Option为None或者-Indexes。

Options-Indexes

六、关闭includes(Turnoffserversideincludes)

这也可以通过在Directory标签内使用Option命令来实现。

设置Option为None或者-Includes。

Options-Includes

七、关闭CGI执行程序(TurnoffCGIexecution)

如果你不用CGI,那么请把它关闭。

设置Option为None或-ExecCGI就可以:

Options-ExecCGI

八、禁止Apache遵循符号链接(Don'tallowapachetofollowsymboliclinks)

设置Option为None或-FollowSymLinks:

Options-FollowSymLinks

九、关闭多重选项(TurningoffmultipleOptions)

如果想关闭所有选项,很简单:

OptionsNone

如果只想关系一些独立的选项,则通过将Options做如下设置可实现:

Options-ExecCGI-FollowSymLinks-Indexes

十、关闭对.htaccess文件的支持(Turnoffsupportfor.htacces单机传奇iles)

在一个目录标签中实现:

AllowOverrideNone

如果需要重载,则保证这些文件不能够被下载,或者把文件名改成非.htaccess文件。比如,我们可以改成.httpdoverride文件,然后像下面这样阻止所有以.ht打头的文件:

AccessFileName.httpdoverride

orderallow,deny

Denyfromall

Sati单机传奇yAll

十一、运行mod_security

mod_security是O’Reilly出版社出版的ApacheSecurity一书的作者--IvanRistic所写的一个非常好用的一个Apache模块。你可以用它实现以下功能:

.简单过滤

.基于过滤的常规表达式

.URL编码验证

·Unicode编码验证

.审计

.空字节攻击防止

.上载存储限制

.服务器身份隐藏

.内置的Chroot支持

.更多其它功能

十二、关闭任何不必要的模块(Disableanyunnecessarymodules)

Apache通常会安装几个模块,浏览Apache的moduledocumentation,了解已安装的各个模块是做什么用的。

很多情况下,你会发现并不需要激活那些模块。找到httpd.conf中包含LoadModule的代码。

要关闭这些模块,只需要在代码行前添加一个#号。要找到正在运行的模块,可以用以下语句:

grepLoadModulehttpd.conf

以下模块通常被激活而并无大用:

mod_imap,mod_include,mod_info,mod_userdir,mod_status,mod_cgi,mod_autoindex。

十三、确定只有才能root访问apache的config和binaries

假如你的apache装在/usr/local/apache

chown-Rroot:root/usr/local/apache

chmod-Ro-rwx/usr/local/apache

十四、降低timeout值(LowertheTimeoutvalue)
发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则