zoukankan      html  css  js  c++  java
  • 【转】Apache服务器安全配置

    源URL:http://foreversong.cn/archives/789

    偶然下载了今年ISC大会360应急响应中心的一个ppt,在最后有个攻防领域专家注册考试目录,其中有很大一块就是中间件的安全,包括Apache、IIS、Tomcat、Weblogic等等,后面我会针对这些中间件,并且借着上面的考试要求进行一个安全配置的讲解。(自己之前也很少接触这块,因此只能算一个学习记录了。。)

    Apache方面的考核内容:

    1.Apache服务器权限配置

    2.Apache服务器文件解析漏洞

    3.Apache服务器日志文件审计方法

    4.Apache服务器WEB目录权限的配置

    下面我将针对上面几个要求,进行一个实例讲演!

     

    问题1:Apache服务器权限配置

    这里的权限配置指的就是在访问Apache服务器时限制哪些ip,允许哪些ip来访问。

    配置文件在Apacheconf目录下的httpd.conf文件中

    这里是初始状态,最重要的就是Order allow,deny下面的配置,可以看到我们这里的配置为Allow from all,因此允许任何人来访问我们的web服务器,但是我们修改成只允许10.10开头的ip访问,修改如下

     

    我们可以看到我们访问服务器时就会出现访问禁止,实现了权限的配置。

    如果想让内网实现访问,这里只允许内网网段的ip访问

    但是实际上,这里没有添加127.0.0.1网段的,会导致我们的web主机登录不上web服务

    下面作一个演示,我们只想让web主机登录,其他主机都登陆不上

    这里只有127.0.0.1的主机能访问,其余主机均登录不上,Apache服务器权限配置就告一段落。。

    问题2:Apache服务器文件解析漏洞

    这个应该很老套了,就是一个解析漏洞。

    Apache对于文件名的解析是从后往前解析的,直到遇见一个它认识的文件类型为止。因此,如果web目录下存在以类似webshell.php.test这样格式命名的文件,Apache在解析时因为不认识.test这个文件类型,所以会一直往前解析,当解析到.php时,它认识了,因此会将它解析为PHP文件。

    实际上我在复现的时候没有成功利用,原因很简单,目前这个解析漏洞只适用于以module方式解析php的apache,使用fastcgi方式解析php的apache不受影响。而我测试使用的phpmystudy正是使用的fastcgi方式。

    防御方法:

    apache配置文件,禁止.php.这样的文件执行,配置文件里面加入

    <Files ~ “.(php.|php3.)”>

    Order Allow,Deny

    Deny from all

    </Files>

    问题3:Apache服务器日志文件审计方法

    这里主要有两个log文件,一个是access.log,一个是error.log,这是在windows环境下,其实一开始由于配置问题,没有开启access.log,配置同样是在Apacheconf目录下的httpd.conf文件中

    将前面的注释符删去即可~

    然后就会生成access.log

    这里给出一张截图,是我网站服务器的Apache日志

    一般情况下,我们都会写一个自定义的脚本来审计日志文件或者说下载市面上拥有成熟技术的日志审计软件。假如这是一台linux服务器,日志文件中出现了/etc/passwd的字样,就可以在一定程度上说明有人已经可以访问你的密钥文件,也就反映了你的网站可能已经被人攻破了,或者说出现了大量的sql注入语句,这些黑客行为都可以帮助你来审计一个网站的安全性。

    而error.log则是记录了服务器运行时的出错情况

     

    问题4:Apache服务器WEB目录权限的配置

    在挖洞过程中,时常会出现目录泄露这样的漏洞,其实此类漏洞就是因为中间件的配置问题而造成的。

    能够进行目录的遍历,这的确会造成很多的安全问题,那么如何进行web目录权限的配置呢?

    其实这里跟第一个问题是类似的,第一个问题是对服务器的权限配置,这里是对某个目录配置访问限制,同样是在Apacheconf目录下的httpd.comf文件中添加对目录的权限配置

    这里test目录设置成任何人都不允许访问

    这样也就避免了目录的泄露问题。

    灵光一闪

    最后突然想到一个问题,如何禁止某个目录运行php脚本文件,这种情形现在来说应该仍然十分受用,假如存在文件上传漏洞,那么通过这种方法禁止了脚本文件的运行,从而达到保护服务器的作用。

    方法非常多,例如禁止当前目录访问,这里给出一种直接的方法,那就是禁止php脚本的执行

    这里模拟了下文件上传,然后我们通过文件任意上传漏洞上传了我们的php脚本,发现是可以执行的,然后挂菜刀,传大马继续。。

    这里的防御方法是给Apacheconf目录下的vhosts.conf添加如下信息

    这里即表示当前目录下关闭php脚本执行功能

    再来访问已经变成空白了!

    上述如有不当之处,敬请指出~

    偶然下载了今年ISC大会360应急响应中心的一个ppt,在最后有个攻防领域专家注册考试目录,其中有很大一块就是中间件的安全,包括Apache、IIS、Tomcat、Weblogic等等,后面我会针对这些中间件,并且借着上面的考试要求进行一个安全配置的讲解。(自己之前也很少接触这块,因此只能算一个学习记录了。。)

    Apache方面的考核内容:

    1.Apache服务器权限配置

    2.Apache服务器文件解析漏洞

    3.Apache服务器日志文件审计方法

    4.Apache服务器WEB目录权限的配置

    下面我将针对上面几个要求,进行一个实例讲演!

     

    问题1:Apache服务器权限配置

    这里的权限配置指的就是在访问Apache服务器时限制哪些ip,允许哪些ip来访问。

    配置文件在Apacheconf目录下的httpd.conf文件中

    这里是初始状态,最重要的就是Order allow,deny下面的配置,可以看到我们这里的配置为Allow from all,因此允许任何人来访问我们的web服务器,但是我们修改成只允许10.10开头的ip访问,修改如下

     

    我们可以看到我们访问服务器时就会出现访问禁止,实现了权限的配置。

    如果想让内网实现访问,这里只允许内网网段的ip访问

    但是实际上,这里没有添加127.0.0.1网段的,会导致我们的web主机登录不上web服务

    下面作一个演示,我们只想让web主机登录,其他主机都登陆不上

    这里只有127.0.0.1的主机能访问,其余主机均登录不上,Apache服务器权限配置就告一段落。。

    问题2:Apache服务器文件解析漏洞

    这个应该很老套了,就是一个解析漏洞。

    Apache对于文件名的解析是从后往前解析的,直到遇见一个它认识的文件类型为止。因此,如果web目录下存在以类似webshell.php.test这样格式命名的文件,Apache在解析时因为不认识.test这个文件类型,所以会一直往前解析,当解析到.php时,它认识了,因此会将它解析为PHP文件。

    实际上我在复现的时候没有成功利用,原因很简单,目前这个解析漏洞只适用于以module方式解析php的apache,使用fastcgi方式解析php的apache不受影响。而我测试使用的phpmystudy正是使用的fastcgi方式。

    防御方法:

    apache配置文件,禁止.php.这样的文件执行,配置文件里面加入

    <Files ~ “.(php.|php3.)”>

    Order Allow,Deny

    Deny from all

    </Files>

    问题3:Apache服务器日志文件审计方法

    这里主要有两个log文件,一个是access.log,一个是error.log,这是在windows环境下,其实一开始由于配置问题,没有开启access.log,配置同样是在Apacheconf目录下的httpd.conf文件中

    将前面的注释符删去即可~

    然后就会生成access.log

    这里给出一张截图,是我网站服务器的Apache日志

    一般情况下,我们都会写一个自定义的脚本来审计日志文件或者说下载市面上拥有成熟技术的日志审计软件。假如这是一台linux服务器,日志文件中出现了/etc/passwd的字样,就可以在一定程度上说明有人已经可以访问你的密钥文件,也就反映了你的网站可能已经被人攻破了,或者说出现了大量的sql注入语句,这些黑客行为都可以帮助你来审计一个网站的安全性。

    而error.log则是记录了服务器运行时的出错情况

     

    问题4:Apache服务器WEB目录权限的配置

    在挖洞过程中,时常会出现目录泄露这样的漏洞,其实此类漏洞就是因为中间件的配置问题而造成的。

    能够进行目录的遍历,这的确会造成很多的安全问题,那么如何进行web目录权限的配置呢?

    其实这里跟第一个问题是类似的,第一个问题是对服务器的权限配置,这里是对某个目录配置访问限制,同样是在Apacheconf目录下的httpd.comf文件中添加对目录的权限配置

    这里test目录设置成任何人都不允许访问

    这样也就避免了目录的泄露问题。

    灵光一闪

    最后突然想到一个问题,如何禁止某个目录运行php脚本文件,这种情形现在来说应该仍然十分受用,假如存在文件上传漏洞,那么通过这种方法禁止了脚本文件的运行,从而达到保护服务器的作用。

    方法非常多,例如禁止当前目录访问,这里给出一种直接的方法,那就是禁止php脚本的执行

    这里模拟了下文件上传,然后我们通过文件任意上传漏洞上传了我们的php脚本,发现是可以执行的,然后挂菜刀,传大马继续。。

    这里的防御方法是给Apacheconf目录下的vhosts.conf添加如下信息

    这里即表示当前目录下关闭php脚本执行功能

    再来访问已经变成空白了!

    上述如有不当之处,敬请指出~

  • 相关阅读:
    程序书写规范
    点灯主要顺序
    复用功能重映射
    STM32 (战舰)
    html5 javascript 新增加的高级选择器更精准更实用
    html5 javascript 事件练习3键盘控制练习
    html5 javascript 事件练习3随机键盘
    html5 javascript 事件练习2
    html5 javascript 事件练习1
    html5dom2
  • 原文地址:https://www.cnblogs.com/caizhiren/p/7912286.html
Copyright © 2011-2022 走看看