温馨提示×

Debian Apache2如何配置安全设置

小樊
47
2025-11-22 06:02:25
栏目: 智能运维

Debian 上 Apache2 的安全加固清单

一 基础加固

  • 保持系统与应用为最新:执行 sudo apt update && sudo apt upgrade,及时修补漏洞。
  • 仅开放必要端口与协议:使用 ufw 放行 HTTP/HTTPS,例如 sudo ufw allow ‘Apache Full’ 或分别放行 80/tcp、443/tcp
  • 隐藏服务指纹:在 /etc/apache2/conf-enabled/security.conf 中设置
    • ServerTokens Prod
    • ServerSignature Off
  • 禁用目录列表与信息泄露:执行 sudo a2dismod autoindex;必要时移除或修改默认欢迎页。
  • 精简模块与功能:审查并禁用不需要的模块(如 status、autoindex 等),减少攻击面。
  • 文件与目录权限:网站根目录建议 www-data:www-data,目录 755、文件 644,例如:
    • sudo chown -R www-data:www-data /var/www/html
    • find /var/www/html -type d -exec chmod 755 {} ;
    • find /var/www/html -type f -exec chmod 644 {} ;
  • 运行与日志:保持 LogLevel warn,并持续关注 /var/log/apache2/access.logerror.log

二 加密与证书

  • 启用 SSL/TLS:执行 sudo a2enmod ssl,并为站点启用 default-ssl 或自建 *VirtualHost :443
  • 证书获取与自动续期(推荐):安装 certbot 并使用 sudo certbot --apache -d yourdomain.com -d www.yourdomain.com 自动申请并配置 Let’s Encrypt 证书,支持自动续期。
  • 自签名证书(仅测试环境):
    • 生成证书与密钥:
      • sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
    • 在 *<VirtualHost :443> 中启用:
      • SSLEngine on
      • SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
      • SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
    • 注意:自签名证书会在浏览器产生安全警告,不建议用于生产

三 请求头与访问控制

  • 启用并配置安全响应头(在 /etc/apache2/conf-available/security.conf 或对应虚拟主机中):
    • 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’;(按应用实际调整)
    • 启用方式:sudo a2enconf security && sudo systemctl restart apache2
  • 目录与访问策略(在 <Directory /var/www/html> 中):
    • 禁用目录浏览:Options -Indexes +FollowSymLinks
    • 访问控制示例:Require all granted(按需改为基于 IP 或认证的策略)
    • 如无需 .htaccess 覆盖,建议 AllowOverride None 提升性能与安全性。

四 进阶防护与运维

  • 入侵防护与暴力破解防护:部署 Fail2Ban 监控 Apache 日志并自动封禁恶意来源(如 sudo apt install fail2ban 并启用相应 jail)。
  • Web 应用防火墙与抗 DoS:安装并启用 libapache2-mod-security2(WAF)与 libapache2-mod-evasive(防暴力请求),按需调整规则。
  • 运行时防护与强制访问控制:在支持的发行版上启用 AppArmor(或 SELinux)对 Apache 进程进行最小权限约束。
  • 持续监控与审计:结合 Logwatch/GoAccess/Awstats 对访问与错误日志进行分析,及时发现异常流量与攻击迹象。
  • 备份与变更管理:定期备份 /etc/apache2/var/www/html,变更前先测试,变更后验证与回滚预案。

五 快速检查清单

检查项 推荐值或做法
系统更新 定期执行 apt update && apt upgrade
防火墙 仅放行 80/443(如 ufw allow ‘Apache Full’
版本隐藏 ServerTokens Prod;ServerSignature Off
目录列表 禁用 autoindexOptions -Indexes
HTTPS 使用 Let’s Encrypt 或合规 CA 的证书
安全头 启用 X-Frame-Options、X-XSS-Protection、X-Content-Type-Options、Referrer-Policy、CSP
访问控制 最小权限原则;必要时限制 AllowOverride
日志与监控 LogLevel warn;监控 access/error.log;配合 Fail2Ban/Logwatch/GoAccess
备份 定期备份配置与网站数据,保留回滚版本

0