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.
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:
źródło