NetworkManager puede guardar una contraseña VPN para que la conexión se levante sin que nadie la escriba, y puede volver a mostrar ese valor mediante el editor o mediante nmcli --show-secrets. Hay tres modelos de propiedad disponibles, y el comportamiento de visualización es solo un síntoma del que eligió. Elija primero el modelo y luego defina el indicador que le corresponde, en lugar de ocultar un campo con un texto de relleno que confundirá a la siguiente persona.

Tres modelos de propiedad

El primer modelo pregunta cada vez. No se guarda nada, el secreto existe solo mientras dura la activación, y quien inicie la conexión debe saber la contraseña. Es la opción menos cómoda y la más fácil de defender.

El segundo entrega el secreto a un llavero propiedad del usuario. El agente se desbloquea al iniciar la sesión y entrega el valor cuando se le pide, lo que lo mantiene fuera del archivo de conexión pero ata la conexión a la sesión de ese usuario. De ahí se siguen dos condiciones: el agente debe estar ejecutándose y debe estar desbloqueado.

El tercero guarda una credencial protegida para una conexión de sistema. Sobrevive a los reinicios y funciona antes de que nadie inicie sesión, y a cambio el valor reside en el disco protegido por permisos de archivo y no por cifrado.

Cada modelo es razonable en el contexto adecuado. El error es mezclarlos, y así un portátil acaba con un secreto en dos lugares y sin una respuesta clara sobre cuál manda. Anote qué modelo usa un perfil. Una línea en el manual del equipo ahorra a la siguiente persona inventar un cuarto lugar donde mirar.

Lea el estado actual antes de cambiarlo

Mire el perfil y el estado del secreto como el usuario que administra la conexión. El segundo comando es el que le dice si el valor es realmente legible.

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

Un archivo de clave en ese directorio suele pertenecer a root con modo 600. Eso mantiene fuera a los usuarios normales y no mantiene fuera a root, lo que importa cuando la misma máquina se comparte o cuando una copia de seguridad se ejecuta como root.

Los permisos de archivo son una frontera, no cifrado. Quien pueda leer el archivo como root tiene la contraseña en texto claro. Es un intercambio aceptable para un servidor sin supervisión y malo para una estación de trabajo compartida. Escribirlo una vez evita una larga discusión sobre si el valor está protegido.

Qué hace cada valor del indicador

El secreto de VPN lleva una propiedad flags, y los valores no son intuitivos solo a partir de los 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 comportamiento efectivo también depende del complemento y de si hay un agente en ejecución, así que trate la tabla como el contrato y el comportamiento observado como lo que verifica. Un valor que funciona en un escritorio puede comportarse distinto en un servidor sin sesión. En esa brecha viven la mayoría de los tickets confusos.

Defina la propiedad explícitamente en lugar de borrar una línea y esperar. Un indicador ausente no es una política, y la próxima actualización del paquete puede rellenarlo con algo que no pretendía.

Ajuste el modelo a cuándo se inicia la conexión

Si la conexión solo se inicia mientras un usuario ha iniciado sesión, la propiedad del agente encaja bien y mantiene el secreto fuera del archivo. Si se inicia al arrancar, antes de que exista ninguna sesión, un agente no puede ayudarle.

Esa es toda la decisión para la mayoría de las máquinas. También explica una clase de informes confusos en los que la conexión funciona de forma interactiva y falla tras un reinicio. El indicador nunca cambió; cambió el contexto.

Para el caso sin supervisión, la respuesta práctica es un archivo restringido propiedad de root o una fuente de credenciales aprobada. Manténgalo fuera del perfil de conexión si ese perfil alguna vez se exporta o se copia a otra máquina.

Si el valor ya era visible, cámbielo

Cambiar un indicador deja intacta la contraseña. Un valor que apareció en una captura de pantalla, en el historial del shell, en un paquete enviado a soporte o en un archivo que otros usuarios podían abrir debe considerarse revelado.

Cámbielo en el servidor, luego corrija el cliente y termine cualquier sesión que se haya autenticado con el anterior. Borrar la conexión local no revoca nada en el otro extremo, y esa es la parte que la gente pasa por alto.

Después deje de poner la contraseña en la línea de comandos. Termina en el historial del shell y puede aparecer en una lista de procesos; use el aviso interactivo o el agente.

Verifique reconectando

Repita el comando que mostró el secreto y confirme que el campo ya no se imprime. Luego desconecte y reconecte, y reinicie si la conexión se inicia automáticamente, porque el fallo interesante solo aparece cuando cambia el contexto de la sesión.

Si el secreto sigue apareciendo, lo entrega otro perfil u otro agente. Inspeccione la conexión activa y el llavero en lugar de borrar archivos hasta que el síntoma se mueva.

Artículos relacionados