# 在 Debian 12 中管理 nftables 防火墙 (2025)
## 默认防火墙:nftables
Debian 12 默认安装并启用 nftables。其配置文件位于 /etc/nftables.conf。
nftables 是一个功能强大且灵活的工具,用于设置规则以允许或拒绝特定的网络流量。
## 查看防火墙状态
查看当前 nftables 规则:
sudo nft list ruleset
如果 nftables 未安装或未启用,可以使用以下命令管理服务:
# 检查服务状态
sudo systemctl status nftables
# 启动服务
sudo systemctl start nftables
# 设置开机启动
sudo systemctl enable nftables
## 管理 nftables 规则
使用 nft 命令管理防火墙规则。以下是常见操作:
### 1. 查看规则
sudo nft list ruleset
### 2. 添加规则
允许来自特定 IP 的流量:
sudo nft add rule ip filter input ip saddr 192.168.1.100 accept
拒绝来自特定 IP 的流量:
sudo nft add rule ip filter input ip saddr 192.168.1.100 drop
### 3. 保存规则
为了在重启后保留规则:
sudo nft list ruleset > /etc/nftables.conf
### 4. 清空规则
删除所有现有规则:
sudo nft flush ruleset
### 5. 删除规则
使用 sudo nft list ruleset 查找规则的 handle,然后删除:
sudo nft delete rule ip filter input handle <rule_handle>
## 配置 nftables
编辑配置文件:
sudo nano /etc/nftables.conf
### 示例配置
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iif “lo” accept
ct state established,related accept
tcp dport ssh accept
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
此配置:
– 默认丢弃所有传入流量。
– 允许环回接口、已建立/相关连接以及 SSH(22 端口)。
– 丢弃所有转发流量。
– 允许所有传出流量。
## 使用 ufw 与 nftables
ufw(简易防火墙)是 nftables 的简化前端,默认未启用,可安装并使用:
# 安装 ufw
sudo apt install ufw
# 启用 ufw
sudo ufw enable
注意:如果已手动配置 nftables,建议避免使用 ufw,以防规则冲突。
## 总结
– Debian 12 默认使用 nftables 作为防火墙。
– 可通过 nft 命令直接管理规则,或使用 ufw 简化操作。
– 始终将规则保存到 /etc/nftables.conf 以确保持久化。
– 测试规则时需谨慎,避免锁定系统访问。
如需高级配置,请参阅 man nft 或官方 nftables 文档。
暂无评论内容