🛡️ 在 VPS 上安装和配置 UFW

在 Linux VPS 服务器上安装和配置 UFW(简单防火墙)以保护您的服务的完整指南。

🛡️ 在 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

✅ 最佳实践

  1. 在启用之前始终允许 SSH:确保在启用防火墙之前允许 SSH 端口(22)。

  2. 最小权限原则:仅允许您的服务所需端口和 IP。

  3. 测试规则:在断开连接之前,测试一切是否正常工作。

  4. 监控日志:定期检查日志以检测入侵尝试。

  5. 使用 fail2ban:将 UFW 与 fail2ban 结合使用,以加强对暴力破解攻击的防护。

🆘 故障排除

我被锁定在服务器外

如果您在启用防火墙后被锁定:

  1. 使用您的凭据联系 Infrawire 支持
  2. 如果可用,请使用控制面板中的 VNC/KVM 控制台
  3. 直接连接并禁用 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 吗?
答:可以,但安装可能不同。请查阅您的发行版文档。


配置顺利!🚀