SQcrypto.sh
Kryptování vrstev není pro crypto životně důležité, protože umí použít i plain sqimage. Ale je žádoucí pokud vrstva obsahuje data, která by šlo zneužít. U Full-Disklessu jsou tahle data na NFS serveru. V adresáři, který je dostupný jen laboratorním strojům. Autonomní Half-Diskless však má snapshoty vrstev uložené jako soubory, takže si je uživatel, který se přihlásí jako lokální root, může zkopírovat, rozbalit na jiném stroji a vytáhnout dejme tomu ssh klíč, který se používá během přihlášení k založení neexistujícího domovského adresáře. Ale nelze vyloučit, že se v nějaké vrstvě vyskytnou jiné věci, které by volně dostupné být neměly. Proto se produkční vrstvy kryptují.
Pro vytvoření kryptované verze vrstvy z plain sqimage se používá stroj lab-burget – virtuální Half-Diskless, který má k dispozici virtuální blokové zařízení sdílené přes NFS a vrstvu 1111/crypto, ve které je skript SQcrypto.sh
a soubory potřebné pro sestavení dynamického ramdisku.
Skript je použitelný jen pod uživatelem root, který má povolen ssh přístup (ověřovaný klíčem) na server, kde je úložiště vrstev. |
- Nejprve se spustí stroj lab-burget v Half-Diskless konfiguraci, do které se přidá mezi použité vrstvy nový plain sqimage vytvořený na straně serveru skriptem
SQimage.sh
. - Během spuštění se stáhne na lokální blokové zařízení, do subvolume, které si
SQcrypto.sh
namountuje na adresář/local
- Během akce crypt udělá kopii stažené plain sqimage, kterou zakryptuje a použije při tom dekapitovanou hlavičku, kterou vytvoří v adresáři
/tmp
. Dekapitovanou hlavičku lze zabalit do archivu chráněného heslem rovnou během fáze crypt, pokud se zadá heslo jiné, než řetězecdefault
činone
- Pokud se použije
none
, zůstane hlavička rozbalená. A pokud se použijedefault
, použije skript jako heslo kontrolní součet zakrytovaného souboru. - Hotové soubory se odesílají přes SSH do úložiště na stroji k333-lab, kde zapíše další položka do souboru
changelog
při akci send. Použití kryptované verze vrstvy už je záležitostí konfigurace.
Při akci send se odešle vždy hlavička kontejneru i kryptovaný obsah, bez ohledu na to jestli se zadá jako parametr cesta k dekapitované hlavičce, nebo zakryptovanému blobu. |