Töölaua graafiline liides hoiab haldusühendust, seega jälgimisskript, mis üritab avada omaenese oma, ei loe midagi või, hullem, liides lakkab viipadele vastamast. Tavaline järeldus on, et deemon on ebakindel. Kogukonna deemonis on piirang tahtlik: juhtimisliides teenindab korraga ühte ühendatud haldusklienti ja see arv ei ole kuidagi seotud sellega, kui palju kasutajaid VPN kanda suudab.

Üks pistik, üks hoidja

Halduskanal võtab vastu ühe ühendatud kliendi. Kui teine saabub esimese aktiivsuse ajal, ootab see või lükatakse tagasi, ja valiku taga ei ole peidetud paralleelset tellijarežiimi. Praeguse hoidja lahtiühendamine lubab deemonil vastu võtta järgmise, mis on üleandmine, mitte teine kanal.

See teeb igast lisatööriistast konkurendi. Kui liides omab ühendust, siis küsitlev skript kas ei saa liituda või õnnestub alles pärast seda, kui liides on alla andnud, ja jada kordub järgmisel taasühendamisel. Kui skript liitub esimesena, kaotab liides oma juhtimistee ja selle viibad lakkavad toimimast. Kumbki tööriist ei teata konflikti, sest kumbki näeb ainult oma ebaõnnestunud käsku.

What you needMechanism that fitsWhat it cannot do
Periodic list of connected clientsStatus file written on an intervalDeliver events as they happen
Interactive prompts and session controlThe single management connectionServe two controllers at once
Multiple consumers of eitherOne owner process that fans outExist without you writing it

Otsusta, milline komponent omab juhtimist

Vali interaktiivsele kanalile üks hoidja ja lase sellel olla ainus, mis ühendub. Liides, mis haldab ühendust, skript, mis vastab autentimisviipadele, ja kontroller, mis lõpetab sessioone, loetakse kõik hoidjateks ning rolli saab hoida ainult üks.

Kui liides omab ühendust, kasuta selle liidese pakutavat integratsiooni, mitte ära võitle sellega. Hoidjaga pistiku pärast võidu jooksmine tekitab katkendlikke tõrkeid, mis tunduvad kasutajatele juhuslikena, ja siluja näeb tavaliselt ainult teist poolt võistlusest. Pane kirja, milline protsess ühendub pärast taaskäivitust esimesena, sest see järjekord otsustab iga kord, kes võidab. Enne liidest käivituv monitor hoiab kanalit seni, kuni liides alla annab.

Kasuta kogujate jaoks olekuhetktõmmiseid

Enamik jälgimisvajadusi tahab nimekirja, mitte vestlust. Perioodiline olekufail vastab sellele juhtimiskanalit puutumata ja see jätkab tööd, kuni liides ühendatuks jääb.

status /run/openvpn/server.status 10
management /run/openvpn/server.sock unix

Intervall on värskuse eelarve, seega sea see sellele, mida armatuurlaud tegelikult vajab, mitte väikseimale väärtusele, mis tundub turvaline. Iga paari sekundi tagant kirjutatav hetktõmmis on odav; skript, mis ühendub iga paari sekundi tagant uuesti juhtimispistikuga, ei ole, sest iga taasühendamine konkurereerib hoidjaga.

Hetktõmmis ei ole ajalugu ega sündmustevoog. Ühendused, mis saabuvad ja lahkuvad ühe intervalli jooksul, ei ilmuta kunagi, seega auditinõuet ei saa täita faili küsitledes, mis kirjutab end üle. Kui pead teadma, kas kasutaja üldse ühendus, on hetktõmmis vale vahend.

Hajutamine on disain, mitte režiim

Kui mitmed tarbijad vajavad tõesti reaalajas haldusandmeid, pane pistiku ette üks usaldusväärne komponent ja lase sellel avaldada hoolikalt valitud vaatlusi ülejäänutele. See komponent omab taasühendamist, autentimisviipu ja otsust selle üle, mida on turvaline paljastada.

Ehita see teadlikult: määra, millised päringud on lubatud, logi, kes küsis, ja väldi hajutuskihi muutumist kogemata kaugjuhtimispaneeliks. Deemonil ei ole mitmekliendirežiimi, mida sisse lülitada, ja ükski konfiguratsioonirida ei loo seda. Käsitle hoidjat turvapiiri osana, sest see hoiab liidest, mis suudab inimesi lahti ühendada. Taaskäivitamine peaks olema rutiinne toiming dokumenteeritud taastumisteega.

Käsitle pistikut privileegina, mitte mõõdikutena

Haldusliides saab kasutajaid lahti ühendada, olekut muuta ja lugeda sündmusi, milles nimetatakse inimesi. Selle parool autendib kliendi ega krüpteeri transporti, seega võrgu kuulaja paljastab vestluse kõigile, kes seda jälgida saavad.

Eelista kohalikku pistikut või rangelt piiratud kuulajat ja kontrolli, millise protsessi poole sinu koguja tegelikult pöördub, sest serveritooted tarnivad oma haldus-API-d, mis käituvad teisiti. Vale deemoniga ühendatud koguja annab kindlad ja valed järeldused. Kinnita tee ja omav protsess enne, kui silud päringut, mis ei tagasta midagi.

Seotud artiklid