Spørg administrationsgrænsefladen om en status én gang, og den begynder at ligne en statusport. Det er den ikke. Når først en klient er optaget, kan den udstede protokollens kontrolkommandoer, og den konto, der kører klienten, arver alt, hvad disse kommandoer kan gøre ved daemonen. At behandle den som et skrivebeskyttet feed er den fejl, der gør en overvågningsintegration til en uautentificeret konsol.

Overtroen, og hvad den koster

Overtroen er, at administrationslytteren svarer til et måleendepunkt: tilslut en indsamler, læs tællerne, kom videre. Det, der faktisk sker, er, at indsamleren åbner en session med kontrolmuligheder, og enhver anden antagelse, du gjorde om udrulningen, afhænger nu af, at den indsamler opfører sig ordentligt.

Intet i grænsefladen reklamerer med en skrivebeskyttet tilstand. Der er ingen observatørrolle at vælge, og et brugernavn i konfigurationen opretter ikke en.

Hvad en optaget klient egentlig har

Fællesskabsdaemonen accepterer kun én aktiv administrationsklient ad gangen. Den ene plads betyder, at en GUI, et script og en overvågningsagent ikke alle kan tilslutte sig; den anden venter eller fejler, mens den første holder sessionen. Hvis dit design forudsætter samtidige læsere, er det allerede forkert.

Hvor et periodisk snapshot er nok, giver statusfilens output dig de samme tal uden en live session. At skrive den fil med mellemrum og læse den med almindelige filrettigheder holder indsamleren helt uden for kontrolplanet, og det er den ordning, de fleste overvågningssystemer faktisk har brug for.

En egen socket, ikke en åben

En Unix-domænesocket holder kontrolstien uden for netværket, hvilket fjerner den skiftende tunneladresse fra problemet. Det fjerner ikke tilladelsesspørgsmålet. Forældrekataloget skal kunne skrives af tjenestekontoen og nås af controllerens konto, og det er to separate tilladelser:

management /run/openvpn/office-management.sock unix /etc/openvpn/management.password
management-client-user vpn-observer
management-client-group vpn-observer

Adgangskodefilen bærer administrationshemmeligheden på sin første linje. Beskyt den fil som enhver anden legitimationsoplysning, og hold dens indhold ude af logfiler og supportbilletter. Bruger- og gruppebegrænsningerne er peer-tjek på Unix-socketten, ikke filsystemtilladelser, så den tilsigtede proces har brug for både filadgangen og den matchende identitet.

At gøre socketten verdensomspændende tilgængelig for at rydde en tilladelsesfejl er den ene rettelse, du skal undgå. Det forvandler en lokal kontrolkanal til noget, som enhver proces på værten kan styre.

At udgive den over TCP er ikke samme design

At flytte lytteren til en TCP-port gør den ikke sikrere eller mere bekvem. Administrationsadgangskoden sendes i klartekst, så en TCP-lytter blotlægger både legitimationsoplysningen og sessionen for enhver, der kan observere stien. At nå den fra en anden vært kræver en autoriseret administrationskanal eller en lille lokal agent, der kun viser de observationer, du har brug for.

En adgangskode på en klarteksttransport er autentificering uden fortrolighed, og den kombination er værre, end den ser ud, fordi den føles beskyttet.

Opstartsafhængigheder, du ikke bad om

Flere administrationsindstillinger ændrer daemonens livscyklus. At holde opstarten tilbage, indtil en controller tilslutter sig, eller at afslutte, når controlleren forsvinder, gør en valgfri observatør til en hård afhængighed. En overvågningsagent, der går ned, ville så trække tunnelen med sig.

Gennemgå disse indstillinger, før du aktiverer noget ud over socketten selv. Valgfri observation bør forblive valgfri, og en genstartsstrategi bør ikke kobles til en indsamler, der blev tilføjet til grafer.

En socketfil, der ligger tilbage efter en mislykket proces, er ikke bevis for, at der findes en lytter. Find ud af, hvilken instans der ejer stien, før du fjerner den, og brug tjenestens egen genopretningsproces i stedet for at slette filer under en kørende daemon.

Hvordan accept ser ud

Fire kontroller dækker designet: den tilsigtede controlleridentitet tilslutter sig, en proces uden den identitet afvises, daemonen overlever en controller, der afbryder uden varsel, og tunnelen bærer stadig trafik gennem en kontrolleret genstart. En vellykket administrationsforbindelse beviser kun kontrolplanet. Den siger intet om, hvorvidt trafik fra private applikationer virker, så test det separat. Skriv de fire resultater ned, hvor den næste operatør kan finde dem.

Dokumentationen for administrationsgrænsefladen beskriver enkeltklientmodellen og protokollens privilegerede natur, og det er den del, der er værd at læse, før du peger et dashboard mod den.

Relaterede artikler