Onde debería Linux gardar o teu contrasinal de VPN? Non no perfil
Os indicadores de secreto de NetworkManager deciden se o perfil, un axente de chaveiro ou ninguén garda o contrasinal. A resposta depende de cando arrinca a conexión.
O contrasinal de VPN ten que vivir nalgures: no perfil de conexión, nun chaveiro que o escritorio desbloquea ou en ningún sitio. NetworkManager chama a esa escolla indicador de secreto, e escoller o incorrecto é a razón pola que unha conexión funciona tras iniciar sesión e falla como servizo. O indicador é unha liña de configuración e decide cal deses tres resultados obtés.
Tres indicadores cobren case todos os casos, e a decisión trata de cando arrinca a conexión.
Tres indicadores de secreto, tres comportamentos
Un indicador 0 significa que o secreto se garda coa conexión, en calquera almacén que conteña o perfil. Un indicador 1 fai que sexa propiedade do axente: o secreto vén dun axente de secretos como un chaveiro de escritorio, e NetworkManager pídeo ao activar. Un indicador 2 significa non gardado, así que o secreto nunca se escribe e debe achegarse cada vez. O indicador 4 marca un secreto como non necesario, para conexións que de verdade non necesitan ningún.
| 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 |
Configura os indicadores por secreto en lugar de por conexión. Unha conexión pode ter un contrasinal propiedade do axente e unha frase de paso de clave privada gardada.
Decide segundo cando arrinca a conexión
Se un usuario con sesión iniciada arrinca a conexión, a propiedade do axente é o valor predeterminado sensato: o chaveiro desbloquéase co inicio de sesión e o secreto nunca queda nun ficheiro. Se a conexión debe levantarse antes de que ninguén inicie sesión, a propiedade do axente é a escolla incorrecta, porque non hai ningún chaveiro de sesión que desbloquear.
Esa é toda a decisión. Todo o demais é unha variante.
Para un servizo anterior ao inicio de sesión, o patrón admitido é un almacén de ámbito de sistema ou un ficheiro de clave protexido, e os permisos do ficheiro pasan a ser a protección. Non resolvas o problema pegando o contrasinal nun script de shell que se executa ao arrincar.
Que dá o chaveiro e que non
Un chaveiro mantén o secreto fóra do perfil de conexión e lígao a unha sesión de usuario. Non fai o secreto dispoñible para un servizo sen sesión, nin cifra nada na rede. Son propiedades separadas que a xente adoita fusionar. O que si compra é un radio de dano menor cando un ficheiro de perfil se filtra.
A clave privada á que fai referencia o perfil necesita os seus propios permisos, independentemente de onde viva o contrasinal.
Diagnóstico sen verter secretos
Os nomes de conexión, os UUID e os indicadores adoitan abondar para explicar un fallo. nmcli connection show lista o perfil, e os indicadores de secreto dinche de onde debía vir o contrasinal.
Evita --show-secrets en tíquets e chats. Unha vez pegado, é unha credencial nunha transcrición.
Almacenar non é revogar
Quitar un secreto dun chaveiro non invalida a credencial que o operador remoto xa aceptou. A revogación da conta é unha acción do lado do servidor, e o almacenamento local é un asunto aparte cun propietario aparte.
Decide ambas as cousas antes do incidente, non durante. Unha conexión interactiva de usuario e un servizo anterior ao inicio de sesión necesitan respostas distintas, e un script de shell compartido non é ningunha das dúas. A documentación de NetworkManager sobre os indicadores de secreto lista os valores completos.