Ju redaktoni konfigurimin e WireGuard brenda një kontejneri në punë, funksionon, dhe përditësimi tjetër i image e fshin atë. Asgjë nuk ishte konfiguruar gabimisht. Skedari jetonte në shtresën e shkrueshme të kontejnerit, e cila ekziston vetëm për atë instancë të kontejnerit. Krahasimi që ka rëndësi nuk është cili mjet të përdoret, por cilat hyrje deklaron vendosja juaj. Çdo gjë që keni redaktuar me dorë është një hyrje që vendosja nuk e njeh.

Dy lloje gjendjeje, njëri është i hedhshëm

Një kontejner ka një shtresë të shkrueshme për ndryshimet e bëra në kohë ekzekutimi, dhe ajo shtresë hidhet kur kontejneri zëvendësohet. Nuk është depo konfigurimi dhe nuk është kopje rezervë. Image plus hyrjet e deklaruara janë përkufizimi i plotë i asaj që ekzekutohet.

Pyetni cilat nga skedarët tuaj të VPN janë hyrje të deklaruara dhe cilat janë rastësi:

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

Diff liston çfarë ndryshoi në shtresën e shkrueshme, dhe ky është pikërisht grupi i gjërave që do të zhduken. Lista e mount tregon çfarë mbijeton. Krahasimi i të dyjave i përgjigjet pyetjes para se të humbni diçka.

Bind mount, volume me emër ose sekret: çfarë mbron secili

Të tre mund të mbajnë një profil VPN, dhe ndryshojnë në atë se kush mund ta lexojë dhe çfarë ndodh gjatë zëvendësimit.

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

Një bind mount përshënon një shteg të hostit, kështu që skedari është po aq i mbrojtur sa ai shteg dhe po aq i dukshëm sa lejojnë lejet e hostit. Një volume me emër menaxhohet nga runtime dhe mbijeton heqjen e kontejnerit, gjë që e bën atë zgjedhjen e paracaktuar më të sigurt për gjendjen që zotëron vendosja. Një mekanizëm sekreti është për materialin që nuk dëshironi në një image ose në një variabël mjedisi.

Mos e trajtoni çdo variabël mjedisi dhe çdo skedar hosti si mbrojtje ekuivalente, sepse nuk janë.

Redaktimi brenda kontejnerit është kurthi

Kurthi nuk është mjeti, por drejtimi i redaktimit. Një ndryshim i bërë brenda një kontejneri në punë është i padukshëm për vendosjen, kështu që rikrijimi tjetër e kthen atë në heshtje dhe simptoma duket si regresion në image. Nëse duhet të ndryshoni diçka atje për diagnostikim, kopjojeni menjëherë jashtë dhe vendoseni në hyrjen e deklaruar. Pastaj rikrijoni për të provuar se vendosja e riprodhon atë.

Një profil mund të mbajë çelësa privatë dhe material llogarie, gjë që e bën kopjen rezervë të atij skedari një detyrë të trajtimit të sekreteve, jo një kopjim skedari. Mbajini pronësinë dhe aksesin e leximit të kufizuara në procesin aktual të kontejnerit, në vend që të zgjeroni një drejtori të hostit që një gabim leje të zhduket.

Pikërisht ai zgjerim e kthen komoditetin brenda kontejnerit në ekspozim të hostit.

Rikrijoni me qëllim, pastaj verifikoni katër gjëra

Shkruani versionin e image, pajisjen dhe aftësitë e nevojshme, lidhjen e rrjetit dhe hyrjet e përhershme. Lista e pajisjeve dhe aftësive është veçanërisht e rëndësishme për një kontejner VPN, sepse tuneli ka nevojë për pajisjen e rrjetit dhe privilegjin për ta konfiguruar.

Konfirmoni cilën gjendje ekzekutimi të gjeneruar duhet të rindërtohet dhe jo të ruhet. Çelësat që tuneli gjeneroi në nisjen e parë janë gjendje, dhe vendimi për t'i mbajtur ose për t'i rigjeneruar ka pasoja për çdo peer që njeh çelësin publik të vjetër.

Pas një rikrijimi të kontrolluar, verifikoni identitetin, rrugëzimin, DNS dhe bllokimin e kërkuar të dështimit. Një proces që niset pa gabime nuk provon asnjë nga këto katër. Kontrollojeni ndërsa tuneli është aktiv dhe përsëri pasi ta keni ndalur, sepse bllokimi i dështimit shfaqet vetëm kur tuneli zhduket.

Mbani një kopje rikuperimi jashtë kontejnerit

Mbani një kopje rikuperimi që jeton e pavarur nga kontejneri, dhe testoni rikuperimin e saj përmes procesit të dokumentuar. Një kopje rezervë e patestuar e një profili VPN është një shpresë, veçanërisht kur rruga e rikuperimit përfshin leje që procesi i kontejnerit ka nevojë.

Nëse një kontejner që zotëron një VPN zëvendësohet, koordinoni aplikacionet që ndajnë stivën e tij të rrjetit brenda ciklit të jetës të mbështetur nga runtime.

Ai koordinim është ndryshimi midis një rindezjeje dhe një ndërprerjeje. Vendosja duhet të përshkruajë nga vjen konfigurimi, dhe dokumentacioni i volume është vendi për të kontrolluar çfarë runtime vërtet ruan.

Artikuj të ngjashëm