debian 10 和 11 nftables 是新的防火墙框架。
我有一些机器严重依赖旧的自定义 iptables 配置,除此之外我可以轻松地将所有内容移动到新的 debian 10/11 安装或升级以前的安装,大多数其他服务更新到当前版本没有问题。
现在,虽然我给自己一定的时间来学习 nftables(因为我想好好学习它并根据我的需要对其进行微调*):
目前禁用 nftables 并使用 iptables + iptables-persistent 的正确方法是什么?
(我想利用所有的安全更新并修复 Debian 10 附带的问题,同时让我有时间慢慢转向 nftables。)
还有奖金
一旦完成 nftables 配置,我想做相反的事情:如何切换回 nftables 并禁用 iptables ?
在某些方面我基本上是在问如何在 debian 10 和 11 上的 iptables 和 nftables 之间来回切换?
*我知道有一个实用程序可以帮助从 iptables 语法转换为 nftables 语法,但我更喜欢不要依赖自动转换。所以现在我更喜欢将 iptables 放回原处并慢慢手动更改规则。
答案1
它记录在Debian 维基:
update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
update-alternatives --set arptables /usr/sbin/arptables-legacy
update-alternatives --set ebtables /usr/sbin/ebtables-legacy
答案2
我在 Debian 11 上切换回 iptables,执行以下操作:
安装ebtables,arp表
ebtables 和 arptables 的更改update-alternatives
如下。下面是 arptables 的一个示例。只要安装了软件包,ebtables 的工作原理就相同。幸运的是,两个版本的二进制文件都包含“legacy”或“nft”
update-alternatives --install /usr/sbin/arptables arptables /usr/sbin/arptables-legacy 10 --slave /usr/sbin/arptables-save arptables-save /usr/sbin/arptables-legacy-save --slave /usr/sbin/arptables-restore arptables-restore /usr/sbin/arptables-legacy-restore
update-alternatives --install /usr/sbin/arptables arptables /usr/sbin/arptables-nft 20 --slave /usr/sbin/arptables-save arptables-save /usr/sbin/arptables-nft-save --slave /usr/sbin/arptables-restore arptables-restore /usr/sbin/arptables-nft-restore
如果您犯了一个拼写错误(像我一样),导致有关错误符号链接的错误消息,您可以使用以下命令手动删除更新替代配置:
rm /var/lib/dpkg/alternatives/arptables`
update-alternatives
但我建议对每个操作都使用该命令。
您应该随后使用 .. 检查所有命令(iptables、ip6tables、ebtables、arptables)的 update-alternative。--display
更改后端/etc/firewalld/firewalld.conf
:
#FirewallBackend=nftables
FirewallBackend=iptables
也许发出systemctl restart firewalld.service
并重新启动以确保其有效。
答案3
您仍然可以在 Debian 10 和 11 中使用 iptables。新 11(又名 Bullseye)部署上的默认配置不会安装 iptables,但可以轻松添加。
默认情况下,iptables 实用程序(iptables、iptables-save、ebtables 等)将实际配置 nftables 过滤器(并创建 nftables 规则)。所以iptables实际上是iptables-nft的链接。
netfilter-persistent 和 iptables 软件包仍然可用,提供 iptables-nft 和 iptables-legacy,请参阅:
# apt info iptables
如果您使用 iptables-nft,您只需加载 iptables 规则并列出它们即可。
# nft list ruleset
请注意 - 如果您使用 nftables 修改配置,则 iptables 将无法读取更改,因此您无法真正来回移动。
您正在采取正确的方法,不依赖自动转换并花时间研究新的网络过滤器。习惯新语法后,您可以创建更易于管理和操作的配置。