Apache安全-安全运维论坛-知识分享-安全小天地

Apache安全

检查apache 版本

   执行命令

#/usr/local/apache/bin/httpd -v

d2b5ca33bd155553

  然后在sebug上搜索该版本号有什么漏洞,可根据提示提升版本或者打上补丁

3.隐藏banner信息

   黑客攻击系统首先会想办法获取系统banner 信息.一般方法是访问一个不存在的目录,如果没有隐藏banner信息,系统会显示banner信息

   先进行测试,用学生机浏览器访问1.html

d2b5ca33bd145237

发现本实验系统开始设置是隐藏 banner 信息的.

然后在配置文件/usr/local/apache/conf/httpd.conf的31 行增加[使用vi编辑,31 行也非固定行数]

ServerSignature On

   如下图

d2b5ca33bd145346

执行命令

#service httpd restart

d2b5ca33bd145412

用学生机器浏览器访问server一个不存在的URL===> 1.html如下图

d2b5ca33bd145432

     发现服务器的banner 信息都能返回.显然这个是不安全的配置,如果此配置存在,需要将ServerSignature On 修改为:ServerSignature Off(不回显apache版本信息)

     下面用vi 命令将 ServerSignature On 修改为:ServerSignature Off

d2b5ca33bd145509

     然后重启apache

    重新访问不存在的1.html

    得到如下图

d2b5ca33bd145535

    说明banner 信息被隐藏

4.配置httpd.conf目录浏览

先测试该服务器配置是否可以浏览系统目录,访问server ,如下图

d2b5ca33bd145606

    在上述配置情况下,可以进行目录浏览,查看服务配置文件httpd.conf,寻找系统根目录/var/www 的配置属性

     发现有Options indexes FollowSymLinks

d2b5ca33bd145648

 修改为

d2b5ca33bd145743

   配置完重新启动apache 服务

   重新访问server 的web服务

 

d2b5ca33bd145757

5.合理配置apache的运行账户

   并在httpd.conf寻找运行帐户,本服务的配置是nobody

d2b5ca33bd145833

    因为用户nobody 没有sh执行权限,所以这种配置比较安全.一般情况下配置单独用户,该用户没有sh 执行权限.取消掉了运行账户对sh等的执行权限后能够防止webshell通过默认的sh执行命令

6.合理控制apache运行账户对sh等的执行权限

查看该运行帐户是否有sh 的权限

方法1:

    执行su nobody -c ‘/bin/ls’

    如下图,如果无执行权限则如下图所示.

d2b5ca33bd145935

    方法2:

    查看帐户是否有sh 执行权限.需要查看帐户基本属性,cat /etc/passwd 即可.

d2b5ca33bd150003

7.配置httpd.conf限制禁止访问的文件夹,例如后台目录

   在/var/www目录下建立data 目录,在data目录下创建index.php.同时修改文件所属权限,执行过程如下图

d2b5ca33bd150057

d2b5ca33bd150155

d2b5ca33bd150133

 通过浏览器访问index.php,如下图

d2b5ca33bd150216

   要禁止访问该目录,需要增加如下配置

d2b5ca33bd150246

   重新启动apache 服务则该目录不再能够访问

8.配置httpd.conf限制一些特殊目录的特定ip访问,如内部接口等。

修改对data 目录的配置如下图,重新启动apache 服务

d2b5ca33bd150311

重新访问服务器,如下图

d2b5ca33bd150330

     发现可访问

d2b5ca33bd150216

9.配置httpd.conf取消对上传目录的可执行文件上传权限

    在httpd.cnf 中配置如下段

<Directory "/var/www/aaa">     

<FilesMatch ".(php|php5)$">   

          Deny from all       

  </FilesMatch> 

</Directory>

 

然后重启apache

10.配置httpd.conf限制一些文件类型的访问,如*.txt

在已有的目录data下先创建1.txt,然后修改文件属性.

d2b5ca33bd150442

然后通过浏览器访问

d2b5ca33bd150502

   由于.txt 等类型文件经常存放一些重要的信息,所以一般情况下需要禁止掉.配置如下图

d2b5ca33bd150523

   重启apache 服务,然后访问 1.txt

发现被禁止

d2b5ca33bd150534

11.配置httpd.conf修改修改监听端口来防止一些内部系统被扫描

这样可以防止一些直接扫描80端口的黑客

Listen 80

修改为Listen 888

d2b5ca33bd150609

重启apache 服务,然后访问web 页面

发现没法访问80端口

d2b5ca33bd150623

虚拟目录

每个 Internet服务可以从多个目录中发布。通过以通用命名约定 (UNC) 名、用户名及用于访问权限的密码指定目录,可将每个目录定位在本地驱动器或网络上。虚拟服务器可拥有一个宿主目录和任意数量的其它发布目录。其它发布目录称为虚拟目录。指定客户 URL地址,服务将整个发布目录集提交给客户作为一个目录树。宿主目录是“虚拟”目录树的根。虚拟目录的实际子目录对于客户也是可用的。只有http://www.服务支持虚拟服务器;而 FTP和 gopher服务则只能有一个宿主目录。

【实验步骤】

网络拓扑:centos6.8

centos6.8
用户:root
密码:123456

第一步:打开虚拟机进入centos系统

第二步:进入终端界面

第三步:在终端输入“vim /etc/httpd/conf/httpd.conf”进入apache服务配置界面。

第四步:找到Alias /icons “/var/www/icons”,将这句替换成“Alias /linux “ /var/www/html/test”。”并将Directory中的路径改为“/var/www/html/test”后保存并退出。

第五步:创建一个文件夹,在终端输入“mkdir /var/www/linux”。

第六步:将apache服务器重启,在终端输入“service httpd restart”。

第七步:查看本地服务器地址,在终端输入“ifconfig”。

第八步:切换到图形化管理界面,打开firefox浏览器输入地址“http://192.168.248.128/linux”进行测试。

 

请登录后发表评论

    请登录后查看回复内容