Cómo revocar un dispositivo VPN perdido: clave, certificado o cuenta
Un dispositivo perdido son tres identidades a la vez: una clave de par WireGuard, un certificado de cliente y una sesión de cuenta. Revoca la que comprueba tu servidor.
Tu portátil ha desaparecido y la VPN sigue listándolo como cliente. La pregunta urgente no es cómo borrar el perfil en una máquina que ya no tienes, sino qué identidad sigue aceptando el servidor. WireGuard comprueba una clave pública, una configuración OpenVPN basada en PKI comprueba un certificado de cliente, y una VPN con SSO comprueba una cuenta y su token de sesión. Esas tres se revocan en lugares distintos y a velocidades distintas, y arreglar una mientras se ignoran las otras es la forma en que un dispositivo perdido sigue conectado.
Tres identidades y qué controla cada una
Cada mecanismo responde a una pregunta distinta. Una clave de par responde si esta es la máquina que inscribiste. Un certificado responde si lo firmó tu CA y no ha sido revocado. Una cuenta responde si esta persona se autenticó con suficiente recién. Un despliegue que apila dos de ellas, por ejemplo certificado más inicio de sesión en el directorio, solo cierra la puerta cuando a cada capa que emitió algo al dispositivo se le ha dicho que deje de aceptarlo.
La trampa práctica es que la máquina ausente guarda la mitad privada de cada credencial, así que nada de lo que hagas localmente llega al servidor.
WireGuard: elimina el par, porque no hay lista de revocación
WireGuard no mantiene ninguna lista de denegación. La interfaz acepta exactamente las claves públicas configuradas como pares, así que revocar es borrar: ejecuta wg set wg0 peer <public-key> remove, la forma documentada en wg(8), y luego borra el bloque [Peer] correspondiente de wg0.conf. Haz las dos cosas. Una eliminación solo en tiempo de ejecución sobrevive hasta el siguiente reinicio o recarga de la configuración, momento en que el archivo vuelve a poner la clave.
Las sesiones existentes no necesitan un temporizador para morir. Eliminar el par descarta su handshake y su material de clave, así que el tráfico se detiene en cuanto se vuelve a exigir un par de claves válido. Comprueba wg show wg0 latest-handshakes en el servidor: la entrada de la clave perdida debería desaparecer y quedarse fuera, mientras los demás pares siguen informando épocas recientes.
Una advertencia importa más de lo que parece. Si el dispositivo perdido compartía una clave con otros dispositivos porque alguien copió un archivo de configuración, eliminar esa clave los desconecta a todos; sigue siendo el movimiento correcto, y después reemites claves por dispositivo en lugar de restaurar la compartida.
Certificados: una CRL solo cuenta si el demonio la lee
El acceso basado en certificados añade un paso que la gente se salta. easyrsa revoke laptop-01 marca el certificado como revocado en la base de datos de la CA, pero la VPN no aprende nada de esa base. Después ejecutas easyrsa gen-crl para escribir crl.pem, lo copias a la ruta indicada en la opción crl-verify del servidor y confirmas que el demonio en ejecución usa el archivo nuevo. Revocar sin regenerar y distribuir la CRL no sirve de nada.
El momento es la otra mitad. Una CRL se consulta cuando un cliente se conecta o renegocia, así que un túnel establecido puede seguir reenviando hasta entonces. Si el dispositivo debe cortarse de inmediato, termina esa sesión explícitamente por la interfaz de gestión de OpenVPN en lugar de esperar el siguiente handshake. Recargar o reiniciar el servicio, según cómo el despliegue cargue la CRL, forma parte del cambio y no es un extra opcional.
Vale la pena verificarlo desde otra máquina: presenta el certificado revocado y espera un fallo de handshake, normalmente VERIFY ERROR: depth=0, error=certificate revoked. Si la conexión sigue teniendo éxito, el cliente lee una CRL distinta de la que actualizaste.
Cuentas y sesiones: desactivar no es lo mismo que expulsar
Los inicios de sesión en el directorio o por SSO se comprueban en el momento de la autenticación. Desactivar la cuenta bloquea el siguiente inicio de sesión, pero el token de refresco y el túnel establecido pueden seguir funcionando hasta que caduquen. Revoca las sesiones y los tokens de ese usuario, o sube la versión de sesión si el proveedor de identidad lo admite. Saca también el dispositivo perdido del registro de MFA, ya que un autenticador registrado es una vía de acceso por sí mismo.
Las VPN con RADIUS pueden enviar un mensaje de desconexión o un cambio de autorización para tumbar una sesión activa, pero no todos los servidores de acceso a la red lo respetan. En caso de duda, termina la sesión del usuario desde el lado del servidor y confirma en los registros que la sesión antigua se cerró.
Orden de operaciones para la próxima hora
Empieza por el inventario, no por el cliente: enumera cada identidad ligada al dispositivo, sea clave de par, número de serie de certificado o cuenta. Revoca en cada sistema emisor en el orden en que se construye la conexión, es decir, primero la cuenta, luego el certificado y luego el par. Después demuestra la negativa desde una máquina que controles.
Dos seguimientos son fáciles de olvidar. Primero, rota cualquier otra cosa que el dispositivo guardara, sobre todo claves SSH, credenciales de consola en la nube y una clave precompartida de WireGuard. Segundo, comprueba que la gestión de configuración, las instantáneas o las imágenes doradas no puedan reintroducir el cliente eliminado en la próxima reconstrucción.
La solución duradera es una identidad por dispositivo. Cuando cada portátil lleva su propia clave de par o certificado, una pérdida cuesta una orden de revocación y una reemisión en lugar de reconstruir toda la flota.