Zapnite auth-nocache a varovanie o kešovaní hesla zmizne, spolu s kópiou prihlasovacích údajov, ktorú OpenVPN držal pre ďalšie opätovné vyjednávanie. Či sa z toho stane výzva, tichý pokus alebo spadnutý tunel, závisí od toho, odkiaľ prihlasovacie údaje prídu druhýkrát. Preto je to porovnanie podôb nasadenia, nie verdikt o tejto voľbe. Prečítajte si podobu, ktorú skutočne prevádzkujete, skôr než upravíte akýkoľvek profil.

Odkiaľ musí prísť druhá sada prihlasovacích údajov

OpenVPN uplatňuje auth-nocache na tajomstvá, ktoré zhromažďujú auth-user-pass a askpass: po použití ich proces zahodí, namiesto toho, aby ich držal pre ďalšie podanie ruky. Opätovné vyjednávanie prichádza podľa časovača, predvolene raz za hodinu, takže druhá požiadavka dorazí dávno po tom, čo človek, ktorý zadal heslo, odišiel. Tá medzera je celý príbeh. Keď je keš zapnutá, klient prehrá uloženú kópiu bez toho, aby sa niekoho pýtal; keď je vypnutá, musí tajomstvo nájsť inde alebo zlyhať.

Preto vymenujte každé miesto, odkiaľ by tajomstvo v tom momente mohlo prísť, a buďte úprimní, ktoré z nich na hostiteľovi existujú. Človek pri termináli, súbor, ktorý dokážu prečítať auth-user-pass alebo askpass, alebo serverom vydaný token relácie sú tri, na ktorých tu záleží. Ak nie je dostupné žiadne z nich, opätovné vyjednávanie zlyhá hodinu po zmene, nie v momente, keď ste ju vykonali.

Tri podoby, tri miesta zlyhania

Desktopový klient s človekom pred sebou je mierny prípad: výzva sa vráti, niekto znova zadá heslo a cenou je pozornosť. Služba, kontajner alebo router prevádzkujúci OpenVPN bez terminálu je tvrdý prípad, pretože nie je kto odpovedať a spojenie, ktoré bývalo tiché, teraz tunel ukončí. Hybrid stojí medzi nimi a správa sa ako desktopový prípad, kým nezmizne relácia, ktorá by dokázala odpovedať na výzvu. Neoddeľuje ich to, či je nainštalované GUI, ale to, či v čase opätovného vyjednávania existuje zdroj prihlasovacích údajov.

Priraďte svoje nasadenie k jednej z tých troch podôb, skôr než čokoľvek zmeníte, pretože rada, ktorú nájdete online, je takmer vždy písaná pre prvú. Použitie desktopovej odpovede na službu bez terminálu je spôsob, akým tunel, ktorý mesiace fungoval, začne každú hodinu padať.

Direktíva alebo prepínač: vyberte si jeden a vedzte, ktorý ste použili

Vnútri profilu je auth-nocache samostatný riadok; pri volaní, ktoré profil výslovne pomenúva, je to prepínač na tomto príkazovom riadku, a príručka OpenVPN uvádza obe podoby. Obe robia to isté so zadržiavaním prihlasovacích údajov a ani jedna nezasahuje do typu rozhrania ani neopravuje nesúvisiace varovanie v tom istom logu. Rozdiel je v trvalosti: prepínač platí len pre toto spustenie, takže služba reštartovaná z unit súboru alebo obalového skriptu ho nebude mať, ak ho obal tiež neodovzdá.

auth-nocache
openvpn --config /path/client.ovpn --auth-nocache

Rozhodnite, ktorý artefakt nastavenie vlastní, zmeňte ho tam a nikde inde. Profil upravený na notebooku plus systemd unit, ktorý ho prepínačom prepisuje, je dvojica, ktorá po reštarte vytvára protichodné správanie.

Súbor s prihlasovacími údajmi tajomstvo presúva, namiesto toho, aby ho mazal

Nasmerovanie auth-user-pass na súbor dáva každému ďalšiemu opätovnému vyjednávaniu zdroj a umiestňuje heslo niekam, kde prežije reštarty. Pýtajte sa, kto ten súbor môže čítať, či ho démon po zbavení privilégií ešte prečíta a čo sa stane, keď je systém súborov pripojený len na čítanie alebo pohľad kontajnera cestu skryje. Tajomstvo na disku a tajomstvo v pamäti sú rôzne problémy, a vyriešenie jedného necháva druhé na mieste. Rotácia je krok, ktorý sa vynecháva: heslo zmenené na serveri, ale nie v súbore, vytvára zlyhanie, ktoré sa číta ako sieťová porucha.

Súbor vlastníte účtom, ktorý spúšťa démona, nikto iný ho nesmie čítať a nesmie byť v zálohách, ktoré opúšťajú hostiteľa. Serverová voľba OpenVPN auth-gen-token odovzdá klientovi po úspešnom prihlásení token relácie, čo je menšia vec na ponechanie okolo než heslo účtu. Krok rotácie zapíšte vedľa súboru tak či tak, pretože súbor zvyčajne prežije človeka, ktorý ho vytvoril.

Predĺženie opätovného vyjednávania cenu posúva, neodstraňuje

Ďalší návrh je zvýšiť reneg-sec, kým výzva nebude natoľko zriedkavá, že sa dá ignorovať. Tým sa prepíše plán rotácie kľúčov relácie a ten istý problém prihlasovacích údajov sa odsunie do neskoršieho, menej predvídateľného okamihu; zdroj prihlasovacích údajov to nevytvorí. Politika, ktorá obnovuje kľúče podľa plánu z nejakého dôvodu, by sa nemala uvoľňovať len preto, aby sa nemuselo písať heslo.

Testujte opätovné pripojenie, nie reláciu, v ktorej sedíte, pretože živá relácia nič nedokazuje. Zhoďte tunel zo strany servera alebo reštartujte klientsku službu a sledujte, čo urobí ďalšie opätovné vyjednávanie, keď pri klávesnici nikto nie je. Ak sa pripojí znova, pomenujte mechanizmus, ktorý tajomstvo dodal; ak nie, našli ste skutočnú cenu tejto voľby na tomto hostiteľovi. Každý z výsledkov vám dáva odpoveď, ktorá platí počas výpadku, namiesto odpovede, ktorá platila počas testovania.

V spravovanej flotile by ten, kto nasadenie vlastní, mal vedieť pomenovať tri veci: odkiaľ prihlasovacie údaje pochádzajú, kde sú uložené a kto ich rotuje. Ak je niektorou z tých odpovedí človek, ktorý hostiteľa nastavil, voľba tam ešte nie je bezpečná.

Súvisiace články