Apache安全配置规范
Add the directive Include conf/modsecurity/*.conf to your httpd.conf after the line where ModSecurity itself it loaded.
Restart Apache.
Check that the server works normally, and simulate an attack by browsing to the URL http://yourhost/cmd.exe. Instead of a “page not found” error, you should get a “Method Not Implemented” error.
检测对已安装在主机中的木马的访问
错误检测,防止应用错误信息发送给客户端
XML 保护,检查 XML Payload 搜索引擎监控
【具体配置】
可以在/download/index.html下载源代码, /documentation/modsecurityapache/2.1.2/modsecurity2-apache-reference.html#02-installation给出了安装的步 骤。
其他服务的不必要的权限。而且 Apache 用户的用户 ID 应该分配 1 和 499 之间的一
个值,由于这些值是为特殊的系统账户保留,而不可以被普通用户使用。
【具体配置】
创建一个名字类似:apache 的用户来运行 Web Server,如下例子中,指定 Web document root 为该用户的主目录 该用户永远不应被使用用来登录 Shell 通过以下命令创建新的 apache 用户 # groupadd apache # useradd apache -g apache -d /dev/null -s /sbin/nologin 该命令禁止了 apache 用户的登录
Web 安全已经远超过了 Web 服务器安全的范围,因为会有许多不同的 Web 安 全漏洞,这些漏洞可能并不直接涉及 Web 服务器本身。为了加固 Web 服务,需要 同时考虑几项安全技术。其中包括但不限于防火墙、入侵检测、DNS 等。进行 Apache 加固前应先考虑以下内容:
通过防火墙、路由器和交换机控制对 Web 服务器的访问 部署网络入侵检测以监控对 Web 服务器的攻击 有恰当的磁盘空间监控和日志轮换机制 注册 Web 网站时登记的数据没有泄漏敏感信息的 恰当地防护 DNS 防止域名劫持 加固 Web 服务器底层的操作系统 编码安全
2.1.3. 最小化 httpd.conf 文件
【说明】缺省的文件因为包括了许多模块的目录和一些说明导致非常大,使得
配置文件难读和难以管理。建议建立一个空的配置文件后,一项项填入必要的配
置。可以通过命令“apachectl configtest”命令测试文件的语法。 【具体配置】
增加一个新的配置文件(/usr/local/apache2/conf/httpd.conf),添加诸如以下的内 容: # location of the web server files ServerRoot /usr/local/apache2 # location of the web server tree DocumentRoot /var/www/htdocs # path to the process ID (PID) file, which # stores the PID of the main Apache process PidFile /var/www/logs/httpd.pid # which port to listen at Listen 80 # do not resolve client IP addresses to names HostNameLookups Off
Page 3 of 15
HTTP 使用策略
Apache 安全配置规范
攻击检测:
恶意客户端软件检测,如恶意的自动程序,可以防止 Spam 通用的攻击检测,可以检测的攻击类型包括:
o SQL injection and Blind SQL injection. o Cross Site Scripting (XSS). o OS Command Injection and remote command access. o File name injection. o ColdFusion, PHP and ASP injection. o E-Mail Injection o HTTP Response Splitting. o Universal PDF XSS.
Page 5 of 15
2.1.5. 创建 Apache 用户和组帐号
Apache 安全配置规范
【说明】一个尽量避免遭受攻击的方法是为 Web 服务器应用创建一个独特的、
没有特权的用户 ID 和组。不应该使用类 Unix 系统中默认的“nobody” 用户 ID 和
组,由于该账户通常还为其他守护进程使用。Apache 使用的帐号也不需要赋予访问
Apache 安全配置规范
1. 概述
Apache 安全配置规范
1.1. 目的
本规范明确了 APACHE 安全配置方面的基本要求。为了提高 APACHE 的安全性而 提出的。
1.2. 范围
本规范适用于 XXXX 使用的 APACHE。
Page 1 of 15
Apache 安全配置规范
2. 配置规范
2.1.4. 最小化 Apache 模块
【说明】禁用不必须的 Apache 模块,以减小 Web 服务器的风险并增加性能。 只启用网站必须的功能模块。若不确定功能模块是否有用,可参考 Apache 文档站 点/docs/2.2/mod/,禁止掉模块后测试功能性。
强烈建议开始的时候只使用 Monitoring Only 模式,通过以下方式实现: Change the directive SecRuleEngine in file modsecurity_crs_10_config.conf from
Page 4 of 15
Apache 安全配置规范
On to DetectionOnly. 经过一段时间的观察和对错误信息的验证,再使用 On 的模式。
ModSecurity 执行以下的功能: 在 Web Server 处理前,拦截 HTTP 请求 拦截请求的内容(Request Body),例如 POST Payload 拦截,存储,有选择性地验证上传的文件 通过在设置文件中定义一系列的规则,执行对请求的分析 在 HTTP Response 发送给客户端之前拦截,并进行安全检测和相应的分析 当对 HTTP Request 或 Response 分析发现问题是,执行相应的预定义操作
的建议。 可以进行自动更新。 使用的版本:尽量使用 2.2.x 版本。
Page 2 of 15
2.1.2. 使用 ModSecurity
Apache 安全配置规范
【说明】强烈建议使用 ModSecurity,因为其已经成为最广泛部署的 Web 应用 防火墙。ModSecurity 详细介绍见/documentation/.
【具体配置】
观察 Apache 的配置文件,注释掉不需要的模块,如下示例: LoadModule access_module modules/mod_access.so LoadModule auth_module modules/mod_auth.so LoadModule auth_anon_module modules/mod_auth_anon.so ## LoadModule auth_dbm_module modules/mod_auth_dbm.so ## LoadModule auth_digest_module modules/mod_auth_digest.so ## LoadModule ldap_module modules/mod_ldap.so ## LoadModule auth_ldap_module modules/mod_auth_ldap.so ## LoadModule cern_meta_module modules/mod_cern_meta.so ## LoadModule dav_module modules/mod_dav.so
Core Rule Set 特点: 优化了性能 通过一些改进减少误报 检测通用的攻击而不是特定的已知攻击,所以有更加的性能 更详细的规则信息 即插即用 Core Rules 使用了如下的技术: 协议合规性: HTTP Request 验证 HTTP 协议异常 限制 HTTP 各种协议属性
在 Apache 配置文件中键入如下两行: User apache Group apache
2.1.6. 限制访问
【说明】检查 Allow 和 Deny 指令(Directive)的访问控制逻辑性,限制对操作 系统根目录、Web 根目录及其他目录的访问。注意“Order”指定的顺序。如下例 子中,
Order allow,deny allow from deny from “ Order ” 指 令 的 顺 序 表 明 先 评 估 Allow 指 令 , Allow 指 令 表 明 来 自 于 域的所有访问都不允许,Deny 指令表明禁止掉来自于 域的 访问。合起来的意思是“除了来自于 域的访问外,允许所有其它来 自 域的访问” 【具体配置】
2.1. Apache 的基础设置
2.1.1ቤተ መጻሕፍቲ ባይዱ 安装
【说明】尽量使用厂商提供的 Apache 二进制安装包。使用厂商提供的安装包 的好处包括:
安装简便 为所使用的操作系统定制而成 经过了测试和 QA 的过程 包括了可能需要的所有模块,甚至一些第三方模块如