Gdje Linux treba čuvati vašu VPN lozinku? Ne u profilu
Zastavice tajni u NetworkManageru određuju drži li lozinku profil, agent privjeska s ključevima ili nitko. Odgovor zavisi od toga kada se veza pokreće.
VPN lozinka mora negdje živjeti: u profilu veze, u privjesku s ključevima koji radna površina otključava ili nigdje. NetworkManager taj izbor naziva zastavicom tajne, a odabir pogrešne je razlog zašto veza radi nakon prijave, a kao servis ne uspijeva. Zastavica je jedan red konfiguracije i odlučuje koji ćete od ta tri ishoda dobiti.
Tri zastavice pokrivaju skoro svaki slučaj, a odluka je o tome kada se veza pokreće.
Tri zastavice tajni, tri ponašanja
Zastavica 0 znači da se tajna čuva uz vezu, u kojem god skladištu drži profil. Zastavica 1 čini je vlasništvom agenta: tajna dolazi od agenta tajni kao što je privjesak s ključevima radne površine, a NetworkManager je traži pri aktivaciji. Zastavica 2 znači da nije sačuvana, pa se tajna nikad ne zapisuje i mora se dostaviti svaki put. Zastavica 4 označava tajnu kao nepotrebnu, za veze koje joj zaista ne trebaju.
| 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 |
Postavite zastavice po tajni, a ne po vezi. Jedna veza može imati lozinku u vlasništvu agenta i sačuvanu frazu privatnog ključa.
Odluku donesite prema tome kada se veza pokreće
Ako vezu pokreće prijavljeni korisnik, vlasništvo agenta razuman je zadani izbor: privjesak s ključevima otključava se prijavom i tajna nikad ne stoji u datoteci. Ako veza mora ustati prije nego se bilo ko prijavi, vlasništvo agenta pogrešan je izbor, jer nema sesijskog privjeska s ključevima za otključavanje.
To je cijela odluka. Sve ostalo je njezina varijanta.
Za servis prije prijave podržan je uzorak sistemsko skladište ili zaštićena datoteka ključa, a zaštita postaju dopuštenja datoteke. Ne rješavajte problem lijepljenjem lozinke u shell skriptu koja se izvršava pri podizanju.
Šta privjesak s ključevima daje, a šta ne
Privjesak s ključevima drži tajnu izvan profila veze i veže je uz korisničku sesiju. Ne čini tajnu dostupnom servisu bez sesije i ne šifrira ništa na vezi. To su odvojena svojstva koja ljudi često stapaju. Ono što zaista daje je manji polumjer štete kad profilna datoteka procuri.
Privatni ključ na koji profil upućuje treba vlastita dopuštenja, neovisno o tome gdje lozinka živi.
Dijagnostika bez izlijevanja tajni
Nazivi veza, UUID-ovi i zastavice obično su dovoljni da objasne neuspjeh. nmcli connection show navodi profil, a zastavice tajni govore odakle je lozinka trebala doći.
Izbjegavajte --show-secrets u tiketima i chatu. Kad je jednom zalijepljena, to je vjerodajnica u transkriptu.
Skladištenje nije opoziv
Uklanjanje tajne iz jednog privjeska s ključevima ne poništava vjerodajnicu koju je udaljeni operater već prihvatio. Opoziv računa radnja je na strani poslužitelja, a lokalno skladištenje odvojeno je pitanje s odvojenim vlasnikom.
Odlučite oboje prije incidenta, ne tijekom njega. Interaktivna korisnička veza i servis prije prijave traže različite odgovore, a zajednička shell skripta nije ni jedno. NetworkManagerova dokumentacija o zastavicama tajni navodi vrijednosti u cjelini.