15.2. Configuración avanzada de FreeNX

En las siguientes secciones se presentan algunas funciones avanzadas, necesarias sobre todo en escenarios de NX más complejos.

15.2.1. Configuración de la autenticación SSH mediante claves de cliente

La autenticación configurada en la Sección 15.1, “Procedimientos iniciales de NX” se basa únicamente en un nombre de usuario y una contraseña. Para conseguir un sistema de autenticación más seguro, es posible configurar NX para que genere un par de claves SSH. La clave de cliente se copia entonces desde el equipo servidor en cualquier cliente que deba conectarse al servidor NX. Los clientes que no cuenten con esta clave no podrán autenticarse en el servidor NX. Esta función sólo se admite para la combinación servidor FreeNX/cliente KNX.

Para configurar el servidor NX para que utilice este método de autenticación y genere el par de claves adecuado, siga este procedimiento:

  1. Inicie sesión como usuario Root en el equipo servidor.

  2. Abra el archivo de configuración del servidor /etc/nxserver/node.conf y asegúrese de que la variable ENABLE_SSH_AUTHENTICATION está definida en 1 (que es el valor por defecto).

  3. Instale el servidor con el siguiente comando:

    nxsetup --install --clean --purge
  4. Ajuste los permisos de acceso en /var/lib/nxserver/home/.ssh/authorized_keys2:

    chmod 640 /var/lib/nxserver/home/.ssh/authorized_keys2
    
  5. Cierre la sesión.

Para configurar KNX a fin de que utilice esta clave, siga este procedimiento:

  1. En el equipo servidor, inicie sesión como usuario Root.

  2. Copie el archivo de clave a la ubicación del equipo cliente que solicite KNX, y sustituya cliente por la dirección del cliente.

     
    scp /var/lib/nxserver/home/.ssh/client.id_dsa.key cliente/usr/share/knx/ 
  3. Inicie sesión como usuario Root en el equipo cliente.

  4. Ajuste los permisos de acceso así:

    chmod 644 /usr/share/knx/client.id_dsa.key
    
  5. Cierre la sesión.

15.2.2. Configuración de la autenticación PAM.

Por defecto, FreeNX permite que cualquier usuario abra una sesión de NX, siempre que tal usuario esté presente en la base de datos de usuarios del servidor (de forma local o mediante LDAP, NIS, etc.). Este comportamiento lo regula la variable ENABLE_PAM_AUTHENTICATION del archivo /usr/bin/nxserver del equipo servidor. El valor por defecto es 1. Si se establece en 0, se deshabilitará la autenticación de usuarios mediante PAM (PAM_AUTH) en FreeNX.

Si ENABLE_PAM_AUTHENTICATION se define como 0, tendrá que añadir los usuarios y sus contraseñas de forma manual. Para añadir usuarios de NX locales en el servidor, siga este procedimiento:

  1. Inicie sesión como usuario Root en el equipo servidor.

  2. Asegúrese de que cualquier usuario que añada esté presente en la base de datos de usuarios locales del sistema. Para ello compruebe el contenido de /etc/passwd o utilice el módulo de gestión de usuarios de YaST.

  3. Añada el nombre de usuario de cada usuario que desee añadir mediante el comando nxserver --adduser. A continuación, añada sus contraseñas mediante nxserver --passwd.

  4. Reinicie el servidor con nxserver --restart y salga de la sesión.

15.2.3. Uso de archivos de configuración para usuarios concretos o para todo el sistema

El comportamiento del servidor FreeNX se controla mediante el archivo /etc/node.conf. Es posible aplicar una configuración de servidor NX global o configuraciones específicas para cada usuario. Esta última forma se puede aplicar si hay varios usuarios de NX en un equipo que tienen distintas necesidades.

En el ejemplo siguiente, imagine que el usuario juan desea que NX se inicie automáticamente con una aplicación determinada en cuanto se abra una sesión de NX. Para permitir esta acción sólo para este usuario, siga este procedimiento:

  1. Inicie sesión como usuario Root.

  2. Entre en el directorio /etc/nxserver.

    cd /etc/nxserver
  3. Guarde una copia del archivo de configuración del servidor NX (node.conf), situado bajo juan.node.conf en el mismo directorio.

  4. Modifique los parámetros oportunos (NODE_AUTOSTART y ENABLE_AUTORECONNECT) en juan.node.conf. Para obtener más información sobre estas funciones, consulte la Sección 15.2.5, “Configuración de las tareas de inicio automático y ajustes de exportación” y la Sección 15.2.4, “Suspensión y reanudación de sesiones de NX”.

  5. Vuelva a instalar el servidor NX para activar la nueva configuración:

    nxsetup --install --clean --purge --setup-nomachine-key

    La configuración específica para el usuario sustituirá a la configuración global.

  6. Cierre la sesión.

15.2.4. Suspensión y reanudación de sesiones de NX

Al igual que ocurre con las sesiones de los equipos portátiles, es posible configurar NX para que permita la suspensión y reanudación de sesiones de usuarios. Cuando se reabre, la sesión suspendida vuelve a estar exactamente en el mismo estado en el que se dejó.

Para configurar la suspensión y reanudación de sesiones de NX, siga este procedimiento:

  1. Inicie sesión como usuario Root.

  2. Abra el archivo de configuración del servidor, /etc/nxserver/node.conf, y modifíquelo así:

    ENABLE_PASSDB_AUTHENTICATION="0"
    ENABLE_USER_DB="0"
    ENABLE_AUTORECONNECT="1"
    
  3. Guarde y salga del archivo de configuración y reinicie el servidor mediante el comando nxserver --restart.

  4. Cierre la sesión.

Para suspender una sesión al salir, haga clic en la X de la esquina superior derecha de la ventana de NX y seleccione Suspender para suspender la sesión y salir del cliente. Cuando vuelva a conectar se le preguntará si desea reanudar la sesión anterior o iniciar una nueva.

15.2.5. Configuración de las tareas de inicio automático y ajustes de exportación

FreeNX ofrece una función de inicio automático que permite abrir algunas tareas al iniciar o reanudar una sesión de NX, siempre que la aplicación subyacente admita las propiedades start y resume. Por ejemplo, se puede limpiar automáticamente el escritorio o realizar otras tareas automáticas al iniciar FreeNX. Esta función es muy útil al reconectar una sesión, incluso desde un cliente de NX distinto (desde el que no se puedan utilizar los mecanismos de KDE o GNOME estándar).

Para configurar las funciones de inicio automático, siga este procedimiento:

  1. Inicie sesión como usuario Root en el equipo servidor.

  2. Abra el archivo de configuración del servidor /etc/nxserver/node.conf y modifique la variable NODE_AUTOSTART de la siguiente forma, sustituyendo miprograma por el programa que se deba ejecutar al iniciar o reanudar una sesión de NX:

    NODE_AUTOSTART=miprograma
         
  3. Guarde y salga del archivo de configuración.

  4. Reinicie el servidor con el comando nxserver --restart y salga de la sesión.

    El programa indicado se abrirá cada vez que se inicie o reanude una sesión.

También se pueden exportar las variables NX_USERIP y NX_SESSIONID para que los demás usuarios del entorno puedan acceder a ellas. De esta forma será posible, por ejemplo, colocar un icono en el escritorio con el contenido genérico y acceder al servidor Samba que se ejecute en el cliente de procesamiento parcial del usuario. Para hacer que el contenido de un disquete de la unidad de disquetes del cliente de procesamiento parcial esté a disposición del usuario, siga este procedimiento:

  1. Habilite la exportación de las variables NX_USERIP y NX_SESSIONID en el servidor:

    1. Inicie sesión como usuario Root en el equipo servidor.

    2. Abra el archivo de configuración del servidor, /etc/nxserver/node.conf, y defina las siguientes variables:

      EXPORT_USERIP="1"
      EXPORT_SESSIONID="1"
      
    3. Guarde y salga del archivo de configuración y reinicie el servidor mediante el comando nxserver --restart.

    4. Cierre la sesión.

  2. En el cliente, abra una sesión, exporte la unidad de disquete mediante SMB y cree un icono en el escritorio:

    1. Exporte el contenido de la unidad de disquete mediante Samba utilizando su gestor de archivos (Nautilus o Konqueror).

    2. Cree un archivo floppy.desktop en el directorio Desktop y escriba la siguiente línea:

      Exec=smb://$NX_USERIP/floppy

      El servidor exportará la dirección IP del cliente de procesamiento parcial, permitiendo el acceso a la unidad de disquete de este cliente a través del icono de disquete de la sesión de NX.

15.2.6. Creación de una cadena de servidores NX

Una cadena de servidores NX permite atravesar cortafuegos y enfrentarse al enmascaramiento de IP. Se puede utilizar un servidor “gateway” externo para remitir las conexiones entrantes a un servidor interno oculto (enmascarado) tras un cortafuegos.

Para configurar una cadena de servidores NX, siga este procedimiento:

  1. Configure el servidor interno tal y como se describe en la Sección 15.2.1, “Configuración de la autenticación SSH mediante claves de cliente” y distribuya la clave privada del servidor (client.id_dsa.key) a /usr/NX/share/ en el gateway.

  2. En el servidor gateway, haga lo siguiente:

    1. Inicie sesión como usuario Root.

    2. Defina las siguientes variables de /etc/nxserver/node.conf, sustituyendo mihostinterno por la dirección IP del servidor NX interno:

       
      ENABLE_SERVER_FORWARD="1" 
      SERVER_FORWARD_HOST="mihostinterno" SERVER_FORWARD_KEY="/usr/NX/share/client.id_dsa.key"
    3. Reinicie el servidor externo para aplicar la configuración modificada con el comando nxserver --restart y salga de la sesión.

      Todas las conexiones entrantes se remitirán al servidor interno.

15.2.7. Instalación y ejecución de FreeNX y NoMachine en el mismo servidor

Es posible instalar y ejecutar FreeNX y el servidor comercial NoMachine NX en el mismo equipo sin que se produzcan interferencias. Esta función se implementa en FreeNX remitiendo la conexión al servidor NoMachine instalado en el mismo equipo.

Para habilitar esta función, siga este procedimiento:

  1. Inicie sesión como usuario Root en el equipo servidor.

  2. Abra el archivo de configuración del servidor para FreeNX de /etc/nxserver/node.conf y defina la siguiente variable:

    ENABLE_NOMACHINE_FORWARD="1"
  3. Guarde este archivo y reinicie el servidor FreeNX mediante el comando nserver --restart.

  4. Cierre la sesión.

Para conectarse al servidor NoMachine, utilice su nombre de usuario y contraseña habituales. Para conectarse al servidor FreeNX, añada el prefijo freenx. al nombre de usuario habitual (por ejemplo, freenx.juangarcia) y utilice la contraseña habitual.