Voorkomen dat NetworkManager een opgeslagen VPN-wachtwoord toont
Vraag het elke keer, geef het aan een sleutelring of houd een bestand dat alleen root kan lezen. Elke keuze brengt een andere blootstelling mee, en de wachtwoordvlag moet daarbij passen.
NetworkManager kan een VPN-wachtwoord bewaren zodat de verbinding tot stand komt zonder dat iemand het typt, en het kan die waarde opnieuw tonen via de editor of via nmcli --show-secrets. Er zijn drie eigendomsmodellen, en het weergavegedrag is slechts een symptoom van welk model u koos. Kies eerst het model en stel dan de vlag in die erbij past, in plaats van een veld te verbergen met een plaatsaanduiding die de volgende persoon in verwarring brengt.
Drie eigendomsmodellen
Het eerste model vraagt het elke keer. Niets wordt opgeslagen, het geheim bestaat alleen tijdens de activering, en wie de verbinding start moet het wachtwoord kennen. Het is de minst handige optie en de makkelijkst te verdedigen.
Het tweede geeft het geheim aan een sleutelring van de gebruiker. De agent ontgrendelt bij de start van de sessie en levert de waarde op verzoek, wat het buiten het verbindingsbestand houdt maar de verbinding aan die sessie van die gebruiker bindt. Daaruit volgen twee voorwaarden: de agent moet draaien, en hij moet ontgrendeld zijn.
Het derde bewaart een beschermd inloggegeven voor een systeemverbinding. Het overleeft herstarts en werkt voordat iemand inlogt, en in ruil daarvoor staat de waarde op schijf, beveiligd door bestandsrechten in plaats van versleuteling.
Elk model is redelijk in de juiste context. De fout is ze te mengen, en zo eindigt een laptop met een geheim op twee plaatsen en zonder duidelijk antwoord welk daarvan gezaghebbend is. Schrijf op welk model een profiel gebruikt. Eén regel in het teamdraaiboek bespaart de volgende persoon het verzinnen van een vierde plek om te kijken.
Lees de huidige toestand voordat u die wijzigt
Kijk naar het profiel en naar de toestand van het geheim als de gebruiker die de verbinding beheert. Het tweede commando is degene die u vertelt of de waarde echt leesbaar is.
nmcli connection show "Office VPN"
nmcli --show-secrets connection show "Office VPN"
sudo stat -c '%U %a %n' /etc/NetworkManager/system-connections/*.nmconnection
Een sleutelbestand in die map is meestal eigendom van root met modus 600. Dat houdt gewone gebruikers buiten en houdt root niet buiten, wat telt wanneer dezelfde machine wordt gedeeld of wanneer een back-up als root draait.
Bestandsrechten zijn een grens, geen versleuteling. Wie het bestand als root kan lezen, heeft het wachtwoord in platte tekst. Dat is een acceptabele ruil voor een onbeheerde server en een slechte voor een gedeelde werkplek. Het één keer opschrijven voorkomt een lange discussie over de vraag of de waarde beschermd is.
Wat elke vlagwaarde doet
Het VPN-geheim draagt een eigenschap flags, en de waarden zijn niet intuïtief uit de getallen alleen.
| Value | Meaning | Practical effect |
|---|---|---|
| 0 | No special flag | Secret is typically saved with the connection |
| 1 | Agent-owned | A keyring or secret agent supplies it |
| 2 | Not saved | Prompted at each activation |
| 4 | Not required | Connection proceeds without asking |
Het werkelijke gedrag hangt ook af van de plug-in en van of er een agent draait, dus behandel de tabel als het contract en het waargenomen gedrag als datgene wat u verifieert. Een waarde die op het ene bureaublad werkt, kan zich op een server zonder sessie anders gedragen. In die kloof leeft het merendeel van de verwarrende tickets.
Stel de eigenschap expliciet in in plaats van een regel te verwijderen en te hopen. Een ontbrekende vlag is geen beleid, en de volgende pakketupdate kan hem vullen met iets dat u niet bedoelde.
Laat het model passen bij het moment waarop de verbinding start
Als de verbinding alleen start terwijl een gebruiker is ingelogd, past eigendom door de agent goed en houdt het geheim buiten het bestand. Als hij bij het opstarten begint, voordat er een sessie is, kan een agent u niet helpen.
Dat is de hele beslissing voor de meeste machines. Het verklaart ook een klasse verwarrende meldingen waarbij de verbinding interactief werkt en na een herstart faalt. De vlag is nooit veranderd; de context wel.
Voor het onbeheerde geval is een beperkt bestand van root of een goedgekeurde inloggegevensbron het praktische antwoord. Houd het buiten het verbindingsprofiel als dat profiel ooit wordt geëxporteerd of naar een andere machine gekopieerd.
Als de waarde al zichtbaar was, wissel hem dan
Het wijzigen van een vlag laat het wachtwoord zelf ongemoeid. Een waarde die opdook in een schermafbeelding, in de shell-geschiedenis, in een bundel die naar support is gestuurd of in een bestand dat andere gebruikers konden openen, moet als onthuld worden beschouwd.
Wijzig het op de server, repareer dan de client en beëindig elke sessie die met de oude is geauthenticeerd. Het verwijderen van de lokale verbinding trekt aan de andere kant niets in, en dat is het deel dat mensen missen.
Stop daarna met het wachtwoord op de opdrachtregel te zetten. Het belandt in de shell-geschiedenis en kan in een processenlijst verschijnen; gebruik in plaats daarvan de interactieve prompt of de agent.
Controleer door opnieuw te verbinden
Herhaal het commando dat het geheim toonde en bevestig dat het veld niet meer wordt afgedrukt. Verbreek dan de verbinding en maak opnieuw verbinding, en herstart als de verbinding automatisch start, omdat de interessante fout pas optreedt wanneer de sessiecontext verandert.
Als het geheim nog steeds verschijnt, levert een ander profiel of een andere agent het. Onderzoek de actieve verbinding en de sleutelring in plaats van bestanden te verwijderen tot het symptoom verschuift.