Ubuntu下Apache2如何实现安全加固
小樊
34
2025-12-17 00:23:42
Ubuntu下Apache2安全加固清单
一 基础与系统层加固
- 保持系统与应用为最新:执行sudo apt update && sudo apt full-upgrade -y,并启用自动安全更新(如 unattended-upgrades),及时修补漏洞。
- 以最小权限运行:确认 Apache 以www-data用户/组运行(查看进程或 apache2.conf 的 User/Group),避免以 root 启动。
- 最小化攻击面:禁用不需要的模块(如mod_autoindex、mod_info、mod_userdir、mod_imap、mod_include 等),命令示例:sudo a2dismod autoindex。
- 边界与访问控制:启用防火墙,仅放行必要端口,例如sudo ufw allow ‘Apache Full’(放行 80/443),或按需仅放行 443/tcp。
- 加固要点来源:更新与最小权限、模块最小化、目录列表禁用、防火墙放行。
二 服务端配置加固
- 隐藏版本与标识:在主配置(如**/etc/apache2/apache2.conf**)设置ServerTokens Prod与ServerSignature Off,减少信息泄露。
- 禁用目录浏览:在站点或全局 Directory 配置中使用Options -Indexes,防止目录结构暴露。
- 自定义错误页:使用ErrorDocument 403/404/500 /custom.html,避免默认错误页泄露路径、组件版本等敏感信息。
- 访问控制与权限:对敏感目录(如**/var/www/html/upload**)限制脚本执行,示例:
<Directory “/var/www/html/upload”>
<FilesMatch “.(php|php3)$”>
Require all denied
- 运行用户与组:确保以www-data运行,避免以 root 启动服务。
- 日志与审计:启用并合理设置ErrorLog、CustomLog、LogLevel,保留访问与错误日志以便溯源。
- 配置语法检查:变更后执行sudo apache2ctl configtest,无误再重载。
- 加固要点来源:隐藏版本、禁用目录列表、错误页、访问控制、运行用户、日志与语法检查。
三 传输层与证书部署
- 启用 HTTPS 与强加密套件:启用mod_ssl,部署有效证书(如 Let’s Encrypt 或商用 CA)。示例:
- 安装与获取证书:sudo apt install certbot python3-certbot-apache,执行sudo certbot --apache自动申请并配置。
- 手动部署:创建目录**/etc/apache2/ssl**,放置证书与私钥;在虚拟主机中设置SSLEngine on、SSLCertificateFile、SSLCertificateKeyFile,必要时配置SSLCertificateChainFile(链证书)。
- 强制 HTTPS(可选):在 :80 虚拟主机中添加Redirect permanent / https://yourdomain.com/,统一跳转。
- 防火墙放行:确保443/tcp已放行(UFW 或云安全组)。
- 验证:访问 https://域名 检查锁标识,使用 SSL Labs 测试套件强度。
- 加固要点来源:启用 SSL、证书路径与链证书、UFW 放行 443、强制跳转与测试。
四 进阶防护与运行时安全
- WAF 与请求过滤:部署mod_security2进行规则过滤(如 SQLi、XSS 等),示例:sudo apt install libapache2-mod-security2 && sudo a2enmod security2。
- 抗 DoS 与慢速攻击:部署libapache2-mod-evasive缓解 DDoS/Slowloris,示例:
- 安装:sudo apt install libapache2-mod-evasive
- 配置参考:
DOSHashTableSize 2048
DOSPageCount 20
DOSPageInterval 1.0
DOSSiteCount 300
DOSSiteInterval 1.0
DOSBlockingPeriod 10.0
DOSLogDir “/var/log/apache2/evasive”
- 连接与速率限制:使用mod_qos限制每 IP 连接数与速率,缓解资源耗尽。
- 入侵防护联动:部署Fail2Ban监控 Apache 日志并封禁暴力来源 IP。
- 运行时最小权限:保持www-data运行,谨慎授予写入/执行权限。
- 加固要点来源:mod_security、mod_evasive、mod_qos、Fail2Ban、最小权限。
五 维护与验证
- 持续更新与变更管理:定期apt update/upgrade,变更前备份配置与数据,变更后configtest并灰度发布。
- 日志分析与告警:定期查看**/var/log/apache2/access.log与error.log**,可使用logwatch做日报。
- 备份策略:定期备份站点与配置,示例:sudo tar -czvf /backup/apache2-$(date +%F).tar.gz /etc/apache2 /var/www/html。
- 基线核查:核对关键项(版本隐藏、目录列表关闭、仅 443 对外开放、证书有效、WAF/抗 DoS 启用、日志正常)。
- 加固要点来源:更新与备份、日志审计、基线检查。