Išduodate naują prieglobos sertifikatą su kitu perdangos adresu, nukopijuojate jį ant seno failo, siunčiate pakartotinį įkėlimą, o priegloba toliau atsakinėja senuoju adresu. Įprasta reakcija – manyti, kad įkėlimas nepavyko arba buvo perskaitytas ne tas failas. Dažniausiai neįvyko nei viena, nei kita: veikiantis procesas sąmoningai išsaugojo jau turėtą tapatybę, nes pakaitalas pakeitė tai, ko pakartotinis įkėlimas negali pritaikyti.

„Nebula“ PKI pakartotinio įkėlimo palaikymas dokumentuotas būtent su šia riba, ir ją lengva praleisti, kai ta pati dokumentacija rodo, kad įkėlimas veikia kitiems pakeitimams.

Ką pakartotinis įkėlimas iš tikrųjų perskaito

Prieglobos sertifikatas nėra vien kredencialai, kaip kad SSH raktas. Jame yra perdangos adresas, prieglobos vardas, narystės grupėse ir galiojimo laikas, ir visa tai sujungta CA parašu. Paslauga naudoja tą pasirašytą turinį spręsdama, kaip save pateikti ir kokios taisyklės jai taikomos.

Pakartotinis įkėlimas leidžia procesui paimti atnaujintus kredencialus nenutraukiant tunelių, o tai vertinga reguliariam keitimui: tas pats adresas, tas pats vardas, tos pačios grupės, vėlesnis galiojimo pabaigos laikas. Apribojimas tas, kad tapatybė turi likti ta pati. Pakeiskite perdangos adresą ir įkėlimo kelias negalės jo pritaikyti, nes adresas yra dalis to, kam veikianti instancija jau įsipareigojo.

Taigi matytas elgesys – tai dokumentuota riba, atliekanti savo darbą, o ne tyli klaida. Failas diske naujas; tapatybė atmintyje sena; procesas neturi palaikomo būdo suderinti šį skirtumą be perkrovimo.

Adresas, vardas ir grupės yra viena tapatybė

Padeda galvoti apie sertifikatą kaip apie vieną įrašą, o ne laukų rinkinį, kurį galima redaguoti atskirai. Adreso perkėlimas nepanašus į nuostatos pakeitimą, nes adresas pasirodo kitų prieglobų lygiaverčių konfigūracijose, paslaugų susiejimuose ir taisyklėse, parašytose prieš tapatybę.

FieldWhat changes when you replace it
Overlay addressPeers that pinned the old address, service bindings, and any rule written against it
Host nameName-based policy and the identities other hosts expect to see
GroupsWhich access rules match, even if the address stays identical
Validity windowNothing structural, which is why renewal reloads cleanly

Grupės nusipelno atskiros eilutės, nes sukelia tylesnę tos pačios painiavos versiją. Priegloba, kuri išlaiko adresą, bet keičia grupes, po perkrovimo gali pasiekti kitas paslaugas, o testas, kuris tik pingina seną adresą, atrodys visiškai sveikas, nors prieigos sprendimai po juo pasikeitė. Patikrinkite vieną taisykle apibrėžtą paslaugą, o ne vien pasiekiamumą. Tai skirtumas tarp tunelio patvirtinimo ir politikos patvirtinimo.

Palyginkite įkeltą sertifikatą su pakaitalu

Prieš manydami, kad paslauga nepaisė failo, perskaitykite abu. Atspausdinkite sertifikatą, kurį ketinate įkelti, ir patvirtinkite laukus, kuriuos, jūsų manymu, pakeitėte, tada patvirtinkite, kad veikianti konfigūracija rodo į tą kelią, o ne į kopiją kitur.

nebula-cert print -path /etc/nebula/host.crt
systemctl status nebula
ps -o args= -p $(pgrep -f 'nebula -config' | head -1)

Proceso argumentai svarbesni, nei žmonės tikisi. Vienetas, perduodantis -config /etc/nebula/config.yml, skaito to failo pki.cert įrašą, o laikiname kataloge įdiegtas sertifikatas nieko neveikia. Patikrinkite kelią veikiančioje komandų eilutėje, o ne kelią dokumentacijoje, kuria sekėte. Jei abu skiriasi, radote problemą net nepalietę sertifikato.

Jei naujas sertifikatas turi kitą adresą, o procesas išlaikė senąjį, dabar turite paaiškinimą, o ne mįslę. Perkraukite jį, jei tai priimtina, ir traktuokite adreso keitimą kaip suplanuotą tinklo pakeitimą, o ne atsitiktinį.

Adreso keitimas yra tinklo pakeitimas

Planuokite taip, kaip planuotumėte mašinos perkėlimą. Kitos prieglobos galėjo prisegti seną adresą savo konfigūracijoje, paslaugos gali būti aiškiai prie jo pririštos, o ugniasienės taisyklės gali būti parašytos prieš jį. Sertifikato keitimas perkelia prieglobą, o prieglobos perkėlimas panaikina prielaidas kitur.

Kol tai darote, laikykite prieinamą antrą valdymo kelią, nes perdangos ryšys gali būti būtent tas, kurį pertraukiate. Tai daryti per tunelį, kurį tuoj sulaužysite, – klasikinis būdas penkių minučių pakeitimą paversti apsilankymu vietoje.

Ar perkrovimas priimtinas, priklauso nuo to, ką priegloba daro, ir tai planavimo, o ne techninis klausimas. Privalu pripažinti perkrovimo būtinybę, o ne penktą kartą siųsti įkėlimą.

Atsisakykite senų kredencialų atskirai

Įdiegus pakaitalą vienoje mašinoje, kiekvienas lygiavertis mazgas vis dar pasitiki kredencialais, kuriuos jau žino. Jei pakeitimo priežastis buvo kompromitavimas, senoji tapatybė turi būti atsisakyta pasitikėjimo arba blokavimo sąrašo procedūra, kad mazgai ją tikrai atmestų.

Tai atskiras žingsnis su savo patikra: patvirtinkite iš kitos prieglobos, kad senoji tapatybė nebeveikia, o ne manykite, kad naujas failas atliko darbą. „Nebula“ PKI konfigūracijos dokumentacija apima iš naujo įkeliamus nustatymus ir čia aprašytą adreso apribojimą, ir verta ją perskaityti visą prieš keičiant ką nors produkcinėje aplinkoje.

Susiję straipsniai