OpenVPN-kliens kiépítése hibánál megálló szakaszokkal
Öt szakasz akadályozza meg, hogy egy kiépítési szkript fél kész telepítést hagyjon: ellenőrizd a bemeneteket, készítsd elő a készletet, cserélj atomikusan, aktiválj egyetlen tulajdonost, tervezd meg a kivezetést.
A hibát jelentő, majd tovább futó kiépítési szkriptek rosszabbak, mint amelyek soha nem futnak le. Az ügyfél beállítása védett kulcsokat, egy identitást az átjárónál és egy olyan szolgáltatást érint, amely esetleg már forgalmat szolgál ki. Mindegyiküknek szüksége van leállítási feltételre, a szkriptnek pedig tudnia kell, melyik szakaszig jutott, amikor megállt.
Kezeld az egészet egyetlen tranzakcióként öt ellenőrzési ponttal, és érd el, hogy minden ellenőrzési pont magától megtagadja a folytatást.
Javítsd a bemeneteket, mielőtt a fájlrendszerhez nyúlsz
Kezdd egy kifejezett szerződéssel: egy identitás, egy profilforrás, egy szándékolt szolgáltatástulajdonos. Ellenőrizd, hogy a profil létezik, hogy a hivatkozott tanúsítvány és kulcs olvasható, és hogy a célkönyvtár a várt csomaghoz tartozik. Egy feloldódó útvonal nem bizonyíték arra, hogy a mögötte lévő anyag teljes.
Utasítsd el az üres változókat korán. Egy beállítatlan $DEVICE, amely semmivé terjeszkedik, a install -m 400 $KEY /etc/openvpn/client/ parancsot könyvtárra irányuló másolattá teszi, és a hiba később olyan szolgáltatásként érkezik, amely nem tudja beolvasni a kulcsát.
Állítsd össze a profilkészletet egy előkészítő könyvtárban
Először építsd fel a teljes készletet egy privát helyen: profil, CA, ügyféltanúsítvány, kulcs és minden segédeszköz, amelyet a profil hív. Másolj install -m 400 -o root -g root használatával, hogy a jogosultságok létrehozáskor és ne utána álljanak be. Ezután ellenőrizd a profilon belüli hivatkozásokat, mert a relatív ca vagy key sor az egység munkakönyvtárához képest oldódik fel, amint a szolgáltatás elindul. Semmit nem szabad az élő könyvtárba írni, amíg a teljes készlet nem validál.
Rögzíts egy nem titkos ujjlenyomatot arról, amit ez a futás előállított, például egy verziójelölő mellé mentett sha256sum office.conf-öt. Ez az egyetlen érték az, amely lehetővé teszi egy újabb futásnak, hogy megkülönböztesse a frissítést a semmittevéstől.
Cserélj atomikusan, és tartsd meg az előző készletet
Helyezd át az előkészített készletet egyetlen művelettel a helyére ott, ahol a fájlrendszer engedi, és tartsd meg az átnézett előző készletet időbélyeges néven. Az a részleges másolat, amely új profilt hagy egy régi kulcs mellett, olyan szolgáltatást hoz létre, amely rossz identitással hitelesít, és semmi hasznosat nem naplóz az okról. Ha a csere nem lehet atomikus, úgy rendezd az áthelyezéseket, hogy a profil érkezzen utoljára.
Ha a cél már létezik, kifejezetten döntsd el, hogy ez a futás frissítés, azonos ismételt futás vagy ütközés egy másik eszköz profiljával. Egy másik identitáshoz tartozó profil csendes felülírása az az út, amelyen két gép végül egyetlen tanúsítványt oszt meg. Utasítsd el a futást, és nevezd meg az ütköző tulajdonost.
Aktiválj egyetlen tulajdonost, és bizonyítsd
Válassz egyetlen aktiválási útvonalat, akár a systemd példányt, akár a NetworkManagert, és használd következetesen. Egy nem kezelt openvpn folyamat indítása egy engedélyezett egység mellett két alagutat, versengő DNS-frissítéseket és nem ad világos választ arra, melyiket célozza egy leállító parancs. Aktiválás után ellenőrizd a systemctl is-active openvpn-client@office állapotát, majd a távoli előtag felé vezető útvonalat, majd a resolvectl status kimenetét az alagút által telepített feloldóhoz. Fejezd be azzal, hogy elérsz egy erőforrást, amelyért az alagút létezik.
Egy futó folyamat és egy zöld tálcai ikon folyamattények, nem bizonyíték arra, hogy az identitás és a forgalmi szabályzat túlélte az átadást.
Az ismételt futás és a kivezetés külön munkafolyamatok
Egy második futásnak ugyanazokra az átnézett fájlokra és ugyanarra a tulajdonosra kell konvergálnia, nem pedig második fiókot vagy második szolgáltatást létrehoznia. A kivezetés saját eljárás: állítsd le a pontos tulajdonost, archiváld vagy töröld a helyi profilt a szabályzat szerint, és vonj vissza identitást az átjárónál. Egy helyi kulcsfájl törlése nem vonja vissza a gépről már eltávozott másolatot.
Tarts fenn egy helyreállítási útvonalat, amely nem függ az alagúttól, például konzolhozzáférést vagy egy második felügyeleti útvonalat. Az a kiépítési változtatás, amely kizár a gépből, sikertelen változtatás akkor is, ha minden szakasz sikerről számolt be.
A megtartásra érdemes szkript a tulajdon és a bizonyíték körüli tranzakció. A kiemelt másolási parancsok rövid listája nem ugyanaz.