Yhdistä 2.x-asiakkaalla ja profiili toimii; anna sama tiedosto 3.x-asiakkaalle ja se pysähtyy salasanakehotteeseen. Anna --auth-user-pass creds.txt komennolle openvpn3 session-start ja tulos on sama, koska uudemmalla asiakkaalla ei ole vaihetta, joka lukisi tiedoston. Kieltäytyminen on tahallista: tunnistetiedot kuuluvat istuntoon, ja istunnon luo palvelu, ei päätteesi prosessi. Valitse vuorovaikutteisen kehotteen ja automaattisen latauksen avustajan välillä ja tiedä, mitä kumpikin tallentaa.

Miksi tallennetulla tiedostolla ei ole minne mennä

Uudemmassa mallissa kokoonpanon hallinta ja istuntojen hallinta ovat erillisiä palveluita, jotka puhuvat järjestelmäväylän kautta. Juuri tämä erottelu sallii tavallisen käyttäjän aloittaa istunnon ilman, että etuoikeutettu taustapalvelu lukisi hänen puolestaan suojattua salasanatiedostoa. Tiedostopohjaisilla tunnistetiedoilla ei ole sijaa siinä mallissa, koska taustapalvelun puolella ei ole käynnistystä, joka lukisi ne. Kieltäytyminen on arkkitehtuurin seuraus, ei puuttuva ominaisuus.

Vanha malli kannattaa nimetä, jotta siitä on helpompi vieroittua: profiili viittaa tunnistetiedostoon ja taustapalvelu lukee sen tunnelin käynnistyessä. Uudessa mallissa tunnistetiedot kuuluvat istuntoon ja ne toimitetaan, kun istunto alkaa. openvpn3 session-start --config work.ovpn kysyy niitä ja --auth-user-pass creds.txt hylätään, koska mikään sillä polulla ei avaisi tiedostoa. Jokainen löytämäsi 2.x-ohje olettaa vaiheen, jota ei enää ole.

Kokoonpano ja sivuston paikalliset asetukset on myös erotettu, mikä selittää toisen yllätyksen. Profiili voi näyttää täydelliseltä, vaikka sen tuottamasta yhteydestä puuttuu reititys- ja selvityspalvelinkokoonpano. Ne osat sovelletaan sivuston paikallisina asetuksina, erillään tuodusta tiedostosta.

Kehotteen polku ja istunto, jonka se jättää

Salasanan toimittaminen istunnon alkaessa on tarkoitettu työnkulku. Asiakas kysyy kerran, antaa tunnistetiedot istunnon taustalle ja jatkaa:

openvpn3 session-start --config work.ovpn
openvpn3 sessions-list

Sitä polkua pitkin levylle ei kirjoiteta mitään. Istunto jatkaa toimintaansa myös päätteen sulkeuduttua, mikä yllättää ne, jotka odottavat prosessin kuolevan kuorensa mukana. Juuri se on istuntojen käsittelyn siirtämisen palveluun tarkoitus. Istunto elää pidempään kuin sen pyytänyt pääte, ja se on pysäytettävä nimenomaisesti.

Työasemalle, jonka edessä on ihminen, tämä on myös turvallisin vaihtoehto, koska suojattavaa tai unohdettavaa tallennettua salaisuutta ei ole. Se ei sovi vain sinne, missä kukaan ei ole kirjoittamassa.

Automaatio ilman ihmistä näppäimistöllä

Kun koneen on yhdistettävä ilman ihmistä, projekti toimittaa openvpn3-autoload. Se lukee profiilien hakemiston ja jokaista profiilia vastaavan kuvaajan, ja kuvaaja toimittaa tunnistetiedot selkokielisenä. Avustaja on erillinen binaari, yleensä polussa /usr/sbin/openvpn3-autoload, ei session-start-komennon valitsin. Sen asentaminen tarkoittaa hakemiston luomista, profiilin kopioimista nimelle, jota kuvaaja odottaa, ja kuvaajan kirjoittamista.

Käyttäjäkohtainen asennus näyttää tältä ja ajetaan tilinä, joka omistaa istunnon. Hakemiston tila pitää muut paikalliset käyttäjät ulkona:

mkdir -m700 -p ~/.openvpn3/autoload
cp work.ovpn ~/.openvpn3/autoload/client.conf
$EDITOR ~/.openvpn3/autoload/client.autoload

Kuvaaja nimeää tunnistetiedot ja pyytää automaattista käynnistystä. Pidä salasanan arvo versiohallinnan ulkopuolella:

{
  "autostart": true,
  "user-auth": {
    "autologin": true,
    "username": "svc-vpn",
    "password": "change-this-value"
  }
}

Kutsu sitten avustajaa kerran ja varmista, että istunto ilmestyy. Toinen komento on tarkistus, ei uusi asennusvaihe:

/usr/sbin/openvpn3-autoload --directory ~/.openvpn3/autoload
openvpn3 sessions-list

Käynnistyksessä paketoitu yksikkö nimeltä openvpn3-autoload.service käyttää järjestelmänlaajuista hakemistoa /etc/openvpn3/autoload, ei käyttäjäkohtaista. Se sijainti vaatii rootin omistajuuden ja tiukemman tilan, ja kuvaaja pitää salasanan edelleen selkokielisenä. Kompromissi on selvä: salasana on nyt levyllä, joten kohtele sitä hakemistoa salaisuutena, jätä se isännän ulkopuolisten varmuuskopioiden ulkopuolelle ja valitse vuorovaikutteinen polku aina, kun paikalla on ihminen.

Väylävirheet, jotka näyttävät salasanavirheiltä

Jotkin tunnistetietoihin liitetyt virheet eivät ole sitä lainkaan. Palvelun aktivointipolun nimeävä käyttöoikeusvirhe tarkoittaa toista kahdesta: tausta ei ole käynnissä tai kutsujalla ei ole oikeutta aktivoida sitä. Mikään profiilin muokkaus ei muuta kumpaakaan. Tarkista palvelun tila ja mukana toimitettu väyläkäytäntö ennen kuin kosket kokoonpanoon.

Alla olevat komennot erottavat nämä kaksi. Ensimmäinen kertoo, onko tausta käynnissä; toinen näyttää viimeisimmät väylävirheet:

systemctl status openvpn3-service-client
journalctl -b -u openvpn3-service-client --no-pager | tail -20

Toinen yleinen väärinluenta on istunto, joka ilmestyy ja katoaa heti. Se kuvio tarkoittaa yleensä, että sivuston paikallisia asetuksia ei koskaan sovellettu, joten tunneli nousi ilman reitityksen ja selvityspalvelimen muutoksia, jotka tekevät siitä hyödyllisen. Lue järjestys, älä viimeistä riviä: luotiinko istunto, saavuttiko se yhdistetyn tilan ja säilyikö se ovat kolme erillistä tosiasiaa.

Kun vanhempaa asiakasta vielä käytetään

2.x-asiakas hyväksyy yhä tunnistetiedoston, ja avainnippu voi vastata sen kehotteeseen ilman, että salaisuus koskaan päätyy levylle. Kääre ratkaisee merkinnän, joten tiedosto nimeää haun eikä salasanaa. Tämä järjestely riippuu avatusta avainnipusta, jota kontti ilman kirjautumisistuntoa tai yksikkö, joka käynnistyy ennen kuin kukaan kirjautuu, ei voi tarjota. Silloin hakutyökalu ilmoittaa kokoelmasta, johon se ei voi kirjoittaa, joten virhe näyttää tunnistetietovirheeltä, vaikka se on avainnipun virhe.

Ennen kuin rakennat mitään tästä, tarkista, poistaako profiilin keepalive-asetus uudelleenkäynnistyksen tarpeen kokonaan. Ylhäällä pysyvä istunto ei koskaan saavuta kehotetta, jota yrität automatisoida.

Aiheeseen liittyvät artikkelit