LINUX.ORG.RU
ФорумTalks

Аналог Sandboxie для Linux

 , , ,


1

3

Всем привет.

Ищу аналог Sandboxie для онтопика. В Sandboxie мне нравится, что в ней можно:

  • создать отдельную песочницу для каждого приложения. И в настройках Launcher этого приложения указать в какой песочнице запускаться.
  • запускать параллельно несколько песочниц.
  • настраивать самоочиску песочниц после закрытия приложения.
  • «вынимать» из песочницы файлы, которым я доверяю.

Кто нибудь знает альтернативы? Я попробовал flatpak, но понял, что на Sanboxie он не похож.



Последнее исправление: hobbit (всего исправлений: 1)

Ответ на: комментарий от alex1101

ну… firejail это какое-то недоделанное творение на коленке. И оно не изолирует приложения. Например, я запускаю Firefox в firejail. Ставлю в якобы изолированном firefox add-on. И этот add-on появляется в не изолированном firefox. То есть изоляции нет.

StoryTeller
() автор топика
Ответ на: комментарий от StoryTeller

Кури профили, ёпт. По умолчанию браузеры загоняются в джейл в которым то нельзя, сё нельзя, но в ~/.local/share/mozilla или чё-то там - как раз таки можно. Как разрешение уберёшь - ничего туда сохранить не смогут.

token_polyak ★★★★★
()
Последнее исправление: token_polyak (всего исправлений: 2)

Насчёт прямого аналога не подскажу, но с контейнеризацией в линуксе всё неплохо обстоит. Только она больше под сервер заточена, вестимо.

Запустите в докере, например : https://hub.docker.com/r/linuxserver/firefox

Или через systemd machine, например

NDfan
()
Последнее исправление: NDfan (всего исправлений: 1)

bubblewrap.

И приведу простой пример:

$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --tmpfs /home firefox

В данном случае корень монтируется в режиме только чтения, и вместо реальных каталогов /var, /run, /tmp и /home монтируются новые в оперативной памяти (tmpfs), таким образом реальные каталоги Firefox не увидит. И так как это все монитруется в оперативку, после завершения работы Firefox и дочерних процессов песочница уничтожается.

Монтировать каталоги именно в tmpfs необязательно, можно создать отдельный реальный каталог и монтировать его, например, в качестве /home:

$ mkdir -p /home/user/firefox_new_home
$ bwrap --ro-bind / / --dev-bind /dev /dev --tmpfs /var --tmpfs /run --tmpfs /tmp --bind /home/user/firefox_new_home /home/user firefox

И тогда все конфиги будут сохранены в этом каталоге.

Если у тебя еще всякие /mnt и /media и в них что-нибудь смонтировано, то их тоже нужно будет смонтировать в tmpfs, чтобы скрыть их содержимое от приложения.

И начинать лучше не с Firefox, а с файлового менеджера, чтобы понять что видно изнутри песочницы.

Кроме того, еще может быть необходимо смонтировать сокет Wayland (если у тебя Wayland) или сокет X и файл Xauthority (если у тебя Xorg), иначе графические приложения не запустятся.

--bind /tmp/.X11-unix /tmp/.X11-unix --bind $XAUTHORITY $XAUTHORITY

Чтобы не заморачиваться с сокетами, можно просто не перемонтировать /var, /run и /tmp в tmpfs.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 7)

Мне проще установить отдельную систему в systemd-nspawn контейнер. Самоочистку можно сделать путем использования снэпшотов btrfs.

Но смутно припоминаю, что в X нет изоляции процессов, то есть, если мы открыли доступ к экрану для Firefox (некоторые, к тому же, делают это через xhost +, LOL, даже в интернете полно таких рекомендаций), то вражеский код сможет делать снимки экрана, перехватывать нажатия клавиш, и так далее.

Что сделать для полностью безопасной изоляции - не знаю, кроме нескольких отдельных устройств, или виртуалок, в крайнем случае.

emorozov
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)