ufw 工具介绍
UFW
(Uncomplicated Firewall)是 Ubuntu 提供的一个易于使用的防火墙配置工具,简化了 iptables
的复杂配置。它通过提供简单的命令来允许或拒绝网络流量规则,以保护你的服务器或系统。
下面详细介绍 UFW 命令及其选项。
1. UFW 基本命令
1.1. 启用防火墙
sudo ufw enable
- 作用:启用 UFW 防火墙并应用配置的规则。
- 注意:启用 UFW 后,系统将根据现有的规则进行流量过滤,建议在启用前检查规则以避免锁定自己。
1.2. 禁用防火墙
sudo ufw disable
- 作用:禁用 UFW 防火墙。此命令会立即停止所有防火墙规则,允许所有流量通过。
1.3. 检查防火墙状态
sudo ufw status
- 作用:显示防火墙的当前状态及活动规则(默认显示简要信息)。
- 选项:
status verbose
:显示详细的状态信息,包括默认的拒绝/允许规则、日志记录状态等。
1.4. 重置 UFW
sudo ufw reset
- 作用:重置 UFW,清除所有已定义的规则并禁用防火墙。使用该命令后需要重新启用和配置规则。
2. 配置防火墙规则
2.1. 允许或拒绝端口
-
允许端口
sudo ufw allow 22
- 作用:允许端口
22
(通常是 SSH)上的流量。你可以通过此命令打开其他服务的端口。
- 作用:允许端口
-
拒绝端口
sudo ufw deny 80
- 作用:拒绝 HTTP 服务(端口
80
)上的所有入站连接。
- 作用:拒绝 HTTP 服务(端口
-
删除规则
sudo ufw delete allow 22
- 作用:删除允许 SSH 端口 22 的规则。
deny
规则也可以通过类似方式删除。
- 作用:删除允许 SSH 端口 22 的规则。
2.2. 允许或拒绝协议
-
允许特定协议的流量
sudo ufw allow 443/tcp sudo ufw allow 53/udp
- 作用:分别允许 TCP 端口
443
(HTTPS)和 UDP 端口53
(DNS)上的流量。
- 作用:分别允许 TCP 端口
-
拒绝特定协议的流量
sudo ufw deny 443/tcp sudo ufw deny 53/udp
2.3. 允许或拒绝 IP 地址
-
允许来自特定 IP 地址的流量
sudo ufw allow from 192.168.1.100
- 作用:允许来自 IP 地址
192.168.1.100
的所有入站流量。
- 作用:允许来自 IP 地址
-
允许来自 IP 地址到特定端口的流量
sudo ufw allow from 192.168.1.100 to any port 22
- 作用:允许 IP 地址
192.168.1.100
访问 SSH 端口22
。
- 作用:允许 IP 地址
-
拒绝特定 IP 地址的流量
sudo ufw deny from 192.168.1.200
- 作用:拒绝来自 IP 地址
192.168.1.200
的所有流量。
- 作用:拒绝来自 IP 地址
2.4. 限制(防止暴力攻击)
sudo ufw limit ssh
- 作用:限制 SSH(端口
22
)的流量,防止暴力破解攻击。如果某个 IP 尝试在短时间内多次连接,该命令会自动拒绝该 IP 的请求。
2.5. 拒绝指定端口和子网的流量
sudo ufw deny proto tcp from 192.168.1.0/24 to any port 80
- 作用:拒绝来自子网
192.168.1.0/24
访问端口80
的 TCP 流量。可以根据需要指定协议和端口。
3. 默认规则
3.1. 默认拒绝入站连接
sudo ufw default deny incoming
- 作用:默认拒绝所有入站连接,确保只有明确允许的连接才会被通过。这是一个推荐的安全策略。
3.2. 默认允许出站连接
sudo ufw default allow outgoing
- 作用:默认允许所有出站连接。意味着本地系统可以自由地与外部网络通信。
3.3. 更改默认出站规则
sudo ufw default deny outgoing
- 作用:拒绝所有出站流量,确保只有明确允许的出站流量可以通过。这会加强系统的安全性,但可能需要对特定服务开放出站流量。
4. UFW 其他命令
4.1. 启用或禁用 UFW 日志记录
sudo ufw logging on
sudo ufw logging off
- 作用:启用或禁用防火墙的日志记录。启用后,UFW 会将有关流量的活动记录到
/var/log/ufw.log
中,方便管理员排查网络问题。
4.2. 显示所有规则编号
sudo ufw status numbered
- 作用:显示所有规则,并为每条规则分配一个编号。这在删除特定规则时非常有用。
4.3. 删除特定编号的规则
sudo ufw delete <编号>
- 作用:通过规则的编号删除规则。例如,
sudo ufw delete 3
将删除编号为3
的规则。
5. 应用场景的命令示例
5.1. 开启 HTTP 和 HTTPS 服务
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
- 作用:允许 HTTP 和 HTTPS 服务流量。
5.2. 限制 SSH 连接防止暴力破解
sudo ufw limit ssh
- 作用:防止暴力破解 SSH 的攻击。
5.3. 允许特定 IP 访问服务器
sudo ufw allow from 203.0.113.4
- 作用:允许 IP 地址
203.0.113.4
访问服务器。
5.4. 阻止特定 IP 的访问
sudo ufw deny from 192.168.1.123
- 作用:阻止来自 IP 地址
192.168.1.123
的所有访问。
总结
UFW 是一个简单但功能强大的防火墙工具,适合管理入站和出站的网络流量。它通过提供易于使用的命令行界面,简化了复杂的防火墙规则配置,特别适合于 Ubuntu 等系统环境。