Miksi OpenConnect hylkää yhdyskäytävän varmenteen vaihdon jälkeen?
Varmennuksen epäonnistuminen yhdyskäytävän varmenteen vaihdon jälkeen on luottamuspäätös, ei rikki mennyt tunneli. Valitse myöntävän CA:n ja yhden avaimen kiinnittämisen välillä.
Yhdyskäytävät vaihtavat varmenteita, ja eilen vielä yhteyden muodostanut asiakas alkaa pysähtyä ensimmäisessä TLS-vaihdossa. Viesti nimeää varmennussyyn eikä verkkohäiriötä, eikä itse kone ole muuttunut, mikä on hyödyllinen vihje. Rikki meni varmenteen, joka nyt esitetään, ja juurten välinen suhde, jotka asiakas on valmis hyväksymään. Sen korjaaminen on luottamuspäätös, joten tee se päätös ennen kuin kirjoitat vaihtoehdon.
Lue epäonnistuminen ennen kuin muutat mitään luottamusasetusta
Puuttuvan allekirjoittajan kaltainen virhe tarkoittaa, että ketju päättyy johonkin, mitä asiakas ei hyväksy. Se voi olla sisäisen viranomaisen uusima varmenne, julkisen viranomaisen korvaava varmenne tai keskellä oleva laite, joka esittää oman varmenteensa. Pelkkä sanamuoto ei pysty erottamaan näitä tapauksia, joten katso myöntäjää ennen päätöstä.
Aja yhteys kerran etualalla ja anna sen epäonnistua, koska vuorovaikutteinen tuloste sisältää palvelimen nimen, myöntäjäketjun ja sormenjäljen, jonka asiakas laski. Vertaa tätä myöntäjää viranomaiseen, jota organisaatiosi todella ylläpitää. Jos sormenjälki muuttui mutta myöntäjä ei, pidä sitä epäilyttävänä, kunnes uusiminen vahvistetaan kanavaa pitkin, johon jo luotat. Tässä vaiheessa arvaaminen on se tapa, jolla henkilö lopulta kiinnittää välittäjän avaimen.
Kirjaa asiakkaan versio samaan muistiinpanoon. Suuri osa luottamusongelmilta näyttävistä epäonnistumisista tulee vanhemmasta asiakkaasta, joka kohtaa uudemman yhdyskäytävävaihdon.
Valitse myöntäjään luottamisen ja yhden avaimen kiinnittämisen välillä
Molemmat vaihtoehdot saavat yhteyden onnistumaan. Ne rikkoutuvat myöhemmin vastakkaisilla tavoilla, joten valinta kuuluu epäonnistumiselle, jonka voit sietää.
| 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 |
Turvaudu CA-tiedostoon, kun varmenne tulee viranomaiselta, jonka voit varmentaa itsenäisesti, koska silloin uusimiset jatkavat toimintaansa koskematta asiakkaan argumentteihin. Yhdistä se kytkimeen, joka poistaa järjestelmäjuuret käytöstä, muuten julkinen viranomainen voi täyttää tarkistuksen puolestasi. Kiinnitä sen sijaan silloin, kun yhdyskäytävällä ei ole CA:ta, jonka voisit hankkia, tai kun kapein mahdollinen poikkeus on tavoite. Kumpikaan polku ei ole abstraktisti turvallisempi: CA skaalautuu uusimisten yli, kiinnitys on helpompi tarkastaa.
Kumman valitsetkin, luotetun arvon on saavuttava kanavaa pitkin, johon luotettiin ennen muutosta. Järjestelmänvalvoja, konsoli-istunto yhdyskäytävällä tai etukäteen otettu kopio kelpaavat kaikki. Minkä tahansa kehotteen näyttämän sormenjäljen kopioiminen on kätevää ja juuri sitä, mitä välittäjä toivoo.
Laita arvo komentoon, jonka todella käynnistät
Kiinnitys kulkee palvelinvarmenteen valitsimessa, ja sen etuliite päättää koodauksen: heksadesimaaliset julkisen avaimen tiivisteet sha1:n tai sha256:n alla ja base64-avaimen kiinnitys pin-sha256:n alla. Sen antaminen poistaa myös järjestelmäluottamuksen käytöstä kyseiseltä ajalta, joten kiinnitetystä avaimesta tulee koko päätös.
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
Asiakas täsmäyttää katkaistun tiivisteen ja hyväksyy vain neljä merkkiä etuliitteen jälkeen, mikä on ansa eikä mukavuus. Lyhennetty arvo menee läpi paikallisesti eikä silti tunnista yhdyskäytävää, jonka tarkoitit. Kopioi koko merkkijono, jonka asiakas tulosti ensimmäisellä yrityksellä, sen sijaan että kirjoittaisit sen uudelleen viestistä. Siirrä sitten valmis valitsin kääreskriptiin, unit-tiedostoon tai profiiliin, joka käynnistää yhteyden, jotta luottamuspäätös on tarkastettavissa ja myöhemmät muutokset harkittuja.
Työpöytäkäynnistimet ja NetworkManager-liitännäinen tallentavat oman kopionsa yhteysargumenteista. Levyllä muokattu skripti ei saavuta aiemmin tuotua profiilia, joten tallennettu arvo voittaa edelleen.
Hoida vaihto lukitsematta itseäsi ulos
Valitsin voidaan antaa useammin kuin kerran, joten suunniteltu muutos voi hyväksyä lähtevän ja saapuvan avaimen yhdessä. Lisää uusi kiinnitys ennen kuin yhdyskäytävä vaihtuu, pidä molemmat lueteltuina istuntojen siirtyessä ja poista eläköitynyt, kun vanha avain on poissa. Tämä ikkuna tarvitsee omistajan, sillä unohdettu kaksoiskiinnitys jättää avaimen luotetuksi ilman, että kukaan vahtii sitä. Uuden avainparin tuottava uudelleenrakennus rikkoo puhtaan kiinnityksen, ja palautuminen on sama menettely toiseen suuntaan.
Kirjoita muutospäivä kiinnityksen viereen. Kiinnitys ilman tarkastuspäivää on tuleva katkos, joka kantaa hämmentävää virheilmoitusta.
Sulje asiakasversio pois ennen luottamuksen muokkaamista
Vanhentunut asiakas voi epäonnistua jäsentäessään todennusvastausta, jota yhdyskäytävä on sittemmin muuttanut, ja pinnan viesti puhuu yhä yhteydestä eikä jäsentimestä. Vertaa asennettua versiota siihen, mitä yhdyskäytävä dokumentoi, ja testaa nykyistä pakettia kertakäyttöisessä profiilissa ennen minkään luottamusasetuksen muuttamista.
openconnect --version
Korjauksen jälkeen varmenta kaksi asiaa yhden sijaan: portaali latautuu tunnelin läpi ja tavallinen sisäinen osoite vastaa. Valmis kättely todistaa vain, että luottamuspäätös hyväksyttiin.