美文网首页
apache 服务器安全配置

apache 服务器安全配置

作者: zzqsmile | 来源:发表于2018-05-01 21:09 被阅读0次

    0x01.错误详情页隐藏

    错误详情页测试方法:
    • 访问网站不存在的页面,如果网站没有做404页面重定向,就会泄露其敏感信息如下图:
    0x01-1.png
    • 查看响应头信息:
    zzq@ubuntu:~$ curl -I http://192.168.178.135/
    HTTP/1.1 200 OK
    Date: Tue, 01 May 2018 11:58:36 GMT
    Server: Apache/2.4.7 (Ubuntu)         #中间件版本及操作系统
    X-Powered-By: PHP/5.5.9-1ubuntu4.24   #显示服务端脚本语言及其版本号
    Link: <http://192.168.178.135/index.php/wp-json/>; rel="https://api.w.org/"
    Link: <http://192.168.178.135/>; rel=shortlink
    Content-Type: text/html; charset=UTF-8
    
    修复方法:
    1).修改配置文件:etc/apache2/apache2.conf 或者/etc/httpd/conf/httpd.conf隐藏中间件信息。修改或添加以下配置:
    ServerTokens Prod
    ServerSignature Off
    
    2).修改配置文件:/etc/php5/apache2/php.ini隐藏PHP信息,将expose_php = On 改为 expose_php = Off
    expose_php = Off
    
    3).修改配置文件: /etc/apache2/sites-enabled/000-default.conf设置网站根目录为 /var/www/html/
    zzq@ubuntu:~$ sudo vim /etc/apache2/sites-enabled/000-default.conf
    
    0x01-2.png
    4).修改配置文件:/etc/apache2/apache2.conf将网站根目录里面的AllowOverride None设置AllowOverride All,保存退出!
    zzq@ubuntu:~$ sudo vim /etc/apache2/apache2.conf
    
    <Directory /var/www/html>
            Options Indexes FollowSymLinks
            AllowOverride All        #设置为All,此目录下的.htaccess 指令才会生效
            Require all granted
    </Directory>
    
    5).修改完以上配置文件保存并退出,然后重启apache服务
    zzq@ubuntu:~$ sudo service apache2 restart
    
    6).再次访问错误页面,已经没有刚才泄露的信息了
    0x01-3.png
    zzq@ubuntu:~$ sudo curl -I http://192.168.178.135/
    HTTP/1.1 200 OK
    Date: Tue, 01 May 2018 12:26:10 GMT
    Server: Apache
    Last-Modified: Tue, 17 Apr 2018 02:49:12 GMT
    ETag: "2cf6-56a02621ccf1c"
    Accept-Ranges: bytes
    Content-Length: 11510
    Vary: Accept-Encoding
    Content-Type: text/html
    


    0x02.重定向404页面

    加固步骤:

    1).在网站根目录新建一个.htaccess文件,内容为:
    zzq@ubuntu:/var/www/html$ cd /var/www/html/
    zzq@ubuntu:/var/www/html$ ls -a
    .  ..  index.html  wordpress
    zzq@ubuntu:/var/www/html$ sudo vim .htaccess
    
    ErrorDocument 404 /404.html
    
    zzq@ubuntu:/var/www/html$ ls -a
    .  ..  .htaccess  index.html  wordpress
    zzq@ubuntu:/var/www/html$ 
    
    2).在同目录下新建404.html,文件名与上一步指定的文件名相同,即404.html
    zzq@ubuntu:/var/www/html$ sudo vim 404.html
    
    <!DOCTYPE html>
    <html>
    <head>
        <title>404页面</title>
    </head>
    <body>
    Hello,This is 404 page!!
    </body>
    </html>
    
    3).测试一下,可以看到我们自定义的页面已经生效
    0x02-1.png

    注意事项

    1、不要将404错误直接转向到网站首页,这将导致首页不被收录;
    2、/404.html 前面不要带主域名,否则返回的状态码是302或200状态码;
    3、自定义的404页面必须是大于512B,如果小于这个大小,浏览器就不会执行;



    0x03.列目录问题

    什么是列目录

    当Web服务器配置不当的时候,如果当前目录不存在默认文件(比如index.html),Apache会列出当前目录下所有文件,造成敏感信息泄露。
    我们可以测试一下,测试方法:
    首先我们可以删除存在的默认文件index.html

    zzq@ubuntu:/var/www/html$ ls
    404.html  index.html  wordpress
    zzq@ubuntu:/var/www/html$ sudo cp index.html index.html.bak
    zzq@ubuntu:/var/www/html$ sudo rm -rf index.html
    zzq@ubuntu:/var/www/html$ ls
    404.html  index.html.bak  wordpress
    zzq@ubuntu:/var/www/html$ 
    

    然后再访问网站

    0x03-1.png

    修复方法:

    修改配置文件:/etc/apache2/apache2.conf
    zzq@ubuntu:~$ sudo vim /etc/apache2/apache2.conf
    
    <Directory /var/www/html>        #这必须是网站的根目录
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>
    

    Options Indexes FollowSymLinks
    这里的indexes 是指在目录中要存在index文件,如果不存在把文件列出来,如果存在index文件可以直接显示index文件,因此每个目录都必须存在index文件,如果不存在有可能此目录把文件全部列出来。

    删除Indexes这个参数,保存退出,然后重启apache服务
    <Directory /var/www/html>
            Options FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>
    
    zzq@ubuntu:~$ sudo service apache2 restart
    
    再次访问就会出现403Forbidden页面如下图所示:
    0x03-2.png

    0x04.删除默认安装页面

    测试方法

    默认安装完成之后,会有一个默认的apache测试页面,里面会泄露一些信息,包括网站目录,操作系统,版本等等

    图片.png
    加固方法

    step1.编辑配置文件/etc/httpd/conf.d/welcome.conf

    [root@localhost ~]# vim /etc/httpd/conf/httpd.conf
    

    step2.找到如下行

    图片.png

    step3.修改为如下,并保存退出

    图片.png

    step4.重启apache服务

    [root@localhost ~]# service httpd restart
    
    修复验证

    step1.在网站根目录下创建一个index.php文件

    图片.png

    step2.再次访问

    图片.png

    0x05.文件权限

    在图片上传过程中,特对是针对上传图片得目录和上传得文件内容必须经过严格控制,因为可能由
    于权限过高导致上传被突破后,直接放入小马,这个站点就被拿下了,所以对上传目录进行权限控
    制。

    漏洞测试

    图片.png

    加固方法:

    step1.编辑http.conf文件

    [root@localhost upload]# vim /etc/httpd/conf/httpd.conf
    

    step2.限定目录没有执行的PHP脚本执行的权限

    图片.png
    step3.编辑重启服务
    [root@localhost upload]# service httpd restart
    

    step4.再次测试漏洞是否存在

    图片.png

    可以看到/upload/目录下的php小马已经不能用了


    相关文章

      网友评论

          本文标题:apache 服务器安全配置

          本文链接:https://www.haomeiwen.com/subject/ysjfrftx.html