6

Только что установил firejail в Ubuntu 16.04 (версия 0.9.38) и, согласно этой статье в журнале linux , по умолчанию он должен выполнять R/O для всей файловой системы:

Программы в песочнице имеют доступ только для чтения ко всем каталогам и поэтому не могут манипулировать какими-либо важными файлами.

Теперь я попробовал следующее на моем компьютере:

  1. touch /disk5/test.txt
  2. firejail gvim /disk5/test.txt
  3. измените файл и сохраните его (wq!)
  4. cat /disk5/test.txt
  5. отображает изменения, сделанные gvim во время сессии firejail !

Это ожидаемое поведение? Разве Firejail не должен был защитить меня от перезаписи исходного файла? Что я сделал не так? Обратите внимание, что /disk5 монтируется в корневой файловой системе вне моего /home .

Поднял ошибку на github

2 ответа2

2

firejail не волшебный инструмент, который делает все правильно. Это инструмент безопасности, который позволяет вам определять свои собственные правила поведения. Например, эти аргументы:

firejail --noprofile

Не даст никакой защиты вообще. Потому что вы не указали никаких ограничений, и firejail разрешает по умолчанию. Чтобы сделать некоторые каталоги доступными только для чтения, вы должны написать это явно. Что-то вроде:

firejail --noprofile --read-only=/ --read-only=~ --read-only=/tmp

(Я написал / , ~ и /tmp отдельно, потому что firejail несколько удивительно ведет себя, сортируя ваши директивы по не совсем тривиальным правилам и делая свои собственные ~ mount в середине.)

Кроме того, без каких- либо аргументов --caps.drop=all , --seccomp и подобные ваши программы все равно не будут защищены. Потому что процесс может взаимодействовать с другими процессами через сокеты Unix, абстрактные сокеты и т.д., Используя их ошибки. Если вы хотите относительно нормальную "тюрьму", добавьте, по крайней мере, seccomp, caps.drop = all и nonewprivs директивы.

РЕДАКТИРОВАТЬ: цитата, которую вы упомянули, вероятно, просто неправильно. (Или я так думаю.) Это сложнее, чем просто «все только для чтения».

-3

Зачем вам хранить ваши программы в нестандартном каталоге Unix, например /disk5? Вы определенно просите неприятностей. Храните ваши исполняемые файлы в обычных местах, таких как /bin, /usr /bin. /usr /local /bin или даже /opt. Убедитесь, что все ваши исполняемые файлы принадлежат пользователю root, а обычные пользователи не имеют доступа к ним. Linux - это система Unix, просто следуйте правилам Unix, и вы будете в безопасности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .