Van egy fejlesztői gépem a munkahelyemen, és azon vannak dolgaim. Ide értve mindenféle git repository-kat és más fejlesztői cuccokat. Ezen felül otthon is van ilyen gépem, néha azon dolgozom (hétvégén). Előfordul néha, hogy elfelejtek push-olni, és ott maradnak rajta dolgok. Aztán hazajövök, és a hétvégi éles rendszer frissítéskor derül ki, hogy valami nem volt push-olva. Vagy épp fordítva: hétvégén dolgozok otthon, és a munkahelyemen jövök rá hogy 100 sor kód hiányzik. Ez csak egy példa probléma a sok közül ami abból adódik, hogy valamit lementek egy gépre, és később már nem tudom elérni.
Ezeken a gépeken vannak olyan bizalmas dolgok is, ami miatt teljes lemez titkosítás van rajta (LUKS). (Pl. szerződésben foglaltak miatt van amit csak titkosítva lehet tárolni.)
Gondoltam arra hogy bekapcsolva hagyom ezeket a gépeket, hogy mindig el tudjam érni, de ezt elvetettem. A lehetséges sok indok közül az egyik, hogy nem akarok környezetet szennyezni, és miért menjen a gép egész héten/hétvégén, mikor 95% valószínűséggel nincs rá szükség. Egyébként biztonsági szempontból ez lenne az ideális, de nagy pazarlás lenne az otthoni gépemet bekapcsolva tartani egész héten.
Az ideális megoldás olyan, hogy a gép nem fogyaszt semmit ha nincs rá szükség, távolról fel tudom éleszteni, és a teljes lemez titkosítva van. De ha valaki kiveszi belőle az adathordozót, akkor nem fér hozzá az adatokhoz (jelszó nélkül).
A felélsztésre elvileg lehetőséget kínálna az alaplapon bekapcsolható "wake on lan" funkció. De a teljes lemezes titkosítás miatt sajnos ez így működésképtelen, a boot-oláskor nem tudom beírni a jelszót ha nem vagyok ott.
Elvi lehetőség lenne a részleges titkosítás - távolról elindítható a gép, de a bizalmas adatokat külön partícióra tenném, ami már csak jelszóval védve érhető el. Egyrészt ezt nem nehéz kijátszani (meg lehet root-olni a rendszert amikor nem veszem észre). Másrészt ez feltételezi azt, hogy előre tudni fogom hogy mik azok a könyvtárak amiben bizalmas adatok vannak, és hogy ez időben nem változik, és garantáltan nem tévedek benne.
Gondolkodtam azon is, hogy az alap rendszeren belül elindítok docker-ben egy másik rendszert, és ennek a másik rendszernek a root partíciója lenne titkosított lemezen. A külső rendszer csak egy üres héj lenne, és minden más a "belső" rendszerben. Ez csak egy kósza ötlet, még nem próbáltam megvalósítani. Nem vagyok benne hogy ez elég hatékony lenne (pl. teljes fejlesztői környezetet docker-ben elindítani, és ezt mégis hogy fogom kiteni a host gépen futó X szerverre?)
Újabb ötlet: bérelt szerveren indítok egy tightvnc-t és azon fejlesztek ssh tunnel-en át. Ott a fizikai hozzáférés korlátozása megfelelő mértékben megvalósul, és nincsen probléma az elindítással meg a leállítással. De sajnos ez se működik mindig. Van például egy olyan projekt amiben digitális nagyothalló készülékeket kell programozni egy speciális programozó eszközön keresztül. Na ezt például egy távoli szerveren nem lehet (egy bérelt VM-re nem tudom rádugni ezt az eszközt, és nem tudom rajta cserélgetni a füleseket).
Egyéb elvetemült ötlet: hibernálni a gépet, és feléleszteni ha szükség van rá. Ez egyébként ideális lehetne: szinte nulla fogyasztás, teljes lemez titkosítás és bármikor föl lehet éleszteni. Linux hibernálásban nem vagyok otthon, fogalmam sincs hogy ezt hogy lehetne megoldani úgy, hogy hibernált állapotból fölébredjen wake-on-lan -ra, és ne kérje be újra a LUKS jelszavát.
Tulajdonképpen ezt az utolsót leszámítva nem jut eszembe jó megoldás, de ehhez meg nem tudom hogy kezdjek hozzá.
Gondoltam megkérdezem itt, hátha valakinek van egy jó ötlete.