Навіщо використовувати lxc замість chroot?


10

На одному сервері ubuntu розміщено 3 програми на окремих доменах.
У кожного додатка є свої розробники.
Розробники додатків належать до групи "sftp" linux.
chrootдозволяє доступ до пароля sftp для кожного розробника програми.

/home/app1/prod
/home/app2/prod
/home/app3/prod

В sshd_config

Match Group sftp  
  PasswordAuthentication yes
  ChrootDirectory %h
  ForceCommand internal-sftp
  AllowTcpForwarding no

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

Чи слід використовувати контейнер lxc замість chroot? Чому? Чи буде зміна контейнерів lxc прозорою для розробників додатків?


2
Єдине, chrootщо потрібно зробити - це змінити кореневий каталог для процесу. Він не пропонує ізоляції чи іншого.
Зоредаче

Відповіді:


14

Контейнери Linux (LXC) - це метод віртуалізації на рівні операційної системи для запуску декількох ізольованих установок сервера (контейнерів) на одному хості управління. LXC не забезпечує віртуальну машину, а навпаки, забезпечує віртуальне середовище, яке має власний процес і мережевий простір. Він схожий на chroot, але пропонує набагато більше ізоляції.

Контейнери Linux мають ряд особливостей / переваг:

Переваги:

Краща ізоляція порівняно з chroot (chroot тюрмою). Низькі накладні. LXC використовує мінімальні ресурси з точки зору оперативної пам’яті та місця на жорсткому диску без витрат на установку гостьової ОС у віртуальну машину (VMWare / VirtualBox / KVM).

Програми та сервіси (сервери) працюють із нативною швидкістю.

Існує підтримка контейнерів Linux в libvirt.

Контейнери Linux добре працюють з btrfs.

Але є і мінус:

Контейнери Linux виконують процеси Linux на ядрі Linux. Це означає, що ви можете запускати Linux (контейнер Fedora на хості Ubuntu), але не інші операційні системи (не BSD / OSX / Windows).

Немає графічних інтерфейсів для налаштування або управління контейнерами.

Існує невелика кількість документації щодо встановлення та налаштування контейнера. Налаштування контейнера вимагає скромних технічних знань та майстерності (та великого зерна терпіння).


1
яке ядро ​​використовується всередині LXC? (той, від господаря чи гостьовий?)
Франческо

4
Багато переваг і недоліків порівнюють LXC з повною віртуалізацією, що не має значення для поставленого питання і, можливо, навіть вводить в оману.
Роджер Дуек

@Francesco, з LXC, (і Linux-контейнерами взагалі) є лише одне ядро ​​- хост-ядро. Деякі винятки з цього, наприклад, Docker працює на MacOS або Windows, оскільки вони використовують ядро ​​Linux, що працює у віртуальній машині; однак усі контейнери Linux на цих платформах все ще використовують одне ядро.
лють
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.