温馨提示×

Ubuntu Apache怎样配置安全策略

小樊
48
2025-12-24 20:41:13
栏目: 智能运维

Ubuntu 上 Apache 安全策略配置清单

一 基础加固

  • 更新系统与软件包:保持 UbuntuApache2 为最新版本,及时修补漏洞。
  • 隐藏版本与标识:在主配置中关闭签名与版本暴露。
    配置示例:
    # /etc/apache2/apache2.conf
    ServerTokens Prod
    ServerSignature Off
    
  • 禁用目录列表:防止目录结构泄露。
    配置示例:
    <Directory /var/www/html>
        Options -Indexes
        AllowOverride None
        Require all granted
    </Directory>
    
  • 以最小权限运行:确认进程以 www-data 运行,避免以 root 启动。
  • 自定义错误页面:减少信息泄露。
    配置示例:
    ErrorDocument 403 /custom403.html
    ErrorDocument 404 /custom404.html
    ErrorDocument 500 /custom500.html
    
  • 限制上传目录执行权限:阻断上传的脚本执行。
    配置示例:
    <Directory "/var/www/html/upload">
        <FilesMatch "\.(php|php3|phtml)$">
            Require all denied
        </FilesMatch>
    </Directory>
    
  • 启用与审查日志:确保访问与错误日志正常记录,便于审计与溯源。
    默认路径:/var/log/apache2/access.log/var/log/apache2/error.log

二 传输加密与端口管理

  • 启用 HTTPS/TLS:安装 mod_ssl 并配置证书。
    快速命令:
    sudo a2enmod ssl
    sudo systemctl restart apache2
    
  • 获取可信证书:使用 Let’s Encrypt/certbot 自动签发并自动配置 HTTPS。
    快速命令:
    sudo apt install certbot python3-certbot-apache
    sudo certbot --apache
    
  • 防火墙放行:仅开放必要端口(HTTP/HTTPS)。
    快速命令:
    sudo ufw allow 'Apache Full'
    # 或分别放行
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw enable
    
  • 端口变更(可选):如需变更监听端口,编辑 /etc/apache2/ports.conf 与相应虚拟主机,并同步防火墙放行新端口。

三 访问控制与请求限制

  • 目录与文件权限:对外仅授予必要目录访问,禁止访问敏感文件(如 .ht*)。
    配置示例:
    <FilesMatch "^\.ht">
        Require all denied
    </FilesMatch>
    
  • 限制可用 HTTP 方法:仅允许业务所需方法(如 GET/POST)。
    配置示例:
    <LimitExcept GET POST>
        Require all denied
    </LimitExcept>
    
  • 限制特定资源访问:对管理后台、配置文件等路径基于来源 IP 限制。
    配置示例:
    <Directory "/var/www/html/admin">
        Require ip 203.0.113.0/24
    </Directory>
    
  • 上传与可执行防护:结合前述上传目录“禁止执行脚本”策略,降低 Webshell 风险。

四 安全模块与抗攻击

  • ModSecurity WAF:安装并启用 libapache2-mod-security2,加载 OWASP CRS 规则集,防御 SQL 注入、XSS、路径遍历 等常见攻击。
    快速步骤:
    sudo apt install libapache2-mod-security2
    sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
    # 克隆并部署 OWASP CRS
    git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
    sudo mv owasp-modsecurity-crs/crs-setup.conf.example /etc/modsecurity/crs-setup.conf
    sudo mv owasp-modsecurity-crs/rules/ /etc/modsecurity/
    # 在 /etc/apache2/mods-available/security2.conf 中包含规则
    echo 'Include /etc/modsecurity/rules/*.conf' | sudo tee -a /etc/apache2/mods-available/security2.conf
    sudo a2enmod security2
    sudo systemctl restart apache2
    
  • mod_evasive:缓解 DDoS/Slowloris 类攻击。
    快速步骤:
    sudo apt install libapache2-mod-evasive
    sudo mkdir -p /var/log/apache2/evasive
    sudo chown www-data:root /var/log/apache2/evasive
    # /etc/apache2/mods-available/evasive.conf 示例参数
    DOSHashTableSize 2048
    DOSPageCount 20
    DOSPageInterval 1.0
    DOSSiteCount 300
    DOSSiteInterval 1.0
    DOSBlockingPeriod 10.0
    DOSLogDir "/var/log/apache2/evasive"
    
  • 可选 mod_qos:进行连接速率与并发控制(按业务调优)。

五 运维与持续监控

  • 配置语法检查与平滑重载:变更前先校验,再重载服务。
    快速命令:
    sudo apache2ctl configtest
    sudo systemctl reload apache2
    
  • 日志分析与告警:定期审阅访问与错误日志,使用 logwatch 等工具生成日报。
    快速命令:
    sudo apt install logwatch
    sudo logwatch --output mail --mailto admin@example.com --detail high
    
  • 持续更新与公告订阅:关注 Apache 安全公告 与系统更新,及时修补。
  • 运行时防护:生产环境建议启用 AppArmor 并为其配置针对 /usr/sbin/apache2 的合规策略,限制进程权限边界。

0