Szerkeszted a WireGuard-konfigurációt egy futó konténerben, működik, és a következő image-frissítés törli. Semmi sem volt rosszul beállítva. A fájl a konténer írható rétegében élt, amely csak ehhez a konténerpéldányhoz létezik. A fontos összehasonlítás nem az, hogy melyik eszközt használod, hanem hogy a telepítésed mely bemeneteket deklarálja. Minden, amit kézzel szerkesztettél, olyan bemenet, amelyről a telepítés nem tud.

Kétféle állapot, az egyik eldobható

A konténernek van egy írható rétege a futásidőben tett változtatásokhoz, és ezt a réteget eldobják, amikor a konténert lecserélik. Ez nem konfigurációs tároló és nem biztonsági mentés. Az image és a deklarált bemenetek adják a teljes meghatározását annak, ami fut.

Kérdezd meg, melyik VPN-fájljaid deklarált bemenetek, és melyek véletlenek:

docker diff wg-vpn
docker inspect --format '{{json .Mounts}}' wg-vpn

A diff felsorolja, mi változott az írható rétegben, és ez pontosan azoknak a dolgoknak a halmaza, amelyek el fognak tűnni. A mount-lista megmutatja, mi marad meg. A kettő összehasonlítása válaszol a kérdésre, mielőtt bármit elveszítenél.

Bind mount, nevesített volume vagy secret: mit véd melyik

Mindhárom tarthat VPN-profilt, és abban különböznek, ki olvashatja, és mi történik a cserénél.

MechanismSurvives recreationWho can read it
Writable layerNoAnyone with container access, until it is gone
Bind mountYes, while the host path existsWhatever the host permissions allow
Named volumeYes, until the volume is removedManaged by the runtime
SecretYes, as a declared inputThe container process, by design

A bind mount egy hosztútvonalat képez le, így a fájl annyira védett, amennyire az az útvonal, és annyira látható, amennyire a hoszt jogosultságai engedik. A nevesített volume-ot a runtime kezeli, és túléli a konténer eltávolítását, ami biztonságosabb alapértelmezéssé teszi a telepítés által birtokolt állapot számára. A secret-mechanizmus olyan anyagnak szól, amelyet nem akarsz image-ben vagy környezeti változóban.

Ne kezeld minden környezeti változót és hosztfájlt egyenértékű védelemként, mert nem azok.

A konténeren belüli szerkesztés a csapda

A csapda nem az eszköz, hanem a szerkesztés iránya. A futó konténerben tett változás láthatatlan a telepítés számára, ezért a következő újralétrehozás csendben visszaállítja, és a tünet image-beli regressziónak tűnik. Ha diagnosztikához ott kell változtatnod, azonnal másold ki, és tedd a deklarált bemenetbe. Aztán hozd létre újra, hogy bizonyítsd: a telepítés reprodukálja.

A profil tartalmazhat privát kulcsokat és fiókanyagot, ami miatt az ilyen fájl biztonsági mentése titkok kezelésével járó feladat, nem fájlmásolás. Tartsd a tulajdonjogot és az olvasási hozzáférést a konténer tényleges folyamatára korlátozva, ahelyett hogy egy hosztkönyvtárat szélesítenél ki, hogy eltűnjön egy jogosultsági hiba.

Ez a szélesítés az, ahogy a konténer kényelme a hoszt kitettségévé válik.

Hozd létre szándékosan újra, majd ellenőrizz négy dolgot

Jegyezd fel az image verzióját, a szükséges eszközt és képességeket, a hálózati csatlakozást és az állandó bemeneteket. Az eszköz- és képességlista különösen fontos egy VPN-konténer esetében, mert az alagútnak szüksége van a hálózati eszközre és a beállításához szükséges jogosultságra.

Erősítsd meg, melyik generált futásidejű állapotot kell újraépíteni a mentés helyett. Az alagút első indításkor generált kulcsai állapotot jelentenek, és hogy megtartod-e vagy újragenerálod őket, olyan döntés, amelynek következményei vannak minden peerre, aki ismeri a régi nyilvános kulcsot.

Ellenőrzött újralétrehozás után ellenőrizd az identitást, az útválasztást, a DNS-t és a szükséges hibaeset-blokkolást. Egy folyamat, amely hiba nélkül indul, egyiket sem bizonyítja a négy közül. Ellenőrizd, amíg az alagút fut, és újra leállítása után, mert a hibaeset-blokkolás csak akkor mutatkozik meg, amikor az alagút eltűnik.

Tarts helyreállítási másolatot a konténeren kívül

Tarts egy helyreállítási másolatot, amely a konténertől függetlenül él, és teszteld a visszaállítását a dokumentált folyamattal. Egy VPN-profil tesztelés nélküli biztonsági mentése remény, különösen amikor a helyreállítási útvonal olyan jogosultságokat érint, amelyekre a konténer folyamatának szüksége van.

Ha egy VPN-t birtokló konténert lecserélnek, hangold össze a hálózati veremét megosztó alkalmazásokat a runtime támogatott életciklusán belül.

Ez az összehangolás a különbség az újraindítás és a kimaradás között. A telepítésnek le kell írnia, honnan jön a konfiguráció, és a volume-dokumentáció az a hely, ahol ellenőrizheted, mit tartósít valójában a runtime.

Kapcsolódó cikkek