Guía de tecnologías

Asegurar X2Go en Ubuntu Precise con autenticación de dos factores WiKID

7 min read Seguridad Actualizado 19 Oct 2025
X2Go seguro en Ubuntu Precise con WiKID 2FA
X2Go seguro en Ubuntu Precise con WiKID 2FA

TL;DR

Implementar WiKID como segundo factor para X2Go en Ubuntu 12.04 (Precise) protege sesiones de escritorio remoto añadiendo un código OTP generado por token más la PIN. Pasos principales: crear dominio y cliente de red en el servidor WiKID, instalar X2Go en el servidor Ubuntu, instalar y configurar libpam-radius-auth apuntando al servidor WiKID, y probar con el token.

Introducción

En este artículo se muestra cómo implementar autenticación de dos factores (2FA) de WiKID para escritorios remotos X2Go en un servidor Ubuntu 12.04 (Precise). WiKID Strong Authentication es una solución 2FA híbrida (open source/comercial). X2Go es un cliente/servidor de escritorio remoto basado en NX. Aquí configuraremos un dominio en el servidor WiKID, añadiremos el servidor objetivo como cliente de red (network client) y finalmente prepararemos la máquina Ubuntu para usar pam-radius con X2Go.

Importante: asumimos que su servidor WiKID ya está instalado y operativo. Si su entorno ya usa un gateway SSH con pam-radius, puede añadir X2Go al flujo existente y funcionará de forma similar.

Requisitos previos

  • Un servidor WiKID operativo y accesible desde la red interna.
  • Un servidor Ubuntu 12.04 (Precise) con acceso administrativo.
  • Acceso a la consola del servidor Ubuntu para instalar paquetes.
  • Conocimiento del nombre de usuario que se usará en el servidor y en WiKID (debe coincidir).

Nota: si usa directorio central (LDAP/AD), es recomendable integrar autorización con su servidor RADIUS/LDAP y mantener la gestión de cuentas en el directorio.

1. Añadir un dominio al servidor WiKID

Para organizar tokens y políticas, cree primero un dominio (domain) en la interfaz administrativa de WiKID. En la consola web de WiKID agregue el dominio con el nombre que prefiera y defina la política de token/PIN según sus requisitos.

Interfaz para crear dominio en WiKID

Alt: Interfaz de administrador de WiKID mostrando formulario para crear un dominio.

2. Crear un cliente de red (Network Client)

Después de guardar el dominio, abra la pestaña Cliente de red y seleccione Crear nuevo cliente de red. Introduzca un nombre descriptivo y la dirección IP del servidor X2Go en la red interna. Seleccione RADIUS como protocolo y asocie el cliente al dominio que creó.

Formulario para crear cliente de red en WiKID

Alt: Vista de la configuración para crear un cliente RADIUS en WiKID con campos para nombre y dirección IP.

Haga clic en Agregar para continuar y en la siguiente página introduzca el secreto compartido (shared secret) para RADIUS. Este mismo secreto se configurará en el servidor Ubuntu dentro del archivo de configuración de pam-radius.

Pantalla para introducir shared secret en WiKID

Alt: Campo en la consola WiKID para ingresar el secreto compartido del cliente RADIUS.

3. Configurar X2Go en su máquina Ubuntu

Instalar X2Go en Ubuntu Precise es sencillo. Abra una terminal y ejecute los siguientes comandos:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:x2go/stable
sudo apt-get update
sudo apt-get install x2goserver x2goserver-xsession x2gobroker x2gobroker-daemon x2gobroker-authservice

Si la máquina no tiene entorno de escritorio instalado, instale uno (por ejemplo GNOME/Unity):

sudo apt-get install ubuntu-desktop gnome

O el entorno de su preferencia. Luego, instale el cliente X2Go en la máquina desde la que se conectará o en otra estación de trabajo:

apt-get install x2goclient

(O consulte la página de clientes X2Go para otros sistemas operativos.)

Cree una nueva sesión en el cliente X2Go apuntando a la IP del servidor y seleccione el escritorio instalado. Verifique que puede iniciar sesión con su contraseña estática antes de añadir 2FA.

4. Configurar PAM RADIUS en el servidor X2Go

A continuación configuraremos pam-radius para delegar la autenticación en el servidor WiKID. Cada distribución maneja PAM de forma ligeramente distinta; aquí cubrimos Ubuntu.

Instale el paquete:

$ sudo apt-get install libpam-radius-auth

A continuación, edite el fichero de configuración de pam_radius:

$ sudo vim /etc/pam_radius_auth.conf

Edite la línea “other-server; other-secret 3”; reemplazando ‘other-server’ por la IP o nombre de host de su servidor WiKID (o del servidor RADIUS que tenga en el medio) y cambie ‘other-secret’ por el secreto compartido configurado en el cliente de red en el servidor WiKID.

Importante: el fichero contiene una nota que sugiere copiar a /etc/raddb/server — NO lo haga a menos que su instalación lo requiera explícitamente.

Una vez que pam_radius apunta a WiKID, hay que habilitarlo en el servicio adecuado. Edite el archivo PAM para SSH:

$ sudo vim /etc/pam.d/sshd

Y añada la línea siguiente justo por encima de la sección de autenticación estándar:

auth       sufficient  pam_radius_auth.so

Debe colocarse justo antes de:

# Standard Un*x authentication.
@include common-auth

Esto indica que si la autenticación RADIUS tiene éxito, PAM considerará la autenticación suficiente.

5. Pruebas y verificación

  1. Abra un terminal y vigile los logs de autenticación mientras prueba:
tail -f /var/log/auth.log
  1. Inicie su token WiKID (aplicación o token físico), seleccione el dominio que creó y obtenga el OTP introduciendo su PIN.
  2. Inicie una sesión X2Go o SSH con su nombre de usuario local y, cuando se le solicite, use la contraseña/OTP según la configuración. Tenga en cuenta que el nombre de usuario debe existir tanto en el servidor Linux como en WiKID para que la correlación funcione.

Si todo está bien configurado, el servidor validará el OTP contra WiKID y concederá el acceso.

6. Buenas prácticas y recomendaciones

  • Mantenga el secreto compartido (shared secret) en un lugar seguro y cámbielo si existe sospecha de exposición.
  • Use direcciones IP privadas y reglas de firewall para limitar el acceso al puerto RADIUS desde hosts autorizados.
  • Si tiene infraestructura de directorio (LDAP/AD), haga que la autorización la realice su servidor RADIUS que consulte el directorio, y deje a WiKID solo la validación del OTP. Esto mantiene la gestión de cuentas centralizada.
  • Documente el procedimiento de desactivación de tokens para poder revocar el acceso rápidamente.

Lista de verificación (para implementación)

  • Servidor WiKID instalado y dominio creado
  • Cliente de red creado con IP del servidor X2Go y secreto compartido
  • X2Go server instalado (x2goserver, x2gobroker, etc.)
  • Entorno de escritorio instalado (si es necesario)
  • libpam-radius-auth instalado en Ubuntu
  • /etc/pam_radius_auth.conf apuntando al servidor WiKID con el secreto correcto
  • /etc/pam.d/sshd modificado para incluir pam_radius_auth.so
  • Pruebas de inicio de sesión y verificación de logs completadas

Casos en que esto falla y soluciones rápidas

  • Problema: No se recibe respuesta de RADIUS.
    • Verifique conectividad IP entre el servidor Ubuntu y el servidor WiKID (ping/telnet al puerto RADIUS).
    • Confirme que el firewall permite tráfico RADIUS (UDP 1812/1813 o 1645/1646 según la configuración).
  • Problema: Rechazo por shared secret incorrecto.
    • Revalide que el secreto configurado en WiKID y en /etc/pam_radius_auth.conf coincidan exactamente.
  • Problema: Usuario no encontrado.
    • Asegúrese de que el nombre de usuario existe localmente o que la autorización del RADIUS/LDAP está funcionando correctamente.

Mini playbook de implementación (pasos rápidos)

  1. Crear dominio en WiKID.
  2. Crear cliente de red en WiKID y anotar el secreto compartido.
  3. Instalar X2Go en servidor Ubuntu.
  4. Instalar libpam-radius-auth y configurar /etc/pam_radius_auth.conf con la IP/secret.
  5. Modificar /etc/pam.d/sshd para invocar pam_radius_auth.so.
  6. Probar con token y revisar /var/log/auth.log.

Criterios de aceptación

  • Un usuario válido puede iniciar sesión a través de X2Go solo después de presentar un OTP válido generado por WiKID.
  • El servidor registra correctamente intentos de autenticación y respuestas RADIUS en /var/log/auth.log.
  • Es posible revocar el token de un usuario desde la consola WiKID y observar que el acceso queda bloqueado.

Seguridad y privacidad

  • Evite transmitir secretos por canales no cifrados. Use una conexión administrativa segura (SSH) para editar configuración.
  • Si maneja datos personales, revise políticas de privacidad y consideraciones locales (por ejemplo, GDPR) sobre el tratamiento de identificadores y registros de acceso.

Resumen

La integración de WiKID con X2Go mediante pam-radius añade una capa fuerte de seguridad mediante OTPs. El proceso principal es: crear dominio y cliente en WiKID, instalar X2Go, apuntar libpam-radius-auth a WiKID con el secreto compartido, modificar PAM para usar pam_radius_auth.so y probar las conexiones. Esta arquitectura permite revocar tokens centralmente y delegar autorización al directorio cuando se usa un servidor RADIUS intermedio.

Importante: mantenga la sincronización entre nombres de usuario en el servidor Linux y en WiKID o utilice un flujo RADIUS que consulte su directorio central.

Clave: autenticación = posesión (token WiKID) + conocimiento (PIN). Al combinar ambos factores con RADIUS, se mejora significativamente la seguridad del acceso remoto.

Autor
Edición

Materiales similares

Corregir error 0xc000001d en Windows
Windows

Corregir error 0xc000001d en Windows

Borrar y ajustar Recent Places en macOS
macOS

Borrar y ajustar Recent Places en macOS

Arreglar errores 0x80070057 y 0xa0000400 en Windows 10
Soporte técnico

Arreglar errores 0x80070057 y 0xa0000400 en Windows 10

Eliminar actualizaciones problemáticas de Windows
Windows

Eliminar actualizaciones problemáticas de Windows

Organiza pestañas en Firefox y Chrome
Productividad

Organiza pestañas en Firefox y Chrome

Carpeta found.000 en Windows 10: qué es y cómo eliminarla
Windows

Carpeta found.000 en Windows 10: qué es y cómo eliminarla