Shellbox/cs



Shellbox je knihovna pro provádění příkazů a také server a klient pro vzdálené provádění příkazů. Primárně byl implementován do sandboxu LilyPond (používaný Score extension) a poskytuje způsob, jak MediaWiki může využívat externí binární soubory, aniž by je bylo nutné spouštět ve stejném kontejneru. Byl navržen a schválen prostřednictvím RFC:Mikroslužby PHP pro spouštění kontejnerového prostředí. Shellbox je použitelný od.

Informace o používání Shellboxu v MediaWiki jsou k dispozici na.



Nastavení serveru
Doporučuje se nastavit Shellbox tak, aby běžel jako neprivilegovaný uživatel v izolovaném kontejneru bez přístupu k externí síti. Wikimedie pro tento účel používá Kubernetes a má Helm graf, který může být znovu použitelný.

Do kontejneru by měly být nainstalovány následující balíčky: Apache2, PHP-FPM a jakékoli příkazy, které potřebujete (např. ,   atd.).

V následujících příkladech používáme  jako interní název hostitele kontejneru.


 * Získání zdroj Shellbox a jeho závislosti:
 * Vytvoření neprivilegovaného uživatele pro Shellbox:
 * Vytvoření dočasný pracovní adresář pro Shellbox:
 * Vytvoření konfigurační soubor Shellbox odkazující na dočasný pracovní adresář :
 * Vygenerování tajného klíče. Důrazně se doporučuje používat 128bitovou minimální sílu, takže zde používáme 16 náhodných bajtů formátovaných do hexadecimálního řetězce:
 * Vytvoření konfiguraci Apache  a vložte tajný klíč dovnitř:
 * Chránění konfiguračního souboru Apache před neoprávněným čtením tajného klíče a neoprávněnými úpravami jakýmkoli jiným uživatelem systému nebo skupinou než těmi, kteří jsou nakonfigurováni ke spuštění samotného Apache na serveru:
 * Vytvoření konfigurace fondu PHP-FPM. Když je Shellbox nakonfigurován tímto způsobem, nemá oprávnění k připojení k socketu PHP-FPM:



Konfigurace MediaWiki


Předpřipravené kontejnery
Wikimedie má předpřipravené kontejnery, které obsahují Shellbox, jeho závislosti a PHP-FPM:


 * Wikimedia Docker registry for Shellbox containers

Tyto obrázky v současné době nemají žádnou záruku stability/verzování (potřebujeme pomoc, jak to zjistit).

Trasy
Shellbox odhaluje cestu  pro manuální a automatické kontroly stavu. Má také rozhraní PHP-RPC pro spouštění kódu PHP v sandboxu.