Ubuntu 21.10 已切换到 nftables,那么为什么 iptables 仍然可用?

Ubuntu 21.10 已切换到 nftables,那么为什么 iptables 仍然可用?

根据21.10 发行说明

nftables 现在是防火墙的默认后端。

但是,安装了 Ubuntu 21.10 后,我发现我仍然默认安装了 iptables(和 ufw):

m@m-VirtualBox:~$ whereis iptables

iptables: /usr/sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz

m@m-VirtualBox:~$ whereis ufw

ufw: /usr/sbin/ufw /usr/lib/ufw /etc/ufw /usr/share/ufw /usr/share/man/man8/ufw.8.gz

为什么会发生这种情况?

据我所知,ufw这是一个围绕 iptables 的包装器,而不是 nftables。

我可以安全地使用这些命令吗?或者我应该注意永远不要在终端中输入iptables或?ufw

答案1

执行完命令后whereis iptables,你应该关注以下文件。例如,从 20.04 服务器:

doug@s19:~$ whereis iptables
iptables: /usr/sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz
doug@s19:~$ ls -l /usr/sbin/iptables
lrwxrwxrwx 1 root root 26 Jan 23  2020 /usr/sbin/iptables -> /etc/alternatives/iptables
doug@s19:~$ ls -l /etc/alternatives/iptables
lrwxrwxrwx 1 root root 22 Apr 18  2021 /etc/alternatives/iptables -> /usr/sbin/iptables-nft
doug@s19:~$ ls -l /usr/sbin/iptables-nft
lrwxrwxrwx 1 root root 17 Feb 28  2020 /usr/sbin/iptables-nft -> xtables-nft-multi
doug@s19:~$ ls -l /usr/sbin/xtables-nft-multi
-rwxr-xr-x 1 root root 220488 Feb 28  2020 /usr/sbin/xtables-nft-multi

因此,iptables 实际上是在使用 nftables。

nftables 可以解释 iptables 语法。

答案2

我无法回答您的所有问题,但我确实知道其中一些问题的答案。

UFW 是一个防火墙抽象层,可以使用 iptables或者nftables 作为后端防火墙。它只是 Ubuntu 的得力助手,就像 Firewalld + Firewall-cmd 之于 Red Hat 变体一样。

Ubuntu 21.10 Server 的全新服务器安装显示了您所看到的内容 —— 事实上后端仍在标准服务器安装上使用 iptables。

xtables-nft-multi(或者简称为 xtables-multi)的手册页显示了解释:

xtables-nft 是使用 nftables API 的 iptables 版本。这是一组工具,用于帮助系统管理员将规则集从 iptables(8)、ip6tables(8)、arptables(8) 和 ebtables(8) 迁移到 nftables(8)。

据我所知,您说得对,虽然 Ubuntu 似乎正在转向使用 nftables 来替代 iptables,但他们还没有做到这一点。

不过,好消息是,如果您一直在使用 UFW,从管理角度来看什么都不会改变,因为 iptables 和 nftables 似乎可以互换,因为 nft 会接受 iptables 语法,即使您在 /etc/ufw/before.rules 中有奇怪的规则。

相关内容