1.安装apache httpd
apache默认配置文件路径是/etc/httpd/conf/httpd.conf
2.对apache进行编写
vim /etc/httpd/conf/httpd.conf
第一行和第四行,指明了目录,即Linux的根目录 /
第二行,表示禁止使用.htaccess文件,覆盖此处配置
第三行,表示禁止访问根目录
3.删除网站的目录浏览权限,即在apache的配置文件中找到Indexes,其为目录浏览权限,直接删除掉即可。
4.限制HTTP方法,即
apache默认没有限制限制http方法,我们可以在需要的路径下进行限制
在路径配置中加入
<LimitExcept GET POST >
Require all denied
</LimitExcept>
如下图位置插入。
5.错误页面重定向:
http的错误页面可能会暴露服务器信息,我们可以将错误页面都重点向到某文件
新建一个错误页面文件,文件内容为error
echo error > /var/www/html/error.txt
编辑配置文件,指定错误代码400 401 402 403 404 500 指向error
6.限制post的数据:
编辑vim /etc/httpd/conf/httpd.conf
在文件中加入LimitRequestBody 100
ErrorDocument 400 /error.txt
ErrorDocument 401 /error.txt
ErrorDocument 402 /error.txt
ErrorDocument 403 /error.txt
ErrorDocument 404 /error.txt
ErrorDocument 500 /error.txt
7.记录post数据:
很多攻击行为由post发起,记录post数据可以便于追踪溯源
编辑配置文件
加载记录IO的模块在图中位置加如下列代码。
LoadModule dumpio_module modules/mod_dumpio.so
指定日志级别,记录IO (位置一定要对,不能随意编辑)
LogLevel dumpio:trace7
DumpIOInput On
8.保存退出:
退出后重启apache服务
systemctl restart httpd
9.验证:
前面我们已经完成了apache的加固,下面进行验证,这里我们使用linux自带的curl工具进行验证
验证当前的HTTP限制的方法,如我们head方法进行测试
如图curl -I 127.0.0.1 ,其中 -I表示使用head方法
验证错误页面重定向
curl 127.0.0.1/test.html
因为服务器上并不存在test.html,所以重定向到了error.txt