Назад | Перейти на главную страницу

Ограничение доступа процесса к сети в Linux?

Я изучал, как создавать процессы в песочнице, и наткнулся на контрольные группы, которые выглядели многообещающими. Мне не очень интересно использовать для этого виртуализацию или strace, так как я хочу, чтобы программы выполнялись как можно быстрее. Я также знаю о SELinux / AppArmor, но я ищу что-то, что не требует исправления ядра, если это возможно.

Я знаю, что cgroups можно использовать для ограничения использования cpu / mem и доступа к файловой системе, но можно ли их использовать для предотвращения открытия сокетов процессом или привязки к портам? Или есть что-то, что я мог бы использовать вместе с cgroups для ограничения доступа к сети? Было бы здорово иметь возможность ограничить каждый из них по отдельности.

Еще раз спасибо!

Вы можете настроить iptables правила, которые соответствуют UID / GID или диапазону UID / GID. Использовать --uid-owner и --gid-owner параметры, чтобы выбрать UID / GID для сопоставления, а затем запустить процесс под одной из этих учетных записей пользователей.

Такие правила должны быть в OUTPUT или POSTROUTING цепи.