Ubuntu 操作系统中使用 UFW 配置防火墙

1. 什么是 UFW?

UFW (Uncomplicated Firewall) 是 Ubuntu 提供的一个简化的防火墙管理工具,基于 iptables,旨在让防火墙配置变得更加简单易用。

2. 安装 UFW

在大多数 Ubuntu 版本中,UFW 已经默认安装。你可以通过以下命令确认是否已安装:

sudo ufw status

如果未安装,可以通过以下命令进行安装:

sudo apt update
sudo apt install ufw

3. 设置默认防火墙规则

在启用 UFW 之前,建议先设置默认规则,避免意外断开 SSH 连接:

# 默认拒绝所有传入连接
sudo ufw default deny incoming

# 默认允许所有传出连接
sudo ufw default allow outgoing

# 允许 SSH (22端口),避免开启防火墙后无法连接服务器
sudo ufw allow 22/tcp

4. 启用和禁用 UFW

# 启用 UFW
sudo ufw enable

# 禁用 UFW
sudo ufw disable

⚠️ 注意:在远程服务器上启用防火墙前,务必确保已允许 SSH 端口,否则可能会被锁在服务器外面!

5. 检查 UFW 状态

sudo ufw status

6. UFW 基本命令

# 允许其他常用端口 (示例: 80 端口用于 HTTP, 443 端口用于 HTTPS)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 拒绝特定端口
sudo ufw deny 23

# 查看 UFW 详细状态
sudo ufw status verbose

# 以编号形式显示所有规则
sudo ufw status numbered

# 删除编号为 3 的规则
sudo ufw delete 3

# 删除规则(非编号方式)
sudo ufw delete allow 80

# 重置 UFW 所有规则
sudo ufw reset

7. UFW 复杂规则示例

# 仅允许特定 IP 通过 TCP 协议访问指定端口 (例如 MySQL 3306 端口)
sudo ufw allow from 192.168.1.100 to any port 3306 proto tcp

# 允许特定 IP 通过 UDP 协议访问指定端口 (例如 1194 端口,用于 OpenVPN)
sudo ufw allow from 192.168.1.100 to any port 1194 proto udp

# 开放一个端口范围 (例如 10000 到 20000 端口,用于 VoIP 或游戏服务器)
sudo ufw allow 10000:20000/tcp

# 限制 SSH (防止暴力破解)
sudo ufw limit ssh

# 细化限制:每 IP 每 30 秒最多 6 次连接,超过则拒绝 (默认规则)
sudo ufw limit 22/tcp

# 你也可以为其他服务设置类似的连接限制,例如 HTTP 服务
sudo ufw limit 80/tcp

8. 防火墙日志

# 启用日志(建议在排查问题时使用)
sudo ufw logging on

# 查看 UFW 日志
sudo tail -f /var/log/ufw.log



本文出处:HiFeng's Blog
本文链接:https://hicairo.com/post/80.html
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA许可协议。转载请注明出处!