🛡️ 在 VPS 上安装和配置 UFW
本指南将教您如何安装和配置 UFW(简单防火墙),这是 Linux 的一个简单但有效的防火墙。UFW 使管理 VPS 服务器上的防火墙规则变得更加容易。
📋 先决条件
- 具有 root 或 sudo 访问权限的 VPS 服务器
- 活动的 SSH 连接
- Ubuntu/Debian(命令适用于这些发行版)
📥 安装 UFW
在 Ubuntu/Debian 上安装
sudo apt update sudo apt install ufw -y
验证安装
# 检查 UFW 状态 sudo ufw status
如果 UFW 未激活,您将看到消息:Status: inactive
⚙️ 基本配置
设置默认规则
# 阻止所有传入,允许传出 sudo ufw default deny incoming sudo ufw default allow outgoing
允许基本连接
# 允许 SSH(端口 22)- 非常重要! sudo ufw allow 22/tcp # 允许 HTTP 和 HTTPS(如果您有 Web 服务器) sudo ufw allow 80/tcp sudo ufw allow 443/tcp
启用 UFW
# 启用防火墙 sudo ufw enable
在询问时用 y 确认。
🔧 高级规则
允许特定端口
# 允许 TCP 端口 sudo ufw allow 8080/tcp # 允许 UDP 端口 sudo ufw allow 53/udp # 允许特定协议的端口 sudo ufw allow 3306/tcp # MySQL sudo ufw allow 5432/tcp # PostgreSQL
允许特定 IP
# 允许来自某个 IP 的所有连接 sudo ufw allow from 192.168.1.100 # 为某个 IP 允许特定端口 sudo ufw allow from 192.168.1.100 to any port 22 # 允许 IP 范围 sudo ufw allow from 10.0.0.0/8
阻止 IP 或端口
# 阻止 IP sudo ufw deny from 192.168.1.100 # 阻止端口 sudo ufw deny 3306/tcp
📊 规则管理
列出所有规则
# 简单状态 sudo ufw status # 带编号的详细状态 sudo ufw status numbered # 非常详细的状态 sudo ufw status verbose
删除规则
# 按编号删除(使用 status numbered 找到) sudo ufw delete 3 # 按规则删除 sudo ufw delete allow 8080/tcp
重置所有规则
sudo ufw --force reset
🎯 配置示例
Web 服务器配置
sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
数据库服务器配置
sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw allow from 10.0.0.0/8 to any port 3306 sudo ufw enable
游戏服务器配置(例如 Minecraft)
sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw allow 25565/tcp # Minecraft 端口 sudo ufw enable
📝 验证和监控
查看日志
# 实时查看日志 sudo tail -f /var/log/ufw.log # 查看最后条目 sudo tail -n 50 /var/log/ufw.log
检查详细状态
sudo ufw status verbose
此命令显示:
- 防火墙状态(活动/非活动)
- 默认规则
- 所有活动规则
- 网络接口
🔄 禁用 UFW(如需要)
# 临时禁用 sudo ufw disable # 重新启用 sudo ufw enable
✅ 最佳实践
-
在启用之前始终允许 SSH:确保在启用防火墙之前允许 SSH 端口(22)。
-
最小权限原则:仅允许您的服务所需端口和 IP。
-
测试规则:在断开连接之前,测试一切是否正常工作。
-
监控日志:定期检查日志以检测入侵尝试。
-
使用 fail2ban:将 UFW 与 fail2ban 结合使用,以加强对暴力破解攻击的防护。
🆘 故障排除
我被锁定在服务器外
如果您在启用防火墙后被锁定:
- 使用您的凭据联系 Infrawire 支持
- 如果可用,请使用控制面板中的 VNC/KVM 控制台
- 直接连接并禁用 UFW:
sudo ufw disable
规则不工作
# 检查 UFW 是否已激活 sudo ufw status # 检查规则顺序 sudo ufw status numbered # 重新加载规则 sudo ufw reload
UFW 与 Docker 冲突
如果您使用 Docker,需要配置 Docker 使其不与 UFW 规则冲突:
# 编辑 Docker 配置 sudo nano /etc/docker/daemon.json # 添加此配置 { "iptables": false } # 重启 Docker sudo systemctl restart docker
📚 其他资源
❓ 常见问题
问:我可以将 UFW 与其他防火墙一起使用吗?
答:不可以,您应该一次只使用一个防火墙以避免冲突。
问:UFW 可以与 Docker 一起使用吗?
答:可以,但您需要配置 Docker 使其不与 UFW 规则冲突(请参阅故障排除部分)。
问:如何同时允许多个端口?
答:您可以使用循环或创建 bash 脚本来自动化添加规则。
问:我可以在 CentOS/RHEL 上使用 UFW 吗?
答:可以,但安装可能不同。请查阅您的发行版文档。
配置顺利!🚀