Linux Apache2如何进行安全设置
小樊
35
2025-12-08 22:20:58
Linux Apache2 安全设置清单
一 基础加固
- 保持系统与软件为最新:执行系统包管理器更新(如 apt/yum),及时修补漏洞。
- 隐藏版本信息:在 /etc/apache2/apache2.conf 中将 ServerTokens 设为 Prod、将 ServerSignature 设为 Off,减少信息泄露。
- 禁用目录列表:在站点或全局配置中将 Options -Indexes,防止暴露目录结构。
- 最小化目录权限:对网站根目录(如 /var/www/html)设置所有权为 www-data:www-data,权限为目录 755、文件 644。
- 限制访问与控制覆盖:对公开目录使用 AllowOverride None,仅在必要时启用 .htaccess;对管理路径或敏感目录基于 IP 或认证进行限制。
- 启用安全模块:按需启用 mod_headers、mod_rewrite、mod_ssl 等核心模块,避免启用不必要的功能模块。
二 传输加密与端口管理
- 启用 HTTPS/TLS:安装 mod_ssl 并为站点启用 SSL 虚拟主机;优先使用 Let’s Encrypt 自动获取并部署证书(certbot)。
- 防火墙放行:
- Ubuntu/Debian:使用 ufw allow ‘Apache Full’ 放行 80/443。
- CentOS/RHEL:使用 firewall-cmd 放行 http/https 服务或端口 80/443。
- 端口策略:生产环境不建议更改默认端口;如确需变更,需同步更新防火墙与应用配置并充分回归测试。
三 访问控制与请求防护
- 强化访问控制:在 中使用 Require all granted/denied 精细控制来源;对管理后台、备份目录等启用 IP 白名单 或 HTTP Basic Auth。
- 安全响应头:启用 mod_headers 并添加关键安全头,如 X-Frame-Options、X-XSS-Protection、X-Content-Type-Options、Referrer-Policy、Content-Security-Policy,降低常见前端攻击面。
- 请求限制与抗攻击:部署 mod_evasive 缓解 DoS/DDoS 与 Slowloris 类攻击;结合 Fail2Ban 对暴力访问进行自动封禁。
- Web 应用防火墙:部署 mod_security 并加载规则集,增强对 SQLi、XSS 等攻击的拦截能力。
四 系统与平台加固
- 运行身份与最小权限:确保 Apache 以非特权用户(如 www-data)运行,避免使用 root 执行请求处理。
- Linux 安全模块:
- SELinux(RHEL/CentOS):保持 Enforcing,按需设置布尔值(如日志写入、网络访问)与文件上下文(如 httpd_sys_content_t)。
- AppArmor(Ubuntu/Debian):保持启用并调优策略,避免直接禁用。
- 日志与监控:确保 ErrorLog/CustomLog 正确输出,结合 tail -f 或集中化日志平台进行实时监测与告警。
五 快速检查与常用命令
- 版本与模块:
- 查看版本:apache2 -v
- 检查语法:apache2ctl configtest
- 重启服务:systemctl restart apache2
- 启用/禁用模块与站点:
- 启用模块:a2enmod ssl headers rewrite
- 禁用模块:a2dismod autoindex status
- 启用站点:a2ensite your-site.conf;禁用:a2dissite 000-default.conf
- 防火墙:
- Ubuntu/Debian:ufw allow ‘Apache Full’ && ufw enable
- CentOS/RHEL:firewall-cmd --permanent --add-service=http --add-service=https && firewall-cmd --reload
- 证书与 HTTPS:
- 获取证书:certbot --apache -d yourdomain.com -d www.yourdomain.com
- 安全头与配置:
- 在 /etc/apache2/conf-available/security.conf 中配置安全头,启用:a2enconf security
- 文件权限:
- 设置所有权: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 {} ;
- 备份:定期打包备份 /etc/apache2 与 /var/www/html 等关键目录。