lunes, 9 de febrero de 2015

Servidor doméstico con Raspberry: Entorno gráfico remoto.

La presencia de un entorno gráfico en un servidor no tiene mucho sentido y su instalación es totalmente optativa, pero en alguna ocasión puede ser útil, como por ejemplo cuando vayamos a implementar el servicio para libro electrónico.

  

Raspbian incluye por defecto el entorno LXDE y si además eres usuario Windows, es muy probable que para acceder de forma remota hayas instalado XRDP siguiendo una publicación anterior. En este contexto no debes instalar nada y tan sólo ir al apartado de configuración del servidor de escritorio.


De lo contrario, si partes de una distribución mínima te aconsejo que instales un entorno X ligero, como puede ser Fluxbox y posteriormente el servidor VNC como escritorio remoto. Para hacer esta tarea ejecuta en el terminal la orden siguiente:

sudo apt-get install fluxbox tightvncserver xterm xscreensaver

A partir de aquí empieza la configuración, entonces se inicia el servidor VNC por primera vez, tecleando en consola el comando siguiente:

vncserver :0 -geometry 1024x768 -depth 16 -alwaysshared

De su ejecución van surgiendo mensaje en pantalla, lo primero será introducir la contraseña con la cuál accederemos al escritorio remoto, aquí pones la que tengas. Luego debemos estar atento a la pregunta marcada en negrita y a su posterior respuesta.

You will require a password to access your desktops.

Password: 
Verify:   
Would you like to enter a view-only password (y/n)? n
xauth:  file /home/pi/.Xauthority does not exist

New 'X' desktop is raspberrypi:0

Creating default startup script /home/pi/.vnc/xstartup
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:0.log

Ahora eliminamos el proceso del servidor VNC, para hacer algunos ajustes, tecleando en consola la orden siguiente:

killall Xtightvnc
nano /home/pi/.vnc/xstartup

Dentro del editor se le añade al script, la línea marcada en negrita:

#!/bin/sh

xrdb $HOME/.Xresources
xsetroot -solid grey
xscreensaver -nosplash &
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession

Una vez hecho, salimos y aceptamos los cambios. A continuación vamos a crear un fichero tecleando la orden siguiente:

sudo nano /usr/local/bin/startxvnc.sh

Escribe estos contenidos dentro del archivo:

#!/bin/bash
vncserver :0 -depth 16 -geometry 1024x768 -alwaysshared

Una vez guardado el fichero, se procede a cambiarle el propietario y a asignarle permisos de ejecución, los comandos son:

sudo chown pi:pi /usr/local/bin/startxvnc.sh
sudo chmod 700 /usr/local/bin/startxvnc.sh

Y por último, vamos a hacer que el script anterior se ejecute automáticamente, al iniciarse Raspi. Para ello sigue los pasos siguientes:

  1. Editar fichero /etc/rc.local con nano: sudo nano /etc/rc.local.
  2. Añade antes de exit 0 la línea siguiente: su -c "/usr/local/bin/startxvnc.sh" pi &.
  3. Guarda los cambios.

Ahora reinicia tu RPi, esperamos unos segundos e intentamos iniciar una sesión remota. Para hacerlo tenemos varias opciones:

A) Si eres usuario Windows (XRDP) tienes la aplicación "Conexión a escritorio remoto".



B) Si eres usuario Linux tiene la aplicación "Remmina".



C) Si prefieres un cliente VNC multiplataforma puedes instalarte "VNC Viewer for Chrome".



Bueno ya tenemos esto preparado, pero en un último apunte decir que la conexión al escritorio remoto es sin cifrar, desde la red de casa es seguro hacerlo. No obstante, si piensas conectarte desde el exterior sería recomendable hacerlo a través de un túnel cifrado.