Image sa spustí, služba naštartuje a klienti sa pripoja. To je okamih zastaviť sa a spýtať sa, ktorá z dvoch veľmi odlišných operácií práve prebehla. Buď kópia obnovuje jednu logickú bránu, ktorá predtým existovala, alebo pridáva do flotily druhú bránu. Obe sú legitímne a majú rôzne dôsledky pre identitu a prístup. Stroj, ktorý čisto naštartuje, nedokazuje ani jednu z nich.

Odpoveď určujú tri podmienky a sú to tri vedrá materiálu, ktoré image môže niesť. Roztrieďte ich pred zostavením image, nie po tom, čo bol dvakrát nasadený.

Najprv rozhodnite, ktorú z dvoch operácií vykonávate

Obnova zachováva jednu identitu služby. Stará inštancia je preč, názov a certifikát zostávajú a klienti naďalej dôverujú rovnakému koncovému bodu. Pridanie vytvára druhú identitu, ktorú musia klienti, záznamy aj odvolanie rozlišovať.

Rozdiel nie je kozmetický. Ak dva živé hosty predkladajú rovnaký certifikát brány, klient ich nedokáže rozlíšiť, audítorská stopa tiež nie, a odvolanie tohto certifikátu odstráni oba naraz. To môže byť presne to, čo chce úmyselný návrh vysokej dostupnosti, a len zriedka to, čo zamýšľa unáhlená kópia image.

Prvé rozhodnutie je teda veta napísaná skôr, než image opustí build host: táto kópia obnovuje bránu A, alebo sa táto kópia stáva bránou B. Všetko ostatné je účtovníctvo voči tejto vete. Ak ju nikto nedokáže napísať, kópia nie je pripravená na zostavenie.

Znovupoužiteľné vstupy, identita a oprávnenie, stav nasadenia

Vedro na opakované použitie je to jednoduché: balíčky, revidovaná konfigurácia bez tajomstiev, šablóny služieb, nastavenia spevnenia. V tom je image skutočne dobrý a možno ho reprodukovať bez obmedzenia.

Vedro identity a oprávnenia je miesto, kde sa kópie pokazia. Súkromný kľúč a certifikát brány identifikujú túto bránu u každého klienta. Podpisový kľúč certifikačnej autority je iný objekt s inou mocou: vydáva identity. Dôverovať vydavateľovi neznamená, že každá nová brána potrebuje schopnosť vydávať, a priloženie podpisového kľúča do image dáva túto schopnosť všetkému, čo image dokáže prečítať.

Vedro stavu nasadenia je to, na ktoré ľudia zabúdajú, pretože vyzerá ako konfigurácia. Adresy na počúvanie, fondy adries, pretláčané trasy, nastavenia resolvera a lokálna integrácia všetky kódujú predpoklady o prvom hoste. Druhý uzol, ktorý ich skopíruje, môže prideľovať z fondu, ktorý už vlastní iná brána, alebo nasmerovať klientov na prostriedok, ktorý existuje len vedľa originálu.

Čo musí nový uzol dostať a od koho

Samostatne spravovaný uzol by mal získať vlastné prihlasovacie údaje schváleným procesom registrácie, pričom podpisová operácia sa odohráva tam, kde žije podpisový kľúč, a nie na novom hoste. Zaznamenajte, ktorú identitu možno odobrať bez narušenia ostatných uzlov; ak je odpoveď „všetky“, návrh má jednu identitu, ktorá predstiera, že sú dve.

Sieťové hodnoty si zaslúžia rovnaký prístup. Vyberte fond, adresu na počúvanie a množinu pretláčaných trás, ktoré nekolidujú s existujúcou bránou, a zapíšte ich do vstupov zriaďovania, nie do image. Vstup je revidovateľný; image nie.

Existuje legitímny medzistav. Podporovaný návrh obnovy alebo replikácie môže úmyselne udržiavať jednu logickú identitu služby naprieč hosťami, s riadeným prístupom k starej kópii a plánom rotácie. To je rozhodnutie s vlastníkom, nie predvolený stav, ktorý nastane, pretože image bol pohodlný.

openssl x509 -in /etc/openvpn/server/server.crt -noout -subject -issuer -dates
find /etc/openvpn -name '*.key' -o -name '*.pem' | head -20

Prvý príkaz povie, akú identitu uzol skutočne predkladá a kto ju podpísal. Druhý je počiatočná inventarizácia, nie dôkaz: súkromný materiál môže žiť mimo tohto adresára, v databáze aplikácie alebo vo vrstve snímky, ktorú bežiaci súborový systém už neukazuje.

Čo kópia image ticho nesie

Odstránenie súboru z najnovšej revízie image ho neodstráni zo starších revízií, medzipamätí vrstiev ani snímok vytvorených, kým existoval. Preto sa s image nesúcimi prihlasovacie údaje musí zaobchádzať ako s citlivými objektmi celý ich život, nielen v okamihu zostavenia.

Skontrolujte obsah image a vstupy zriaďovania ako dve oddelené otázky. Image odpovedá na „čo je vnútri tohto artefaktu“, vstupy odpovedajú na „čím sa táto inštancia stane pri prvom štarte“. Čistý image s bootstrap skriptom, ktorý stiahne zdieľaný kľúč, odpovedá na prvú otázku dobre a na druhú zle.

Image na obnovu, ktoré legitímne obsahujú tajomstvá, držte obmedzené na ľudí, ktorí ich potrebujú, a zaznamenajte, kde sú uložené. Alternatíva, image, ktorý je pohodlný, pretože funguje bez akéhokoľvek zriaďovania, je ten istý image, ktorý každému, kto ho nájde, dá identitu brány. Len jedna z tých dvoch úloh sa objaví v build logu.

Vstupné kontroly pred produkciou

Skôr než uzol prijme prevádzku, potvrďte štyri veci: identitu, ktorú predkladá, klientov, ktorých prijme, prostriedky, ku ktorým smie dosiahnuť, a spätnú cestu pre adresy, ktoré rozdáva.

systemctl status openvpn-server@lab --no-pager
ss -lunp 'sport = :1194'
ip -4 route show table all | grep -F '10.90.'

Potom skontrolujte negatívny prípad, ktorý chytá nehody: má nový uzol administratívny alebo klientsky prístup, ktorý bol určený pre originál? Skopírovaná konfigurácia môže niesť záznam navyše pre klienta, zdedenú trasu správy alebo direktívu push, ktorá mala zmysel na prvom hoste.

Ak image so živými tajomstvami už opustil schválenú hranicu, vymeňte prihlasovacie údaje a obmedzte kópie. Odobratie súboru z posledného buildu nie je to isté ako vyradenie údajov, ktoré staršie kópie stále držia, a medzera medzi týmito dvoma faktami je presne to okno, ktoré útočník potrebuje.

Súvisiace články