Kloniranje slike VPN servera bez kloniranja njegovog identiteta
Odlučite obnavlja li kopija jedan gateway ili dodaje drugi. Konfiguracija za ponovnu upotrebu, ovlaštenje potpisivanja i mrežno stanje putuju svaki na svoj način.
Slika se podiže, servis počinje i klijenti se povezuju. To je trenutak da se zaustavite i pitate koja se od dvije vrlo različite operacije upravo dogodila. Ili kopija obnavlja jedan logički gateway koji je ranije postojao, ili dodaje drugi gateway u flotu. Oba su legitimna i imaju različite posljedice po identitet i pristup. Mašina koja se čisto podigne ne dokazuje ni jedno od toga.
Tri uslova odlučuju odgovor, a to su tri kante materijala koje slika može nositi. Razvrstajte ih prije nego što se slika izgradi, a ne nakon što je dvaput implementirana.
Prvo odlučite koju od dvije operacije radite
Obnavljanje zadržava jedan identitet servisa. Stara instanca je nestala, ime i certifikat ostaju, a klijenti i dalje vjeruju istom endpointu. Dodavanje stvara drugi identitet koji klijenti, logovi i opoziv moraju razlikovati.
Razlika nije kozmetička. Ako dva živa hosta predstavljaju isti certifikat gatewaya, klijent ih ne može razlikovati, a ni revizijski trag ne može, i opoziv tog certifikata uklanja oba odjednom. To je možda upravo ono što namjerni dizajn visoke dostupnosti želi, a rijetko je ono što brza kopija slike namjerava.
Zato je prva odluka rečenica, zapisana prije nego slika napusti build host: ova kopija obnavlja gateway A, ili ova kopija postaje gateway B. Sve nakon toga je knjigovodstvo prema toj rečenici. Ako je niko ne može napisati, kopija nije spremna za izgradnju.
Materijal koji se može ponovo koristiti, identitet i ovlaštenje, stanje implementacije
Kanta za ponovnu upotrebu je ona laka: paketi, pregledana konfiguracija bez tajni, predlošci servisa, postavke očvršćivanja. U tome je slika zaista dobra i može se reproducirati bez ograničenja.
Kanta identiteta i ovlaštenja je mjesto gdje kopije pogriješe. Privatni ključ i certifikat gatewaya identificiraju taj gateway svakom klijentu. Ključ za potpisivanje certificiranog tijela je drugi objekt s drugom moći: on izdaje identitete. Vjerovati izdavaocu ne znači da svaki novi gateway treba mogućnost izdavanja, a slanje ključa za potpisivanje unutar slike daje tu mogućnost svemu što može pročitati sliku.
Kanta stanja implementacije je ona koju ljudi zaborave jer izgleda kao konfiguracija. Adrese slušanja, bazeni adresa, potisnuti putevi, postavke resolvera i lokalna integracija svi kodiraju pretpostavke o prvom hostu. Drugi čvor koji ih kopira može dodjeljivati iz bazena koji već posjeduje drugi gateway ili usmjeriti klijente na resurs koji postoji samo pored originala.
Šta novi čvor mora dobiti i od koga
Nezavisno upravljani čvor treba primiti vlastite akreditive kroz odobreni proces upisa, a operacija potpisivanja treba se odvijati tamo gdje živi ključ za potpisivanje, a ne na novom hostu. Zabilježite koji se identitet može povući bez uznemiravanja ostalih čvorova; ako je odgovor "svi", dizajn ima jedan identitet koji se pretvara da je dva.
Mrežne vrijednosti zaslužuju isti tretman. Odaberite bazen, adresu slušanja i skup potisnutih puteva koji se ne sudaraju s postojećim gatewayom, i upišite ih u provizijske ulaze, a ne u sliku. Ulaz je preglediv; slika nije.
Postoji legitiman srednji slučaj. Podržani dizajn oporavka ili replikacije može namjerno držati jedan logički identitet servisa na više hostova, s kontroliranim pristupom staroj kopiji i planom rotacije. To je odluka s vlasnikom, a ne zadana postavka koja se dogodi jer je slika bila zgodna.
openssl x509 -in /etc/openvpn/server/server.crt -noout -subject -issuer -dates
find /etc/openvpn -name '*.key' -o -name '*.pem' | head -20
Prva naredba kaže koji identitet čvor zapravo predstavlja i ko ga je potpisao. Druga je početni popis, a ne dokaz: privatni materijal može živjeti izvan tog direktorija, unutar baze podataka aplikacije ili u sloju snimke koji pokrenuti datotečni sistem više ne pokazuje.
Šta kopija slike tiho nosi
Brisanje datoteke iz najnovije revizije slike ne uklanja je iz starijih revizija, keševa slojeva ili snimki napravljenih dok je postojala. Zato se slike koje nose akreditive moraju tretirati kao osjetljivi objekti cijelog života, a ne samo u trenutku izgradnje.
Provjerite sadržaj slike i provizijske ulaze kao odvojena pitanja. Slika odgovara "šta je unutar ovog artefakta", a ulazi odgovaraju "šta će ova instanca postati pri prvom podizanju". Čista slika sa bootstrap skriptom koja dohvaća zajednički ključ dobro odgovara na prvo pitanje, a loše na drugo.
Držite slike za oporavak koje legitimno sadrže tajne ograničene na ljude kojima su potrebne i zabilježite gdje se čuvaju. Alternativa, slika koja je zgodna jer radi bez ikakvog provizioniranja, ista je slika koja svakome ko je nađe daje identitet gatewaya. Samo jedan od ta dva zadatka pojavljuje se u build logu.
Provjere prijema prije produkcije
Prije nego čvor preuzme promet, potvrdite četiri stvari: identitet koji predstavlja, klijente koje će prihvatiti, resurse do kojih mu je dopušteno doći i povratni put za adrese koje daje.
systemctl status openvpn-server@lab --no-pager
ss -lunp 'sport = :1194'
ip -4 route show table all | grep -F '10.90.'
Zatim provjerite negativan slučaj, onaj koji hvata nesreće: ima li novi čvor administratorski ili klijentski pristup koji je bio namijenjen originalu? Kopirana konfiguracija može nositi dodatni unos klijenta, naslijeđeni put upravljanja ili push direktivu koja je imala smisla na prvom hostu.
Ako je slika sa živim tajnama već izašla izvan odobrene granice, zamijenite akreditive i obuzdajte kopije. Uklanjanje datoteke iz najnovije izgradnje nije isto kao povlačenje akreditiva koji starije kopije još drže, a razmak između te dvije činjenice upravo je prozor koji napadaču treba.