温馨提示×

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 ProdServerSignature 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 onSSLCertificateFileSSLCertificateKeyFile,必要时配置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.logerror.log**,可使用logwatch做日报。
  • 备份策略:定期备份站点与配置,示例:sudo tar -czvf /backup/apache2-$(date +%F).tar.gz /etc/apache2 /var/www/html
  • 基线核查:核对关键项(版本隐藏、目录列表关闭、仅 443 对外开放、证书有效、WAF/抗 DoS 启用、日志正常)。
  • 加固要点来源:更新与备份、日志审计、基线检查。

0