Debian下Apache安全如何保障
小樊
45
2025-12-13 21:38:15
Debian下Apache安全加固清单
一 基础与系统层防护
- 保持系统与软件为最新:执行apt update && apt full-upgrade -y,并启用无人值守安全更新(unattended-upgrades)以自动获取修补。
- 最小化攻击面:仅安装必需软件,禁用不需要的系统服务与端口,遵循最小化安装原则。
- 边界防护:启用UFW仅放行22/TCP(SSH)、80/TCP(HTTP)、443/TCP(HTTPS);云环境同步配置安全组仅允许必要来源。
- 主机加固:SSH使用密钥登录、禁用root远程登录、可更改默认端口;为管理口设置仅内网访问或跳板机策略。
- 运行身份:确认Apache以www-data:www-data运行,避免使用root或高权限账户。
二 Apache服务最小化与信息泄露防护
- 精简模块:仅启用必要模块,禁用示例与调试类模块,例如:
- 禁用目录浏览:sudo a2dismod autoindex
- 禁用状态页:sudo a2dismod status
- 隐藏版本与系统信息:在**/etc/apache2/conf-available/security.conf**中设置:
- ServerTokens Prod
- ServerSignature Off
- 目录与文件权限:
- 网站根目录属主: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 {} ;
- 目录访问策略:在虚拟主机配置中关闭索引、限制符号链接:
- Options -Indexes +FollowSymLinks
- 如非必要,避免使用AllowOverride All,改为仅允许需要的指令。
三 加密传输与证书管理
- 启用TLS:安装模块并获取Let’s Encrypt证书:
- sudo a2enmod ssl
- sudo apt install certbot python3-certbot-apache
- sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
- 证书维护:启用自动续期检查(cron或systemd timer),确保TLS证书持续有效;仅开放443并做HTTP→HTTPS跳转。
四 请求过滤与WAF
- 部署ModSecurity与OWASP Core Rule Set(CRS):
- 安装:sudo apt install libapache2-mod-security2
- 启用模块:sudo a2enmod security2
- 复制推荐配置:cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
- 关键配置示例:
- SecRuleEngine On(或先用DetectionOnly观察误报)
- SecRequestBodyLimit 536870912(按业务需要调整上传上限)
- SecAuditLog /var/log/apache2/modsec_audit.log
- 安装CRS规则集(示例):apt install -t testing modsecurity-crs
- 重载Apache:systemctl reload apache2
- 作用:识别并阻断SQL注入、XSS、文件包含等常见Web攻击,为应用提供额外防护层。
五 日志监控 备份与持续运维
- 日志与告警:集中监控**/var/log/apache2/access.log与error.log**,使用tail -f、GoAccess、或接入Prometheus+Grafana进行可视化与阈值告警。
- 备份策略:对**/var/www/html与关键配置(如/etc/apache2/sites-available/)执行定期备份与异地/离线**留存,验证可恢复性。
- PHP侧加固(如部署LAMP):在php.ini中限制风险函数与上传:
- disable_functions = exec,passthru,shell_exec,system(按应用需求调整)
- 合理设置upload_max_filesize、post_max_size与上传目录隔离
- 定期复测:执行漏洞扫描(如OpenVAS/Nessus)与配置基线核查,持续修正问题。