Správny socket OpenVPN: riadiaci kanál, nie metriky
Prijatý správny klient drží riadiace príkazy, nie zobrazenie iba na čítanie. Vlastnite unixový socket, pri snímkach sa zaobíďte bez relácie a TCP držte bokom.
Požiadajte správne rozhranie raz o stav a začne to vyzerať ako stavový port. Nie je. Keď je klient prijatý, môže vydávať riadiace príkazy protokolu a účet, ktorý tohto klienta spúšťa, zdedí všetko, čo tieto príkazy môžu urobiť démonovi. Považovať ho za kanál iba na čítanie je chyba, ktorá z integrácie monitoringu robí konzolu bez autentifikácie.
Presvedčenie a čo stojí
Presvedčenie je, že správny poslucháč je rovnocenný metrickému koncovému bodu: pripojte zberač, prečítajte počítadlá a choďte ďalej. V skutočnosti zberač otvorí reláciu s riadiacimi možnosťami a každý ďalší predpoklad o nasadení teraz závisí od toho, že sa ten zberač bude správať dobre.
Nič v rozhraní neinzeruje režim iba na čítanie. Nie je k dispozícii žiadna rola pozorovateľa a používateľské meno v konfigurácii ju nevytvorí.
Čo prijatý klient skutočne drží
Komunitný démon prijíma vždy len jedného aktívneho správneho klienta. Tento jediný slot znamená, že GUI, skript a monitorovací agent sa nemôžu pripojiť všetci; druhý čaká alebo zlyhá, kým prvý drží reláciu. Ak váš návrh predpokladá súbežných čitateľov, už je nesprávny.
Kde stačí periodická snímka, výstup do stavového súboru vám dá rovnaké čísla bez živej relácie. Zapisovať tento súbor v intervaloch a čítať ho s bežnými súborovými právami drží zberač úplne mimo riadiacej roviny, a to je usporiadanie, ktoré väčšina monitoringu skutočne potrebuje.
Vlastný socket, nie otvorený
Unixový socket drží riadiacu cestu mimo siete, čo z problému odstraňuje meniacu sa adresu tunela. Neodstraňuje však otázku oprávnení. Nadradený adresár musí byť zapisovateľný pre servisný účet a dosiahnuteľný pre účet kontroléra, a to sú dve samostatné oprávnenia:
management /run/openvpn/office-management.sock unix /etc/openvpn/management.password
management-client-user vpn-observer
management-client-group vpn-observerSúbor s heslom nesie správne tajomstvo na svojom prvom riadku. Chráňte tento súbor ako každý iný údaj a jeho obsah držte mimo logov a podporných tiketov. Obmedzenia používateľa a skupiny sú kontroly protistrany na unixovom sockete, nie oprávnenia súborového systému, takže zamýšľaný proces potrebuje prístup k súboru aj zodpovedajúcu identitu.
Sprístupniť socket celému svetu, aby zmizla chyba oprávnení, je jediná oprava, ktorej sa treba vyhnúť. Premení miestny riadiaci kanál na niečo, čo môže ovládať akýkoľvek proces na hostiteľovi.
Zverejnenie cez TCP nie je ten istý návrh
Presunutie poslucháča na TCP port ho neurobí bezpečnejším ani pohodlnejším. Správne heslo sa posiela v otvorenej podobe, takže TCP poslucháč vystavuje údaj aj reláciu komukoľvek, kto môže cestu sledovať. Dosiahnuť ho z iného hostiteľa vyžaduje autorizovaný administratívny kanál alebo malého miestneho agenta, ktorý vystavuje len pozorovania, ktoré potrebujete.
Heslo na prenose v otvorenom texte je autentifikácia bez dôvernosti a táto kombinácia je horšia, než vyzerá, pretože pôsobí chránene.
Štartovacie závislosti, o ktoré ste nežiadali
Niekoľko správnych volieb mení životný cyklus démona. Držať štart, kým sa nepripojí kontrolér, alebo ukončovať, keď kontrolér zmizne, mení voliteľného pozorovateľa na tvrdú závislosť. Monitorovací agent, ktorý spadne, by potom so sebou stiahol aj tunel.
Prejdite si tieto voľby, kým povolíte čokoľvek okrem samotného socketu. Voliteľné pozorovanie má zostať voliteľné a politika reštartu nemá byť spojená so zberačom pridaným pre grafy.
Súbor socketu, ktorý zostane po neúspešnom procese, nie je dôkazom, že poslucháč existuje. Pred odstránením zistite, ktorá inštancia cestu vlastní, a použite vlastný postup obnovy služby namiesto mazania súborov pod bežiacim démonom.
Ako vyzerá prijatie
Návrh pokrývajú štyri kontroly: zamýšľaná identita kontroléra sa pripojí, proces bez tejto identity je odmietnutý, démon prežije kontroléra, ktorý sa odpojí bez varovania, a tunel aj po riadenom reštarte prenáša prevádzku. Úspešné správne spojenie dokazuje len riadiacu rovinu. O tom, či funguje prevádzka súkromných aplikácií, nič nehovorí, takže to testujte zvlášť. Zapíšte štyri výsledky tam, kde ich nájde ďalší operátor.
Dokumentácia správneho rozhrania opisuje model jedného klienta a privilegovanú povahu protokolu, a to je časť, ktorú sa oplatí prečítať, kým naň namierite dashboard.