VPN konfiguracija preživljava ponovno stvaranje kontejnera samo ako je montirate
Datoteka uređena unutar pokrenutog kontejnera živi u sloju koji nestaje. Usporedite bind mountove, volumene i tajne, zatim ponovno stvorite i provjerite četiri stvari.
Uređujete WireGuard konfiguraciju unutar pokrenutog kontejnera, radi, a sljedeće ažuriranje slike briše je. Ništa nije bilo pogrešno konfigurirano. Datoteka je živjela u zapisivom sloju kontejnera, koji postoji samo za tu instancu kontejnera. Važna usporedba nije koji alat koristiti, nego koje ulaze vaše postavljanje deklarira. Sve što ste uredili ručno ulaz je za koji postavljanje ne zna.
Dvije vrste stanja, jedno je za odbaciti
Kontejner ima zapisivi sloj za promjene napravljene za vrijeme rada, a taj se sloj odbacuje kada se kontejner zamijeni. Nije spremište konfiguracije i nije sigurnosna kopija. Slika plus deklarirani ulazi cijela su definicija onoga što radi.
Pitajte koje su vaše VPN datoteke deklarirani ulazi, a koje slučajnosti:
docker diff wg-vpn
docker inspect --format '{{json .Mounts}}' wg-vpnDiff navodi što se promijenilo u zapisivom sloju, a to je upravo skup stvari koje će nestati. Popis mountova pokazuje što preživljava. Usporedba to dvoje odgovara na pitanje prije nego što nešto izgubite.
Bind mount, imenovani volumen ili tajna: što svaki štiti
Sva tri mogu držati VPN profil i razlikuju se po tome tko ga može čitati i što se događa pri zamjeni.
| 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 |
Bind mount mapira putanju hosta, pa je datoteka zaštićena onoliko koliko je zaštićena ta putanja i vidljiva onoliko koliko dopuštaju dozvole hosta. Imenovanim volumenom upravlja runtime i preživljava uklanjanje kontejnera, što ga čini sigurnijim zadanim izborom za stanje koje posjeduje postavljanje. Mehanizam tajne namijenjen je materijalu koji ne želite u slici ili varijabli okruženja.
Ne tretirajte svaku varijablu okruženja i svaku datoteku hosta kao jednaku zaštitu, jer nisu.
Uređivanje unutar kontejnera je zamka
Zamka nije alat, nego smjer uređivanja. Promjena napravljena unutar pokrenutog kontejnera nevidljiva je postavljanju, pa je sljedeće ponovno stvaranje tiho vraća i simptom izgleda kao regresija u slici. Ako morate nešto promijeniti tamo radi dijagnostike, odmah to kopirajte van i stavite u deklarirani ulaz. Zatim ponovno stvorite da dokažete da postavljanje to reproducira.
Profil može nositi privatne ključeve i računski materijal, što sigurnosnu kopiju te datoteke čini zadatkom rukovanja tajnama, a ne kopijom datoteke. Držite vlasništvo i pristup čitanju ograničene na stvarni proces kontejnera, umjesto da proširite direktorij hosta kako bi greška dozvola nestala.
To proširenje je način na koji pogodnost u kontejneru postaje izloženost hosta.
Namjerno ponovno stvorite, zatim provjerite četiri stvari
Zapišite verziju slike, potrebni uređaj i mogućnosti, mrežno povezivanje i trajne ulaze. Popis uređaja i mogućnosti posebno je važan za VPN kontejner, jer tunel treba mrežni uređaj i privilegiju da ga konfigurira.
Potvrdite koje generirano stanje rada treba ponovno izgraditi, a ne sačuvati. Ključevi koje je tunel generirao pri prvom pokretanju su stanje, a odluka da li ih zadržati ili ponovno generirati ima posljedice za svakog peera koji zna stari javni ključ.
Nakon kontroliranog ponovnog stvaranja provjerite identitet, usmjeravanje, DNS i potrebnu blokadu pri kvaru. Proces koji se pokrene bez grešaka ne dokazuje nijednu od te četiri stvari. Provjerite to dok je tunel aktivan i ponovno nakon što ga zaustavite, jer blokada pri kvaru pokazuje se samo kada tunel nestane.
Držite kopiju za oporavak izvan kontejnera
Držite kopiju za oporavak koja živi neovisno od kontejnera i testirajte njezino vraćanje kroz dokumentirani postupak. Netestirana sigurnosna kopija VPN profila je nada, posebno kada putanja oporavka uključuje dozvole koje proces kontejnera treba.
Ako se kontejner koji posjeduje VPN zamijeni, uskladite aplikacije koje dijele njegov mrežni stog u okviru podržanog životnog ciklusa runtimea.
Ta usklađenost je razlika između restarta i prekida. Postavljanje treba opisati odakle konfiguracija dolazi, a dokumentacija o volumenima mjesto je gdje provjeravate što runtime zaista čuva.