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 izgledati kao statusni port. Ali nije. Kada se klijent prihvati, može izdavati kontrolne komande protokola, a nalog koji pokreće taj klijent nasljeđuje sve što te komande mogu učiniti demonu. Tretiranje toga kao toka samo za čitanje greška je koja monitoring integraciju pretvara u neautentifikovanu konzolu.
Uvjerenje i koliko košta
Uvjerenje 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 zapravo događa jeste da kolektor otvara sesiju s 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 bi 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 se GUI, skripta i monitoring agent ne mogu svi priključiti; drugi čeka ili ne uspijeva dok prvi drži sesiju. Ako vaš dizajn pretpostavlja istovremene čitaoce, već je pogrešan.
Gdje 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.
Vlastiti socket, a ne otvoreni
Unix-domain socket drži kontrolnu putanju izvan mreže, što uklanja promjenljivu adresu tunela iz problema. To ne uklanja pitanje dozvola. Nadređeni direktorij mora biti upisiv servisnom nalogu i dostupan nalogu 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-observerDatoteka s 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 zahtjeva za podršku. Ograničenja korisnika i grupe su provjere 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 greš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šaoca na TCP port ne čini ga sigurnijim ni praktičnijim. Upravljačka lozinka šalje se otvoreno, pa TCP slušalac izlaže i akreditaciju i sesiju svakome ko može posmatrati putanju. Dostizanje s drugog hosta zahtijeva ovlašteni administrativni kanal ili mali lokalni agent koji izlaže samo opažanja koja su vam potrebna.
Lozinka na transportu otvorenim tekstom jeste autentifikacija bez povjerljivosti, a ta kombinacija je gora nego što izgleda jer se osjeća zaštićeno.
Startne zavisnosti koje niste tražili
Nekoliko upravljačkih opcija mijenja životni ciklus demona. Držanje pokretanja dok se kontroler ne poveže, ili prekidanje kada kontroler nestane, pretvara opcionalnog posmatrača u tvrdu zavisnost. Monitoring agent koji se sruši tada bi sa sobom srušio i tunel.
Pregledajte te opcije prije nego što omogućite bilo šta osim samog socketa. Opcionalno posmatranje treba ostati opcionalno, a politika restarta ne smije biti vezana za kolektor koji je dodan zbog grafikona.
Datoteka socketa koja ostane nakon neuspjelog procesa nije dokaz da slušalac postoji. Utvrdite koja instanca posjeduje putanju prije nego što je uklonite, i koristite vlastiti proces oporavka servisa umjesto brisanja datoteka pod pokrenutim demonom.
Kako izgleda prihvatanje
Četiri provjere 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. Uspješna upravljačka veza dokazuje samo kontrolnu ravan. Ona ne govori ništa o tome radi li saobraćaj privatnih aplikacija, pa to testirajte odvojeno. Zapišite četiri rezultata tamo gdje ih sljedeći operator može naći.
Dokumentacija upravljačkog interfejsa opisuje model jednog klijenta i privilegovanu prirodu protokola, a to je dio koji vrijedi pročitati prije nego što na njega usmjerite nadzornu ploču.