Problemas de conexión al servidor VNC de GNOME

Introducción

En las versiones recientes de Vino, el servidor VNC del proyecto GNOME que se incluye en otras distribuciones como Ubuntu, he encontrado problemas de conexión con los clientes, especialmente con el cliente de RealVNC que utilizo.

Cuando el cliente intenta conectarse con el servidor, la conexión falla y el usuario recibe un mensaje de “No supported authentication methods!” o “No matching security types“.

Causa

Esto aparentemente se debe a que Vino por defecto intenta cifrar el tráfico de datos con TLS y los clientes no lo soportan.

Solución

La solución consiste en desactivar el cifrado de los datos transmitidos durante la sesión de VNC.

Para hacer esto se debe ejecutar el siguiente comando en el servidor.

$ gsettings set org.gnome.Vino require-encryption false

Probablemente sea necesario reiniciar el servicio de Vino.

$ pgrep -l vino-server 

$ pkill -x vino-server

$ /usr/lib/vino/vino-server -t &

Uso de NX 3.5 con GNOME Fallback en Ubuntu 12.10

Introducción

Cómo se mencionó en el post anterior, la versión 3.5 de NX no soporta sistemas de escritorio como Unity o GNOME3 ya que no a su vez no soporta los efectos de escritorio compuesto provistos por Compiz.  Por este motivo es necesario utilizar un sistema de escritorio diferente.

En mi caso decidí experimentar con la versión fallback de GNOME3 con buenos resultados.  A continuación se detallan los proceso de instalación y configuración necesarios para utilzar este manejador de ventanas con NX 3.5.

Instalación de GNOME Fallback en el servidor

Para instalar el sistema de escritorio en el servidor es necesario ejecutar los siguientes comandos.

$ sudo apt-get install gnome-session-fallback
$ sudo apt-get install indicator-applet-appmenu

Verificar los tipos de sesiones disponibles en el servidor

Para listar las sesiones disponibles en el servidor se debe ejecutar el siguiente comando.

$ ls /usr/share/gnome-session/sessions/

gnome.session  gnome-classic.session  gnome-fallback.session  ubuntu.session

Las sesiones gnome y ubuntu las incluye por defecto Ubuntu y hacen referencia a Unity.  Las sesiones gnome-* son las instaladas por GNOME Fallback en el paso anterior, la diferencia entre estos dos tipos de sesiones consiste en que gnome-fallback no utiliza los efectos de Compiz por lo que es preferible utilizarlo en este contexto.

Configurar el cliente de NX para establecer conexiones utilizando GNOME Fallback

Desde el cliente de NX elija la sesión que desea modificar y presione el botón de configuración mostrado en la imagen a continuación.

Configuración del cliente NX
Configuración del cliente NX

En la congiruación de la sesión bajo las opciones del escritorio, seleccione Unix (para utilizar el protocolo NX), Custom (para personalizarlo) y presione el botón Settings.

Configurar sesión de NX
Configurar sesión de NX

En la configuración del escritorio, bajo la sección de aplicación seleccione la opción Run the following command y especifique el siguiente comando, siendo gnome-fallback el sistema de escritorio a utilizar.

gnome-session --session=gnome-fallback

Bajo la sección de opciones se recomienda marcar la opción New virtual desktop como se muestra a continuación.

Configuración de escritorio del cliente NX
Configuración de escritorio del cliente NX

Alternativa del lado del servidor

Si se desea evitar que cada cliente deba realizar esta modificación para utilizar el sistema de escritorio de GNOME Fallback, esta modificación puede realizarse del lado del servidor de la siguiente manera.

$ vi /usr/NX/etc/node.conf
COMMAND_START_GNOME='gnome-session --session=gnome-fallback'

O con la siguiente opción si se desea ejecutar al cliente NX en una ventana y tener mayor control sobre su configuración.

COMMAND_START_GNOME="/etc/X11/Xsession 'gnome-session --session=gnome-fallback'"

Enlaces

Instalar otros manejadores de ventanas en Linux Ubuntu

GNOME3

Para instalar la versión completa (incluyendo el Session Fallback)  se debe ejecutar el siguiente comando.

$ sudo apt-get install gnome-shell

Si por el contrario sólo se desea instalar el GNOME Session Fallback y ahorrar un poco de espacio, es necesario ejecutar el siguiente comando.

$ sudo apt-get install gnome-session-fallback

Cinnamon

Cinnamon es el fork de GNOME3 que hizo la gente de Linux Mint para solucionar los cambios de diseño que disgustaron a muchos usuarios de la versión original mediante el uso de extensiones.

$ sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stable
$ sudo apt-get update
$ sudo apt-get install cinnamon

 Mate

MATE es el fork de GNOME2.  Si se desea instalar un escritorio similar al presentado por la versión anterior de GNOME la mejor opción es instalar MATE ya que la versión 2 de GNOME se encuentra oficialmente descontinuada.

$ sudo add-apt-repository "deb http://packages.mate-desktop.org/repo/ubuntu quantal main"
$ sudo apt-get update
$ sudo apt-get install mate-archive-keyring
$ sudo apt-get update
$ sudo apt-get install mate-core
$ sudo apt-get install mate-desktop-environment

GTG, Zim, NoteCase y Tilda

Introducción.

Estas son unas aplicaciones pequeñas basadas en GNOME que encuentro útiles para el uso diario y que reseño hoy para no olvidarlas.

GTG.

La primera de ellas es Getting Things GNOME! que permite manejar las tareas por hacer de una manera flexible y rápida con cierto estilo wiki, ya que según como se escriba el contenido de la tarea este va a tener cierca connotación sobre la misma.

Ejemplo de GTG
Ejemplo de GTG

Su sitio web es http://gtg.fritalk.com y puede instalarse directamente de los repositorios de Fedora a través del siguiente comando.

$ sudo yum install gtg

Zim.

Es un editor de texto que facilita la edición y almacenamiento de notas las cuales se editan al estilo wiki, es decir, sus atributos se definen según ciertas convenciones inmersas en los textos.

Ejemplo de Zim
Ejemplo de Zim

Su sitio web es http://zim-wiki.org/y puede instalarse directamente de los repositorios de Fedora a través del siguiente comando.

$ sudo yum install Zim

Note Case.

Es una aplicación similar a Zim que permite crear y almacenar notas en diferentes plataformas.

Ejemplo de Notecase
Ejemplo de Notecase

Este año se dejó de actualizar la versión opensource para crearse una versión pro la cual es comercial e incluye muchas mas características pero puede utilizarse de manera gratuita con restricciones.

Su sitio web es http://notecase.sourceforge.net/ (versión opensource) y http://www.notecasepro.com/ (versión pro), y puede instalarse directamente de los repositorios de Fedora a través del siguiente comando.

$ sudo yum install notecase

Tilda.

La última de estas aplicaciones es Tilda la cual permite acceder a una consola única y desplegable al estilo de Quake, muy útil para realizar labores cortas de administración evitando la necesidad de abrir una nueva terminal cada vez.

Ejemplo de TIlda
Ejemplo de TIlda

Su sitio web es http://tilda.sourceforge.net/ y puede instalarse directamente de los repositorios de Fedora a través del siguiente comando.

$ sudo yum install tilda

Para su ejecución inicial es recomendable hacerlo de la siguiente manera para que se desplieguen automáticamente sus opciones y establecer así su configuración, especialmente la relacionada con la combinación de teclas que la activa (key binding) la cual en mi caso personal es CTRL+ALT+T.

$ tilda –config

Inicio automático de las aplicaciones.

La mayoría de estas aplicaciones permite configurarlas para que se inicien automáticamente cuando el usuario ingresa en una sesión, sin embargo con GNOME3 he tenido algunos problemas para que esta configuración funcione.  Por este motivo bien pueda ser conveniente agregar a la sesión de usuario a estos programas que se desea que se inicie automáticamente utilizando el comando gnome-session-properties.

sudo yum install tilda

Instalando GNOME3 en GNU/Linux Ubuntu 11.04

Introducción.

Después de instalar GNOME3 en Ubuntu 10.10 decidí actualizar uno de mis portátiles a Ubuntu 11.04.  Como no me ha gustado Unity hasta ahora decidí instalarle GNOME3 y darle una nueva oportunidad a este escritorio.

Encontré que el procedimiento de instalación varía un poco con respecto al correspondiente con la versión anterior del sistema operativo y por eso lo documento a continuación.

Es muy importante tener en cuenta que instalar GNOME3 parece desestabilizar y/o inutilizar a Unity, además es muy difícil desinstalarlo para regresar a los componentes de la distribución original.  Por este motivo se debe estar muy seguro de lo que se está haciendo antes de realizar el procedimiento descrito a continuación.

Procedimiento de instalación.

$ sudo add-apt-repository ppa:gnome3-team/gnome3

$ sudo apt-get update

$ sudo apt-get dist-upgrade

$ sudo apt-get install gnome-shell

Seleccionar el escritorio.

Después de reiniciar seleccionar el escritorio Ubuntu GNOME Shell Desktop en el GDM durante el inicio de sesión.

Enlaces.

Instalando GNOME3 en GNU/Linux Ubuntu 10.10

Introducción.

 

Sistema de escritorio GNOME3
Sistema de escritorio GNOME3

Como mencioné anteriormente, a principios de este mes se realizó la liberación al público de la versión 3 del conocido sistema de escritorio GNOME.

En el presente artículo se especifica el procedimiento que se debe realizar para instalar para producción esta nueva versión en equipos que utilizan GNU/Linux Ubuntu.  Si por el contrario aún no se está seguro de instalar esta nueva versión pero se desea experimentar con ella, existen alternativas mas simples y seguras como la creación de una unidad LiveUSB.

Procedimiento de instalación.

Agregar el repositorio de GNOME3 de Ubuntu al listado de los utilizados localmente por aptitude.

$ sudo add-apt-repository ppa:ubuntu-desktop/gnome3-builds

Actualizar las referencias locales de los paquetes para incluír los contenidos en el repositorio recién agregado.

$ sudo aptitude update

Instalar los paquetes y dependencias de GNOME3.

$ sudo aptitude install gnome3-session gnome3-shell

Método de uso.

Para acceder al escritorio utilizando GNOME3 se debe escoger este sistema en la ventana de registro de usuario (gdm) antes de iniciarse la sesión.

Probando GNOME3 en una LiveUSB

Introducción.

GNOME (GNU Network Object Model Environment) es uno de los entornos de escritorio mas utilizados por GNU/Linux (y otros sistemas operativos como Solaris y FreeBSD).  A principios de este mes fue liberada su muy esperada versión 3.0 la cual representa un gran avance frente a la serie anterior a la cual muchos estamos acostumbrados.

Como los cambios son extensos es muy posible que por ahora no se desee actualizar los escritorios que se utilizan en producción ya que esto puede generar algún tipo de conflictos entre librerías o molestías en el uso que pueden redundar en la pérdida de agilidad en el uso del sistema operativo.  Por suerte con GNU/Linux siempre hay muchas alternativas para lograr lo que se desea.

En este artículo se analizará el caso mas simple para probar GNOME3 sin interferir con el sistema operativo instalado en el equipo.  Para hacer esto se utilizará una de las imágenes ISO que provee el mismo proyecto GNOME para su demostración y una memoria USB (>= 2GB) en la cual se instalará el sistema operativo.

El procedimiento que se describe a continuación se deberá realizar desde un equipo que utilice GNU/Linux sin importar su distribución.

Creación de la LiveUSB.

Descargue una de las imágenes ISO de la página de GNOME accediendo al siguiente enlace.

http://gnome3.org/tryit.html

Actualmente se encuentran dos versiones disponibles: OpenSuse (32 y 64 bits) y Fedora (32 bits).  Recomiendo obtener cualquiera de las dos en su arquitectura de 32 bits.

Descargue el software USB Image Writer desde la misma página web.

$ wget https://github.com/abock/image-usb-stick/tarball/master -O abock-image-usb-stick.tar.gz –no-check-certificate

Descomprima el paquete recién descargado.

$ tar zxvf abock-image-usb-stick.tar.gz

$ cd abock-image-usb-stick/

Inserte la memoria USB y ejecute el comando de instalación especificando la ruta completa de la ubicación de la imagen ISO descargada anteriormente.

$ sudo ./image-usb-stick /home/jimezam/Desktop/GNOME30-Live-latest.iso

Loading disks…/media/xxxxx

Especifique cual es la unidad USB donde se realizará la instalación del sistema operativo.  Tenga mucho CUIDADO en su elección ya que el sistema de archivos del dispositivo que elija será formateado y con esto se perderán todos los archivos que haya en ella.

Select a device to image:

1) DataTraveler_G2 (/dev/sdc) – 4 GB
– DataTraveler_G2 (/dev/sdc1) – 4 GB

Choice: 1

Selected: DataTraveler_G2 (/dev/sdc) – 4 GB

Si la partición de la unidad USB se encuentra montada actualmente, la aplicación le solicitará su autorización para desmontarla.

Device has one or more mounted partitions:
/dev/sdc1 @ /media/54da3019-09ce-4d50-bc19-13300f219e03

Unmount all partitions? [Y/N]: y

Acepte finalmente el proceso de instalación teniendo en cuenta que perderá la información en el dispositivo de almacenamiento seleccionado.

WARNING: imaging /dev/sdc may result in data loss! Continue? [Y/N]: y

Creación de la LiveUSB desde windows.

Como se mencionó inicialmente, el proceso de creación de la unidad con el sistema operativo se debe realizar desde un equipo con GNU/Linux.  Si no se cuenta con este sistema operativo pero si con una máquina con Windows, es posible obtener un resultado análogo utilizando la herramienta Unetbootin.

Uso de la LiveUSB.

Para acceder al GNU/Linux  con GNOME3 recién instalado, conecte la unidad USB utilizada en el computador y reinicielo.  Elija el medio de almacenamiento USB como medio preferido para el inicio (boot) y espere unos segundos para cargar el sistema operativo.

 

Escritorio con GNOME3
Escritorio con GNOME3

Finalmente disfrute GNOME3!

Acceder al escritorio remoto de GNU/Linux Ubuntu 10.04 utilizando FreeNX

Introducción.

Después de experimentar el acceso al escritorio remoto de GNU/Linux a través de XDMCP (con Xephyr y como una terminal) encontré que los resultados fueron satisfactorios pero con algunas desventajas: la seguridad y la velocidad.  En pocas palabras no es prudente utilizar XDMCP en un ambiente diferente a LAN ya que su tráfico no está encriptado y el puerto abierto puede convertirse en un problema de seguridad.

Por esta razón decidí probar un software muy conocido pero que nunca utilizado.  FreeNX es la versión libre del NXServer de NoMachine, el cual es descrito de la siguiente manera en su sitio de Launchpad.

NX technology is a computer program that handles remote X Window System connections, and attempts to greatly improve on the performance of the native X11 protocol to the point that it can be usable over a slow link such as a dial-up modem … The open source alternative to NoMachines’s commercial NX Server.

En términos generales me gustaron mucho los resultados, es rápido y aparentemente seguro (su tráfico se envía a través de SSH). El servidor inclusive puede servir de proxy para acceder a servidores RDP (Windows), VNC o de impresoras mediante los paquetes freenx-rdp, freenx-vnc y freenx-smb respectivamente.

En la instalación, a pesar de no ser compleja, encontré un par de bugs para Ubuntu 10.04 que fueron resueltos.  Este procedimiento se describe a continuación.

Instalar el servidor.

Instalar los paquetes.

$ sudo aptitude install python-software-properties

$ sudo add-apt-repository ppa:freenx-team

$ sudo aptitude update

$ sudo aptitude install freenx-server

Crear las llaves de acceso (opcional).

Como mencioné inicialmente, FreeNX utiliza el protocolo SSH para su transporte, por este motivo puede aprovechar la riqueza de opciones de autenticación que provee este servicio.  Por defecto el servidor instala una pareja de llaves por defecto, utilizarlas constituye un riesgo de seguridad.  Por este motivo se sugiere que se creen y popularicen las llaves propias.  Si la seguridad no es una preocupación, puede obviar este paso y continuar con la instalación del cliente.

Si recibe un mensaje de error al ejecutar nxsetup indicándole que el comando no fue encontrado, realice primero los pasos descritos en la sección de solución de problemas.

$ sudo sudo /usr/lib/nx/nxsetup –install

——> It is recommended that you use the NoMachine key for
easier setup. If you answer “y”, FreeNX creates a custom
KeyPair and expects you to setup your clients manually.
“N” is default and uses the NoMachine key for installation.

Do you want to use your own custom KeyPair? [y/N] y
Setting up /etc/nxserver …done
Generating public/private dsa key pair.
Your identification has been saved in /etc/nxserver/users.id_dsa.
Your public key has been saved in /etc/nxserver/users.id_dsa.pub.
The key fingerprint is:
90:d2:6b:93:58:35:09:7b:e4:cd:43:db:83:9b:e2:bf root@jimezam-notebook
The key’s randomart image is:
+–[ DSA 1024]—-+
|      ..+..      |
|     . *.= +     |
|    . * o * o    |
|     + =   + .   |
|    . = S o      |
|     . o .       |
|        .        |
|         .       |
|          E.     |
+—————–+
Setting up /var/lib/nxserver/db …done
Setting up /var/log/nxserver.log …done
Adding user “nx” to group “utmp” …done
Setting up known_hosts and authorized_keys2 …Unique key generated; your users must install

/var/lib/nxserver/home/.ssh/client.id_dsa.key

on their computers.
done
Setting up permissions …done
Setting up cups nxipp backend …
cp: `/usr/lib/cups/backend/ipp’ and `/usr/lib/cups/backend/ipp’ are the same file

Copie la llave a los equipos cliente, la cual posteriormente podrá ser importada desde el cliente de NX.

$ sudo scp /var/lib/nxserver/home/.ssh/client.id_dsa.key usuario@mi-cliente:~/client.id_dsa.key

Después de importada la llave en el cliente de NX de mi-cliente, se recomienda que remueva el archivo ~/client.id_dsa.key.

Crear nuevas llaves (Servidor)

Es posible que por motivos de seguridad posteriormente desee crear nuevas llaves para reemplazar las existentes después de una cierta cantidad de tiempo.  Para hacer esto ejecute el siguiente comando.

$ sudo dpkg-reconfigure freenx-server

Seleccione el tipo de llaves a utilizarse, utilice la opción Create new custom keys para crear un nuevo par.

Selección del tipo de llaves
Selección del tipo de llaves

Seleccione el tipo de autenticación a utilizarse, en este caso se utilizará el servicio SSH.

Selección del tipo de autenticación
Selección del tipo de autenticación

Finalmente transmita la nueva llave a los clientes para permitirles acceder nuevamente al servidor.

Instalar el cliente.

Instalar el paquete.

Descargue el paquete correspondiente a su sistema operativo de la siguiente dirección.

http://www.nomachine.com/select-package-client.php

Para este caso, Ubuntu 10.04 de 64 bits, se descargo el paquete NX Client DEB for Linux – x86_64.  A continuación se instala el paquete recién descargado.

$ sudo dpkg -i nxclient_3.4.0-7_x86_64.deb

CUPS Printing Backend

The NX Client set-up procedure detected that your “IPP CUPS” printing
backend doesn’t allow printing from the NX session. In order to have
printing support in your NX system, you need to set proper permissions
on the IPP backend. Please execute:

chmod 755 /usr/lib/cups/backend/ipp

$ sudo chmod 755 /usr/lib/cups/backend/ipp

Ejecutar el cliente.

$ /usr/NX/bin/nxclient &

Crear una nueva cuenta de conexión con el asistente (cliente).

Presione el botón Next para iniciar el asistente de creación de cuentas.

Iniciar el asistente de creación de cuentas
Iniciar el asistente de creación de cuentas

Especifique la siguiente información relacionada con la conexión al servidor.

  • Session: nombre de la sesión (a gusto del usuario).
  • Host: dirección IP o nombre del servidor FreeNX.
  • Port: puerto donde se está ejecutando el servicio SSH.
  • Connection Type: tipo de acceso a la red, en este caso es una red LAN.
Información de conexión al sevidor
Información de conexión al sevidor

Especifique la siguiente información relacionada con el administrador de ventanas a ejecutarse en el servidor.

  • Tipo: en este caso será una conexión nativa (Unix) y se ejecutará GNOME.
  • Size: se permite utilizar el máximo tamaño disponible.
Información del escritorio
Información del escritorio

Presione el botón Finish para terminar el asistente.

Finalizar la instalación
Finalizar la instalación

Realizar una conexión con el servidor.

Registro de usuarios
Registro de usuarios

Seleccione el tipo de sesión (Session) que se creó anteriormente a través del asistente y especifique su información de autenticación (Login y Password) para acceder al servidor.  Presione el botón Login para iniciar la sesión.

Si el servidor cuenta con sus propias llaves personalizadas (ver proceso de instalación) será necesario importarlas en el cliente para poder registrarse exitosamente (ver siguiente apartado).

Importar las llaves del servidor en el cliente.

Si el servidor cuenta con sus propias llaves personalizadas (que es lo mas conveniente) es necesario importarlas en el cliente para que se realice exitosamente la conexión al mismo.  Para esto es necesario transferir la llave (client.id_dsa.key) de manera segura desde el servidor hasta el cliente (ver comando scp en la instalación del servidor).

Para importar el archivo de llave seleccione editar la configuración de la sesión presionando el botón Configure del diálogo de registro (ver anterior).

Configuración de sesión
Configuración de sesión

Presione el botón Key… e importe o pegue la llave proveniente del archivo client.id_dsa.key traído desde el servidor.  Después de importado se recomienda que remueva de manera segura este archivo.

Importar llave
Importar llave

Solución de problemas.

No existe la aplicación nxsetup.

Si obtiene el siguiente mensaje de error, el paquete de freenx-server no incluyó erróneamente la aplicación nxsetup la cual es necesaria para realizar su instalación completa.

nxsetup: command not found

Para corregir este problema realice los pasos descritos a continuación.

$ cd /usr/lib/nx

$ sudo wget “https://help.ubuntu.com/community/FreeNX?action=AttachFile&do=get&target=nxsetup.tar.gz”

$ sudo mv “FreeNX?action=AttachFile&do=get&target=nxsetup.tar.gz” nxsetup.tar.gz

$ sudo tar zxvf nxsetup.tar.gz

$ sudo rm nxsetup.tar.gz

Enlaces.

Acceder al escritorio remoto de GNU/Linux Ubuntu 10.04 creando una nueva consola grafica

Introducción.

Otra forma interesante de acceder a un escritorio grafico remoto utilizando XDMCP es creando una nueva consola grafica igual a la utilizada por el sistema de ventanas local pero que presentará el escritorio remoto.

Para esto es necesario que el servidor remoto exponga el servicio de XDMCP activo.  Recuerde que este servicio es considerado como inseguro ya que transmite la información de manera plana y es suceptible de ser comprometido.  Este servicio sólo debe en ambientes considerados seguros y nunca a través de Internet.  Tome las medidas de seguridad adicionales que considere necesarias.

Procedimiento.

Para iniciar una nueva sesión grafica del servidor remoto abra una de las consolas de texto disponibles en el cliente.  Presione ALT+CTRL+Fn donde n acostumbra a ser desde la 1 a la 7.

Inicie una nueva sesión de usuario.

Ejecute el siguiente comando en la terminal basada en texto.

$ xinit — :1 -query mi.servidor.com -once

Esta instrucción creará una nueva seudoterminal grafica (CTRL+ALT+F9 por ejemplo) con el administrador de registro y el escritorio remoto.

Acceder al escritorio remoto de GNU/Linux Ubuntu 10.04 utilizando Xephyr

Introducción.

En artículos anteriores había documentado como ejecutar aplicaciones que se ejecutan en servidores X remotos mostrando su interfaz de usuario a través del servidor X local de GNU/Linux (con Windows también).

Escritorio remoto con Xephyr

Siempre me había preguntado como acceder a la sesión remota de usuario desde el inicio, es decir, desde el GDM (en el caso de GNOME).  En la noche de hoy encontré la respuesta.

Descripción del procedimiento.

  • El servidor, equipo que ejecuta el servidor X remoto, debe tener activo y visible el servicio de XDMCP.
  • El cliente, equipo que va a consumir el escritorio remoto, deberá contar con el software Xephyr instalado.

Hasta ahora he encontrado un par de situaciones que deben tenerse en cuenta o resolverse posteriormente.

  • GNOME utiliza por defecto NetworkManager como su applet para la configuración y administración de las conexiones de red.  Este software sólo realiza las conexiones inalámbricas de red cuando un usuario autorizado inicia sesión.  Dependiendo del escenario es posible que sea mas conveniente utilizar un administrador de conexiones diferente como Wicd.
  • El audio de la sesión se ejecuta a través del hardware local, lo cual puede ser desconcertante según las circunstancias.

Activar XDMCP en el servidor.

Para activar XDMCP en el servidor X de un GNU/Linux Ubuntu 10.04 es necesario crear o editar el siguiente archivo de configuración.

$ sudo vi /etc/gdm/custom.conf

# GDM configuration storage

[xdmcp]
Enable=true
#DisplaysPerHost=10

[chooser]

[security]

[debug]

Reiniciar el servicio de GDM.

$ sudo service gdm restart

Tenga en cuenta que el servicio es XDMCP es considerado inseguro y que sólo debe activarse en redes confiables, así mismo se recomienda utilizar medidas de seguridad como aplicar restricciones a su acceso como agregando reglas al firewall por ejemplo.

Instalar Xephyr.

En el equipo cliente es necesario instalar Xephyr el cual actúa como un servidor X interno que muestra su contenido en una ventana del servidor X principal de la estación de trabajo.

$ sudo aptitude install xserver-xephyr

Iniciar la sesión de usuario remota.

Desde el equipo cliente ejecute el siguiente comando para iniciar la sesión grafica de usuario.

$ Xephyr :1 -query mi.servidor.com -ac -br -screen 1024×768 2> /dev/null

Según la instrucción anterior se pueden deducir los siguientes parámetros.

  • Se utilizará el DISPLAY número #1.
  • El nombre del servidor remoto es mi.servidor.com (es posible especificar una dirección IP de ser necesario).
  • -ac: Se desactivan las restricciones del control de acceso para permitir el reenvío de X (de ser necesario).
  • -br: Se configura el fondo de color negro.
  • Se configura la resolución de la pantalla.  En este caso se especifica 1024×768, sin embargo puede ajustarse libremente según las necesidades específicas.

Restringir el acceso a XDMCP.

Debido a que XDMCP es considerado muy inseguro ya que transmite la información sin ningún tipo de cifrado, es importante realizar ajustes para limitar su acceso.  En este apartado se describirá como limitar las ubicaciones desde las cuales los clientes pueden conectarse al servicio, lo cual si bien no ayuda a mejorar el problema del transporte de información plana, ayuda a restringir los posíbles orígenes desde los cuales se pueda atacar el servicio.

Para implementar esta restricción se utiliza TCPWrappers de la siguiente manera en el servidor.

$ vi /etc/hosts.deny

gdm: all

$ vi /etc/hosts.allow

gdm: 192.168.1.10, .jorgeivanmeza.com, 192.168.2.

La configuración anterior permite únicamente las conexiones a XDMCP desde la ubicación 192.168.1.0, cualquier equipo que pruebe ser del dominio jorgeivanmeza.com y cualquier equipo de la subred 192.168.2.xxx.