Nebula ponovno učitavanje certifikata nije promijenilo IP: evo zašto
Ponovno učitavanje ponovno čita vjerodajnicu hosta samo kada overlay adresa ostaje ista. Promjena adrese znači ponovno pokretanje i promjenu mreže, a ne novi pokušaj.
Izdate novi certifikat hosta s drugom overlay adresom, kopirate ga preko stare datoteke, pošaljete ponovno učitavanje, a host nastavlja odgovarati na adresi koju je imao prije. Refleks je pretpostaviti da je ponovno učitavanje neuspjelo ili da je pročitana pogrešna datoteka. Obično se nije dogodilo ni jedno: pokrenuti proces namjerno je zadržao identitet koji je već imao, jer je zamjena promijenila nešto što ponovno učitavanje ne može primijeniti.
Podrška za ponovno učitavanje PKI-ja u Nebuli dokumentirana je s tom granicom i lako ju je propustiti kada ista dokumentacija pokazuje da ponovno učitavanje radi za druge promjene.
Šta ponovno učitavanje zapravo ponovno čita
Certifikat hosta nije samo vjerodajnica na način na koji je to SSH ključ. Nosi overlay adresu, ime hosta, članstva u grupama i period valjanosti, a sve je to povezano potpisom CA. Demon koristi taj potpisani sadržaj da odluči kako se predstavlja i koja se pravila na njega primjenjuju.
Ponovno učitavanje omogućuje procesu da preuzme obnovljenu vjerodajnicu bez ispuštanja svojih tunela, što je vrijedno za rutinsku rotaciju: ista adresa, isto ime, iste grupe, kasniji rok. Ograničenje je da identitet mora ostati isti. Promijenite overlay adresu i put ponovnog učitavanja je ne može primijeniti, jer je adresa dio onoga na što se pokrenuta instanca već obvezala.
Dakle, ponašanje koje ste vidjeli je dokumentirano ograničenje koje radi svoj posao, a ne tihi neuspjeh. Datoteka na disku je nova; identitet u memoriji je star; proces nema podržan način da uskladi tu razliku bez ponovnog pokretanja.
Adresa, ime i grupe jedan su identitet
Pomaže misliti o certifikatu kao o jednom zapisu, a ne kao o skupu polja koja možete uređivati neovisno. Premještanje adrese nije poput promjene postavke, jer se adresa pojavljuje u konfiguracijama peerova na drugim hostovima, u vezama servisa i u pravilima pisanim protiv identiteta.
| Field | What changes when you replace it |
|---|---|
| Overlay address | Peers that pinned the old address, service bindings, and any rule written against it |
| Host name | Name-based policy and the identities other hosts expect to see |
| Groups | Which access rules match, even if the address stays identical |
| Validity window | Nothing structural, which is why renewal reloads cleanly |
Grupe zaslužuju vlastiti redak jer uzrokuju tišu verziju iste zabune. Host koji zadrži adresu, ali promijeni grupe, nakon ponovnog pokretanja može dosegnuti druge servise, a test koji samo pinga staru adresu izgledat će potpuno zdravo dok su se odluke o pristupu ispod promijenile. Provjerite jedan servis obuhvaćen pravilom, ne samo dostupnost. To je razlika između potvrde tunela i potvrde politike.
Usporedite učitani certifikat sa zamjenom
Prije nego pretpostavite da je demon zanemario datoteku, pročitajte oboje. Ispišite certifikat koji namjeravate učitati i potvrdite polja za koja mislite da ste ih promijenili, zatim potvrdite da pokrenuta konfiguracija pokazuje na tu putanju, a ne na kopiju negdje drugdje.
nebula-cert print -path /etc/nebula/host.crt
systemctl status nebula
ps -o args= -p $(pgrep -f 'nebula -config' | head -1)Argumenti procesa važniji su nego što ljudi očekuju. Unit koji prosljeđuje -config /etc/nebula/config.yml čita unos pki.cert te datoteke, a certifikat instaliran u privremeni direktorij ne utječe ni na što. Provjerite putanju u pokrenutom retku naredbe, a ne putanju u dokumentaciji koju ste slijedili. Ako se dvije razlikuju, pronašli ste problem bez da ste uopće dotakli certifikat.
Ako novi certifikat ima drugu adresu, a proces je zadržao staru, sada imate objašnjenje umjesto misterije. Ponovno ga pokrenite ako je to prihvatljivo i tretirajte promjenu adrese kao planiranu mrežnu promjenu, a ne slučajnu.
Promjena adrese je promjena mreže
Planirajte to kao što biste planirali premještanje stroja. Drugi hostovi možda su prikvačili staru adresu u svojoj konfiguraciji, servisi se možda izričito vežu na nju, a firewall pravila mogu biti pisana protiv nje. Promjena certifikata premješta host, a premještanje hosta obesmišljava pretpostavke drugdje.
Držite drugi put upravljanja dostupnim dok to radite, jer overlay veza može biti upravo ona koju prekidate. Raditi to preko tunela koji ćete slomiti klasičan je način da petominutnu promjenu pretvorite u posjet lokaciji.
Je li ponovno pokretanje prihvatljivo ovisi o tome što host radi, a to je pitanje rasporeda, ne tehničko pitanje. Ono što nije opcionalno jest priznati zahtjev za ponovnim pokretanjem umjesto slanja ponovnog učitavanja peti put.
Povucite stare vjerodajnice odvojeno
Instaliranje zamjene na jednom stroju ostavlja svakog peera da još vjeruje vjerodajnici koju već poznaje. Ako je razlog promjene bio kompromis, stari identitet mora se povući postupkom povjerenja ili blokliste kako bi ga peerovi doista odbili.
To je zaseban korak s vlastitom provjerom: potvrdite s drugog hosta da stari identitet više ne radi, umjesto da pretpostavite da je nova datoteka obavila posao. Dokumentacija za konfiguraciju PKI-ja u Nebuli pokriva postavke koje se mogu ponovno učitati i ovdje opisano ograničenje adrese, i vrijedi je pročitati u cijelosti prije nego rotirate bilo što u produkciji.