Назад | Перейти на главную страницу

Как лучше всего устанавливать программы в chroot / jail?

В системе на основе Debian ...

Я создал минимальный chroot / jail, используя скрипт, похожий на тот, что на https://github.com/pmenhart/make_chroot_jail/blob/master/make_chroot_jail.sh с целью создания тюрьмы, которая не может делать ничего, кроме запуска желаемых программ (в целях безопасности). У меня вопрос: после того, как тюрьма была установлена, какой способ установки программ в нее считается лучшим? Поскольку джейл минимален, нет менеджера пакетов, такого как apt, и нет инструментов для сборки.

Придется ли мне устанавливать программу в обычную учетную запись и копировать все необходимые файлы в каталог chroot? Если да, как мне отслеживать все внесенные изменения, чтобы знать, что мне нужно делать? Небольшую программу, такую ​​как rkhunter, я могу легко отслеживать, но более крупную, такую ​​как MySQL, я бы не смог, так как было бы слишком много файлов для копирования и файлов конфигурации для изменения.

В качестве альтернативы, есть ли способ установить в тюрьму минимальный менеджер пакетов, такой как apt, установить необходимую программу и, наконец, удалить менеджер пакетов?

Есть ли лучший способ сделать это, о котором я не знаю?

Спасибо!

Прежде чем кто-нибудь предложит обратное:

  1. Есть несколько способов настроить chroot-тюрьмы. Лично я видел более 50 различных сценариев для этого. Все тюрьмы похожи, но имеют меньшие или большие различия, поэтому общего способа что-либо делать внутри них нет.

  2. Наиболее распространенное использование chroot jail при установке программного обеспечения - это установка всего из исходников. Иногда chroot-тюрьмы используются специально для установки программного обеспечения из исходного кода, избегая зависимости, установленной на локальном компьютере от пакетов (например, zlib, libpng или других распространенных библиотек).

  3. К сожалению, общим для многих различных сценариев chroot jail является то, что они не имеют «режима обновления», поэтому каждый раз, когда вы хотите обновить пакеты базового системного программного обеспечения или программное обеспечение внутри тюрьмы, вам придется заново настраивать эту тюрьму. Это, конечно, может быть написано сценарием, но это отличается от обычного обновления пакета.

  4. Найдите технологии паравиртуализации OpenVZ или LXC. Оба они используются для создания «контейнеров» (отдельных систем с общим ядром). Оба основаны на концепции chroot, но с добавленным разделением на многие другие уровни внутри ядра.

LXC новее и современнее, однако OpenVZ обеспечивает гораздо лучшую изоляцию безопасности. И в обоих из них вы можете установить почти полную систему с менеджером пакетов, библиотеками из пакетов и т. Д., Так что вы можете обычно устанавливать и обновлять программное обеспечение, как и в вашей базовой системе.