Debian Apache防火墙设置建议
小樊
36
2025-12-27 15:52:36
Debian Apache 防火墙设置建议
一 基础原则与默认策略
- 仅开放必要端口:Web 服务建议仅放行 TCP 80/443;如需远程管理再放行 SSH 22,并优先使用密钥登录。
- 默认拒绝入站、放行出站:未明确允许的入站连接一律拒绝,减少攻击面。
- 变更前备份与先测后用:保存当前规则并在测试环境验证,避免锁死 SSH 或误封业务。
- 规则持久化:确保重启后规则仍然生效,避免配置丢失。
- 持续维护:定期审查日志与规则,及时修补与优化。
二 使用 UFW 的推荐配置
- 安装与启用
- 安装:sudo apt update && sudo apt install ufw
- 设置默认策略:sudo ufw default deny incoming;sudo ufw default allow outgoing
- 启用:sudo ufw enable
- 放行 Web 与 SSH
- 一键放行 Web:sudo ufw allow ‘Apache Full’(等价于放行 80/tcp 与 443/tcp)
- 或分别放行:sudo ufw allow 80/tcp;sudo ufw allow 443/tcp
- 放行 SSH(如需要):sudo ufw allow 22/tcp
- 验证与维护
- 查看状态:sudo ufw status(或 sudo ufw status numbered 便于按编号删除/调整)
- 变更后重载:sudo ufw reload
- 关闭(慎用):sudo ufw disable
- 说明
- UFW 规则默认持久化;在启用前确认 SSH 已放行,避免被锁。
三 使用 iptables 的推荐配置
- 安装与放行
- 安装:sudo apt update && sudo apt install iptables
- 放行 Web:sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- 放行 Web:sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
- 放行 SSH(如需要):sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- 默认拒绝与状态检查
- 默认拒绝入站:sudo iptables -A INPUT -j DROP
- 查看规则:sudo iptables -L -v -n
- 持久化保存
- 安装持久化组件:sudo apt install iptables-persistent
- 保存规则:sudo netfilter-persistent save(或 sudo iptables-save > /etc/iptables/rules.v4)
- 重载规则:sudo netfilter-persistent reload
- 提示
- 若通过 SSH 管理,务必先放行 22/tcp 再设置默认 DROP,或在本地控制台操作以避免失联。
四 进阶安全与运维建议
- 限制管理入口:对后台或管理路径(如 /admin)仅允许可信 IP 段访问,示例(在 Apache 配置中):
- <Directory “/var/www/html/admin”>
- Options -Indexes +FollowSymLinks
- Require ip 192.168.1.0/24
-
- 隐藏版本信息:编辑 /etc/apache2/conf-enabled/security.conf
- ServerTokens Prod
- ServerSignature Off
- 强制 HTTPS 与证书:使用 Let’s Encrypt 获取免费证书并自动续期
- 安装:sudo apt install certbot python3-certbot-apache
- 申请并配置:sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
- 日志与监控:关注 /var/log/apache2/access.log 与 error.log,对异常请求(如大量 404/500)及时处置。