Kontenery LXC jako środowisko piaskownicy


9

Obecnie rozpoczynam projekt oceniający niezaufane programy (zadania dla studentów) w bezpiecznym środowisku piaskownicy. Główną ideą jest stworzenie aplikacji internetowej dla GlassFish i Java wrappera wokół lxc-utils do zarządzania kontenerami LXC. Będzie miał kolejkę oczekujących programów, a opakowanie Java utrzyma stałą liczbę (pulę) kontenerów LXC, przypisując każdemu programowi jeden (nieużywany) kontener.

Każdy kontener powinien być zabezpieczony przy pomocy SELinux, aby chronić system hosta.

Moje pytanie brzmi: czy dobrym pomysłem jest stworzenie takiego mechanizmu dla środowiska piaskownicy, czy jest jakieś lepsze rozwiązanie tego problemu? Powinien być lekki i zabezpieczony przed kreatywnością studentów.

Odpowiedzi:


6

Nie napisałeś, dlaczego wybrałeś LXC, ponieważ nie jest to najbezpieczniejsze rozwiązanie do wirtualizacji. Jestem dużym użytkownikiem KVM / XEN, a także LXC i mogę powiedzieć tę jedną rzecz, że jeśli chodzi o bezpieczeństwo, nigdy nie używam kontenerów Linux (bez względu na to, czy LXC / OpenVZ / VServer). Jest to po prostu łatwiejsze (i bardziej niezawodne) dzięki KVM / XEN.

Jeśli chodzi o wydajność lub wymagania sprzętowe, to dobrze - możesz spróbować z LXC, ale są pewne zasady, których powinieneś przestrzegać:

  • libvirt zapewnia ścisłe zamknięcie kontenerów podczas korzystania z SELinux (dzięki LXC_driver) - nie jestem pewien, czy to tylko sprawa RHEL / Centos / Fedora (nie używam zbyt często Ubuntu / Debian) https://www.redhat.com/archives /libvir - list/2012 - J January / msg01006.html - więc korzystanie z SELinuksa jest dobrym pomysłem (moim zdaniem w takich okolicznościach jest to „must have”)
  • Ustaw surowe zasady grup, aby Twoi goście nie zamrozili Twojego hosta ani nie wpłynęli na inne pojemniki
  • Wolałbym używać kontenerów opartych na LVM - zawsze jest to jeszcze jedna warstwa „bezpieczeństwa”
  • Pomyśl o rozwiązaniu sieciowym i architekturze. Czy te kontenery muszą się ze sobą komunikować?

Zacznij od przeczytania tego - jest dość stary, ale wciąż - jest tam duża wiedza. A także - poznaj przestrzenie nazw użytkowników

A po tym wszystkim pomyśl jeszcze raz - czy naprawdę masz tyle czasu na zabawę z zabezpieczeniami LXC? KVM jest o wiele prostszy ...


Przede wszystkim dziękuję za odpowiedź. Wybieram LXC, ponieważ potrzebuję czegoś lekkiego i będzie działać w KVM. Czy można uruchomić KVM w KVM?
eXPi

1

Do uruchamiania niezaufanych programów przestrzenie nazw systemu Linux są nadal najlepszym rozwiązaniem. Jest łatwiejszy w konfiguracji niż KVM i wymaga mniej zasobów. Możesz wypróbować LXC, jednak LXC został zbudowany jako bardziej ogólny piaskownica do uruchamiania pełnych obrazów dystrybucji Linuksa. Przychodzą mi na myśl dwa inne obszary izolowane systemu Linux:

  • Piaskownica Google Chrome , obecnie dystrybuowana z Google Chrome / Chromium
  • Firejail , piaskownica bezpieczeństwa stworzona do uruchamiania Mozilla Firerfox i dowolnego innego programu GUI.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.