UFW简明配置指南
在 VPS (Virtual Private Server) 运维中,安全是第一要素。UFW (Uncomplicated Firewall) 是 Ubuntu 和 Debian 系统上默认的防火墙配置工具。它旨在简化 iptables 的复杂语法,让用户能以更直观的方式管理网络流量。
1. 安装与基础状态
虽然大多数 Ubuntu 镜像默认安装了 UFW,但为了保险起见,可以检查一下。
1 | # 更新源并安装 UFW |
2. 设置默认策略 (Default Policies)
在添加具体规则之前,建议配置“默认拒绝所有入站连接,允许所有出站连接”的策略。这是一种安全基线,意味着除非你明确允许,否则没人能访问你的VPS,但你的VPS可以访问外部网络(如更新软件)。
1 | # 拒绝所有入站流量 |
3. ⚠️ 关键步骤:允许 SSH 连接
在启用防火墙之前,必须先允许 SSH 连接! 否则当你启动 UFW 时,你会被立即踢出服务器,且无法再次连接。
1 | # 允许默认 SSH 端口 (22) |
4. 常用服务配置指令
根据你的 VPS 用途,开放相应的端口。以下是最常见的配置场景:
Web 服务 (HTTP/HTTPS)
如果你运行网站(Nginx/Apache):
1 | # 允许 HTTP (80) |
数据库与邮件
1 | # 允许 MySQL (仅限受信任的 IP 访问比较安全,详见进阶) |
指定特定 IP 访问 (进阶安全)
如果你只想让你自己的 IP 访问某个端口(例如数据库或 SSH):
1 | # 格式: sudo ufw allow from <IP地址> to any port <端口号> |
5. 启用与管理防火墙
配置好规则后,正式启用防火墙。
1 | # 启用防火墙 (系统会提示可能会中断 SSH,输入 y 确认) |
6. 删除规则与查看状态
查看带编号的规则列表
这是管理规则最方便的方式,因为你可以通过编号来删除规则。
1 | sudo ufw status numbered |
输出示例:
1 | Status: active |
删除规则
假设你想删除上面列表中的第 2 条规则(即 80/tcp):
1 | # 按编号删除 |
7. 重置配置
如果你把规则配置乱了,想从头开始:
1 | # 禁用 UFW 并删除所有自定义规则,恢复默认设置 |
💡 快速检查清单
- 设置默认拒绝入站 (
default deny incoming). - 务必允许 SSH (
allow ssh). - 允许必要的业务端口 (如 80, 443).
- 启用防火墙 (
enable). - 检查状态 (
status).