NetworkManager umí držet heslo VPN, aby se spojení navázalo, aniž by ho někdo psal, a tuto hodnotu umí znovu zobrazit přes editor nebo přes nmcli --show-secrets. K dispozici jsou tři modely vlastnictví a chování při zobrazení je jen příznakem toho, který jste zvolili. Nejprve zvolte model a pak nastavte příznak, který k němu patří, místo abyste pole schovávali zástupným textem, který zmate dalšího člověka.

Tři modely vlastnictví

První model se ptá pokaždé. Nic se neukládá, tajemství existuje jen po dobu aktivace a každý, kdo spojení spustí, musí heslo znát. Je to nejméně pohodlná volba a nejlépe obhajitelná.

Druhý předává tajemství klíčence vlastněné uživatelem. Agent se odemkne při startu relace a hodnotu dodá na vyžádání, což ji drží mimo soubor spojení, ale váže spojení k relaci toho uživatele. Z toho plynou dvě podmínky: agent musí běžet a musí být odemčený.

Třetí ukládá chráněné přihlašovací údaje pro systémové spojení. Přežije restart a funguje dřív, než se kdokoli přihlásí, a na oplátku hodnota leží na disku chráněná oprávněními souboru, nikoli šifrováním.

Každý model je ve správném kontextu rozumný. Chyba je míchat je, a tak notebook skončí s tajemstvím na dvou místech a bez jasné odpovědi, které je závazné. Zapište, který model profil používá. Jeden řádek v týmové příručce ušetří dalšímu člověku vymýšlení čtvrtého místa, kde hledat.

Přečtěte si aktuální stav, než ho změníte

Podívejte se na profil a na stav tajemství jako uživatel, který spojení spravuje. Druhý příkaz je ten, který vám řekne, zda je hodnota skutečně čitelná.

nmcli connection show "Office VPN"
nmcli --show-secrets connection show "Office VPN"
sudo stat -c '%U %a %n' /etc/NetworkManager/system-connections/*.nmconnection

Soubor s klíčem v tomto adresáři obvykle patří rootovi s režimem 600. To drží běžné uživatele ven a nedrží ven roota, což je důležité, když je stroj sdílený nebo když záloha běží jako root.

Oprávnění souboru jsou hranice, ne šifrování. Kdokoli může soubor přečíst jako root, má heslo v čistém textu. To je přijatelná výměna pro server bez dozoru a špatná pro sdílenou pracovní stanici. Jedno zapsání zabrání dlouhé hádce o tom, zda je hodnota chráněná.

Co dělá každá hodnota příznaku

Tajemství VPN nese vlastnost flags a hodnoty nejsou intuitivní jen z čísel.

ValueMeaningPractical effect
0No special flagSecret is typically saved with the connection
1Agent-ownedA keyring or secret agent supplies it
2Not savedPrompted at each activation
4Not requiredConnection proceeds without asking

Skutečné chování závisí také na zásuvném modulu a na tom, zda běží agent, takže tabulku berte jako smlouvu a pozorované chování jako to, co ověřujete. Hodnota, která funguje na jedné ploše, se může na serveru bez relace chovat jinak. V této mezeře žije většina matoucích tiketů.

Nastavte vlastnost výslovně, místo abyste mazali řádek a doufali. Chybějící příznak není politika a příští aktualizace balíčku ho může vyplnit něčím, co jste nezamýšleli.

Slaďte model s okamžikem, kdy se spojení spouští

Pokud se spojení spouští jen tehdy, když je uživatel přihlášený, vlastnictví agenta se hodí a drží tajemství mimo soubor. Pokud se spouští při startu, než existuje jakákoli relace, agent vám nepomůže.

To je celé rozhodnutí pro většinu strojů. Vysvětluje to i třídu matoucích hlášení, kdy spojení funguje interaktivně a po restartu selže. Příznak se nikdy nezměnil; změnil se kontext.

Pro případ bez dozoru je praktickou odpovědí omezený soubor vlastněný rootem nebo schválený zdroj přihlašovacích údajů. Držte ho mimo profil spojení, pokud se tento profil někdy exportuje nebo zkopíruje na jiný stroj.

Pokud byla hodnota už viditelná, vyměňte ji

Změna příznaku nechává heslo samotné nedotčené. Hodnotu, která se objevila na snímku obrazovky, v historii shellu, v balíčku poslaném podpoře nebo v souboru, který mohli otevřít jiní uživatelé, je třeba považovat za prozrazenou.

Změňte ji na serveru, pak opravte klienta a ukončete každou relaci, která se ověřila starým heslem. Smazání místního spojení na druhé straně nic neodvolá, a to je část, kterou lidé přehlížejí.

Pak přestaňte dávat heslo na příkazový řádek. Dostane se do historie shellu a může se objevit ve výpisu procesů; použijte interaktivní výzvu nebo agenta.

Ověřte opětovným připojením

Zopakujte příkaz, který tajemství ukázal, a potvrďte, že se pole už nevypisuje. Pak se odpojte a znovu připojte, a pokud se spojení spouští automaticky, restartujte, protože zajímavá závada se objeví jen tehdy, když se změní kontext relace.

Pokud se tajemství stále ukazuje, dodává ho jiný profil nebo jiný agent. Prohlédněte aktivní spojení a klíčenku, místo abyste mazali soubory, dokud se příznak nepřesune.

Související články