Apache中间件安全加固实验
【实验目的】
通过本实验,使学生掌握对Apache中间件进行安全加固的方法。
【知识点】
- 知识点:Apache
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,是最流行的Web服务器端软件之一。它不仅快速可靠,而且可以通过简单的API扩展将Perl/Python等解释器编译到服务器中。
【实验原理】
通过对Apache进行安全加固,减少Apache系统自身的脆弱性,提高抵御攻击的能力。
【软件工具】
- 操作系统:CentOS 7 x64
- 中间件:Apache/2.4.6
【实验目标】
对Apache进行安全加固。
【实验步骤】
登录操作系统,用户名/口令:root/123456。
1.防信息泄漏
(1)隐藏Apache版本信息
加固要求:当前客户端访问Apache时可以看到Apache的版本信息,要求禁止显示Apache软件的版本信息。
加固方法:
vi /etc/httpd/conf/httpd.conf //编辑配置文件
在文件末尾加入ServerSignature Off、ServerTokens Prod。
保存退出。
systemctl restart httpd //重启服务
隐藏Apache版本信息
(2)禁止显示目录列表
加固要求:Apache当前启用了目录浏览功能,允许用户查看服务器上Web目录中的文件列表,要求禁止该功能。
加固方法:
vi /etc/httpd/conf/httpd.conf //编辑配置文件
找到Options Indexes FollowSymLinks,删除Indexes。
保存退出。
systemctl restart httpd //重启服务
无法访问Web应用的某个确定存在的目录
(3)自定义错误页面
加固要求:Apache默认的错误页面中暴露了服务器的相关信息,要求在发生403、404、500错误时,向浏览器返回自定义的错误消息。
加固方法:
vi /etc/httpd/conf/httpd.conf //编辑配置文件
注释掉现有的ErrorDocument行,并加入下面的行:
ErrorDocument 403 "/error.html"
ErrorDocument 404 "/error.html"
ErrorDocument 500 "/error.html"
保存退出。
cd /var/www/html
echo "Error Finding Resources." > error.html //创建文件
systemctl restart httpd //重启服务
访问不存在的页面
2.减小受攻击面
(1)删除无用的文件
加固要求:删除Apache自带的手册和cgi程序。
加固方法:
rm -rf /usr/share/httpd/manual
rm -rf /var/www/cgi-bin/*
确认资源是否存在
(2)禁用TRACE方法
加固要求:禁用TRACE方法。
加固方法:
vi /etc/httpd/conf/httpd.conf //编辑配置文件
在文件末尾加入TraceEnable Off。
保存退出。
systemctl restart httpd //重启服务
查看允许的HTTP 方法
(3)修改监听端口
加固要求:将Apache默认监听的80端口修改为38926。
加固方法:
vi /etc/httpd/conf/httpd.conf //修改配置文件
将Listen 80改为Listen 38926。
保存退出。
systemctl restart httpd //重启服务
查看httpd进程监听的端口
(4)限制客户端源地址
加固要求:对访问Apache Web服务的客户端地址进行限制,只允许192.168.1.0/24网段访问。
加固方法:
vi /etc/httpd/conf/httpd.conf //编辑配置文件
加入加粗部分
<Directory "/var/www/html">
AllowOverride None
Order Deny,Allow
Deny From all
Allow From 192.168.1.0/255.255.255.0
</Directory>
保存退出。
注意:Order Deny,Allow指令在这里必须是先拒绝后允许。
3.启用安全功能
(1)启用访问日志和错误日志
加固要求:Apache服务当前未启用访问日志和错误日志功能,要求启用这两个日志功能。
加固方法:
vi /etc/httpd/conf/httpd.conf //编辑配置文件
取消下面两行的注释:
CustomLog "logs/access_log" combined
ErrorLog "logs/error_log"
保存退出。
查看是否存在访问日志文件和错误日志文件
(2)为配置文件和日志文件设置严格的权限
加固要求:严格限制Apache主配置文件和日志文件的权限,禁止这些文件的属主、属组之外的用户访问。
加固方法:
chmod o-rwx /etc/httpd/conf/httpd.conf
chmod o-rwx /var/log/httpd/*