Kje naj Linux shranjuje vaše geslo VPN? Ne v profilu
Zastavice skrivnosti v NetworkManagerju odločajo, ali geslo hrani profil, agent obeska za ključe ali nihče. Odgovor je odvisen od tega, kdaj se povezava začne.
Geslo VPN mora nekje živeti: v profilu povezave, v obesku za ključe, ki ga namizje odklene, ali nikjer. NetworkManager to izbiro imenuje zastavica skrivnosti, in izbira napačne je razlog, da povezava po prijavi deluje, kot storitev pa ne uspe. Zastavica je ena vrstica konfiguracije in odloča, kateri od teh treh izidov vas čaka.
Tri zastavice pokrijejo skoraj vsak primer, odločitev pa je o tem, kdaj se povezava začne.
Tri zastavice skrivnosti, tri vedénja
Zastavica 0 pomeni, da se skrivnost shrani s povezavo, v katerem koli hramu, ki drži profil. Zastavica 1 jo naredi za last agenta: skrivnost prihaja od agenta skrivnosti, kot je obešalnik za ključe namizja, in NetworkManager jo zahteva ob aktivaciji. Zastavica 2 pomeni ni shranjeno, zato se skrivnost nikoli ne zapiše in jo je treba vsakič dostaviti. Zastavica 4 označi skrivnost kot nepotrebno, za povezave, ki je res ne potrebujejo.
| 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 |
Nastavite zastavice za vsako skrivnost, ne za povezavo. Ena povezava ima lahko geslo v lasti agenta in shranjeno geslo zasebnega ključa.
Odločite se glede na to, kdaj se povezava začne
Če povezavo začne prijavljeni uporabnik, je last agenta smiselna privzeta izbira: obešalnik za ključe se odklene s prijavo in skrivnost nikoli ne leži v datoteki. Če mora povezava vstati preden se kdorkoli prijavi, je last agenta napačna izbira, ker ni obeska za ključe seje, ki bi ga bilo mogoče odkleniti.
To je vsa odločitev. Vse ostalo je njena različica.
Za storitev pred prijavo je podprt vzorec hram na sistemski ravni ali zaščitena datoteka s ključem, zaščita pa postanejo dovoljenja datoteke. Težave ne rešujte tako, da geslo prilepite v lupinsko skripto, ki se izvaja ob zagonu.
Kaj obešalnik za ključe daje in kaj ne
Obešalnik za ključe hrani skrivnost zunaj profila povezave in jo veže na uporabniško sejo. Ne naredi skrivnosti dostopne storitvi brez seje in ne šifrira ničesar na povezavi. To so ločene lastnosti, ki jih ljudje pogosto združujejo. Kar res prinese, je manjši polmer škode, ko profilna datoteka izteče.
Zasebni ključ, na katerega se sklicuje profil, potrebuje svoja dovoljenja, neodvisno od tega, kje živi geslo.
Diagnostika brez izlivanja skrivnosti
Imena povezav, UUID-ji in zastavice običajno zadostujejo za razlago okvare. nmcli connection show navede profil, zastavice skrivnosti pa povedo, od kod bi moralo priti geslo.
Izogibajte se --show-secrets v zahtevkih in klepetu. Ko je enkrat prilepljeno, je poverilnica v prepisu.
Shranjevanje ni preklic
Odstranitev skrivnosti iz enega obeska za ključe ne razveljavi poverilnice, ki jo je oddaljeni operater že sprejel. Preklic računa je dejanje na strani strežnika, lokalno shranjevanje pa je ločena zadeva z ločenim lastnikom.
Odločite se o obeh pred incidentom, ne med njim. Interaktivna uporabniška povezava in storitev pred prijavo potrebujeta različna odgovora, skupna lupinska skripta pa ni nobeno od tega. Dokumentacija NetworkManagerja o zastavicah skrivnosti navaja vrednosti v celoti.