Web服务器安全配置归纳 - Apache篇
1、引言
随着Web2.0、社交网络、微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起黑客们的强烈关注,接踵而至的就是Web安全威胁的凸显,而其中Apache作为排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上,因平台版本差异,其安全配置尤为重要。
2、现象描述
1) 信息泄露,许多Apache的安装由于未经过安全配置易向未知访问者提供敏感信息,例如 默认Apache首页,错误页、Head中的信息、集成安全环境中的那些测试页面,探针页面等不安全的预置页面,这些都可能为陌生者提供各种“有利”的信息如Apache的版本号,安装目录,配置详情和操作系统参数等相关信息。
2) 风险配置,Apache许多配置存会存在相应的风险如:目录浏览如果开着没有默认首页就会暴露当前目、多余不必要的Apache模块、CGI脚本执行风险、SSI的风险配置,Trace,Options等请求风险
3) 权限与访问控制,降权Apache运行用户、隔离未知访问用户、限定未知访问区域
4) 漏洞版本,例如Apache PHP解析漏洞、Apache DoS漏洞、代码执行等漏洞版的Apache可能会造成巨大的风险
5) HTTPS与域名,HTTP协议易被劫持使用HTTPS可以增加会话安全性,服务器错误的监听地址和未绑定域名可能会造成非正常性的访问
6) 资源消耗,Apache资源配置的失衡可能会造成相应速度慢、访问错误等问题,严重的可能造成服务器瘫痪等问题,根据服务器资源正确的配置Apache非常重要。
3、处理过程
1) 解决Apache敏感信息泄露
l 我们获取Head信息,此时Apache已暴露操作系统和Apache版本及相关组件版本
配置文件httpd.conf中加入两行内容
再来看看Head信息,发现已经隐去了相关的敏感信息
l 查看网站目录,或者集成环境目录是否存在探针、PHPINFO等文件
有的话删除掉
l 修改错误页面
ErrorDocument 500 xxx
ErrorDocument 404 xxx
ErrorDocument 404 xxx
ErrorDocument 402 xxx
2) 关闭风险配置
l 关闭目录浏览
在配置文件httpd.conf将
Options Indexes FollowSymLinks
修改为:
Options FollowSymLinks
l 关闭自动索引模块
在下面行首添加# 注释掉
LoadModule autoindex_module modules/mod_autoindex.so
Ubuntu / Debian 删除配置文件
rm -rf /etc/apache2/mods-enabled/autoindex.conf
l 禁用SSI 执行风险
Options Includes Noexec
l 关闭Trace功能
TraceEnable off
l 禁止危险DELETE,PUT等风险参数
<Location />
<LimitExcept GET POST HEAD>
Order Allow,Deny
Deny from all
</LimitExcept>
</Location>
l 禁止CGI使用
#LoadModule cgi_module modules/mod_cgi.so
#ScriptAlias /cgi-bin/ “/var/www/cgi-bin/”
3) 配置Apache权限与访问控制
l 降低Apache运行权限
Linux在配置文件httpd.conf中添加
User nobody / apache
Group nobody / apache
Windows 添加一个低权限用户,在服务中修改运行用户
去除上传目录的执行权限
配置ServerRoot非特权用户不能修改
配置httpd.conf权限为600
配置日志文件权限为644
l 禁止 Apache 访问 Web 目录之外的任何文件
Order Deny,Allow
Deny from all
l 敏感文件夹配置用户访问控制
l 敏感目录设置访问范围
4) Apache 漏洞版本处理与更新
l Apache解析漏洞处理
<FilesMatch ".(php.|php3.|php4.|php5.)">
Order Deny,Allow
Deny from all
</FilesMatch>
l 关注官网版本更新或使用包管理更新
yum update httpd
ubunu则:
apt-get update
apt-get upgrade apache2
5) HTTPS与域名
l 设置具体的监听地址
Listen 10.0.0.1:80
l 配置域名绑定
ServerName www.test.com
开启客户端域名解析验证
HostnameLookups On
l 为服务器添加HTTPS
Listen 10.0.0.1:443
SSL A+配置地址:https://mozilla.github.io/server-side-tls/ssl-config-generator/
6) 资源配置防护
l 请根据服务器状况合理调节以下参数
Timeout 10 #客户端与服务器端建立连接前的时间间隔
KeepAlive On
KeepAliveTimeout 15 #具体的设定需要根据现实情况
MaxKeepAliveRequests 100 最大相应数
l 修改日志记录级别
4、经验总结
Apache 作为一款优秀的Web服务器,其安全性也较为可靠,我们在使用Apache作为Web服务器时简单部署即可使用,但是必要的安全配置也是需要的,这可以使我们可以防范一定的恶意攻击,使我们的服务更加安全、稳定。
发表吐槽
你肿么看?
既然没有吐槽,那就赶紧抢沙发吧!