Správní socket OpenVPN: řídicí kanál, ne metriky
Přijatý správní klient drží řídicí příkazy, ne zobrazení jen pro čtení. Vlastněte unixový socket, u snímků se obejděte bez relace a TCP držte stranou.
Požádejte správní rozhraní jednou o stav a začne to vypadat jako stavový port. Není. Jakmile je klient přijat, může vydávat řídicí příkazy protokolu a účet, který tohoto klienta spouští, zdědí vše, co tyto příkazy mohou s démonem udělat. Považovat ho za kanál jen pro čtení je chyba, která z integrace monitoringu dělá konzoli bez autentizace.
Přesvědčení a co stojí
Přesvědčení je, že správní naslouchač je rovnocenný metrickému koncovému bodu: připojte sběrač, přečtěte čítače a jděte dál. Ve skutečnosti sběrač otevře relaci s řídicími možnostmi a každý další předpoklad, který jste o nasazení učinili, teď závisí na tom, že se tento sběrač bude chovat správně.
Nic v rozhraní neinzeruje režim jen pro čtení. Není k dispozici žádná role pozorovatele a uživatelské jméno v konfiguraci ji nevytvoří.
Co přijatý klient skutečně drží
Komunitní démon přijímá vždy jen jednoho aktivního správního klienta. Tento jediný slot znamená, že GUI, skript a monitorovací agent se nemohou připojit všichni; druhý čeká nebo selže, dokud první drží relaci. Pokud váš návrh předpokládá souběžné čtenáře, už je špatný.
Kde stačí periodický snímek, výstup do stavového souboru vám dá stejná čísla bez živé relace. Zapisovat tento soubor v intervalech a číst ho s běžnými souborovými právy drží sběrač zcela mimo řídicí rovinu, a to je uspořádání, které většina monitoringu skutečně potřebuje.
Vlastní socket, ne otevřený
Unixový socket drží řídicí cestu mimo síť, což z problému odstraňuje měnící se adresu tunelu. Neodstraňuje však otázku oprávnění. Nadřazený adresář musí být zapisovatelný pro servisní účet a dosažitelný pro účet kontroleru, a to jsou dvě samostatná oprávnění:
management /run/openvpn/office-management.sock unix /etc/openvpn/management.password
management-client-user vpn-observer
management-client-group vpn-observerSoubor s heslem nese správní tajemství na svém prvním řádku. Chraňte tento soubor jako každý jiný údaj a jeho obsah držte mimo logy a podpůrné tikety. Omezení uživatele a skupiny jsou kontroly protějšku na unixovém socketu, ne oprávnění souborového systému, takže zamýšlený proces potřebuje jak přístup k souboru, tak odpovídající identitu.
Zpřístupnit socket celému světu, aby zmizela chyba oprávnění, je jediná oprava, které je třeba se vyhnout. Promění místní řídicí kanál v něco, co může ovládat jakýkoli proces na hostiteli.
Zveřejnění přes TCP není stejný návrh
Přesunutí naslouchače na TCP port ho neudělá bezpečnějším ani pohodlnějším. Správní heslo se posílá v otevřené podobě, takže TCP naslouchač vystavuje jak údaj, tak relaci komukoli, kdo může cestu sledovat. Dosažení z jiného hostitele vyžaduje autorizovaný administrativní kanál nebo malého místního agenta, který vystavuje jen pozorování, která potřebujete.
Heslo na přenosu v otevřeném textu je autentizace bez důvěrnosti a tato kombinace je horší, než vypadá, protože působí chráněně.
Startovací závislosti, o které jste nežádali
Několik správních voleb mění životní cyklus démona. Držet start, dokud se nepřipojí kontroler, nebo ukončovat, když kontroler zmizí, mění volitelného pozorovatele v tvrdou závislost. Monitorovací agent, který spadne, by pak s sebou stáhl i tunel.
Projděte tyto volby, než povolíte cokoli kromě samotného socketu. Volitelné pozorování má zůstat volitelné a politika restartu nemá být svázána se sběračem přidaným kvůli grafům.
Soubor socketu, který zůstane po neúspěšném procesu, není důkazem, že naslouchač existuje. Než ho odstraníte, zjistěte, která instance cestu vlastní, a použijte vlastní postup obnovy služby, místo abyste mazali soubory pod běžícím démonem.
Jak vypadá přijetí
Návrh pokrývají čtyři kontroly: zamýšlená identita kontroleru se připojí, proces bez této identity je odmítnut, démon přežije kontroler, který se odpojí bez varování, a tunel i po řízeném restartu přenáší provoz. Úspěšné správní spojení dokazuje jen řídicí rovinu. O tom, zda funguje provoz soukromých aplikací, neříká nic, takže to testujte zvlášť. Zapište čtyři výsledky tam, kde je najde další operátor.
Dokumentace správního rozhraní popisuje model jednoho klienta a privilegovanou povahu protokolu, a to je část, kterou stojí za to si přečíst, než na něj namíříte dashboard.