这是我的 nVidia Jetson Nano 上的 ubuntu 的新副本,我正在尝试添加以下规则来阻止用户 1001 的网络访问。
sudo iptables -A OUTPUT ! -o lo -m owner --uid-owner 1001 -j DROP
我收到以下错误:
iptables:没有该名称的链/目标/匹配。
以下是我尝试过的方法,有效(是)和无效(否)
- 是 - 删除匹配条件并替换为其他条件,如源或目标
- 是的 - 在树莓派上的另一个类似安装
- 不——将链或目标更改为输入或接受等。
- 不-使用其他用户
- 不 - 尝试使用用户名而不是用户 ID
- 不 - 尝试不同的匹配,如--gid-owner
- 不——刷新表格,重新启动电脑等
! -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 源构建的版本?
然后你需要下载内核源代码并自行编译模块以支持你的用例