Pieni ohjelma, joka yhdistää olemassa olevan VPN:n, tarvitsee ohjaimen, ei uutta VPN-toteutusta. Tuetun moottorin pitäisi hoitaa neuvottelu ja tunneliliikenne; ohjelmasi pitäisi ilmaista käyttäjän pyyntö ja selittää tulos rehellisesti. Linuxissa NetworkManagerin D-Bus-rajapinta antaa tälle ohjaimelle konkreettisen mallin, jota seurata.

Neljä tarkistusta estävät ohjainta sekoittamasta tallennettua profiilia, aktivointipyyntöä ja toimivaa istuntoa.

Tarkistus yksi: mikä identiteetti valitaan

Pidä profiilin UUID pysyvänä identiteettinä ja selvitä se hallinnan kautta, kun tarvitset objektin polun. Näyttönimen voivat jakaa kaksi profiilia, eikä ajonaikainen väyläpolku ole järkevä tallennettava käyttäjäasetus. Kirjoita valinta omaan kokoonpanoosi, älä kommenttiin siitä, mikä merkintä oli luettelossa toinen.

Tarkista, mitä hallinta palauttaa, ennen kuin kutsut sitä osumaksi. UUID, jota ei enää ole, tuottaa hakuvirheen, ja se on eri koodipolku kuin profiili, joka on olemassa ja kieltäytyy aktivoinnista.

Tarkistus kaksi: mitä aktivointikutsu palauttaa

Dokumentoitu aktivointikutsu ottaa olemassa olevan yhteyden objektipolun, laitteen polun ja tietyn objektin. Se palauttaa aktiivisen yhteyden polun, ja se vastaus on kahva, ei valmiuden tulos. Älä aseta sovelluksesi valmiuslippua paluuarvosta; tilaa sen sijaan aktiivisen yhteyden tila ja syy.

VPN:n kohdalla tietty objekti valitsee aktiivisen perusyhteyden. Juuripolun välittäminen jättää laitevalinnan NetworkManagerille, joka valitsee sen, mikä on kulloinkin oletus. Se on reitityskontekstin päätös, ei salasanakenttä, ja se muuttaa, mille laitteelle tunneli kerrostetaan.

Älä ota yleistä lisää-ja-aktivoi-esimerkkiä ja odota sen luovan VPN-profiilin. Dokumentoitu apuri jättää VPN-yhteydet pois, joten profiilin valmistelu tai tuonti on erillinen, tarkastettu vaihe. Tämä on tärkeää, koska valmistelu vaatii valtuutuksen ja tarkastuksen, jota yhdistämispainike ei tarjoa. Kohtele tuontia hallinnollisena toimena, jolla on oma lokirivinsä ja oma hyväksyjänsä.

Tarkistus kolme: miten tila esitetään

Aktiivinen yhteys kulkee aktivoinnin, aktiivisen, deaktivoinnin ja deaktivoidun kautta, ja syykenttä kertoo miksi. Kaiken tuon puristaminen loggedIn-nimiseen totuusarvoon kadottaa tiedon, jota käyttäjä tarvitsee ja jota tuki tulee kysymään. Näytä ainakin, onko yhteys odottava, muodostettu vai poissa, ja säilytä syymerkkijono virhetapausta varten.

Yhdistä asynkroniset vastaukset pyyntöön, joka ne synnytti. Vanhemman yrityksen myöhäinen valmistuminen ei saa ylikirjoittaa uudempaa käyttäjän toimintoa, ja Connectin kaksoispainallus pitäisi joko jättää huomiotta tai käsitellä peruutuksena ja uusintayrityksenä näkyvällä käytännöllä.

Tarkistus neljä: mitä tapahtuu uudelleenkäynnistyksen jälkeen

Kun hallinta käynnistyy uudelleen tai ohjaimesi yhdistyy väylään uudestaan, rakenna havaittu tila uudelleen omistajalta. Älä näytä välimuistiin tallennettua istuntoa aktiivisena siksi, että vanha objektipolku on vielä muistissa. Tilamuutossignaalit ovat olemassa juuri siksi, että ohjain voi synkronoida uudelleen arvaamisen sijaan.

Valitse, mitä ohjaimen sulkeminen tarkoittaa. Olemassa olevan koneen omistaman yhteyden jättäminen päälle voi olla oikein, ja tarkoituksella lyhytaikaisen istunnon purkaminen voi myös olla oikein. Olemassa olevan koneen omistaman yhteyden jättäminen päälle voi olla oikein; tarkoituksella lyhytaikaisen istunnon purkaminen voi myös olla oikein. Kirjoita tuo omistussopimus rajapintaan sen sijaan, että olettaisit prosessin lopun tekevän verkkotoimen. Käyttäjien ei pitäisi joutua arvaamaan, katkaiseeko ikkunan sulkeminen heidän tunnelinsa. Laita vastaus rajapinnan tekstiin, ei vain koodikommenttiin.

Pidä valta ja salaisuudet niiden omistajilla

Käyttöoikeudet palaavat muodossa kyllä, auth tai ei, ja rajapinnan pitäisi heijastaa eroa sallitun, todennuksen jälkeen sallitun ja kielletyn välillä. Ohjaimen ajaminen rootina ei toteuta käyttöoikeuskäytäntöä; se poistaa kysymyksen.

Tunnistetiedot kuuluvat tuetulle salaisuuksien agentille tai asiakasintegraatiolle määritettyä todennusmenetelmää varten. Salasana lähdekoodissa, argumentissa tai lokissa on löydös, eikä paikallinen hallinnollinen valtuutus ole sama tapahtuma kuin yhdyskäytävän todennus.

Ilmoita lopuksi yhteyden tila erillään tehtävästä, jonka käyttäjä haluaa suorittaa. Tunneli voi olla aktiivinen, kun yksityinen nimi tai sovellus on edelleen tavoittamattomissa, ja se toinen virhe ansaitsee oman viestinsä ja oman tilansa. Ohjain, joka sanoo tarkalleen, mikä kerros epäonnistui, on hyödyllisempi kuin se, joka sanoo VPN:n olevan alhaalla.

Aiheeseen liittyvät artikkelit