温馨提示×

如何保护ubuntu apache2

小樊
39
2026-08-01 05:49:31
栏目: 智能运维

保护 Ubuntu 上的 Apache2 是一个系统性工作,下面按从基础到进阶给你一份实用清单,适合生产环境。


一、基础安全配置

1. 保持系统 & Apache 更新

sudo apt update
sudo apt upgrade -y

定期更新:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

2. 隐藏 Apache 版本信息

防止泄露版本号:

sudo nano /etc/apache2/conf-available/security.conf

修改:

ServerTokens Prod
ServerSignature Off

启用并重启:

sudo a2enconf security
sudo systemctl restart apache2

3. 禁用目录浏览

<Directory /var/www/html>
    Options -Indexes
</Directory>

4. 限制访问敏感目录

<Directory /var/www/html/admin>
    Require ip 1.2.3.4
</Directory>

二、用户与权限安全

5. 正确设置文件和目录权限

sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;

⚠️ 不要给 web 目录 777 权限


6. 使用非 root 用户运行 Apache

Ubuntu 默认已使用:

ps aux | grep apache2

确认是 www-data 用户。


三、HTTPS / SSL 安全(强烈建议)

7. 使用 Let’s Encrypt 免费证书

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache

自动续期测试:

sudo certbot renew --dry-run

8. 强制 HTTPS

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://example.com/
</VirtualHost>

四、防火墙 & 网络层安全

9. 使用 UFW 防火墙

sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
sudo ufw enable

检查:

sudo ufw status

10. 限制 Apache 只监听必要端口

sudo nano /etc/apache2/ports.conf

通常只需:

Listen 80
Listen 443

五、防止常见攻击

11. 防止点击劫持(Clickjacking)

Header always append X-Frame-Options SAMEORIGIN

启用 headers 模块:

sudo a2enmod headers

12. 防止 MIME 类型嗅探

Header set X-Content-Type-Options "nosniff"

13. 防止 XSS

Header set X-XSS-Protection "1; mode=block"

六、日志与入侵检测

14. 启用并监控日志

/var/log/apache2/access.log
/var/log/apache2/error.log

建议安装:

sudo apt install goaccess
goaccess /var/log/apache2/access.log -c

15. 配合 Fail2ban(推荐)

sudo apt install fail2ban

Apache 规则示例:

[apache-auth]
enabled = true

七、模块与配置优化

16. 禁用不必要模块

sudo a2dismod autoindex cgi

查看已启用的模块:

apache2ctl -M

17. 限制请求大小(防 DoS)

LimitRequestBody 1048576

八、生产环境额外建议

✅ 使用 Nginx + Apache(反向代理)
✅ 使用 AppArmor / SELinux
✅ 定期备份 /var/www 和数据库
✅ 使用 Web 应用防火墙(如 ModSecurity)


快速安全检查清单 ✅

  • [ ] HTTPS 已启用
  • [ ] Apache 版本已隐藏
  • [ ] 目录浏览已关闭
  • [ ] 防火墙已开启
  • [ ] 日志正常记录
  • [ ] 自动更新已配置

如果你愿意,我可以:

  • ✅ 帮你 检查现有 Apache 配置
  • ✅ 给你一份 生产环境完整安全配置文件
  • ✅ 针对 WordPress / Laravel / API 服务 专项加固

你可以直接贴出你的 Apache 虚拟主机配置。

0