实验目的
理解apache安全配置项的作用,掌握安全配置项的配置方法
实验拓扑
实验环境
一台Centos 7.2服务器,已安装(apache) httpd ,并开机自启动。
实验原理
通过编辑apache配置文件实现apache的安全配置,apache默认配置文件路径是/etc/httpd/conf/httpd.conf
实验步骤
一、确保apache无法访问根目录
查看apache配置文件,确定里面对根目录是拒绝所有请求
vim /etc/httpd/conf/httpd.conf
按箭头,下翻可以找到以下配置
其中,第一行和第四行,指明了目录,即Linux的根目录 /
第二行,表示禁止使用.htaccess文件,覆盖此处配置
第三行,表示禁止访问根目录
二、删除网站的目录浏览权限
apache会在默认路径下开启目录浏览
继续查看apache配置文件,如图,其中Indexes即为目录浏览权限,直接删除掉即可。
三、限制HTTP方法
apache默认没有限制限制http方法,我们可以在需要的路径下进行限制
在路径配置中加入
Require all denied
如在根目录下配置 ,如图
四、错误页面重定向
http的错误页面可能会暴露服务器信息,我们可以将错误页面都重点向到某文件
新建一个错误页面文件,文件内容为error
echo error > /etc/var/www/html/error.txt
如果出现不成功的提示如下图,则一步步创建目录即可
mkdir etc
cd etc
mkdir var
cd var
mkdir www
cd www
mkdir html
cd html
mkdir error.txt
编辑配置文件,指定错误代码400 401 402 403 404 500 指向error
五、限制POST数据大小
编辑配置文件
在文件中加下行,注意不要放在路径的申明中
LimitRequestBody 100
六、记录下post的数据
很多攻击行为由post发起,记录post数据可以便于追踪溯源
编辑配置文件
加载记录IO的模块
LoadModule dumpio_module modules/mod_dumpio.so
指定日志级别,记录IO (位置一定要对,不能随意编辑)
LogLevel dumpio:trace7
DumpIOInput On
七、保存退出,并重启服务
退出vim ,使用以下命令重启apache服务
systemctl restart httpd
有点问题。。直接重装算了(谨慎操作),公司小白请勿效仿
先看看是什么玩意
rpm -qa|grep httpd
rpm -e httpd
另一个
rpm -e httpd-2.4.6-97.el7.centos.2.x86_64
重下:
yum -y install httpd
可以重启了
从头又搞一遍
这种事会有各种问题很正常,不过大多数还是可以解决的,大家共勉之吧。
八、验证配置
前面我们已经完成了apache的加固,下面进行验证,这里我们使用linux自带的curl工具进行验证
1、验证当前的HTTP限制的方法,如我们head方法进行测试
如图curl -I 127.0.0.1 ,其中 -I表示使用head方法
2、验证错误页面重定向(又开始了。。。就到这吧,下面是正常)
curl 127.0.0.1/test.html
因为服务器上并不存在test.html,所以重定向到了error.txt
3、验证限制post数据大小
curl使用-d选项时,会使用post,前面我们限制post的body为100字节,下面引号中随便输入足够长的数据即可
curl -d 'testtesttesttestsa 中间输入超过100个字符随便输入jfljaslfjlajflajlfjsfuwefjsljfljsttesttest' 127.0.0.1
4、验证日志记录post数据
使用下面命令向服务器post的数据为11223344
curl -d '11223344' 127.0.0.1
服务器无法处理post请求,直接报错error