Я хочу запускать небольшие ненадежные программы, но ограничить их доступ к любым файлам за пределами их папки, доступа к сети и всего остального, в чем они на самом деле не нуждаются. Какой самый простой способ добиться этого?
Я хочу запускать небольшие ненадежные программы, но ограничить их доступ к любым файлам за пределами их папки, доступа к сети и всего остального, в чем они на самом деле не нуждаются. Какой самый простой способ добиться этого?
Ответы:
Если они действительно не заслуживают доверия, и вы хотите быть уверенным, вы должны установить отдельное поле. Либо действительно, либо виртуально.
Кроме того, вы не хотите, чтобы этот ящик находился в той же сети, что и ваши важные вещи, если вы достаточно параноик. Во всех решениях вы бы создали отдельного пользователя без прав, чтобы не открывать слишком много инструментов для потенциального компромиссного решения.
Если вы обязаны запустить его в том же окне, у вас есть, например, эта опция
chroot
, Это вариант по умолчанию для многих людей, и для неспецифических угроз это может даже сработать. Но это НЕ вариант безопасности, и его можно легко взломать. Я бы предложил использовать это по назначению, то есть не для безопасности.В конце вам может понадобиться настроить конкретную модель песочницы без хлопот виртуализации или отдельных блоков, или ситуации все еще подверженной риску chroot
. Я сомневаюсь, что это то, что вы имели в виду, но посмотрите на эту ссылку для получения более подробной информации.
Firejail довольно новый и находится в постоянном развитии. Легко использовать.
Вы можете просто:
sudo apt-get install firejail
firejail app
Docker поможет вам настроить контейнеры, которые вы можете запускать из вашего текущего ядра, но хранить отдельно от остальной части вашей системы. Это кажется довольно современным, но в Ubuntu есть хорошая документация.
Одним из возможных решений является программное обеспечение для виртуализации, такое как VirtualBox, которое вы можете найти в центре программного обеспечения.
Теперь вы можете установить программное обеспечение, которому вы не доверяете, чтобы увидеть, что оно делает. Это не может расстроить внешний мир или вы размещаете ОС, так как у нее нет доступа.
Тем не менее, он может разрушить вашу виртуальную машину, но если это так, вы можете просто восстановить из своего снимка.
Могут быть и другие способы ограничения разрушительной силы ненадежного программного обеспечения, но это самый надежный метод, который я могу придумать.
Другой вариант может быть LXC больше информации здесь
LXC - это пакет управления пользовательским пространством для контейнеров Linux, облегченный механизм виртуальной системы, который иногда называют «chroot на стероидах».
LXC создается из chroot для реализации законченных виртуальных систем, добавляя механизмы управления ресурсами и изоляции в существующую инфраструктуру управления процессами Linux.
Это доступно в программном центре. У меня нет опыта, однако.
Mbox - это легкий механизм песочницы, который любой пользователь может использовать без специальных привилегий в обычных операционных системах.
Я использовал это для нескольких вещей надежно.
Вы можете использовать subuser для песочницы ваших приложений с Docker. Это позволяет вам делать такие вещи, как приложения для песочницы с графическим интерфейсом, что нелегко сделать напрямую с Docker.
sudo apt install subuser
Думаю, возможное решение - создать отдельного пользователя для целей тестирования и ограничить его привилегии. Таким образом, вы не потеряете в производительности, что определенно произойдет в виртуальной машине, но я думаю, что это менее безопасно, если не настроено очень правильно, что я не могу посоветовать, как это сделать.
В случае, если вы просто хотите изолировать деятельность пользователей, вы можете использовать «DoSH»
DoSH (что означает Docker SHell) - это разработка для создания контейнеров Docker, когда пользователи входят в систему Linux и запускают в них оболочку вместо простого создания оболочки.