温馨提示×

怎样用Apache2提升网站安全性

小樊
34
2025-12-24 16:01:02
栏目: 云计算

Apache2 安全加固清单

一 基础与系统层防护

  • 保持软件与系统为最新:定期执行系统与安全更新,及时修补 Apache2 与依赖组件漏洞。
  • 最小化攻击面:仅启用必需模块,禁用无用模块(如 autoindex、status、userdir、cgi 等),减少被利用面。
  • 运行身份降权:以非特权用户/组运行 Apache2(如 www-data/apache),避免使用 root。
  • 网络与端口控制:仅开放 80/443;在 UFW 中执行 sudo ufw allow 'Apache Full';在 firewalld 中放行 http/https 服务。
  • 文件系统权限:网站目录建议 chown -R www-data:www-data /var/www/html,权限 755 为主,敏感文件更严格;配置与二进制目录限制为受控组访问。

二 核心 Apache 配置加固

  • 隐藏版本与标识:设置 ServerTokens ProdServerSignature Off,避免泄露 Apache/OS/模块 版本信息。
  • 禁用目录浏览:在全局或站点目录使用 Options -Indexes,防止目录文件列表泄露。
  • 限制目录覆盖:生产环境建议 AllowOverride None,将访问控制集中在主配置,降低被 .htaccess 绕过的风险。
  • 访问控制示例:对管理路径限制来源 IP(示例仅放行 192.168.100.0/24 与单 IP 192.168.100.22
    <Directory /var/www/html/admin>
        Options None
        AllowOverride None
        Require all denied
        Require ip 192.168.100.0/24
        Require ip 192.168.100.22
    </Directory>
    
  • 根目录默认拒绝:对系统根或上层目录设置 Order deny,allow + Deny from all,仅对业务目录显式放行。
  • 语法校验与重启:变更后用 httpd -t(或 apache2ctl configtest)校验,再 systemctl restart apache2 使配置生效。

三 传输加密与证书管理

  • 启用 HTTPS 并强制跳转:使用 Let’s Encrypt 获取免费证书并自动配置
    • Ubuntu/Debian:sudo apt install certbot python3-certbot-apache
    • 执行:sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
  • 防火墙放行:确保 UFWApache Fullfirewalld 的 http/https 已开启,避免 443 被阻断。
  • 自签名证书(测试/内网):
    • sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/apache-selfsigned.key -out /etc/pki/tls/certs/apache-selfsigned.crt
    • /etc/httpd/conf.d/ssl.conf 或相应虚拟主机中配置 SSLEngine onSSLCertificateFileSSLCertificateKeyFile 并重启服务。

四 安全头与 Web 应用防护

  • 启用安全响应头(需 mod_headers):
    <IfModule mod_headers.c>
        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 Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'none';"
    </IfModule>
    
  • 部署 WAF:安装并启用 ModSecurity
    • sudo apt install libapache2-mod-security2
    • sudo a2enmod security2
    • 基本配置:SecRuleEngine OnSecRequestBodyAccess OnSecAuditLog /var/log/modsec_audit.log,按需加载 OWASP Core Rule Set
  • 防暴力与 DoS:部署 Fail2Ban 监控 Apache 日志并自动封禁;必要时结合 mod_evasive 缓解请求洪泛。

五 日志监控与持续运维

  • 日志与审计:确保访问与错误日志正常记录,定期审计异常请求与扫描行为;启用 ModSecurity 审计日志以追溯攻击链。
  • 运行监控与告警:结合系统监控与日志告警,对 4xx/5xx 激增、异常 UA/Referer、暴力路径探测等设定阈值告警。
  • 备份与变更管理:定期备份网站文件与配置,变更前先 configtest,变更后留回滚方案与变更记录。
  • 平台加固:在 RHEL/CentOS 上结合 SELinux 正确设置 httpd 上下文与布尔值;按需限制 Apache 访问数据库端口与敏感资源。

0