Ülesanne on selge: kui sülearvuti ühendub, peaks sülearvutis midagi muutuma. Konfiguratsioon, mida muudetakse, kuulub serverile, ja just seal eeldus laguneb. Tee serveri failis nimetab faili sellel serveril, ja ükski push ei muuda, kelle protsess seda täidab. Kahe konksu vahel valimine on peamiselt otsus, milline masin tööd omab, ja sellest tulenevate piirangute aktsepteerimine.

Kaks masinat, kaks küsimust, millele tuleb enne vastata

Küsige, kus peab toimuma seisundi muutus, ja seejärel, milline sündmus sellele vastab. Kui muutus on üksikkasutaja autoriseerimine või üksikliendi konfiguratsiooniotsus, kuulub see sinna, kus kasutajate kataloog on teada: serverisse. Kui muutus on marsruut, resolveri seade või lokaalne abivahend lõpp-punktis, kuulub see lõpp-punkti, ja ainult lõpp-punkt saab seda teha.

Nendele kahele küsimusele vastupidises järjekorras vastamine on see, kuidas inimesed jõuavad proovimiseni lükata pakettfail Windowsi sülearvutisse. Server teab, kes ühendus; sülearvuti teab, milline näeb välja tema enda võrgupinu. Kummall ei ole teise teavet, ja katse ebaõnnestub tavaliselt vaikselt, mitte selge veaga.

Enne mõlemat tasub küsida kolmandat küsimust: kas platvorm üldse pakub konksu, mida te tahate? Seade, mis genereerib oma konfiguratsiooni ise, ei pruugi pakkuda samu sündmuste nimetusi, ja töölauaklient, mis impordib .ovpn-faili, ei ole tingimata sama klient, mille jaoks fail kirjutati. Platvormi enne kinnitamine säästab teid konksu ümber projekteerimisest, mida seal ei ole. See ütleb teile ka, milline dokumentatsioon tegelikult teie ees olevale masinale kehtib.

Serveripoolne valik: sündmus ühenduse kohta

client-connect skript jookseb serveri protsessi kontekstis, kui autenditud klient ühendub, ja saab dokumenteeritud ühenduse üksikasjad, nagu common name ja määratud aadress. See on õige koht üksikliendi konfiguratsioonifragmendi kirjutamiseks, poliitikaotsuse jõustamiseks või serverile kuuluva oleku salvestamiseks.

Erinevus, mille inimesed kahe silma vahele jätavad, on selle konksu ja serveri up-konksu vahel. up-konks käivitub, kui server avab oma tunneliseadme, mis mitme kliendiga serveris juhtub üks kord deemonit käivitades. See ei ole sisselogimise sündmus, ja sinna pandud kood jookseb teenuse käivitamisel, mitte siis, kui kasutajad ühenduvad.

Veebiliidesega seadmes kasutage toetatud laiendusmehhanismi, mitte ärge muutke genereeritud deemonifaile. Genereeritud failid kirjutatakse järgmisel salvestamisel üle, ja ülekirjutamine eemaldab teie muudatuse vaikselt kõige halvemal hetkel. Hoidke laiendusteksti koopia väljaspool seadet, et püsivara uuendus ei kaotaks ka kavatsust.

Kliendipoolne valik: töö, mis peab jooksma lokaalselt

Kogukonnaklient saab käivitada lokaalse skripti, kui tunneliseade üles tuleb, ja uuesti, kui marsruudid paigaldatakse. Need on kaks erinevat hetke, ja vale valimine tekitab klassikalise võidujooksu, kus abivahend käivitub enne, kui marsruut, millest see sõltub, on olemas.

Abivahend peab sellel kliendil olema, olema loetav ja käivitatav konto poolt, mis klienti jooksutab, ja lubatud selgesõnalise script-security seadega. Skript, mis töötab, kui käivitate kliendi administraatorina, ei ütle teile midagi sisselogimiseelse teenuse ega teise kasutaja sessiooni kohta.

Nimetamine loeb ka. up-konks vastab seadme loomisele ja route-up marsruutide paigaldamisele, kuid ülesanne, mis vajab eravõrgu kättesaadavust, peaks kättesaadavust kontrollima, mitte eeldama, et seadme loomine tähendab, et iga marsruut, resolveri kirje ja rakendus on valmis.

Miks käivitatava koodi pushimine menüüs ei ole

Pushitavad valikud on teadlikult piiratud, ja skripte käivitavad valikud kuuluvad kategooriatesse, mida server ei tohi edasi anda. See piirang on sellepärast, et alternatiiv lubaks kompromiteeritud või valesti konfigureeritud serveril käivitada suvalisi käske igal kliendil, mis kunagi ühendub.

Skripti käivitamise lubamine lokaalselt ei muuda seda. Teie script-security seade lubab lokaalseid skripte, mille te ise valisite; see ei anna serverile õigust uusi tarnida.

Kui eesmärk on lihtsalt VPN-i marsruute paigaldada, kasutage toetatud marsruudikonfiguratsiooni, mitte ärge leiutage kaugkäivituse skeemi. Kui eesmärk tõesti nõuab lokaalset koodi, levitage seda organisatsiooni lõpp-punktide haldusvahendite kaudu ja vaadake see üle nagu iga teine tarkvara, mis jookseb kasutaja õigustega.

Mida kontrollida, enne kui usaldate kumbagi konksu

Kirjutage iga konksu kohta üles neli asja: masin, sündmuse nimi, konto, mille all see jookseb, ja seisundimuutus, mille see peaks tekitama. Seejärel testige ühendust, taasühendust ja puhastusteekonda, sest konks, mis lekitab taasühendamisel olekut, on hullem kui see, mis kunagi ei jooksnud.

Testige konto all, mis seda tegelikult täidab, hetkel, mil see tegelikult täidetakse. Openvpn(8) käsiraamat dokumenteerib mõlemad konksuperekonnad ja push-piirangud; platvorm, kuhu te paigutate, dokumenteerib, kas see neid üldse pakub. Skript, mis õnnestub interaktiivses administraatori terminalis, on hüpotees, mitte kontroll.

Seotud artiklid