A VPN-konfiguráció csak akkor éli túl a konténer újralétrehozását, ha felcsatolod
A futó konténerben szerkesztett fájl egy eltűnő rétegben él. Hasonlítsd össze a bind mountokat, volume-okat és secreteket, majd hozd létre újra, és ellenőrizz négy dolgot.
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-vpnA 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.
| Mechanism | Survives recreation | Who can read it |
|---|---|---|
| Writable layer | No | Anyone with container access, until it is gone |
| Bind mount | Yes, while the host path exists | Whatever the host permissions allow |
| Named volume | Yes, until the volume is removed | Managed by the runtime |
| Secret | Yes, as a declared input | The 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.