Tuo profiili työpöytäasiakkaaseen, ja ensimmäinen virhe on usein rivi, jota asiakas kieltäytyy noudattamasta: skriptikoukku, jota se ei suorita, tai script-security-arvo, jota se pitää liian sallivana. Numeron nostaminen saa valintaikkunan katoamaan. Se myös laajentaa sitä, mitä kyseinen profiili saa suorittaa koneellasi, mikä on outo asia myöntää vain varoituksen sulkemiseksi. Seuraa tuonti direktiiviin asti, ja päätöksestä tulee konkreettinen.

Tuonti-ikkunasta direktiiviin

Profiili on tekstitiedosto, jossa on direktiivejä, ja asiakas lukee ne ennen kuin yhtään tunnelia on olemassa. Direktiivi kuten up, down tai tls-verify nimeää ulkoisen ohjelman, jonka OpenVPN pitäisi suorittaa määrättynä hetkenä. Onko OpenVPN halukas suorittamaan sen, on erillinen asetus nimeltä script-security, ja profiili yleensä asettaa senkin.

Varoitus ei siis koske salakirjoitusta tai varmenteita. Se koskee asetustiedostoa, joka pyytää asiakasta suorittamaan jotain isännällä, ja asiakasta, joka tarkistaa, salliiko sen nykyinen käyttöoikeustaso pyynnön.

Kaksi erilaista virhettä näyttää tässä vaiheessa samalta. Profiili, joka pyytää tasoa, jota asiakas ei myönnä, tuottaa hylkäyksen. Profiili, joka pyytää tasoa, jonka asiakas myöntää mutta skripti puuttuu, tuottaa sen sijaan ajonaikaisen virheen, ja nämä kaksi sekoitetaan tukiketjuissa. Toinen on käyttöoikeuskysymys ja toinen paketointikysymys.

Mitä kukin taso todella avaa

Taso 0 kieltää ulkoiset ohjelmakutsut kokonaan, mikä on johdonmukaista asiakkaalle, joka määrittää oman rajapintansa ilman apua, ja epäjohdonmukaista sellaiselle, joka turvautuu käyttöjärjestelmään. Taso 1, oletus, sallii sisäänrakennetut suoritettavat, joita rajapinnan ja reitityksen määritys tarvitsee. Kumpikaan taso ei suorita mitään käyttäjän toimittamaa.

LevelWhat OpenVPN may executeWhat it exposes
0No external programs at allInterface and route setup must not depend on helpers
1 (default)Built-in helpers such as ip, ifconfig, route or netshPrivileged commands the platform already ships
2Built-in helpers plus user-defined scriptsWhatever the named script does with the client's privileges
3Everything above, plus passwords in environment variablesCredentials visible to child processes and their logs

Taso 2 on mielenkiintoinen raja, koska se hyväksyy käyttäjän määrittämät skriptit. Siitä pisteestä lähtien asiakkaan oikeudet koskevat koodia, jota et ehkä ole koskaan lukenut, kutsuttuna hetkinä, joita et valinnut, ympäristössä, joka sisältää yhteyden tiedot. Taso 3 menee pidemmälle ja sallii salasanojen välittämisen ympäristömuuttujien kautta, minkä vuoksi käsikirja kuvaa sen mahdollisesti turvattomaksi.

Mikään näistä luvuista ei ole vahvuusasetus. Tason 3 profiililla ei ole parempaa salausta kuin tason 1 profiililla; sillä on yksinkertaisesti suurempi suorituspinta, ja tunneli on sama.

Päätä, mitä profiili ansaitsee

Kysy, mihin skripti on tarkoitettu, ennen kuin kysyt, minkä tason se tarvitsee. Koukku, joka työntää DNS-asetukset tai korjaa reitin yhteyden jälkeen, on laillinen syy suorittaa jotain. Koukku, joka kutsuu tuntematonta binääriä väliaikaisessa hakemistossa, on syy pysähtyä.

Skriptin polku on yhtä tärkeä kuin skripti. Suhteellinen polku ratkaistaan sitä hakemistoa vasten, jota asiakas käyttää, ja kirjoitettava hakemisto muuttaa kertaluontoisen tuonnin pysyväksi suorituspaikaksi. Absoluuttiset polut hakemistossa, jota käyttäjä ei voi muuttaa, ovat muoto, jota kannattaa suosia.

Skriptit perivät myös asiakkaan ympäristön, jossa tunnistetiedot ja yhteyden metatiedot elävät. Juuri tämä perintö tekee tasosta 3 vaarallisen yhdessä ympäristönsä lokiin kirjaavan skriptin kanssa, ja siksi skriptien kanssa toimivan asiakkaan diagnostiikkavedos ansaitsee toisen silmäyksen ennen kuin se liitetään tikettiin. Poista ympäristö ennen jakamista.

grep -nE 'script-security|^up |^down |tls-verify' client.ovpn

Muuta yhtä asiaa ja seuraa sitten myös purkamista

Jos profiili todella tarvitsee skriptin, muuta vain tasoa ja vain kyseiselle profiilille. Aja asiakasta etualalla yksityiskohtaisella tulosteella, jotta skriptin omat virheet näkyvät sen sijaan, että palvelunhallinta nielisi ne.

openvpn --config client.ovpn --script-security 2 --verb 3
ip route show default

Testaa koko elinkaari, älä vain yhteyttä. Epäonnistuva alasajon koukku jättää reitit osoittamaan kuolleeseen tunneliin, mikä tuottaa koneen, joka näyttää yhdistetyltä eikä tavoita mitään. Yhdistä uudelleen kerran ja katkaise kerran ennen kuin julistat muutoksen valmiiksi, ja tarkista reititystaulu kummankin jälkeen.

Säilytä kopio alkuperäisestä profiilista. Jos alusta-asiakas ei toteuta samaa skriptimallia, direktiivien poistaminen kunnes tuonti onnistuu voi poistaa DNS- tai reititysintegroinnin, jota tunneli tarvitsi, ja tuloksena oleva yhteys todentaa täydellisesti ratkaisematta mitään.

Kirjattava päätös on kapea: mikä skripti, millä polulla, millä tasolla myönnetty, mille profiilille. Kaikki muu profiilissa pysyy muuttumattomana, ja se on lause, jonka arvioija voi tarkistaa.

Aiheeseen liittyvät artikkelit