UFW 使用
UFW 是 Debian 上的简单防火墙管理工具,默认封装了 iptables,适合大多数普通用户。
1. 安装 UFW 服务
2. 允许 SSH 访问
- 如果是通过 SSH 远程管理服务器,则必须先允许 SSH 端口(默认是
22),否则会导致 SSH 连接断开:
3. 启用 UFW 服务
4. 使用 UFW 服务
开放特定服务 / 端口
- 允许指定 IP 的所有入站和出站流量(比如允许
192.168.1.100 访问所有端口)
1 2
| sudo ufw allow from 192.168.1.100 sudo ufw allow out to 192.168.1.100
|
- 允许指定 IP 访问某个端口(比如只允许
192.168.1.100 访问 22 端口)
1
| sudo ufw allow from 192.168.1.100 to any port 22
|
关闭特定服务 / 端口
1
| sudo ufw delete allow 80/tcp
|
1
| sudo ufw delete allow 443/tcp
|
1
| sudo ufw delete allow 3306/tcp
|
- 拒绝指定 IP 的所有入站和出站流量(比如拒绝
192.168.1.100 访问所有端口)
1 2
| sudo ufw delete allow from 192.168.1.100 sudo ufw delete allow out to 192.168.1.100
|
- 拒绝指定 IP 访问某个端口(比如只拒绝
192.168.1.100 访问 22 端口)
1
| sudo ufw delete allow from 192.168.1.100 to any port 22
|
拒绝所有未允许的连接
1 2
| sudo ufw default deny incoming sudo ufw default allow outgoing
|
5. 管理 UFW 服务
关闭防火墙
查看防火墙状态
仅列出已开放的端口
1
| sudo ufw status | grep "ALLOW"
|
重新加载防火墙规则
UFW 规则默认是持久化的,但在某些情况下,可能需要手动重新加载规则。重新加载 UFW 规则,适用于以下情况:
- 手动修改了
/etc/ufw/user.rules 文件(直接编辑文件后需要 reload 才能生效)。 - 某些服务未正确应用 UFW 规则(很少见,可能是规则未生效)。
- 重启 UFW 以确保规则即时生效(一般不需要)。
查看防火墙状态和已开放的端口
1
| sudo ufw status numbered
|
Iptables 使用
Debian 12 默认安装了 iptables 服务,可以通过 iptables --help 获取命令帮助手册,iptables 适用于对防火墙有更精细控制要求的高级用户。
查看现有防火墙规则
1
| sudo iptables -L -v --line-numbers
|
开放特定服务 / 端口
1
| sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
|
1
| sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
|
1
| sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
|
拒绝所有未允许的连接
1 2 3
| sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPT
|
持久化 iptables 规则
在 Debian 12 上,iptables 规则默认在系统重启后会丢失,iptables-persistent 工具允许将 iptables 规则保存到 /etc/iptables/rules.v4(IPv4)和 /etc/iptables/rules.v6(IPv6)文件中,并在系统启动时自动恢复。
1
| sudo apt install iptables-persistent -y
|
- 保存当前的
iptables 规则,使其在重启后仍然生效
1
| sudo netfilter-persistent save
|
- 重新加载保存的
iptables 规则,使其立即生效
1
| sudo netfilter-persistent reload
|