UFW 使用
UFW 是 Debian 上的简单防火墙管理工具,默认封装了 iptables
,适合大多数普通用户。
1. 安装 UFW 服务
2. 允许 SSH 访问
- 如果是通过 SSH 远程管理服务器,则必须先允许 SSH 端口(默认是
22
),否则会导致 SSH 连接断开:
3. 启用 UFW 服务
4. 使用 UFW 服务
开放特定服务 / 端口
- 允许指定 IP 访问某个端口(比如只允许
192.168.1.100
可以访问 22 端口)
1
| sudo ufw 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
|