Bare én administrasjonsklient: hvorfor overvåkingen din kaster ut GUI-et
Administrasjonssokkelen tar én tilkobling om gangen. En andre abonnent klarer enten ikke å koble seg på eller stjeler kontrollen fra komponenten som eier ledetekstene.
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 need | Mechanism that fits | What it cannot do |
|---|---|---|
| Periodic list of connected clients | Status file written on an interval | Deliver events as they happen |
| Interactive prompts and session control | The single management connection | Serve two controllers at once |
| Multiple consumers of either | One owner process that fans out | Exist 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.