ufw
(Uncomplicated Firewall)是 Ubuntu 中一个简单易用的防火墙管理工具,基于 iptables
,旨在简化防火墙配置。以下是 ufw
的详细说明和使用方法:
1. 安装 ufw
在大多数 Ubuntu 系统中,ufw
已经预装。如果没有安装,可以通过以下命令安装:
sudo apt update
sudo apt install ufw
2. 启用和禁用 ufw
-
启用
ufw
:sudo ufw enable
启用后,
ufw
会随系统启动自动加载。 -
禁用
ufw
:sudo ufw disable
3. 查看 ufw
状态
-
查看当前状态和规则:
sudo ufw status
如果显示
Status: inactive
,表示ufw
未启用。 -
查看详细状态(包括默认规则):
sudo ufw status verbose
4. 设置默认规则
ufw
的默认规则决定了未明确允许或拒绝的流量的处理方式。
-
默认拒绝所有传入流量,允许所有传出流量:
sudo ufw default deny incoming sudo ufw default allow outgoing
-
默认允许所有传入流量,拒绝所有传出流量:
sudo ufw default allow incoming sudo ufw default deny outgoing
5. 允许和拒绝规则
-
允许特定端口:
sudo ufw allow 22/tcp # 允许 SSH(TCP 端口 22) sudo ufw allow 80/tcp # 允许 HTTP(TCP 端口 80) sudo ufw allow 443/tcp # 允许 HTTPS(TCP 端口 443)
-
允许特定服务:
sudo ufw allow ssh # 允许 SSH sudo ufw allow http # 允许 HTTP sudo ufw allow https # 允许 HTTPS
-
允许特定 IP 地址:
sudo ufw allow from 192.168.1.100 # 允许来自 192.168.1.100 的所有流量 sudo ufw allow from 192.168.1.0/24 # 允许来自 192.168.1.0/24 网段的所有流量
-
允许特定端口范围:
sudo ufw allow 6000:6010/tcp # 允许 TCP 端口 6000 到 6010
-
拒绝规则:
sudo ufw deny 22/tcp # 拒绝 SSH(TCP 端口 22) sudo ufw deny from 192.168.1.100 # 拒绝来自 192.168.1.100 的所有流量
6. 删除规则
-
删除允许或拒绝规则:
sudo ufw delete allow 22/tcp # 删除允许 SSH 的规则 sudo ufw delete deny 22/tcp # 删除拒绝 SSH 的规则
-
通过规则编号删除:
- 查看规则编号:
sudo ufw status numbered
- 根据编号删除规则:
sudo ufw delete 2 # 删除编号为 2 的规则
- 查看规则编号:
7. 限制连接速率
ufw
支持限制特定端口的连接速率,防止暴力破解。
- 限制 SSH 连接速率(每分钟最多 6 次连接):
sudo ufw limit 22/tcp
8. 日志管理
-
启用日志记录:
sudo ufw logging on
-
禁用日志记录:
sudo ufw logging off
-
查看日志:
sudo tail -f /var/log/ufw.log
9. 重置 ufw
如果需要清除所有规则并重置 ufw
,可以执行以下命令:
sudo ufw reset
10. 常用命令总结
命令 | 说明 |
---|---|
sudo ufw enable | 启用 ufw |
sudo ufw disable | 禁用 ufw |
sudo ufw status | 查看 ufw 状态 |
sudo ufw allow <port> | 允许特定端口 |
sudo ufw deny <port> | 拒绝特定端口 |
sudo ufw delete <rule> | 删除规则 |
sudo ufw logging on | 启用日志记录 |
sudo ufw reset | 重置 ufw |
11. 示例配置
以下是一个常见的 ufw
配置示例:
# 设置默认规则
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 允许 SSH、HTTP 和 HTTPS
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
# 限制 SSH 连接速率
sudo ufw limit ssh
# 启用日志记录
sudo ufw logging on
# 启用 ufw
sudo ufw enable
12. 注意事项
- 在远程服务器上配置
ufw
时,务必先允许 SSH 端口,否则可能导致无法远程连接。 ufw
规则会立即生效,请谨慎操作。- 如果需要更复杂的防火墙配置,可以直接使用
iptables
。
通过 ufw
,你可以轻松管理 Ubuntu 系统的防火墙规则,保障系统安全。