Это свежая копия ubuntu на моем nVidia Jetson Nano, и я пытаюсь добавить следующее правило, чтобы заблокировать доступ к сети для пользователя 1001.
sudo iptables -A OUTPUT ! -o lo -m owner --uid-owner 1001 -j DROP
Я получаю следующую ошибку:
iptables: нет цепочки / цели / совпадения с этим именем.
blockquote>Вот что я попробовал, это работает (ДА) и не работает (НЕ)
- ДА - Удалите критерии соответствия и замените на какое-то другое условие, например источник или цель [ 114]
- ДА - На другой аналогичной установке на Raspberry Pi
- НЕ - Изменить цепочку или цель на ВХОД, ПРИНЯТЬ и т. Д.
- НЕ - использовать другого пользователя
- НЕ - Попробуйте использовать имена пользователей вместо идентификатора пользователя
- НЕ - Попробуйте другое совпадение, например --gid-owner
- НЕ - Сброс таблиц, перезагрузка ПК и т. Д.
- НЕ - Убрал
! -o lo
из вышеприведенной командыЭто мне не по силам, я действительно много чего перепробовал и прочитал через несколько сообщений с одинаковой ошибкой - в большинстве случаев они пытаются сделать что-то сложное - но это просто (и работает на моей другой установке!). Любые мысли о том, как это понять, будут оценены. Спасибо!
РЕДАКТИРОВАТЬ: Основываясь на комментариях ниже, вот результаты:
grep CONFIG_NETFILTER_XT_MATCH /boot/config-$(uname -r)
grep: /boot/config-4.9.140-tegra: Нет такого файла или каталога
blockquote>Я вручную проверил наличие файла, и в папке загрузки нет файла, который начинается с config-XX. Дополнительно:
iptables -m owner --help
Не удалось определить, поддерживается ли ревизия 1, при условии, что это так.
....
опции соответствия владельца:
[!] --Uid-owner userid [-userid] Соответствие локальному UID
[!] --Gid-owner groupid [-groupid] Соответствие локальному GID
[!] --Socket-существующие Сопоставить, если сокет существует
blockquote>
sudo modinfo ipt_owner
Должен возвращать информацию о модуле, загружен он или нет. В большинстве дистрибутивов для настольных компьютеров и серверов они скомпилированы в ядро и будут перечислены здесь.
вы можете попробовать загрузить его с помощью sudo modprobe ipt_owner
, но если это так, я подозреваю, что ваш дистрибутив не связывает его. Возможно, вы используете не «официальный» релиз Ubuntu, а тот, который был собран из источников ubuntu какой-либо третьей стороной?
Затем вам нужно загрузить исходные коды ядра и скомпилировать модуль самостоятельно для поддержки вашего варианта использования