未找到 iptables 所有者模块 - 匹配错误“没有该名称的链/目标/匹配”

未找到 iptables 所有者模块 - 匹配错误“没有该名称的链/目标/匹配”

这是我的 nVidia Jetson Nano 上的 ubuntu 的新副本,我正在尝试添加以下规则来阻止用户 1001 的网络访问。

sudo iptables -A OUTPUT ! -o lo -m owner --uid-owner 1001 -j DROP

我收到以下错误:

iptables:没有该名称的链/目标/匹配。

以下是我尝试过的方法,有效(是)和无效(否)

  1. 是 - 删除匹配条件并替换为其他条件,如源或目标
  2. 是的 - 在树莓派上的另一个类似安装
  3. 不——将链或目标更改为输入或接受等。
  4. 不-使用其他用户
  5. 不 - 尝试使用用户名而不是用户 ID
  6. 不 - 尝试不同的匹配,如--gid-owner
  7. 不——刷新表格,重新启动电脑等
  8. ! -o lo不-从上面的命令中删除

这超出了我的理解范围,我确实尝试了很多方法,也阅读了很多帖子,但都出现了同样的错误 - 大多数情况下,他们都在尝试做一些复杂的事情 - 但这个很简单(而且在我的其他安装上有效!)。任何关于如何理解这一点的想法都将不胜感激。谢谢!

编辑:根据以下评论,输出如下:

grep CONFIG_NETFILTER_XT_MATCH /boot/config-$(uname -r)

grep:/boot/config-4.9.140-tegra:没有此文件或目录

我手动检查了该文件,发现启动文件夹中没有以 config-XX 开头的文件。此外:

iptables -m owner --help

无法确定修订版 1 是否受支持,假设受支持。

....

所有者匹配选项:

[!] –uid-owner userid[-userid] 匹配本地 UID

[!] –gid-owner groupid[-groupid] 匹配本地 GID

[!] --socket-exists 如果套接字存在则匹配

答案1

sudo modinfo ipt_owner

应返回模块是否已加载的信息。在大多数桌面/服务器发行版中,它被编译到内核中,并会在此处列出。

您可以尝试使用 sudo modprobe ipt_owner

但如果是这样,我怀疑你的发行版没有捆绑它。可能你使用的不是“官方”Ubuntu 版本,而是由第三方从 ubuntu 源构建的版本?

然后你需要下载内核源代码并自行编译模块以支持你的用例

相关内容