OpenVPN upravljački socket: kontrolni kanal, a ne metrike
Prihvaćeni upravljački klijent drži kontrolne komande, a ne prikaz samo za čitanje. Posjedujte Unix socket, preskočite sesiju za snimke i držite TCP izvan toga.
Zatražite status od upravljačkog interfejsa jednom i on počinje da liči na statusni port. Ali nije. Kada se klijent prihvati, može da izdaje kontrolne komande protokola, a nalog koji pokreće taj klijent nasleđuje sve što te komande mogu da učine demonu. Tretiranje toga kao toka samo za čitanje je greška koja monitoring integraciju pretvara u neautentifikovanu konzolu.
Uverenje i koliko košta
Uverenje je da je upravljački slušalac ekvivalentan metričkoj krajnjoj tački: priključite kolektor, pročitajte brojače, idite dalje. Ono što se zaista dešava jeste da kolektor otvara sesiju sa kontrolnim mogućnostima, a svaka druga pretpostavka koju ste napravili o postavljanju sada zavisi od toga da se taj kolektor ponaša dobro.
Ništa na interfejsu ne oglašava režim samo za čitanje. Nema uloge posmatrača koju biste izabrali, a korisničko ime u konfiguraciji je ne stvara.
Šta prihvaćeni klijent zapravo drži
Community demon prihvata samo jednog aktivnog upravljačkog klijenta istovremeno. Taj jedini slot znači da GUI, skript i monitoring agent ne mogu svi da se priključe; drugi čeka ili ne uspeva dok prvi drži sesiju. Ako vaš dizajn pretpostavlja istovremene čitaoce, već je pogrešan.
Gde je periodični 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 potpuno izvan kontrolne ravni, a to je raspored koji većini monitoringa zapravo treba.
Sopstveni socket, a ne otvoreni
Unix-domain socket drži kontrolnu putanju izvan mreže, što uklanja promenljivu adresu tunela iz problema. To ne uklanja pitanje dozvola. Nadređeni direktorijum mora biti upisiv servisnom nalogu i dostupan nalogu kontrolera, a to su dve odvojene dozvole:
management /run/openvpn/office-management.sock unix /etc/openvpn/management.password
management-client-user vpn-observer
management-client-group vpn-observerDatoteka sa lozinkom nosi upravljačku tajnu u svom prvom redu. Zaštitite tu datoteku kao i svaku drugu akreditaciju i držite njen sadržaj izvan dnevnika i zahteva za podršku. Ograničenja korisnika i grupe su provere 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 celom svetu da bi se uklonila greška dozvole jedina je ispravka koju treba izbegavati. Ona pretvara lokalni kontrolni kanal u nešto što svaki proces na hostu može da pokreće.
Objavljivanje preko TCP-a nije isti dizajn
Premeštanje slušaoca na TCP port ne čini ga sigurnijim ni praktičnijim. Upravljačka lozinka se šalje otvoreno, pa TCP slušalac izlaže i akreditaciju i sesiju svakome ko može da posmatra putanju. Dostizanje sa drugog hosta zahteva ovlašćeni administrativni kanal ili mali lokalni agent koji izlaže samo opažanja koja su vam potrebna.
Lozinka na transportu otvorenim tekstom jeste autentifikacija bez poverljivosti, a ta kombinacija je gora nego što izgleda jer se oseća zaštićeno.
Početne zavisnosti koje niste tražili
Nekoliko upravljačkih opcija menja životni ciklus demona. Držanje pokretanja dok se kontroler ne poveže, ili prekidanje kada kontroler nestane, pretvara opcionog posmatrača u tvrdu zavisnost. Monitoring agent koji se sruši tada bi sa sobom srušio i tunel.
Pregledajte te opcije pre nego što omogućite bilo šta osim samog socketa. Opciono posmatranje treba da ostane opciono, a politika restarta ne sme biti vezana za kolektor koji je dodat zbog grafikona.
Datoteka socketa koja ostane nakon neuspelog procesa nije dokaz da slušalac postoji. Utvrdite koja instanca poseduje putanju pre nego što je uklonite, i koristite sopstveni proces oporavka servisa umesto brisanja datoteka pod pokrenutim demonom.
Kako izgleda prihvatanje
Četiri provere pokrivaju dizajn: predviđeni identitet kontrolera se povezuje, proces bez tog identiteta biva odbijen, demon preživljava kontrolera koji se prekine bez upozorenja, i tunel i dalje prenosi saobraćaj kroz kontrolisani restart. Uspešna upravljačka veza dokazuje samo kontrolnu ravan. Ona ne govori ništa o tome da li radi saobraćaj privatnih aplikacija, pa to testirajte odvojeno. Zapišite četiri rezultata tamo gde ih sledeći operater može naći.
Dokumentacija upravljačkog interfejsa opisuje model jednog klijenta i privilegovanu prirodu protokola, a to je deo koji vredi pročitati pre nego što na njega usmerite nadzornu tablu.