* Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.

OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.

Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.

Acceso remoto a una sesión completa

Hasta ahora vimos cómo trabajar con aplicaciones que se están ejecutando en un ordenador remoto mediante SSH. Ahora veremos cómo ejecutar una sesión de usuario gráfica, completita, en un ordenador remoto.

Para ello no recurriremos a ninguna cosa extraña o novedosa, sino a las propias X (el sistema de ventanas de Unix). Las X están preparadas para ejecutar sesiones gráficas de usuario completas de forma remota mediante el protocolo XDMCP, y los gestores de pantalla como XDM o KDM están preparados para manejarlo.

Por ejemplo, en la pantalla de conexión de KDM, en el mismo menú que están Reiniciar el servidor X o Apagar el equipo..., se encuentra la opción Inicio de sesión remota. Al seleccionar dicha opción se nos mostrará una lista con los equipos remotos en los que podemos iniciar una sesión, y al seleccionar uno de los equipos veremos la pantalla de conexión del ordenador remoto, igual que si estuviésemos sentados delante de él.

No obstante, no todo es perfecto. Puede que alguna aplicación no funcione a través de XDMCP si hacen asunciones a bajo a nivel sobre las X. Por ejemplo, Kdenlive en su versión 0.6 fallaba en un aserto (una condición que, si no se cumple, el programa casca) al ejecutarlo a través de XDMCP (aunque en la versión de Mandriva 2009.1, la 0.7.3, y posteriores funciona correctamente).

Además hay que tener en cuenta que no debemos tener una resolución fija (no debemos tenerla en ningún caso, pero menos si estamos usando XDMCP). Con la resolución automática, las X harán su magia y veremos el escritorio a la resolución del monitor en el que lo estemos usando, independientemente de que estemos conectados en local o en remoto. Si la tuviésemos fija al tamaño del monitor local, al conectarnos en modo remoto no lo veríamos correctamente.

Debo añadir también que la resolución automática es una pasada, ya que incluso si pudiésemos cambiar de tamaño el monitor en caliente, ¡la resolución utilizada cambiaría! Como los monitores, al menos los que yo conozco, no pueden estirarse o encogerse, esto que digo puede comprobarse utilizando una máquina virtual tipo Virtualbox ;) ¿Que qué tiene que ver esto con XDMCP? Nada, pero me hacía ilusión compartir mi descubrimiento :P

Volviendo a XDMCP, una precaución al trabajar (al menos en KDE, no sé en otros entornos de escritorio) con ordenadores cuyos monitores tengan tamaños muy distintos. Si cuando trabajamos con el monitor grande dejamos las ventanas a la izquierda o hacia abajo puede que en el monitor pequeño no las veamos. La posición de las ventanas se guarda como una posición en píxels, y al ejecutar una aplicación desde el monitor pequeño puede ser que su posición exceda la resolución de éste. Si existe forma de que las posiciones se guarden de forma relativa respecto al tamaño de la pantalla en lugar de como valores absolutos, no la conozco. Eso sí, las ventanas maximizadas aparecerán del tamaño del monitor en que se ejecuten independientemente del tamaño que tuviesen maximizadas en anteriores ocasiones, por lo que en estos casos trabajar con todas las ventanas maximizadas es recomendable. No obstante, el panel de plasma KDE 4.2 parece que también usa tamaños fijos como las ventanas, y no relativos como las maximizaciones :(

Y ahora, veamos cómo activar XDMCP.

Para XDM/KDM (usan la misma configuración), el acceso remoto se configura en /var/lib/mandriva/kde4-profiles/common/share/config/kdm/kdmrc (del ordenador en el que se va a abrir la sesión, es decir, al que nos conectaremos) cambiando

[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is true
Enable=false

por

[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is true
Enable=true

(sólo cambia el valor del Enable, el resto lo pongo a modo de contexto).

El principal problema de XDMCP es la seguridad, ya que no existe ningún tipo de cifrado de los datos, sino que la información viaja al descubierto por la red. Por eso NUNCA debe usarse XDMCP en Internet, y su uso debe restringirse únicamente a redes locales seguras. Si alguno de los ordenadores que sirven XDMCP están conectados directamente a Internet (como en mi caso), el cortafuegos (configurado correctamente) debería evitar cualquier intento de conexión.

Pero, por si eso no nos deja tranquilos, podemos configurar XDM/KDM para que sólo acepte peticiones desde determinados equipos. En /etc/X11/xdm/Xaccess (de nuevo en el ordenador en el que se va a abrir la sesión) cambiamos

*                                       #any host can get a login window

por

192.168.1.42

donde 192.168.1.42 es la IP del ordenador al que vamos a permitir conectarse, de modo que sólo acepte peticiones de dicho equipo. Se pueden usar nombres de equipos o ips (y mejor usar direcciones IP, como se explica más adelante), y también admite patrones, aunque no sé hasta qué nivel (acepta * para indicar cualquier (sub)cadena, pero no sé si acepta expresiones regulares más complejas). Destacar además que, en el caso de KDM (con XDM no probé), el cambio en la configuración es "inmediato" (puede tardar unos segundos) una vez cambiado el archivo, no hace falta reiniciar KDM.

Esto sirve para XDM y KDM (ya que usa los mismos archivos de configuración que aquél). No obstante, en GDM parece que o bien no se puede hacer ese filtrado de equipos, o bien se indica en otro archivo distinto.

Por otra parte, GDM tiene una opción para el acceso remoto mucho más segura que el XDMCP normal. Permite hacer acceso remoto vía SSH (hasta la versión 2.20, ya que en la 2.21 parece ser que se comenzó una reescritura del código de GDM y aparentemente aún no acabó), pero hay que indicarle el servidor al que conectarse de forma textual, no parece haber forma de preseleccionar un servidor, mostrar posibles servidores en una lista o cosas así, lo que no es muy amigable para el usuario. Quizás en la reescritura...

Y con esto el acceso por XDMCP está listo. En el HOWTO de XDMCP hace un montón más de cosas. No sé si es que hoy día no son necesarias, o que a mí se me escapa algo... pero funcionar, funciona ;)

Aunque encontré dos problemas con XDMCP, no obstante. El primero es que el sonido del ordenador remoto no se reenvía correctamente. Parece que habría que hacer algo como establecerdesde el servidor X local el valor de PULSE_SERVER local en la sesión de usuario remota o una cosa parecida, pero tampoco indagué mucho más. El caso, que así por las buenas, el sonido remoto no funciona con XDMCP.

El segundo problema es más peliagudo, y no tengo ni idea de por qué se produce. A veces, el ordenador desde el que se va a abrir la sesión XDMCP no muestra en la lista de selección el ordenador en el que abrir dicha sesión si en /etc/X11/xdm/Xaccess se utilizó el nombre del equipo. Sin embargo, si en lugar del nombre del equipo se usa su IP no parece haber problemas. Cuando esto ocurre, en los logs del ordenador en el que se va a abrir la sesión aparece "XDMCP ACL: unresolved host 'HAL9003'", siendo HAL9003 el ordenador desde el que se va a abrir la sesión. En Google lo único que sale al respecto de ese mensaje es el propio código fuente de KDM, y parece cosa de la función gethostbyname. Extraño...