Montando un kiosko con Ubuntu server 14.04

arranque-kiosko

Después de darle unas vueltas al tema y probar a “capar” una versión desktop de Ubuntu, al final, lo que mejor resultado ha dado, ha sido Ubuntu server.

En concreto, Ubuntu server 14.04 64 bits, que puede funcionar en equipos con 512 MB de RAM y unos 2 GB en disco. He configurado las actualizaciones automáticas, durante el proceso de instalación, porque parece la forma más sencilla de que el equipo continúe siendo fiable durante el periodo de vida útil de la versión de Linux elegida.
El resultado es bastante bueno. Un arranque muy rápido y muy pocas cosas que el usuario pueda tocar en el sistema… Hay que tener en cuenta que si no limitamos el acceso físico al equipo, con algún tipo de caja acorazada, siempre existirá el riesgo de que consigan acceso al sistema. De todos modos, lo mínimo, es deshabilitar USB, lectores de tarjetas, etc y poner una contraseña a la BIOS.
También será necesario que la página inicio a la que se conecte el quiosco contenga los enlaces necesarios para que los usuarios finales del equipo puedan ver lo que necesiten sin necesitar una barra de direcciones; que no van a tener.

1.- Instalación del sistema operativo:
Descargamos e instalamos Ubuntu server 14.04 LTS de la forma habitual.
Opté por montar el servicio SSH de entre las opciones que están disponibles durante la instalación. Podría deshabilitarse después, si lo consideramos necesario.

2.- Instalando lo necesario:

sudo apt-get update
sudo apt-get install firefox xorg openbox flashplugin-installer

3.- Arrancando el navegador en el inicio.
Creamos el fichero /opt/kiosk.sh con sudo vi /opt/kiosk.sh y le añadimos lo que sigue:

#!/bin/bash
xset -dpms
xset s off
openbox-session &
while true; do
firefox

done

Cuando terminemos, lo salvamos y le añadimos permiso de ejecución con sudo chmod +x /opt/kiosk.sh
Creamos un nuevo fichero de configuración con /etc/init/kiosk.conf y le añadimos:

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]
console output
emits starting-x
respawn
exec sudo -u NOMBRE_USUARIO startx /etc/X11/Xsession /opt/kiosk.sh —

(ojo que esto último es un “guiónguión”   las cosas del font del blog)

Las X necesitan privilegios de root para poder arrancar, pero podemos permitir que cualquiera las arranque. Para ello, ejecutamos el comando: sudo dpkg–reconfigure x11-common y seleccionamos “cualquiera” en el pequeño menú que aparece.

4.- Protegiendo el acceso mediante Recovery boot.

Ubuntu tiene una característica muy útil cuando uno olvida la contraseña del usuario con permisos de administración: Recovery boot. Durante el arranque, es posible seleccionar esta opción desde el menú de inicio. Es decir, si el usuario tiene acceso físico al equipo y lo puede reiniciar, podría entrar en este modo y modificar lo que quisiera en el sistema. Para evitarlo, hay que establecer una contraseña para el usuario root. Por defecto, no se establece ninguna durante la instalación y, aunque no es posible hacer login con el sistema en modo multiusuario, sí sería posible entrar en Recovery mode sin necesidad de tener una contraseña… Para evitarlo, nada mejor que establecer una contraseña para root. Esto se puede hacer, desde un shell y con un usuario con permisos de administración, con el comando sudo passwd root. Nos pedirá la contraseña y, de este modo, se le solicitará dicha contraseña a cualquiera que solicite entrar en Recovery mode durante el arranque.

5.- Haciendo el arranque más limpio:
Para que no aparezca ni el menú de arranque de Ubuntu, ni toda la parafernalia del log de arranque, modificamos el fichero /etc/default/grub y lo dejamos como sigue:

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=10
GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
GRUB_CMDLINE_LINUX=””

Después lanzamos sudo update-grub y arrancamos de nuevo

6.- Instalando el complemento mkiosk

El equipo arrancará con Firefox sin maximizar. Navegaremos hasta la página del complemento mkiosk de Firefox y lo instalaremos

https://addons.mozilla.org/es/firefox/addon/mkiosk/?src=search

Al arrancar, la primera vez, nos aparecerá la configuración del complemento donde podremos configurar la página inicial, y qué queremos que se vea o no el usuario. Incluye, además, una interesantísima opción para establecer una contraseña de administrador que nos permitirá salir del modo kiosko pulsando F1. Con ESC se resetea el navegador.

mkiosk

La importación de certificados no confiados queda limitada al administrador, me parece más seguro así.

Ahora, deshabilitamos todas las consolas virtuales excepto el tty1. Para ello, nos vamos al directorio /etc/init y creamos un subdirectorio llamado tty.bak. En dicho directorio, metemos todos los ficheros de configuración de las consolas a deshabilitar (tty02.conf a tty06.conf en mi caso)

Ya tenemos listo nuestro kiosko. Este es el aspecto (sin botones, barras de urls, botón derecho del ratón, atajos de teclado, etc) que presentará en la pantalla del equipo final, reproducido aquí en una máquina virtual:

kiosko-ubuntu1

Una de las opciones de mkiosk permite mostrar una barra de navegación de sólo lectura. Esto hace posible tener los botones de retroceso y avance del navegador, si lo consideramos necesario, a costa de que aparezca la URL en la que nos encontremos.

5 comentarios en “Montando un kiosko con Ubuntu server 14.04

  1. Al Momento de meter el comando sudo dpkg –reconfigure x11-common no me sale el menú que mencionas , me sale que dpkg: error:acciones en conflicto cual crees que sea el problema y como lo soluciono

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s