OpenVPN imprime al arrancar una advertencia que sugiere auth-nocache, y la respuesta tentadora es añadir la opción y ver cómo desaparece la línea. Ese consejo supone un inicio de sesión interactivo. Cuando el usuario y la contraseña viven en un archivo, la comparación cambia: la opción deja de proteger la copia duradera y, en un cliente que abandona privilegios, puede romper la renegociación más adelante. Conviene mantener separados dos modelos de almacenamiento antes de editar un perfil.

Dos formas de responder a la petición de credenciales

El primer modelo es una persona que escribe las credenciales en un terminal, o una interfaz de gestión que las guarda para la sesión. OpenVPN conserva esa copia para poder responder a la siguiente renegociación sin volver a preguntar, y de eso trata exactamente la advertencia. No hay nada en el disco, así que lo único que hay que proteger es el proceso que guarda el valor. Cierra el cliente y la copia desaparece con él.

El segundo modelo es auth-user-pass apuntando a un archivo, donde el archivo es el almacén y el cliente lo lee cuando necesita un valor. La exposición que importa aquí no es la memoria del proceso, sino los permisos y la propiedad de ese archivo. La advertencia de arranque viene de las directivas de la configuración, no de una inspección de cómo proporcionas la contraseña, así que aparece en ambos modelos y no apunta a ninguno.

El resto de esta comparación se deriva de esa división: gestión de memoria para un modelo, gestión de archivo e identidad de proceso para el otro.

Qué descarta realmente auth-nocache

Con un inicio de sesión interactivo, --auth-nocache elimina la copia guardada de la memoria después de haberla usado. El coste es una petición nueva en cada intervalo de renegociación, porque la siguiente ronda no puede reutilizar lo que se descartó.

Con un inicio de sesión respaldado por archivo el cliente puede volver a leer el archivo, así que el descarte es casi invisible. Se vuelve visible en el único lugar donde la gente no lo espera: después de que el demonio abandone privilegios, si el archivo de credenciales no es legible por la cuenta con la que ahora se ejecuta.

Añade la opción porque entiendes ese intercambio, no porque haya aparecido una advertencia. Una opción añadida para dejar un registro más silencioso es una opción cuyo efecto nadie ha medido.

Dónde se rompe la ruta respaldada por archivo

Un cliente que arranca como root para abrir el dispositivo de túnel y luego cambia a user y group lee el archivo de credenciales dos veces: una antes del cambio, otra en la renegociación que sigue. Si el archivo tiene modo 600 y es propiedad de root, la segunda lectura falla, y el fallo aparece una hora después como un error de autenticación que parece un problema del servidor. Revisa el registro del cliente alrededor del intervalo de renegociación y luego revisa la cuenta y el archivo juntos.

stat -c '%a %U:%G' /etc/openvpn/client.creds
ps -o user:12,args -C openvpn | head

Ambas líneas importan. La primera te dice quién puede leer el archivo, la segunda te dice quién es realmente el demonio en ejecución, y una discrepancia entre ellas explica un fallo que ninguna reescritura de la contraseña arreglará.

Las correcciones prácticas no son glamurosas: mueve el archivo a un directorio y a un propietario que la cuenta del demonio pueda leer, o mantén la lectura privilegiada y confirma que tu cliente solo lee una vez. No lo resuelvas haciendo el archivo legible para todos.

El caso que sí quiere la opción

Un inicio de sesión con un código de un solo uso quiere auth-nocache por una razón distinta. Un código de un solo uso se gasta con la primera autenticación, así que una copia en caché es inútil en la siguiente renegociación y un valor caducado incluso podría reproducirse.

Eso es una cuestión sobre el tipo de credencial, no sobre dónde se almacena. Una contraseña estática en un archivo protegido tiene el perfil opuesto: debe ser legible en cada renegociación, y la protección que necesitas está en el archivo.

Mantén esas dos razones separadas en los comentarios del perfil, porque si no el siguiente administrador asumirá que la opción está ahí por la razón que él habría elegido.

La comparación en una decisión

Elige el modelo interactivo cuando hay una persona presente y la frescura importa, y acepta la petición repetida como su coste. Elige el modelo de archivo cuando el cliente funciona sin supervisión, y dedica el esfuerzo a la propiedad, el modo y el abandono de privilegios.

Ningún modelo hace segura una contraseña almacenada por sí solo, ni ninguno hace significativa la advertencia de arranque.

Si la advertencia es la única razón por la que abriste el perfil, anota la decisión en lugar de una opción sin explicación: las credenciales vienen de un archivo legible por la cuenta del demonio, se ha visto una renegociación tener éxito, y el manual de OpenVPN 2.6 apartado sobre renegociación se leyó antes de cambiar su intervalo. Esa nota sobrevive a cualquier bandera por separado.

Artículos relacionados