Apache作为广泛使用的Web服务器,可能面临恶意代码执行风险。本文从权限控制、模块管理、配置加固等7个关键维度,提供专业级防护方案,帮助管理员有效阻断攻击链,确保服务器安全运行。
一、严格文件系统权限控制
设置Apache运行用户为专用低权限账户
chown -R apache:apache /var/www/
chmod 750 /var/www/
find /var/www/ -type f -exec chmod 640 {} ;
关键措施:
- 创建专用运行账户(非root/nobody)
- 遵循最小权限原则(755目录/644文件)
- 敏感配置文件设为600权限
- 禁用上传目录执行权限:
Options -ExecCGI
二、模块安全强化
禁用危险模块
LoadModule cgi_module modules/mod_cgi.so 谨慎启用
LoadModule php_module modules/libphp.so 需要时加载
建议操作:
- 定期审计
httpd -M
输出 - 禁用mod_include、mod_cgi等高风险模块
- 使用
mod_security
作为WAF防护层 - PHP配置
open_basedir
限制访问范围
三、配置加固最佳实践
<Directory "/var/www/">
Options -Indexes -Includes -ExecCGI
AllowOverride None
Require all granted
<FilesMatch ".(php|cgi|pl)$">
SetHandler None
</FilesMatch>
</Directory>
核心配置项:
- 关闭目录浏览(-Indexes)
- 限制.htaccess覆盖(AllowOverride)
- 禁用非必要HTTP方法:
LimitExcept GET POST
- 设置
ServerTokens Prod
隐藏版本信息
四、输入验证与过滤
mod_security规则示例
SecRule ARGS "@rx " "id:1001,deny,msg:'XSS Attempt'"
SecRule FILES "@rx .ph(p[3457]?|t|tml)$" "deny,msg:'Upload attack'"
防御策略:
- 启用
mod_rewrite
过滤异常URI - 对上传文件进行后缀+内容双重校验
- 设置
TraceEnable Off
防止TRACE方法攻击 - Cookie添加HttpOnly/Secure属性
五、日志监控与审计
日志分析示例
grep -E '/(cmd.exe|wget|curl)' /var/log/httpd/access_log
awk '$9==404{print $7}' error_log | sort | uniq -c | sort -nr
监控要点:
- 实时监控500错误和异常POST请求
- 建立404请求频率基线
- 日志文件设为只读:
chattr +a
- 使用OSSEC进行入侵检测
六、补丁管理策略
更新流程:
- 订阅Apache安全通告邮件列表
- 测试环境验证补丁兼容性
- 使用
apachectl -v
确认当前版本 - 通过官方渠道获取更新:
yum update httpd
七、网络层防护
iptables示例规则
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
iptables -A INPUT -p tcp --dport 443 -m geoip ! --src-cc CN -j DROP
增强措施:
- 启用mod_evasive防CC攻击
- 配置SSL/TLS禁用弱加密套件
- 前端部署CDN隐藏真实IP
- 关键路径设置双因素认证
通过组合应用上述措施,可显著降低Apache服务器被植入恶意代码的风险。建议每季度进行渗透测试,持续优化安全配置。
评论