温馨提示×

如何优化Debian Apache2安全

小樊
31
2025-12-07 23:20:31
栏目: 智能运维

Debian Apache2 安全优化清单

一 基础加固

  • 保持系统与应用为最新:执行sudo apt update && sudo apt upgrade -y,及时修补漏洞。
  • 最小化启用模块:仅保留必需模块,禁用示例与调试类模块,例如a2dismod autoindex status cgi(按需保留如rewrite、ssl)。
  • 隐藏版本与标识:在**/etc/apache2/conf-enabled/security.conf中设置ServerTokens ProdServerSignature Off**,减少信息泄露。
  • 目录与文件权限:网站根目录建议属主www-data:www-data,目录755、文件644;示例:
    sudo chown -R www-data:www-data /var/www/html
    sudo find /var/www/html -type d -exec chmod 755 {} ;
    sudo find /var/www/html -type f -exec chmod 644 {} ;
  • 禁用目录浏览:在 VirtualHost 或全局配置中确保Options -Indexes
  • 访问控制:对管理路径或敏感目录限制来源 IP,示例:
    <Directory /var/www/html/admin>
    Require all denied
    Require ip 203.0.113.0/24
  • 日志与监控:保持默认日志路径与级别,持续tail -f /var/log/apache2/{access,error}.log,必要时接入Fail2Ban与可视化监控。

二 传输加密与证书

  • 启用 TLS:安装模块并启用站点,sudo a2enmod ssl;启用默认 SSL 站点或自建 VirtualHost 并配置SSLEngine on
  • 获取免费证书:使用certbot自动部署与续期,sudo apt install certbot python3-certbot-apache,执行sudo certbot --apache -d yourdomain.com -d www.yourdomain.com,按提示选择是否强制 HTTPS。
  • 防火墙放行:仅开放80/tcp443/tcp,可用sudo ufw allow 80,443/tcpsudo ufw allow ‘Apache Full’

三 请求头与内容安全

  • 启用并配置安全头(建议启用mod_headers):在**/etc/apache2/conf-available/security.conf**中加入:

    Header always set X-Content-Type-Options “nosniff”
    Header always set X-Frame-Options “SAMEORIGIN”
    Header always set X-XSS-Protection “1; mode=block”
    Header always set Referrer-Policy “no-referrer-when-downgrade”
    Header always set Strict-Transport-Security “max-age=63072000; includeSubDomains; preload”
    Header always set Content-Security-Policy “default-src ‘self’; script-src ‘self’; object-src ‘none’; upgrade-insecure-requests”

    启用配置并重启:sudo a2enconf security && sudo systemctl restart apache2
  • 说明:上述CSP为通用起步策略,需结合前端资源(如 CDN、内联脚本)进行白名单微调。

四 进阶防护与运行时安全

  • 防护模块:部署ModSecurity(WAF)与mod_evasive(抗 DoS),示例:
    sudo apt install libapache2-mod-security2 libapache2-mod-evasive
    sudo a2enmod security2 evasive
    按业务调整规则与阈值,避免误拦截。
  • 访问控制增强:结合Fail2Ban对异常请求(如多次 4xx/5xx、暴力登录)进行封禁;对管理接口采用IP 白名单强认证
  • 系统级强制访问控制:启用并适配AppArmor(Debian 常用),为**/usr/sbin/apache2**配置最小化权限 profile,降低被攻陷后的横向移动风险。
  • PHP 运行时安全(如启用 PHP):在php.ini中限制危险函数与资源,示例:
    disable_functions = exec,passthru,shell_exec,system,proc_open,popen
    upload_max_filesize = 2M
    post_max_size = 8M
    expose_php = Off
    同时避免在生产环境保留phpinfo.php等敏感文件。

五 运维与审计

  • 变更与回滚:变更前备份配置与数据,示例:sudo tar -czvf /backup/apache2-$(date +%F).tar.gz /etc/apache2 /var/www/html;变更后用apache2ctl configtest校验,再systemctl reload apache2
  • 持续监控与告警:对access.log/error.log进行实时或准实时分析,结合Fail2Ban、主机入侵检测与可视化平台(如Prometheus + Grafana)建立基线告警。
  • 定期审计与更新:例行apt update/upgrade,定期审查启用模块、虚拟主机与访问控制策略,开展漏洞扫描与配置基线核查。

0