温馨提示×

如何利用Apache2配置提高网站安全性

小樊
38
2025-12-03 00:14:54
栏目: 云计算

Apache2 安全加固清单与实践

一 基础加固

  • 保持系统与软件为最新:在 Debian/Ubuntu 执行 sudo apt update && sudo apt upgrade;在 CentOS/RHEL 执行 sudo yum update,及时修补漏洞。
  • 精简与禁用不必要的模块:减少攻击面,例如禁用 autoindex 等未使用模块(Debian/Ubuntu:sudo a2dismod autoindex)。
  • 隐藏版本与系统信息:在全局或主配置中设置 ServerTokens ProdServerSignature Off,降低信息泄露风险。
  • 目录与权限:网站根目录建议属主 www-data:www-data,目录 755、文件 644;禁用目录列表(Options -Indexes)。
  • 访问控制:对外最小化暴露,必要时对管理路径限制来源 IP;示例(在对应 <Directory> 内):
    Require all granted 基础上增加 Require ip 203.0.113.0/24(按需调整)。
  • 请求大小限制:防止滥用与 DoS,设置 LimitRequestBody 10485760(示例为 10MB)。

二 传输加密与端口管理

  • 启用 HTTPS/TLS:优先使用 Let’s Encrypt 获取免费证书并自动配置 Apache:
    sudo apt install certbot python3-certbot-apache
    sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
  • 防火墙放行:
    • Ubuntu/Debian(ufw):sudo ufw allow 'Apache Full' && sudo ufw enable
    • CentOS/RHEL(firewalld):sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload
  • 端口最小化:仅开放 80/443;将管理接口或调试端口限制内网访问或关闭。

三 请求与响应安全

  • 安全响应头(建议全局启用):
    • X-Content-Type-Options: nosniff
    • X-Frame-Options: SAMEORIGIN
    • X-XSS-Protection: 1; mode=block
    • Referrer-Policy: no-referrer-when-downgrade
    • Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'none';(按站点实际调整策略)
  • 目录与脚本安全:禁用目录列表(Options -Indexes);限制上传与请求体大小(LimitRequestBody);对敏感目录使用认证:
    <Directory "/var/www/html/admin">
        AuthType Basic
        AuthName "Restricted"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
    </Directory>
    
  • 运行身份:确保以非 root 用户运行(如 www-data),避免权限提升风险。

四 模块与入侵防护

  • Web 应用防火墙:启用 mod_security 并加载规则集,防御 SQL 注入、XSS 等常见攻击:
    sudo apt install libapache2-mod-security2 && sudo systemctl restart apache2(规则需按业务定制)。
  • 抗 DoS/暴力访问:部署 mod_evasive 缓解高频请求与扫描;配合 Fail2Ban 监控日志并封禁恶意来源:
    sudo apt install fail2ban && sudo systemctl enable --now fail2ban
  • 系统级强制访问控制:在支持的发行版启用 SELinuxAppArmor,为 Apache 进程设定最小权限边界。

五 日志监控与运维

  • 日志配置与审计:确保访问与错误日志开启并定期审计;示例:
    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    结合 tail -f、集中化日志平台或 SIEM 进行异常检测。
  • PHP 安全(如站点使用 PHP):在 php.ini 中禁用危险函数(如 exec、system、shell_exec),并通过 open_basedir 限制可访问目录。
  • 备份与变更管理:定期备份 /etc/apache2 与网站目录,变更前先在测试环境验证,变更后回滚预案就绪。
  • 持续更新与复查:定期更新 Apache、模块与规则库;每季度进行配置审计与基线检查。

0