Создание "песочницы" Linux с помощью AppArmor

Я пытаюсь изолировать определенный процесс Python, предоставляя ему доступ только к сетевым коммуникациям и выбору количества файлов в файловой системе. Я следовал инструкциям на сайте документации сообщества Ubuntu и статье проекта Chromium об их песочнице.

Однако я хочу заблокировать только некоторые процессы Python. Чтобы обойти это, я поставил символическую ссылку на исполняемый файл Python в другое место (назовите его python sandbox) и применил к нему профиль AppArmor.

Когда я запускаю python-sandbox Я все еще могу открывать произвольные файлы в файловой системе и читать из них. В чем дело? Я сделал следующее:

Создали профиль AppArmor следующим образом:

#include <tunables/global>
/opt/python-sandbox {
    #include <abstractions/base>
    #include <abstractions/fonts>
    /proc/** r,
    /usr/lib/python2.7/** r,
    /usr/local/lib/python2.7/** r,
    network,
}

Скопировал его в /etc/apparmor.d/ каталог с именем opt.python-sandbox (так как символическая ссылка на /opt/python-sandbox,

Бежать apparmor_parser /etc/apparmor.d/opt.python-sandbox,

Я сделал что-то неправильно? Должен ли я рассмотреть другой подход?

1 ответ

Решение

Ага! Я что-то пропустил. Очевидно, известно, что AppArmor вообще не работает с символическими ссылками. Копирование исполняемого файла Python в /opt/python-sandbox работало нормально.

Другие вопросы по тегам