Контейнери LXC як середовище пісочниці


9

В даний час я починаю проект з оцінювання ненадійних програм (завдання учнів) в безпечному середовищі з пісочницею. Основна ідея - створити веб-додаток для обгортки GlassFish та Java навколо lxc-utils для управління контейнерами LXC. У ньому буде черга програм очікування, а обгортка Java підтримуватиме фіксовану кількість (пул) контейнерів LXC, призначаючи кожній програмі один (невикористаний) контейнер.

Кожен контейнер повинен бути захищений SELinux для захисту хост-системи.

Моє запитання: чи гарна ідея створити такий механізм для середовища пісочниці, чи є краще рішення цієї проблеми? Він повинен бути легким і захищеним від творчості учнів.

Відповіді:


6

Ви не писали, чому ви обираєте LXC, оскільки це не найбезпечніше рішення для віртуалізації. Я важкий користувач KVM / XEN, а також LXC, і я можу сказати це одне, що, коли мова заходить про безпеку, я ніколи не йду з контейнерами Linux (незалежно від того, чи LXC / OpenVZ / VServer). З KVM / XEN це просто простіше (і надійніше).

Якщо мова йде про вимоги до продуктивності або обладнання, то нормально - ви можете спробувати з LXC, але є деякі правила, яких слід дотримуватися:

  • libvirt забезпечує суворе обмеження контейнерів при використанні SELinux (завдяки LXC_driver) - не впевнений, хоча це лише випадок RHEL / Centos / Fedora (я не дуже використовую Ubuntu / Debian) https://www.redhat.com/archives /libvir-list/2012-January/msg01006.html - тож перехід із SELinux - це гарна ідея (на мою думку, це "повинно бути" за таких обставин)
  • Встановіть суворі правила для груп, щоб ваші гості не змусили вашого господаря замерзати або впливати на інші контейнери
  • Я б краще пішов з контейнерами на основі LVM - це завжди ще один рівень "безпеки"
  • Подумайте про мережеве рішення та архітектуру. Чи повинні ці контейнери спілкуватися один з одним?

Почніть з читання цього - воно досить старе, але все ж - є багато знань. А також - зустрічайте простори імен користувачів

І після цього все подумайте ще раз - чи дійсно у вас так багато часу, щоб грати з безпекою LXC? KVM просто набагато простіше ...


Перш за все, дякую за відповідь. Я вибираю LXC, тому що мені потрібно щось легке, і воно буде працювати всередині KVM. Можна запустити KVM всередині KVM?
eXPi

1

Для запуску ненадійних програм простори імен Linux все ще є найкращим рішенням. Його простіше налаштувати, ніж KVM, і для цього потрібно менше ресурсів. Ви можете спробувати LXC, проте LXC був побудований як більш загальна пісочниця для запуску повних дистрибутивів Linux. Два інших пісочниці просторів імен Linux:

  • Пісочниця Google Chrome , що зараз розповсюджується в Google Chrome / Chromium
  • Firejail , це пісочниця безпеки, створена для роботи Mozilla Firerfox та будь-якої іншої програми GUI.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.