key-methodin poistaminen OpenVPN-profiilista ei muuta mitään
Direktiivi katosi jäsentimestä, ei protokollasta. Erota vanhentunut asetus avaintenvaihdon muodosta ennen profiilin muokkaamista.
Vuosia toiminut profiili kieltäytyy yhtäkkiä käynnistymästä, ja viesti nimeää direktiivin, jota kukaan ei muista lisänneensä: key-method. Seuraava hakutulos ehdottaa key-method 2:n lisäämistä yhteensopivuuden vuoksi, mikä on neuvo toiselta aikakaudelta. Rivin hylännyt jäsennin on nykyinen, eikä siinä ole sellaista asetusta lainkaan. Rivin poistaminen korjaa käynnistyksen, eikä se muuta mitään siinä, miten kaksi vertaista suojaa istuntoa.
Juuri tämä kuilu sen välillä, mitä profiili sisältää ja mitä protokolla todella tekee, on koko aihe, ja se selittää useita muita muokkauksia, joita ihmiset tekevät samaan aikaan. Se selittää myös, miksi ne muokkaukset saapuvat yleensä pakettina.
Oire on jäsennyvirhe, ei kättelyn epäonnistuminen
Asetukset luetaan ennen kuin yhtään pakettia lähetetään. Profiili, jossa on tuntematon direktiivi, epäonnistuu siinä vaiheessa, joten prosessi ei koskaan saavuta verkkoa eikä koskaan tuota kättelyvirhettä. Sanamuoto yleensä yksilöi asetuksen ja tiedoston, mikä tekee tästä yhden helpoimmin kohdistettavista vioista. Siinä ei ole mukana pakettia, reittiä eikä palomuuria.
openvpn --config /etc/openvpn/client/office.ovpn --verb 3 --log /tmp/parse.log
grep -n 'Options error' /tmp/parse.log
Jos viesti nimeää direktiivin, diagnoosi on valmis: tiedosto sisältää jotain, mitä tämä koontiversio ei hyväksy. Jos viesti sen sijaan nimeää tiedostopolun, ongelma on puuttuva include tai avain, mikä on saman käynnistysvaiheen toinen osa.
Sitä ei pidä päätellä, että asiakasohjelma tai palvelin tarvitsisi vanhemman protokollatilan. Jäsennyvirhe on sanastongelma tiedostosi ja binäärin välillä, ja binääri on tässä tapauksessa yksinkertaisesti pudottanut yhden sanan sanastostaan.
Direktiivi ja siirtomuoto ovat kaksi eri asiaa
Vanha key-method-asetus valitsi, miten TLS-avaintenvaihto kehystetään, ja nykyaikainen vaihto on monipakettimenetelmä, jota tuo asetus aikoinaan pyysi. Asetus poistui, koska se ei enää valinnut mitään; sen nimeämä muoto tuli ainoaksi. Rivin poistaminen jättää istunnon siis samaan kehystykseen kuin ennen. Tekstimuokkaus ei voi muuttaa sitä kumpaankaan suuntaan.
Siksi vanhan binäärin tuominen takaisin menetelmän 2 «palauttamiseksi» on väärä korjaus. Se ei palauta mitään paitsi vanhemman jäsentimen vanhemmilla oletusarvoilla, ja se maksaa sinulle sen jälkeen tulleet korjaukset. Sama päättely pätee sertifikaattitarkistuksen tai salausluettelon heikentämiseen toiveena, että yhteys palaa.
Hyödyllinen tarkistus on versio ja jäsennetty kokoonpano, ei sanan esiintyminen tiedostossa:
openvpn --version | head -n 1
grep -rn 'key-method' /etc/openvpn/ 2>/dev/null
Mitä poistetaan ja mistä tiedostosta
Muokkaa tiedostoa, jota käynnissä oleva prosessi todella lukee, ja vain sitä tiedostoa. Paketoiduissa järjestelmissä se on yleensä profiili asiakasohjelman tai palvelimen hakemistossa, jonka unit nimeää, ei kotihakemistossasi viitteeksi pitämäsi kopio. Luotu profiili voidaan myös rakentaa uudelleen mallipohjasta, joten vain käyttöön otettuun kopioon tehty muutos palaa seuraavan provisiointiajon jälkeen.
Poista vanhentunut rivi ja jätä päätepiste, sertifikaatit, salauskäytäntö ja ohjauskanavan asetukset rauhaan. Ne ovat tuettuja asetuksia, joita prosessi tarvitsee, eivätkä ne liity jäsennyvirheeseen. Jos samassa profiilissa on muita direktiivejä, joita et tunnista, tarkista jokainen niistä käyttämäsi version mukaan sen sijaan, että poistat niistä ryhmän, kunnes prosessi käynnistyy.
Käynnistä sitten aiottu instanssi ja lue sen käynnistystuloste. Puhdas käynnistys kuuntelijan ollessa paikalla on vahvistus siitä, että tämä vaihe on valmis; asiakastesti sen jälkeen vastaa eri kysymykseen.
Hylätty profiili ja hylätty asiakasohjelma näyttävät samanlaisilta
Kaksi vikaa tuottaa samankaltaisia tukiketjuja ja vaatii eri todisteita. Palvelin, joka hylkää oman kokoonpanonsa, ei koskaan käynnisty, joten mikään asiakasohjelma ei voi yhdistää siihen. Palvelin, joka käynnistyy hyvin ja hylkää yhden asiakkaan, on käynnissä, ja sen loki sisältää syyn: sertifikaattiongelma, työnnetty asetus, jota asiakasohjelma ei hyväksy, salauksen epäsopivuus.
Poistettu asetus ei ole diagnoosi toisessa tapauksessa, ja siihen tarttuminen tuhlaa saman tunnin kahdesti. Jos asiakasohjelman loki näyttää palvelimen hylkäyksen, lue se hylkäys; jos se näyttää paikallisen virheen, tarkasteltava tiedosto on asiakasohjelman profiili. Sellaiseen direktiiviin tarttuminen, jota ei enää ole, viivästyttää molempia tutkimuksia saman verran.
Yhteensopivuuskysymykset, joihin rivi ei koskaan vastannut
Tämän direktiivin kanssa kiertävät profiilit kantavat yleensä tarinan tietystä alustasta, ja tarina elää teknisen syyn pidempään. Mobiili- tai työpöytäasiakasohjelma tarvitsee edelleen täydellisen tuetun profiilin: luotetun sertifikaattiketjun, datasalauksen, jonka molemmat päät hyväksyvät, ohjauskanavan tilan, jonka molemmat päät toteuttavat, eikä yhtään direktiiviä, jonka asiakasohjelman koontiversio hylkää. Mikään näistä ei ratkea sillä, onko vanha key-method-rivi paikallaan vai ei.
Pakkaaminen on erillinen käytäntökysymys, jolla on sama muoto. key-method-rivin poistaminen ei kerro mitään siitä, tuetaanko pakkausdirektiiviä käyttöönotossasi tai onko se hyväksyttävä, ja molemmat päätökset pitäisi tehdä itsenäisesti. Useiden turvallisuuteen liittyvien asetusten poistaminen kerralla, kunnes jokin yhdistää, on tapa, jolla toimivasta profiilista tulee selittämätön.
Pidä lyhyt kirjaus siitä, mitä poistit ja miksi: asetus, sen hylännyt versio ja komento, joka näytti virheen. Seuraava henkilö, joka perii profiilin, tarvitsee täsmälleen ne kolme tosiseikkaa, ja ne on halvempaa kirjoittaa nyt kuin jäljentää myöhemmin.