NetworkManager pot guardar una contrasenya VPN perquè la connexió s’aixequi sense que ningú l’escrigui, i pot tornar a mostrar aquest valor a l’editor o mitjançant nmcli --show-secrets. Hi ha tres models de propietat disponibles, i el comportament de visualització només és un símptoma del que hàgiu triat. Trieu primer el model i després definiu l’indicador que hi encaixa, en lloc d’amagar un camp amb un text de substitució que confondrà la persona següent.

Tres models de propietat

El primer model demana la contrasenya cada cop. No es desa res, el secret només existeix durant l’activació, i qui iniciï la connexió ha de saber la contrasenya. És l’opció menys còmoda i la més fàcil de defensar.

El segon lliura el secret a un anell de claus propietat de l’usuari. L’agent es desbloqueja quan comença la sessió i subministra el valor a demanda, cosa que el manté fora del fitxer de connexió però lliga la connexió a la sessió d’aquell usuari. Se’n deriven dues condicions: l’agent ha d’estar en marxa i ha d’estar desbloquejat.

El tercer desa una credencial protegida per a una connexió de sistema. Sobrevé als reinicis i funciona abans que ningú iniciï sessió, i a canvi el valor resideix al disc protegit per permisos de fitxer i no per xifratge.

Cada model és raonable en el context adequat. L’error és barrejar-los, que és com un portàtil acaba amb un secret en dos llocs i sense una resposta clara sobre quin mana. Anoteu quin model fa servir un perfil. Una línia al manual de l’equip estalvia a la persona següent inventar-se un quart lloc on mirar.

Llegiu l’estat actual abans de canviar-lo

Mireu el perfil i l’estat del secret com a usuari que gestiona la connexió. La segona ordre és la que us diu si el valor és realment llegible.

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

Un fitxer de clau en aquell directori normalment pertany a root amb mode 600. Això manté fora els usuaris corrents i no manté fora root, cosa que importa quan la mateixa màquina es comparteix o quan una còpia de seguretat s’executa com a root.

Els permisos de fitxer són una frontera, no xifratge. Qui pugui llegir el fitxer com a root té la contrasenya en text pla. És un intercanvi acceptable per a un servidor sense supervisió i dolent per a una estació de treball compartida. Escriure-ho una vegada evita una llarga discussió sobre si el valor està protegit.

Què fa cada valor de l’indicador

El secret de VPN porta una propietat flags, i els valors no són intuïtius només a partir dels números.

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

El comportament efectiu també depèn del connector i de si hi ha un agent en marxa, així que tracteu la taula com el contracte i el comportament observat com allò que verifiqueu. Un valor que funciona en un escriptori pot comportar-se diferent en un servidor sense sessió. En aquesta bretxa hi viuen la majoria de tiquets confusos.

Definiu la propietat explícitament en lloc de suprimir una línia i esperar-ho. Un indicador absent no és una política, i la propera actualització del paquet pot omplir-lo amb una cosa que no volíeu.

Feu coincidir el model amb quan s’inicia la connexió

Si la connexió només s’inicia mentre un usuari ha iniciat sessió, la propietat de l’agent hi encaixa bé i manté el secret fora del fitxer. Si s’inicia en arrencar, abans que existeixi cap sessió, un agent no us pot ajudar.

Aquesta és tota la decisió per a la majoria de màquines. També explica una classe d’informes confusos on la connexió funciona de manera interactiva i falla després d’un reinici. L’indicador no va canviar mai; el context sí.

Per al cas sense supervisió, la resposta pràctica és un fitxer restringit propietat de root o una font de credencials aprovada. Mantingueu-lo fora del perfil de connexió si algun dia aquest perfil s’exporta o es copia a una altra màquina.

Si el valor ja era visible, canvieu-lo

Alterar un indicador deixa la contrasenya intacta. Un valor que va aparèixer en una captura de pantalla, a l’historial del shell, en un paquet enviat a suport o en un fitxer que altres usuaris podien obrir s’ha de considerar revelat.

Canvieu-lo al servidor, després arregleu el client i acabeu qualsevol sessió que s’hagi autenticat amb l’antic. Esborrar la connexió local no revoca res a l’altre costat, i aquesta és la part que la gent passa per alt.

Després deixeu de posar la contrasenya a la línia d’ordres. Acaba a l’historial del shell i pot aparèixer en un llistat de processos; feu servir el missatge interactiu o l’agent.

Verifiqueu reconnectant

Repetiu l’ordre que va mostrar el secret i confirmeu que el camp ja no s’imprimeix. Després desconnecteu i reconnecteu, i reinicieu si la connexió s’inicia automàticament, perquè la fallada interessant només apareix quan canvia el context de la sessió.

Si el secret encara apareix, el subministra un altre perfil o un altre agent. Inspeccioneu la connexió activa i l’anell de claus en lloc d’esborrar fitxers fins que el símptoma es mogui.

Articles relacionats