Profil OpenVPN v Git: čo odstrániť pred zápisom
Prečítajte súbor kvôli vloženým kľúčom, rozhodnite, čo smie repozitár distribuovať, a odvolajte prístup skôr, než prepíšete históriu.
Profily slúžia dvom účelom naraz: zaznamenávajú nastavenia pripojenia a nesú funkčnú sadu prihlasovacích údajov. Prípona súboru vám nič nehovorí o tom, ktorú z tých dvoch vecí držíte. Prečítajte obsah, skôr než rozhodnete, že patrí do repozitára.
Nasledujúce kroky predpokladajú, že sa zvažuje klientska šablóna pre správu verzií. Vykonajte ich po poradí a zastavte sa pred zápisom čohokoľvek, čo nemôžete odvolať.
Prečítajte súbor, ktorý sa chystáte pridať do indexu
Začnite od skutočných bajtov, pretože profil, ktorý odkazuje na samostatné súbory, vyzerá úplne inak než ten, ktorý ich vkladá. Hľadajte značky bloku PEM a vložené značky s názvami ca, cert, key, tls-auth a tls-crypt, a ten istý priechod vám ukáže oba prípady. Šifrovaný súkromný kľúč sa stále počíta ako citlivý materiál a zdieľaný kľúč tls-auth alebo tls-crypt je prihlasovací údaj, aj keď to nie je identita používateľa. Rovnakú kontrolu použite na všetko, čo sa pridáva do indexu spolu s profilom, vrátane archívov a inštalačných skriptov, ktoré odkazujú na súbor s údajmi.
Potom sa pozerajte na pripravenú sadu, nie na pracovný strom. git diff --cached ukazuje, čo bude zápis skutočne obsahovať, a to je jediná verzia, na ktorej pri tomto rozhodnutí záleží.
Rozhodnite, čo smie repozitár distribuovať
Šablóna môže niesť zdieľané, skontrolované nastavenia a pomenované zástupné prvky pre všetko, čo človek dostane pri zápise. Čo niesť nemôže, je použiteľná identita, pretože repozitár sa distribuuje všetkým, ktorí ho môžu čítať, vrátane automatizácie. Súkromný repozitár zužuje publikum, ale nemení otázku, či je každý čitateľ oprávnený pre tento údaj.
Pravidlo ignorovania bráni budúcim prírastkom a nič nerobí s tým, čo už je zaznamenané. Túto asymetriu stojí za to si osvojiť pred prvým zápisom, nie po desiatom. Názvy a adresy infraštruktúry sú samostatný úsudok: nie sú to tajomstvá overovania, ale môžu prezradiť viac, než tím hodlá zverejniť. Rozhodnite o tom výslovne, namiesto toho aby ste každý riadok triedili na heslo alebo verejné.
Ak je materiál už v histórii
Odstránenie riadku v novom zápise ponechá starú verziu nedotknutú pre každého, kto si ju stiahne. Berte expozíciu ako skutočnú: určte typ údaja a potom nájdite orgán, ktorý ho môže zneplatniť. Klientsky certifikát sa odvolá a zoznam odvolaných sa znova vygeneruje; zdieľaný kľúč riadiaceho kanála sa vymení na serveri a u každého klienta, ktorý ho používa.
Oba majú veľmi rozdielny dosah a plán by mal pred začiatkom uviesť, ktorý z nich vykonávate. Nájdite zápis, ktorý materiál zaviedol, hľadaním typu git log --all -S 'BEGIN PRIVATE KEY', aby bol rozsah čistenia známy, a nie odhadnutý. Kolegov klon alebo fork už môže starý objekt držať, preto odvolanie prichádza prvé a čistenie druhé.
Čistite až po zvládnutí situácie
Prepis histórie mení každý zápis po tom, ktorý upravíte, takže najprv potrebuje súhlas vlastníka repozitára a ľudí, ktorí v ňom pracujú. Vynútené odoslanie nie je oprava; je to koordinačná udalosť s vlastným rizikom vrátenia. Naplánujte ho, urobte zálohu a povedzte tímu, kedy sa stane.
Potom overte aktuálny strom a zostávajúcu históriu, namiesto toho aby ste verili zhrnutiu nástroja.
Uchovajte výsledok ako dva artefakty: šablónu, ktorá je bezpečná na zdieľanie, a súpis údajov vydaných počas zápisu. Ani jeden z nich nevyžaduje, aby v repozitári žila použiteľná identita.
Toto rozdelenie je skutočná oprava a prežije ďalšieho človeka, ktorý bude chcieť profil zapísať.