核心关系
在 Debian 上,真正的防火墙能力来自内核的 netfilter 框架;iptables 是操作 netfilter 的用户空间命令行工具,用于配置包过滤与 NAT 规则。许多 Debian 系统上还会安装 UFW(Uncomplicated Firewall) 作为更易用的前端,UFW 的底层依然是 iptables(或直接操作 netfilter)。自 Debian 10(Buster) 起,许多场景默认切换到 nftables,而 iptables 命令在很多发行版中作为兼容层指向 iptables-nft(可用 iptables -V 查看,如显示 “nf_tables” 即为 nft 后端);Debian 9(Stretch) 时代则普遍以 iptables 为主。整体链路可概括为:netfilter(内核)← iptables/nftables(用户态配置)← UFW/firewalld(前端)。
层次与组件对照
| 层级 | 作用 | 在 Debian 中的典型组件/命令 |
|---|---|---|
| 内核框架 | 提供数据包拦截与处理钩子(Hook) | netfilter(Hook:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING) |
| 规则配置工具 | 管理规则表/链/动作 | iptables(传统工具)、nft(新工具);两者都基于 netfilter |
| 前端管理工具 | 简化常用策略配置 | UFW(Debian 常用)、firewalld(常见于 RHEL 系,Debian 可用但不默认) |
| 说明:iptables 的规则结构为“四表五链”(表:filter、nat、mangle、raw;链:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING),对应 netfilter 的五个处理点。 |
如何选择与搭配
ufw allow 22/tcp、ufw enable 等快速配置常见服务端口。适合大多数服务器与桌面场景。iptables 命令可能实际调用 iptables-nft。如需使用传统语义,可通过 update-alternatives 切换到 iptables-legacy;用 iptables -V 检查当前实现。常用操作示例
sudo iptables -L -n -vsudo iptables -t nat -L -n -vsudo ufw allow 22/tcpsudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw enable && sudo ufw statussudo iptables -A INPUT -p tcp --dport 22 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -j ACCEPTsudo iptables-save > /etc/iptables/rules.v4,并在网络启动脚本中恢复netfilter-persistent 服务管理