OpenVPN profilis Git: ką pašalinti prieš įtraukiant
Perskaitykite failą dėl įterptų raktų, nuspręskite, ką saugykla gali platinti, ir atšaukite prieš perrašydami istoriją.
Profiliai vienu metu tarnauja dviem tikslams: jie įrašo ryšio nustatymus ir neša veikiančią prisijungimo duomenų rinkinį. Failo plėtinys nieko nepasako apie tai, kurią iš dviejų laikote rankose. Perskaitykite turinį prieš nuspręsdami, kad jis priklauso saugyklai.
Tolesni veiksmai daro prielaidą, kad svarstomas kliento šablonas versijų kontrolei. Atlikite juos iš eilės ir sustokite prieš įtraukdami tai, ko negalite atšaukti.
Perskaitykite failą, kurį ketinate įtraukti į indeksą
Pradėkite nuo tikrųjų baitų, nes profilis, kuris nurodo atskirus failus, atrodo visiškai kitaip nei tas, kuris juos įterpia. Ieškokite PEM bloko žymeklių ir įterptų žymų pavadinimais ca, cert, key, tls-auth ir tls-crypt, ir ta pati patikra parodys abu atvejus. Užšifruotas privatusis raktas vis dar laikomas jautria medžiaga, o bendras tls-auth arba tls-crypt raktas yra prisijungimo duomuo, net jei tai ne naudotojo tapatybė. Taikykite tą pačią patikrą viskam, kas įtraukiama į indeksą kartu su profiliu, įskaitant archyvus ir įdiegimo scenarijus, kurie nurodo prisijungimo duomenų failą.
Tada žiūrėkite į paruoštą rinkinį, o ne į darbo medį. git diff --cached parodo, ką įtraukimas iš tikrųjų turės, ir tai vienintelė versija, kuri svarbi šiam sprendimui.
Nuspręskite, ką saugykla gali platinti
Šablonas gali nešti bendrus, patikrintus nustatymus ir vardines vietos žymes viskam, ką žmogus gauna registruodamasis. Ko jis negali nešti, tai naudojamos tapatybės, nes saugykla platinama visiems, kurie gali ją skaityti, įskaitant automatizavimą. Privati saugykla susiaurina auditoriją, bet nekeičia klausimo, ar kiekvienas skaitytojas turi teisę į šį prisijungimo duomenį.
Nepaisymo taisyklė užkerta kelią būsimiems papildymams ir nieko nedaro dėl to, kas jau įrašyta. Šią asimetriją verta įsisavinti prieš pirmąjį įtraukimą, o ne po dešimtojo. Infrastruktūros pavadinimai ir adresai yra atskiras vertinimas: tai ne autentifikavimo paslaptys, bet jie gali atskleisti daugiau, nei komanda ketina paskelbti. Priimkite tą sprendimą aiškiai, užuot skirstę kiekvieną eilutę į slaptažodį ar viešą.
Jei medžiaga jau yra istorijoje
Eilutės pašalinimas naujame įtraukime palieka seną versiją nepaliestą kiekvienam, kas ją atsisiųs. Traktuokite atskleidimą kaip realų: nustatykite prisijungimo duomens tipą, tada raskite instituciją, galinčią jį panaikinti. Kliento sertifikatas atšaukiamas ir atšaukimo sąrašas sugeneruojamas iš naujo; bendras valdymo kanalo raktas pakeičiamas serveryje ir kiekviename kliente, kuris jį naudoja.
Abu turi labai skirtingą poveikio spindulį, ir planas turi nurodyti, kurį vykdote, prieš pradėdami. Raskite įtraukimą, kuris įvedė medžiagą, paieška tipo git log --all -S 'BEGIN PRIVATE KEY', kad valymo apimtis būtų žinoma, o ne spėjama. Kolegos klonas ar šaka jau gali turėti seną objektą, todėl atšaukimas ateina pirmas, o valymas antras.
Valykite tik po to, kai sutvarkysite
Istorijos perrašymas keičia kiekvieną įtraukimą po to, kurį redaguojate, todėl pirmiausia reikia saugyklos savininko ir joje dirbančių žmonių sutikimo. Priverstinis išstūmimas nėra taisymas; tai koordinavimo įvykis su savo atsukimo rizika. Suplanuokite jį, padarykite atsarginę kopiją ir pasakykite komandai, kada tai įvyks.
Po to patikrinkite dabartinį medį ir likusią istoriją, o ne pasikliaukite įrankio santrauka.
Išsaugokite rezultatą kaip du artefaktus: šabloną, kurį saugu bendrinti, ir registracijos proceso metu išduotų prisijungimo duomenų sąrašą. Nė vienas jų nereikalauja, kad saugykloje gyventų naudojama tapatybė.
Šis atskyrimas yra tikrasis sprendimas, ir jis išlieka po kito žmogaus, kuris norės įtraukti profilį.