apache安全需持续分层防护:查结构篡改、内容植入、权限放宽、访问滥用;定期扫描敏感路径、校验静态资源哈希、验证配置生效、结合mod_security行为防护。

Apache目录结构的安全扫描与完整性校验,不是一次配置就一劳永逸的事,而是需要分层、定时、自动化执行的持续动作。核心在于:**查结构是否被篡改、查内容是否被植入、查权限是否被放宽、查访问是否被滥用**。
一、定期扫描敏感路径与异常文件
攻击者常通过扫描暴露的备份、配置、日志、版本控制文件获取入口。需在 Apache 配置中主动拦截,再配合外部工具定期验证:
- 在主配置或虚拟主机内添加全局文件级拦截规则,防止直接访问敏感后缀:
<filesmatch>
Require all denied
</filesmatch>
- 对关键目录(如
/var/www/html/backups、/var/www/html/.git)单独加严限制,禁用所有扩展功能:
<directory>
Require all denied
Options None
</directory>
- 使用 Nikto 或 OWASP ZAP 每周定时扫描根目录及子路径,重点关注:
–/phpinfo.php、/wp-admin/等常见敏感路径
– HTTP 方法滥用(如 PUT/DELETE)
– 目录遍历尝试(../../etc/passwd类请求)
二、校验网站静态资源完整性
防止前端 JS/CSS/HTML 被注入恶意代码,需建立“基准哈希库 + 定期比对”机制:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 首次部署后,用
sha256sum生成全站静态文件哈希清单(排除动态生成文件和日志):
find /var/www/html -type f -name "*.html" -o -name "*.js" -o -name "*.css" | xargs sha256sum > /etc/apache2/integrity-baseline.sha256
- 写个简单脚本(如 cron 每日凌晨执行),重新计算并比对:
find /var/www/html -type f -name "*.html" -o -name "*.js" -o -name "*.css" | xargs sha256sum | diff /etc/apache2/integrity-baseline.sha256 -
- 若输出差异,则触发告警(邮件/钉钉)并暂停相关目录服务,人工介入核查
三、验证 Apache 配置生效状态
配置写得再严,没生效等于白做。每次更新后或每周自动验证三项关键项:
-
目录浏览是否关闭:访问一个无 index 文件的子目录(如
/uploads/),确认返回 403 而非文件列表 -
.htaccess 是否被禁用:在子目录放测试文件
.htaccess内容为Options +Indexes,确认仍无法开启目录索引 -
危险 Options 是否禁用:在测试目录放一个软链接指向
/etc/shadow,再尝试访问该链接路径,应返回 403
四、结合 mod_security 做行为层防护
仅靠静态规则不够,需用 WAF 拦截实时攻击行为:
- 启用 OWASP Core Rule Set(CRS),重点开启以下规则组:
–REQUEST-930-APPLICATION-ATTACK-LFI(防本地文件包含)
–REQUEST-932-APPLICATION-ATTACK-RCE(防远程命令执行)
–REQUEST-920-PROTOCOL-ENFORCEMENT(防非法 HTTP 方法) - 将 mod_security 日志接入 SIEM(如 ELK),设置告警规则:1 小时内同一 IP 触发 LFI 规则 ≥5 次 → 自动封禁该 IP 24 小时










