Kodėl OpenConnect atmeta tinklų sietuvą pakeitus sertifikatą?
Patvirtinimo klaida po tinklų sietuvo sertifikato pakeitimo yra pasitikėjimo sprendimas, o ne sugedęs tunelis. Pasirinkite tarp išduodančios CA ir vieno rakto prisegimo.
Sietuvai keičia sertifikatus, o klientas, kuris vakar dar jungėsi, pradeda strigti pirmojoje TLS apsikeitime. Pranešimas nurodo patvirtinimo priežastį, o ne tinklo gedimą, ir pati mašina nepasikeitė, ir tai yra naudinga užuomina. Sulūžo santykis tarp dabar pateikiamo sertifikato ir šaknų, kurias klientas yra pasirengęs svarstyti. Tai taisyti yra pasitikėjimo sprendimas, todėl priimkite jį prieš įvesdami parinktį.
Perskaitykite klaidą prieš keisdami bet kokį pasitikėjimo nustatymą
Trūkstamo pasirašančiojo tipo klaida reiškia, kad grandinė baigiasi kažkuo, ko klientas nepriima. Tai gali būti atnaujintas vidinės institucijos sertifikatas, viešosios institucijos pakeitimas arba prietaisas viduryje, pateikiantis savo sertifikatą. Vien formuluotė negali atskirti tų atvejų, todėl prieš spręsdami pažiūrėkite į išdavėją.
Vieną kartą paleiskite ryšį priekiniame plane ir leiskite jam nepavykti, nes interaktyvi išvestis turi serverio vardą, išdavėjų grandinę ir kliento apskaičiuotą piršto atspaudą. Palyginkite tą išdavėją su institucija, kurią jūsų organizacija iš tiesų valdo. Jei piršto atspaudas pasikeitė, o išdavėjas ne, vertinkite tai kaip įtartiną, kol atnaujinimas bus patvirtintas kanalu, kuriuo jau pasitikite. Spėlioti šiuo metu yra kelias, kuriuo galiausiai prisegamas perėmėjo raktas.
Užsirašykite kliento versiją toje pačioje pastaboje. Didelė dalis gedimų, atrodančių kaip pasitikėjimo problemos, kyla iš senesnio kliento, susiduriančio su naujesniu sietuvo apsikeitimu.
Pasirinkite tarp pasitikėjimo išdavėju ir vieno rakto prisegimo
Abi parinktys leidžia ryšiui pavykti. Vėliau jos lūžta priešingais būdais, todėl pasirinkimas priklauso gedimui, kurį galite toleruoti.
| Approach | Good fit | What breaks it |
|---|---|---|
Trust the issuing CA with --cafile | Internal PKI you can obtain over an already trusted channel | CA rotation, or a client that still falls back to public roots |
Pin one key with --servercert | No CA relationship, or exactly one key should ever be accepted | Any reissue that generates a new key pair |
Imkitės CA failo, kai sertifikatas ateina iš institucijos, kurią galite patikrinti savarankiškai, nes tada atnaujinimai veikia toliau neliesdami kliento argumentų. Suderinkite jį su jungikliu, kuris išjungia sistemos šaknis, kitaip viešoji institucija gali įvykdyti patikrą jūsų vardu. Prisekite vietoj to, kai sietuvas neturi CA, kurį galite gauti, arba kai tikslas yra kuo siauresnė išimtis. Nė vienas kelias nėra saugesnis abstrakčiai: CA plečiasi per atnaujinimus, prisegimą lengviau peržiūrėti.
Kad ir ką pasirinktumėte, patikima vertė turi atkeliauti kanalu, kuriuo buvo pasitikima prieš pasikeitimą. Administratorius, konsolės sesija sietuve arba iš anksto paimta kopija — visi tinka. Kopijuoti bet kokį piršto atspaudą, kurį rodo raginimas, yra patogu ir būtent to tikisi perėmėjas.
Įdėkite vertę į komandą, kurią iš tikrųjų paleidžiate
Prisegimas keliauja serverio sertifikato parinktyje, o jo priešdėlis lemia kodavimą: šešioliktainiai viešojo rakto maišos kodai su sha1 arba sha256, ir base64 rakto prisegimas su pin-sha256. Jį nurodžius taip pat išjungiamas sistemos pasitikėjimas tam paleidimui, todėl prisegtas raktas tampa visu sprendimu.
sudo openconnect --protocol=gp vpn.example.com --user alice \
--servercert pin-sha256:AbCdEf... # single key pin
sudo openconnect vpn.example.com --cafile /etc/ssl/internal-ca.pem --no-system-trust
Klientas sutapatina sutrumpintą maišą ir priima vos keturis ženklus po priešdėlio, o tai yra spąstai, o ne patogumas. Sutrumpinta vertė praeina vietoje ir vis tiek neidentifikuoja numatyto sietuvo. Kopijuokite visą eilutę, kurią klientas atspausdino pirmuoju bandymu, o ne perrašykite ją iš pranešimo. Tada perkelkite baigtą parinktį į apvalkalo skriptą, unit failą arba profilį, kuris paleidžia ryšį, kad pasitikėjimo sprendimą būtų galima peržiūrėti, o vėlesni pakeitimai būtų apgalvoti.
Darbalaukio paleidikliai ir NetworkManager papildinys saugo savo kopiją ryšio argumentų. Diske redaguotas skriptas nepasiekia anksčiau importuoto profilio, todėl išsaugota vertė ir toliau laimi.
Tvarkykite perėjimą neužsirakindami
Parinktį galima nurodyti daugiau nei kartą, todėl planuojamas pakeitimas gali priimti išeinantį ir įeinantį raktus kartu. Pridėkite naują prisegimą prieš sietuvui persijungiant, laikykite abu sąraše, kol sesijos migruoja, ir pašalinkite atšauktą, kai seno rakto nebėra. Tas langas turi turėti savininką, nes pamirštas dvigubas prisegimas palieka raktą patikimu be nieko, kas jį prižiūrėtų. Perstatymas, sukuriantis naują raktų porą, sulaužo gryną prisegimą, o atkūrimas yra ta pati procedūra priešinga kryptimi.
Šalia prisegimo parašykite pakeitimo datą. Prisegimas be peržiūros datos yra būsimas sutrikimas su painia klaidos žinute.
Išskirkite kliento versiją prieš redaguodami pasitikėjimą
Pasenęs klientas gali nepavykti analizuodamas autentifikavimo atsakymą, kurį sietuvas nuo to laiko pakeitė, o paviršiaus pranešimas vis dar kalba apie ryšį, o ne apie analizatorių. Palyginkite įdiegtą versiją su tuo, ką dokumentuoja sietuvas, ir prieš keisdami bet kokį pasitikėjimo nustatymą išbandykite dabartinį paketą vienkartiniame profilyje.
openconnect --version
Po taisymo patikrinkite du dalykus, o ne vieną: portalas įkeliamas per tunelį, o įprastas vidinis adresas atsako. Užbaigtas rankos paspaudimas įrodo tik tai, kad pasitikėjimo sprendimas buvo priimtas.