Háčik klienta alebo háčik servera? Kde sa spúšťa skript OpenVPN
Cesta k skriptu v konfigurácii servera je cesta na serveri. Vyberte háčik podľa stroja, ktorý má prácu vykonať, a prestaňte očakávať, že push spustí kód na notebooku.
Úloha je jasná: keď sa notebook pripojí, na notebooku sa má niečo zmeniť. Konfigurácia, ktorá sa upravuje, patrí serveru, a práve tam sa predpoklad láme. Cesta v súbore na serveri označuje súbor na tom serveri a žiadne množstvo push nezmení, ktorý proces ho vykonáva. Voľba medzi dvoma háčikmi je väčšinou rozhodnutie, ktorý stroj prácu vlastní, a prijatie obmedzení, ktoré z toho vyplývajú.
Dva stroje, dve otázky, na ktoré treba odpovedať najprv
Spýtajte sa, kde má zmena stavu nastať, a potom, ktorá udalosť jej zodpovedá. Ak je zmenou autorizácia pre konkrétneho používateľa alebo rozhodnutie o konfigurácii pre konkrétneho klienta, patrí tam, kde je známy adresár používateľov: na server. Ak je zmenou trasa, nastavenie resolvera alebo lokálny pomocník na koncovom bode, patrí na koncový bod, a len koncový bod to dokáže urobiť.
Odpovedať na tieto dve otázky v opačnom poradí je spôsob, akým ľudia skončia pri pokuse pretlačiť dávkový súbor do notebooku s Windows. Server vie, kto sa pripojil; notebook vie, ako vyzerá jeho vlastný sieťový zásobník. Ani jeden nemá informácie toho druhého a pokus zvyčajne zlyhá ticho, a nie jasnou chybou.
Pred oboma stojí za to položiť tretiu otázku: ponúka platforma vôbec háčik, ktorý chcete? Zariadenie, ktoré si generuje vlastnú konfiguráciu, nemusí ponúkať rovnaké názvy udalostí a desktopový klient, ktorý importuje súbor .ovpn, nemusí byť rovnaký klient, pre ktorého bol súbor napísaný. Overenie platformy najprv vás ušetrí navrhovania okolo háčika, ktorý tam neexistuje. Tiež vám povie, ktorá dokumentácia sa naozaj vzťahuje na stroj pred vami.
Možnosť na strane servera: udalosť pre každé pripojenie
Skript client-connect beží v kontexte procesu servera, keď sa pripojí overený klient, a dostáva dokumentované podrobnosti pripojenia, ako je common name a pridelená adresa. Je to správne miesto na zápis konfiguračného fragmentu pre konkrétneho klienta, presadenie rozhodnutia politiky alebo zaznamenanie stavu, ktorý server vlastní.
Rozdiel, ktorý ľudia prehliadajú, je rozdiel medzi týmto háčikom a serverovým háčikom up. Háčik up sa spustí, keď server otvorí svoje tunelové zariadenie, čo sa na serveri s viacerými klientmi stane raz pri štarte démona. Nie je to udalosť pri každom prihlásení a kód tam umiestnený beží pri štarte služby, nie pri pripájaní používateľov.
Na zariadení s webovým rozhraním použite podporovaný mechanizmus rozšírení, namiesto úpravy generovaných súborov démona. Generované súbory sa pri ďalšom uložení prepíšu a prepis ticho odstráni vašu zmenu v najnevhodnejšej chvíli. Uchovávajte kópiu textu rozšírenia mimo zariadenia, aby aktualizácia firmvéru nestratila aj zámer.
Možnosť na strane klienta: práca, ktorá musí bežať lokálne
Komunitný klient môže spustiť lokálny skript, keď sa tunelové zariadenie objaví, a znova, keď sa nainštalujú trasy. Sú to dva rôzne okamihy a voľba nesprávneho vytvára klasický pretek, keď pomocník štartuje skôr, než existuje trasa, od ktorej závisí.
Pomocník musí na tom klientovi existovať, byť čitateľný a spustiteľný pre účet, ktorý klienta spúšťa, a byť povolený výslovným nastavením script-security. Skript, ktorý funguje, keď klienta spustíte ako správca, vám nič nehovorí o službe pred prihlásením ani o relácii iného používateľa.
Aj názvy sú dôležité. Háčik up zodpovedá vytvoreniu zariadenia a route-up inštalácii trás, ale úloha, ktorá potrebuje dostupnú privátnu sieť, má dostupnosť overiť, namiesto toho, aby predpokladala, že vytvorenie zariadenia znamená, že každá trasa, položka resolvera a aplikácia sú pripravené.
Prečo pretláčanie spustiteľného kódu nie je v ponuke
Pretláčané voľby sú zámerne obmedzené a voľby, ktoré spúšťajú skripty, patria medzi kategórie, ktoré server nesmie odovzdávať. Toto obmedzenie existuje preto, že alternatíva by kompromitovanému alebo nesprávne nakonfigurovanému serveru umožnila spustiť ľubovoľné príkazy na každom klientovi, ktorý sa kedy pripojí.
Povolenie spúšťania skriptov lokálne to nemení. Vaše nastavenie script-security povoľuje lokálne skripty, ktoré ste si vybrali; neoprávňuje server dodávať nové.
Ak je cieľom len nainštalovať trasy VPN, použite podporovanú konfiguráciu trás, namiesto vymýšľania schémy vzdialeného spúšťania. Ak cieľ skutočne vyžaduje lokálny kód, distribuujte ho nástrojmi organizácie na správu koncových bodov a posudzujte ho ako každý iný softvér, ktorý beží s právami používateľa.
Čo overiť, skôr než uveríte ktorémukoľvek háčiku
Pre každý háčik si zapíšte štyri veci: stroj, názov udalosti, účet, pod ktorým beží, a zmenu stavu, ktorú má vyvolať. Potom otestujte pripojenie, opätovné pripojenie a cestu upratovania, pretože háčik, ktorý pri opätovnom pripojení uniká stav, je horší než ten, ktorý nikdy nebežal.
Testujte pod účtom, ktorý ho skutočne bude spúšťať, v okamihu, keď sa skutočne spustí. Manuál openvpn(8) dokumentuje obe rodiny háčikov a obmedzenia push; platforma, na ktorú nasadzujete, dokumentuje, či ich vôbec ponúka. Skript, ktorý uspeje v interaktívnom termináli správcu, je hypotéza, nie overenie.