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.

Iniciar GNU/Linux Debian 5 en modo sólo texto

Introducción.

Generalmente no es necesario ni conveniente que los servidores ejecuten, menos automáticamente, un servidor de ventanas por básicamente dos razones: aumentan la probabilidad de problemas de seguridad y el mayor consumo de recursos (procesamiento y memoria RAM).

Como se ha visto anteriormente, es posible realizar esto de múltiples maneras según la distribución de GNU/Linux que se utilice.  Para este caso, Debian, se plantea el desactivar el inicio automático del GDM.

Procedimiento.

Desactivar el inicio automático.

# update-rc.d -f gdm remove

Reemplace el gdm por el administrador de login que utilice como xdm o kdm si no utiliza GNOME.

Iniciar manualmente el sistema de ventanas.

En cualquier momento es posible iniciar manualmente el sistema de ventanas mediante la ejecución del siguiente comando.

$ startx

Esta ejecución no realiza ningún tipo de cambios en la configuración así que este inicio será temporal, la próxima vez que se reinicie el servidor lo hará nuevamente en modo texto.

Activar el inicio automático.

Si se desea revertir el cambio en la configuración y permitir que el login grafico y el sistema de ventanas se inicien automáticamente ejecute el siguiente comando.

# update-rc.d -f gdm defaults

Nuevamente, ajuste el nombre del administrador de login según el administrador de ventanas que utilice.

Enlaces.

Iniciar Linux Ubuntu 9.10 en modo sólo texto

Introducción.

Después de instalar los paquetes del escritorio, el Ubuntu Server 9.10 quedó iniciando el login gráfico (gdm) automáticamente.  Se me ocurrió que sería interesante probar cuanto se demoraba en iniciar el sistema operativo hasta la consola sólo texto (nivel de ejecución 3 en la mayoría de Linux).  Para hacer esto sólo era necesario editar el archivo /etc/inittab y modificar la siguiente línea, pasando el nivel predeterminado de ejecución, del 5 al 3.

id:3:initdefault:

Pues bien, parece que muchas cosas han cambiado desde esto, Ubuntu 9.10 ya no tiene /etc/inittab.  Desde la versión 6.10 se está migrando paulatinamente a un nuevo esquema llamado Upstart donde los scripts de ejecución ya no vivirán en /etc/init.d como estabamos acostumbrados sino que ahora son archivos de configuración que se almacenan en /etc/init y que son interpretados con el comando service o initctl.

El nivel de ejecución predeterminado de Ubuntu se encuentra ahora definido por la variable DEFAULT_RUNLEVEL en /etc/init/rc-sysinit.conf y que tiene el valor por defecto de 2.

Otra cosa interesante que noté fue que Ubuntu 9.10 tampoco incluye un GRUB como el que conocía hasta ahora (versión 1) sino que trae una nueva versión (2, bueno 1.97~beta4 en realidad) y por ende presenta una distribución y ubicación de archivos diferente.

Basado en esta información y en las pruebas que realicé encontré dos soluciones para esta actividad, una basada en modificar el GRUB (mi preferida) y otra en modificar el nivel de ejecución en el que se activa el GDM.  Ambas aproximaciones parecen funcionar adecuadamente.

Solución #1: Modificación del GRUB.

Básicamente lo necesario es indicarle a Linux que se desea un inicio en modo texto y esto se hace especificando el parámetro text en la lista de parámetros por defecto del GRUB.

$ sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash text

Se actualiza la configuración del GRUB para generar un nuevo /boot/grub/grub.cfg.

$ sudo update-grub

Solución #2: Modificar el nivel de ejecución del GDM.

El nivel de ejecución por defecto de Ubuntu es el 2 así que el procedimiento se basa en indicarle al Upstart que ejecute al GDM en un nivel diferente a este: 3.

$ sudo vi /etc/init/gdm.conf

Reemplace la línea de la sección start on mostradas a continuación.

start on (filesystem

Por las siguientes.

start on (runlevel [3]
and filesystem

En ambos casos, reinicie el sistema operativo para verificar que los cambios surtan el efecto deseado.

Iniciar el manejador de ventanas.

Si tuvo éxito llevando a cabo la solución elegida, cuando inicie el sistema operativo lo dejará siempre en la consola basada en texto.  Si en algún momento desea iniciar el ambiente gráfico, puede hacerlo de las siguientes formas.

Para el usuario actual.

$ startx

Iniciar el GDM (temporalmente).

$ sudo service gdm start

Enlaces.