Я хочу запускать небольшие ненадежные программы, но не ограничивать их доступом к файлам за пределами их папки, сетевого доступа и всего остального, что им действительно не нужно. Каков самый простой способ достичь этого?
Я хочу запускать небольшие ненадежные программы, но не ограничивать их доступом к файлам за пределами их папки, сетевого доступа и всего остального, что им действительно не нужно. Каков самый простой способ достичь этого?
Если они действительно ненадежны, и вы хотите быть уверенными, вы создали бы отдельный блок. Либо на самом деле, либо практически.
Кроме того, вы не хотите, чтобы этот ящик находился в той же сети, что и ваш важный материал, если вы достаточно параноикны. Во всех решениях вы настроили отдельного пользователя без прав, чтобы не открывать слишком много инструментов для потенциального компрометатора.
Если вы привязаны к запуску в одном и том же поле, у вас есть, например, этот параметр
В конце концов, возможно, вам понадобится настроить конкретную модель песочницы без проблем виртуализации или отдельных ящиков или ситуации с отсутствием риска chroot. Я сомневаюсь, что это то, что вы имели в виду, но посмотрите на эту ссылку для получения более подробной информации: Ссылка
Docker поможет вам настроить контейнеры, которые вы можете отключить от вашего текущего ядра, но все равно оставайтесь в стороне от остальной части вашей системы. Это похоже на передний край, но в Ubuntu есть хорошая документация.
Одним из возможных решений является программное обеспечение для виртуализации, такое как виртуальное поле, которое вы можете найти в программном центре.
Теперь вы можете установить программное обеспечение, которому не доверяете, чтобы узнать, что он делает. Он не может нарушить внешний мир или ОС хоста, поскольку он не имеет доступа.
Он может уничтожить вашу виртуальную машину, но если это возможно, вы можете просто восстановить ее из моментального снимка.
Могут быть другие методы ограничения разрушительной силы ненадежного программного обеспечения, но это самый надежный метод, о котором я могу думать.
Другим вариантом может быть LXC дополнительная информация здесь
LXC - это пакет управления пользовательским пространством для Linux Containers, легкий механизм виртуальной системы, который иногда называют «chroot on steroids».
LXC формируется из chroot для реализации полных виртуальных систем, добавляя механизмы управления ресурсами и изоляции к существующей инфраструктуре управления процессами Linux.
Он доступен в программном центре. Однако у меня нет опыта.
Firejail является довольно новым и постоянно развивается. Прост в использовании.
Вы можете просто:
sudo apt-get install firejail
firejail app
Вы можете использовать subuser , чтобы изолировать ваши приложения с помощью Docker. Это позволяет делать такие вещи, как приложения с графическим интерфейсом sandbox, что нелегко сделать с Docker напрямую.
Я думаю, что возможным решением является создание отдельного пользователя для целей тестирования и ограничение его привилегий. Таким образом, вы не потеряете производительность, что определенно произойдет на виртуальной машине, но я думаю, что это менее безопасно, если не настроить очень правильно, и я не могу советоваться о том, как это сделать. Р>
Если вы просто хотите, чтобы песочница работала с пользователями, вы можете использовать «dosh» Ссылка