Zatražite status od upravljačkog sučelja jednom i ono počinje izgledati kao statusni port. Ali nije. Kad se klijent prihvati, može izdavati kontrolne naredbe protokola, a račun koji pokreće taj klijent nasljeđuje sve što te naredbe mogu učiniti demonu. Tretirati ga kao tok samo za čitanje pogreška je koja integraciju nadzora pretvara u neautentificiranu konzolu.

Uvjerenje i koliko stoji

Uvjerenje je da je upravljački slušatelj jednak metrijskoj završnoj točki: priključite kolektor, pročitajte brojače, idite dalje. Ono što se zapravo događa jest da kolektor otvara sesiju s kontrolnim mogućnostima, a svaka druga pretpostavka koju ste donijeli o postavljanju sada ovisi o tome da se taj kolektor ponaša dobro.

Ništa na sučelju ne oglašava način rada samo za čitanje. Nema uloge promatrača koju biste odabrali, a korisničko ime u konfiguraciji je ne stvara.

Što prihvaćeni klijent zapravo drži

Community demon prihvaća samo jednog aktivnog upravljačkog klijenta istodobno. Taj jedini utor znači da se GUI, skripta i nadzorni agent ne mogu svi priključiti; drugi čeka ili ne uspijeva dok prvi drži sesiju. Ako vaš dizajn pretpostavlja istodobne čitatelje, već je pogrešan.

Gdje je povremeni snimak dovoljan, izlaz statusne datoteke daje iste brojeve bez žive sesije. Pisanje te datoteke u intervalima i čitanje uz obične datotečne dozvole drži kolektor posve izvan kontrolne ravnine, a to je raspored koji većini nadzora zapravo treba.

Vlastiti socket, a ne otvoreni

Unix-domain socket drži kontrolnu stazu izvan mreže, što uklanja promjenljivu adresu tunela iz problema. To ne uklanja pitanje dozvola. Nadređeni direktorij mora biti upisiv servisnom računu i dostupan računu kontrolera, a to su dvije odvojene dozvole:

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

Datoteka s lozinkom nosi upravljačku tajnu u svom prvom retku. Zaštitite tu datoteku kao i svaku drugu vjerodajnicu i držite njezin sadržaj izvan zapisa i zahtjeva za podršku. Ograničenja korisnika i grupe provjere su druge strane na Unix socketu, a ne datotečne dozvole, pa predviđeni proces treba i pristup datoteci i odgovarajući identitet.

Učiniti socket dostupnim cijelom svijetu da bi se uklonila pogreška dozvole jedina je ispravka koju treba izbjegavati. Ona pretvara lokalni kontrolni kanal u nešto što svaki proces na hostu može pokretati.

Objavljivanje preko TCP-a nije isti dizajn

Premještanje slušatelja na TCP port ne čini ga sigurnijim ni praktičnijim. Upravljačka lozinka šalje se otvoreno, pa TCP slušatelj izlaže i vjerodajnicu i sesiju svakome tko može promatrati stazu. Dohvat s drugog hosta zahtijeva ovlašteni administrativni kanal ili mali lokalni agent koji izlaže samo opažanja koja su vam potrebna.

Lozinka na prijenosu otvorenim tekstom jest autentifikacija bez povjerljivosti, a ta je kombinacija gora nego što izgleda jer se osjeća zaštićeno.

Početne ovisnosti koje niste tražili

Nekoliko upravljačkih opcija mijenja životni ciklus demona. Držanje pokretanja dok se kontroler ne poveže, ili prekidanje kad kontroler nestane, pretvara neobveznog promatrača u tvrdu ovisnost. Nadzorni agent koji se sruši tada bi sa sobom srušio i tunel.

Pregledajte te opcije prije nego što omogućite bilo što osim samog socketa. Neobvezno promatranje treba ostati neobvezno, a politika ponovnog pokretanja ne smije biti vezana uz kolektor dodan zbog grafova.

Datoteka socketa koja ostane nakon neuspjelog procesa nije dokaz da slušatelj postoji. Utvrdite koja instanca posjeduje stazu prije nego što je uklonite, i koristite vlastiti proces oporavka usluge umjesto brisanja datoteka pod pokrenutim demonom.

Kako izgleda prihvaćanje

Četiri provjere pokrivaju dizajn: predviđeni identitet kontrolera povezuje se, proces bez tog identiteta biva odbijen, demon preživljava kontrolera koji se prekine bez upozorenja, i tunel i dalje prenosi promet kroz kontrolirano ponovno pokretanje. Uspješna upravljačka veza dokazuje samo kontrolnu ravninu. Ona ne govori ništa o tome radi li promet privatnih aplikacija, pa to testirajte odvojeno. Zapišite četiri rezultata tamo gdje ih sljedeći operater može naći.

Dokumentacija upravljačkog sučelja opisuje model jednog klijenta i privilegiranu prirodu protokola, a to je dio koji vrijedi pročitati prije nego što na njega usmjerite nadzornu ploču.

Povezani članci