如何在Ubuntu中配置Apache2安全设置
导读:Ubuntu 上 Apache2 安全设置实操指南 一 基础加固 保持系统与应用为最新:执行 sudo apt update && sudo apt upgrade,及时修补漏洞。 隐藏版本与标识:编辑 /etc/apac...
Ubuntu 上 Apache2 安全设置实操指南
一 基础加固
- 保持系统与应用为最新:执行 sudo apt update & & sudo apt upgrade,及时修补漏洞。
- 隐藏版本与标识:编辑 /etc/apache2/conf-enabled/security.conf,设置 ServerTokens Prod、ServerSignature Off,减少信息泄露。
- 禁用目录列表:在站点或全局配置中,将 Options -Indexes,防止目录被遍历。
- 精简模块与功能:禁用不需要的模块(如 a2dismod autoindex 等),降低攻击面。
- 运行身份与权限:确保以 www-data 运行(检查 /etc/apache2/envvars 的 APACHE_RUN_USER/APACHE_RUN_GROUP),网站目录权限最小化(如目录 755、文件 644,属主 www-data)。
二 传输加密与端口管理
- 启用 HTTPS:安装模块 sudo a2enmod ssl;使用 Let’s Encrypt 一键获取并自动配置证书:sudo apt install certbot python3-certbot-apache 后执行 sudo certbot --apache,按向导选择域名与是否强制 HTTPS。
- 手动部署证书:将证书与私钥复制到 /etc/apache2/ssl/,在 /etc/apache2/sites-available/default-ssl.conf 中设置 SSLCertificateFile、SSLCertificateKeyFile、SSLCertificateChainFile,启用站点并重启服务。
- 防火墙放行:使用 UFW 放行 Web 端口,推荐 sudo ufw allow ‘Apache Full’(同时放行 80/443);如使用云厂商安全组,也需同步放行。
- 端口与监听:如需非标准端口,编辑 /etc/apache2/ports.conf 的 Listen 80/443,并在虚拟主机中同步端口;变更后重载或重启 Apache。
三 访问控制与请求防护
- 目录与文件访问控制:对敏感目录使用 Require all denied 或基于来源 Require ip 1.2.3.4 的精细化控制;关闭 Indexes 避免信息泄露。
- 基本认证:对管理路径加一层账号口令,例如 sudo htpasswd -c /etc/apache2/.htpasswd admin,在对应 中加入 AuthType Basic、AuthUserFile 与 Require valid-user。
- Web 应用防火墙:安装 libapache2-mod-security2 并加载规则集,防御 SQL 注入、XSS 等常见攻击。
- 抗 DoS 与慢速攻击:部署 libapache2-mod-evasive(限制单位时间请求数、封禁时长、日志目录)与 libapache2-mod-qos(限制并发连接、最小速率),缓解 Slowloris 与简单 DDoS。
- 入侵防护联动:启用 fail2ban 监控 Apache 日志,自动封禁恶意 IP(安装后启用服务并配置 jail.local)。
四 运行环境与监控审计
- 强制 HTTPS 与 HSTS:在启用 certbot 时选择重定向;或手动在虚拟主机 *< VirtualHost :80> 中配置跳转,并在 *< VirtualHost :443> 添加 Header always set Strict-Transport-Security “max-age=63072000; includeSubDomains; preload”。
- 日志与监控:实时查看 /var/log/apache2/access.log 与 error.log,使用 fail2ban 与 logwatch 做异常检测与日报。
- 备份与变更管理:定期备份网站文件与数据库(如 tar 打包或 rsync 同步),变更前备份配置并在测试环境验证,变更后逐步滚动发布。
五 快速检查清单
| 检查项 | 期望状态/命令 |
|---|---|
| 系统与软件为最新 | apt update & & apt upgrade 已执行 |
| 版本信息隐藏 | ServerTokens Prod,ServerSignature Off |
| 目录列表关闭 | Options -Indexes |
| HTTPS 启用 | certbot --apache 已完成或证书已部署 |
| 防火墙放行 | ufw allow ‘Apache Full’ 或放行 80/443 |
| 不必要模块已禁用 | a2dismod 已移除无用模块 |
| 访问受限与认证 | 敏感目录 Require 限制或 .htpasswd 生效 |
| WAF 与抗 DoS | mod_security2、mod-evasive、mod-qos 已启用并调参 |
| 日志与监控 | fail2ban、logwatch 已启用并运行 |
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu中配置Apache2安全设置
本文地址: https://pptw.com/jishu/755223.html
