viernes, 17 de octubre de 2014

Proxmox 3.1 vncproxy [2/2]


Esta es la segunda parte de un articulo (Proxmox 3.1 vncproxy [1/2]) que he publicado para conectar con un cliente vnc a las pantallas de las máquinas virtuales que corren bajo proxmox.

Es posible que no sepas como publicar la pantalla de la máquina virtual desde linea de comandos. Si lo haces desde el cliente web, este se encarga de levantar el demonio vnc para que puedas ver la pantalla. Pero si queremos evitar utilizar el cliente web, tendremos que levantar nosotros el demonio para poder conectarnos.

Tenemos dos opciones. Vamos a ver en primer lugar la más simple, que únicamente necesitamos el ejecutar el comando:
nc -l -p 5900 -c "/usr/sbin/qm vncproxy 101"
Donde 5900 es el puerto donde se publicará el servidor de vnc (5900 es el puerto por defecto de vnc) y 101 es el identificador de la máquina virtual en proxmox.

Éste método es muy cómodo pero implica tener que ejecutar el comando cada vez que queramos hacer uso de la pantalla de la máquina virtual. Creo que esto debería ser lo más correcto y no dejar publicada la pantalla de la máquina virtual, porque pese a que este demonio de vnc nos solicita las credenciales del sistema para acceder a la máquina virtual, no deja de ser una vulnerabilidad dejar publicado un servicio que utilizaremos puntualmente.

La segunda opción está orientada a dejar publicado el servicio siempre en nuestro sistema. Pero para esto tendremos que instalar un servicio si no lo tenemos instalado. Para sistemas Debian el paquete se llama "openbsd-inetd", lo instalaremos con:
apt-get install openbsd-inetd 
Una vez instalado editaremos el fichero /etc/inetd.conf para añadir la linea:
5900 stream tcp nowait root /usr/sbin/qm qm vncproxy 101
Y solo nos falta reiniciar el servicio "/etc/init.d/openbsd-inetd restart" para poder disfrutar de la pantalla de nuestra máquina virtual siembre que queramos.

IMPORTANTE: Los clientes VNC tradicionales NO funcionan con este sistema. Lee el artículo Proxmox 3.1 vncproxy [1/2] para ver como conectar correctamente con la pantalla de la máquina virtual.