Et skrivebords-GUI holder på administrasjonstilkoblingen, så et overvåkingsskript prøver å åpne sin egen og leser ingenting, eller verre, GUI-et slutter å svare på ledetekster. Den vanlige konklusjonen er at dæmonen er ustabil. I fellesskapsdæmonen er begrensningen tilsiktet: kontrollgrensesnittet betjener én tilkoblet administrasjonsklient om gangen, og dette tallet har ingenting å gjøre med hvor mange brukere VPN-et kan bære.

Én sokk, én eier

Administrasjonskanalen godtar én tilkoblet klient. Når en andre kommer mens den første er aktiv, venter den eller blir avvist, og det finnes ingen parallell abonnentmodus skjult bak et alternativ. Å koble fra den nåværende eieren lar dæmonen godta den neste, og det er en overlevering, ikke en andre kanal.

Det gjør hvert ekstra verktøy til en konkurrent. Hvis GUI-et eier tilkoblingen, mislykkes enten pollingskriptet med å koble seg på eller lykkes først etter at GUI-et har gitt opp, og sekvensen gjentas ved neste gjenoppkobling. Hvis skriptet kobler seg på først, mister GUI-et kontrollbanen sin og ledetekstene slutter å virke. Ingen av verktøyene rapporterer konflikten, fordi hver av dem bare ser sin egen mislykkede kommando.

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

Bestem hvilken komponent som eier kontrollen

Velg én eier for den interaktive kanalen og la den være det eneste som kobler til. Et GUI som administrerer tilkoblingen, et skript som svarer på autentiseringsledetekster og en kontroller som avslutter økter regnes alle som eiere, og bare én kan ha rollen.

Når et GUI eier tilkoblingen, bruk integrasjonen GUI-et tilbyr i stedet for å kjempe mot det. Å konkurrere med eieren om sokkelen gir periodiske feil som virker tilfeldige for brukerne, og den som feilsøker ser vanligvis bare andre halvdel av kappløpet. Legg merke til hvilken prosess som kobler til først etter en omstart, fordi den rekkefølgen avgjør hvem som vinner hver gang. En overvåker som starter før GUI-et, beholder kanalen til GUI-et gir opp.

Bruk statusøyeblikksbilder for innsamlerne

De fleste overvåkingsbehov trenger en liste, ikke en samtale. En periodisk statusfil svarer på det uten å røre kontrollkanalen, og den fortsetter å virke mens GUI-et er tilkoblet.

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

Intervallet er ferskhetsbudsjettet, så sett det til det dashbordet faktisk trenger, ikke til den minste verdien som virker trygg. Et øyeblikksbilde som skrives hvert par sekunder er billig; et skript som kobler seg til kontrollsokkelen på nytt hvert par sekunder er det ikke, fordi hver gjenoppkobling konkurrerer med eieren.

Et øyeblikksbilde er ikke en historikk og ikke en hendelsesstrøm. Tilkoblinger som kommer og går innenfor ett intervall vises aldri, så et revisjonskrav kan ikke oppfylles ved å polle en fil som overskriver seg selv. Hvis du trenger å vite at en bruker i det hele tatt koblet til, er øyeblikksbildet feil instrument.

Fan-out er en design, ikke en modus

Hvis flere forbrukere faktisk trenger levende administrasjonsdata, sett én betrodd komponent foran sokkelen og la den publisere nøye utvalgte observasjoner til resten. Den komponenten eier gjenoppkobling, autentiseringsledetekster og beslutningen om hva som er trygt å eksponere.

Bygg den bevisst: definer hvilke spørringer som er tillatt, logg hvem som spurte, og unngå å gjøre fan-out-laget til et fjernkontrollpanel ved et uhell. Dæmonen har ingen flerklientmodus å aktivere, og ingen konfigurasjonslinje lager en. Behandle eieren som en del av sikkerhetsgrensen, fordi den holder et grensesnitt som kan koble fra folk. Å starte den på nytt bør være en rutineoperasjon med en dokumentert gjenopprettingsvei.

Behandle sokkelen som privilegium, ikke som måltall

Administrasjonsgrensesnittet kan koble fra brukere, endre tilstand og lese hendelser som navngir folk. Passordet autentiserer klienten og krypterer ikke transporten, så en nettverkslytter eksponerer samtalen for alle som kan observere den.

Foretrekk en lokal sokk eller en strengt begrenset lytter, og sjekk hvilken prosess innsamleren din faktisk adresserer, siden serverprodukter leverer egne administrasjons-API-er som oppfører seg annerledes. En innsamler som peker på feil dæmon gir selvsikre, gale konklusjoner. Bekreft stien og den eide prosessen før du feilsøker en spørring som ikke returnerer noe.

Relaterte artikler