在Linux系统上管理防火墙,ufw(Uncomplicated Firewall) 是一个非常流行且易于使用的工具,它是iptables的一个前端。
🔧 UFW的安装
ufw通常预装在基于Debian的系统(如Ubuntu)上。如果你的系统没有,可以使用包管理器轻松安装。
| 系统发行版 | 安装命令 | 说明 |
|---|---|---|
| Ubuntu / Debian | sudo apt update && sudo apt install ufw | 更新软件源后安装。 |
| CentOS / RHEL / Fedora | sudo yum install ufw或sudo dnf install ufw | 根据你的系统版本使用yum或dnf。 |
| openSUSE | sudo zypper install ufw | 使用zypper包管理器。 |
| Arch Linux | sudo pacman -S ufw | 使用pacman包管理器。 |
安装完成后,通常需要启用并启动服务:
sudoufwenable# 启用防火墙并设置开机自启sudosystemctlenable--now ufw# 在一些系统上,这条命令能更可靠地启用并启动服务📖 UFW的基本操作与常用命令
掌握防火墙管理,关键是理解操作的对象(服务/端口)和动作(允许/拒绝)。下表汇总了最核心的命令:
| 操作类别 | 命令示例 | 作用说明 |
|---|---|---|
| 查看状态 | sudo ufw status | 查看防火墙规则和状态(简洁)。 |
sudo ufw status verbose或sudo ufw status numbered | 查看详细信息或带编号的规则。 | |
| 允许/拒绝连接 | sudo ufw allow 22/tcp | 允许TCP协议访问22端口(SSH)。 |
sudo ufw allow from 192.168.1.100 | 允许来自特定IP的所有连接。 | |
sudo ufw deny 80/tcp | 拒绝TCP协议访问80端口(HTTP)。 | |
| 按服务名操作 | sudo ufw allow ssh | 按服务名允许(ssh对应端口22)。 |
| 删除规则 | sudo ufw delete allow 22/tcp | 按规则内容删除。 |
sudo ufw delete 3 | 按status numbered显示的编号删除。 | |
| 禁用/重置 | sudo ufw disable | 禁用防火墙(规则保留)。 |
sudo ufw reset | 重置为初始状态(会清空所有规则)。 | |
| 基础配置 | sudo ufw default deny incoming | 默认拒绝所有入站连接(推荐)。 |
sudo ufw default allow outgoing | 默认允许所有出站连接(通常如此)。 |
💡 典型配置流程与示例
假设你要设置一台基础的Web服务器,通常需要:
- 设置默认策略(安全基线):
sudoufw default deny incomingsudoufw default allow outgoing - 放行必要的服务:
sudoufw allowssh# 允许SSH远程管理sudoufw allow http# 允许HTTP (端口80)sudoufw allow https# 允许HTTPS (端口443) - 启用并验证:
sudoufwenablesudoufw status verbose
⚠️ 重要安全提醒
- 远程操作务必谨慎:在通过SSH远程管理服务器时,务必先允许SSH端口(默认为22),再启用
ufw。否则可能会立即断开连接并被锁在服务器外。 - 放行SSH的命令:
sudo ufw allow ssh或sudo ufw allow 22/tcp。 - 如果你修改了SSH端口(例如为2222),则应该放行该端口:
sudo ufw allow 2222/tcp。