Kde má Linux ukládat vaše heslo k VPN? Ne v profilu
Příznaky tajemství v NetworkManageru určují, zda heslo drží profil, agent klíčenky nebo nikdo. Odpověď závisí na tom, kdy se připojení spouští.
Heslo k VPN musí někde žít: v profilu připojení, v klíčence, kterou plocha odemyká, nebo nikde. NetworkManager tento výběr nazývá příznak tajemství a volba špatného je důvod, proč připojení po přihlášení funguje a jako služba selhává. Příznak je jeden řádek konfigurace a rozhoduje, který z těchto tří výsledků dostanete.
Tři příznaky pokrývají téměř každý případ a rozhodnutí je o tom, kdy se připojení spouští.
Tři příznaky tajemství, tři chování
Příznak 0 znamená, že se tajemství ukládá s připojením, v jakémkoli úložišti, které profil drží. Příznak 1 z něj dělá vlastnictví agenta: tajemství přichází od agenta tajemství, například klíčenky plochy, a NetworkManager si ho vyžádá při aktivaci. Příznak 2 znamená neuloženo, takže tajemství se nikdy nezapíše a musí se dodat pokaždé. Příznak 4 označuje tajemství jako nepotřebné, pro připojení, která opravdu žádné nevyžadují.
| Flag | Where it lives | Works unattended |
|---|---|---|
| 0 saved | Connection profile | Yes, if the store is readable |
| 1 agent-owned | Secret agent or keyring | Only if that agent is available |
| 2 not-saved | Nowhere | No |
Nastavujte příznaky pro každé tajemství, ne pro připojení. Jedno připojení může mít heslo vlastněné agentem a uloženou passphrase soukromého klíče.
Rozhodněte se podle toho, kdy se připojení spouští
Pokud připojení spouští přihlášený uživatel, vlastnictví agenta je rozumná volba: klíčenka se odemkne přihlášením a tajemství nikdy neleží v souboru. Pokud připojení musí nastartovat dřív, než se kdokoli přihlásí, je vlastnictví agenta špatná volba, protože neexistuje klíčenka relace, kterou by bylo možné odemknout.
To je celé rozhodnutí. Všechno ostatní je jeho varianta.
Pro službu před přihlášením je podporovaným vzorem úložiště v systémovém rozsahu nebo chráněný soubor s klíčem a ochranou se stanou oprávnění souboru. Neřešte problém vložením hesla do shell skriptu, který běží při startu.
Co klíčenka dává a co ne
Klíčenka drží tajemství mimo profil připojení a váže je k uživatelské relaci. Nezpřístupňuje tajemství službě bez relace a nic nešifruje na síti. To jsou oddělené vlastnosti, které lidé často slučují. Co skutečně přináší, je menší rozsah škod, když unikne soubor profilu.
Soukromý klíč, na který profil odkazuje, potřebuje vlastní oprávnění, nezávisle na tom, kde heslo žije.
Diagnostika bez vylévání tajemství
Názvy připojení, UUID a příznaky obvykle stačí k vysvětlení selhání. nmcli connection show vypíše profil a příznaky tajemství vám řeknou, odkud mělo heslo přijít.
Vyhněte se --show-secrets v ticketech a chatu. Jakmile je vloženo, je to pověření v přepisu.
Uložení není odvolání
Odebrání tajemství z jedné klíčenky nezruší pověření, které vzdálený operátor už přijal. Odvolání účtu je akce na straně serveru a místní úložiště je samostatná věc s vlastním vlastníkem.
Rozhodněte obojí před incidentem, ne během něj. Interaktivní uživatelské připojení a služba před přihlášením potřebují různé odpovědi a sdílený shell skript není ani jedno. Dokumentace NetworkManageru k příznakům tajemství uvádí hodnoty v plném rozsahu.