Sei sulla pagina 1di 10

Escritorio remoto VNC

x11vnc -acceso a la pantalla de login

Escritorio remoto VNC


x11vnc -acceso a la pantalla de login

Índice
1 Intro............................................................................................................................................................. 2
1.1 Opciones de seguridad más habituales...........................................................................................2
2 x11vnc (versión 0.9.13)..............................................................................................................................3
2.1 Instalación...........................................................................................................................................3
2.2 El comando x11vnc............................................................................................................................3
2.3 x11vnc con acceso a la pantalla de login.........................................................................................5
2.4 Algunos diagnósticos........................................................................................................................7
3 Apéndice: Arquitecturas VNC y X server...............................................................................................8
3.1 X Server...............................................................................................................................................8
3.2 VNC.....................................................................................................................................................9
3.3 VNC con XDMCP..............................................................................................................................9
4 Fuentes......................................................................................................................................................10

1/10
Escritorio remoto VNC
x11vnc -acceso a la pantalla de login

1 Intro
Un servidor VNC es un programa que comparte el escritorio con otros ordenadores de la red.
Cada servidor VNC tiene sus puntos fuertes y sus puntos débiles y es más o menos adecuado para
según qué uso le queramos dar.

1.1 Opciones de seguridad más habituales


El aspecto más importante a la hora de configurar un servidor VNC es conceder acceso al escritorio
sólo a los usuarios adecuados. La forma más segura sería que la persona sentada en el servidor
decida reciba las peticiones y decida quién puede o no conectarse. Pero esta opción no es muy
práctica si queremos, por ejemplo, conectarnos a nuestro propio ordenador desde un lugar remoto.

Si queremos confirmar cada conexión de forma manual, podríamos fijarnos en estas opciones:

• Solicitar acceso cada vez


Aparece una ventana solicitando que confirmes cada petición de conexión.

• Acceso sólo-ver
Se permite a los clientes ver el escritorio, pero no interactuar con él.
Además de agregar algo de seguridad, se evitan los problemas típicos de ambos usuarios
tratando de tomar el control del ratón.

Si queremos acceder al escritorio cuando no hay nadie sentado en el servidor, tendremos en cuenta
estas opciones:

• Permitir sólo conexiones locales


Permitir acceso sólo a los usuarios que ya tienen acceso al ordenador servidor.

• Arrancar el servidor VNC en modo “once” (una vez)


Indicar al servidor que permita sólo una conexión y bloquear el resto de peticiones.

• Configurar una contraseña


Solicitar al usuario una contraseña para la conexión.

2/10
Escritorio remoto VNC
x11vnc -acceso a la pantalla de login

2 x11vnc (versión 0.9.13)


x11vnc nos permite ver y actuar remotamente con pantallas X reales utilizando cualquier cliente
VNC.
Es independiente del entorno gráfico utilizado y puede arrancarse incluso cuando el ordenador
todavía esta mostrando la pantalla de login.
Conviene desinstalar cualquier otro servidor VNC que tuviera instalado la máquina.
Programas como RealVNC, TightVNC, etc. son utilizados normalmente como hace RDP en
Windows, tal que el usuario tiene su propia sesión X independiente. x11vnc se suele utilizar para
compartir una sesión X existente, de modo que puedes ver/controlar qué está pasando en el
escritorio, incluido el inicio y/o cierre de sesión de usuarios).

2.1 Instalación
Comprobar versión
root@debian00:/# apt-cache policy x11vnc
x11vnc:
Instalados: (ninguno)
Candidato: 0.9.13-1.2+b2

Instalar.
root@debian00:/# apt-get install x11vnc
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes extras:
libvncclient0 libvncserver0 x11vnc-data

2.2 El comando x11vnc


Para arrancar el servicio, ejecutar el comando x11vnc con las opciones deseadas.
Ejemplos:

x11vnc -norc -repeat -forever -shared -display :0 -auth guess

x11vnc -xkb -norc -noxdamage -repeat -forever -shared -display :0


-auth guess -o /var/log/x11vnc.log -allow 192.168.1.

x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth


/home/USERNAME/.vnc/passwd -rfbport 5900 -shared

3/10
Escritorio remoto VNC
x11vnc -acceso a la pantalla de login

Opción Por defecto Descripción


-modtweak X Trata de ajustar los modificadores AltGr y Shift para los diferentes
idiomas de teclado entre el cliente y el servidor.
-nomodtweak

-xkb X En modo “modtweak”, utiliza la extensión XKEYBOARD (del


servidor X) para los modificadores del teclado.
-noxkb

-rc filename Utilizar el fichero “filename” en lugar del fichero


“$HOME/.x11vncrc”
-norc No procesar ningún fichero de opciones “.x11vncrc”

-xdamage X Utilizar la extensión X DAMAGE para detectar cambios en el


buffer de frames.
Esta extensión reduce la carga cuando la pantalla no cambia
demasiado y detecta cambios en pequeñas áreas más
rápidamente.
Pero es demasiado conservadora y a menudo detecta áreas
grandes como “dañadas” incluso cuando el cambio se produce en
una región mucho más pequeña.
-noxdamage

-repeat Auto-repetición de tecla de servidor X cuando los clientes VNC


están conectados y la entrada del teclado VNC no lleva inactiva
más de 5 minutos.
-norepeat X Evita un bug de pulsaciones repetidas (activado por retrasos de
procesamiento entre los eventos de pulsar la tecla y levantar el
dedo de la tecla: bien por cambios grandes en pantalla o debido a
una elevada latencia)

-once X Termina después de que el primer cliente se desconecta.


-forever Sigue escuchando para posteriores conexiones en lugar de
terminar cuando el primer cliente se desconecta.

-shared off Si la pantalla compartida está activada, más de un cliente puede


conectarse simultáneamente.

-display :0 Pantalla del servidor X11 a la que conectarse, normalmente es la 0.

4/10
Escritorio remoto VNC
x11vnc -acceso a la pantalla de login

-auth file Configurar “file” como fichero de autoridad X


-auth guess Utilizar el mecanismo “-findauth” para intentar averiguar el
fichero XAUTHORITY y utilizarlo.

-o logfile Escribe los mensajes de error en el fichero en lugar de en la


terminal.

-allow Sólo permite conexiones de los hosts indicados. Pueden utilizarse


host1[,host2
nombres o IPs. Pueden utilizarse prefijos de red terminados en
...]
punto “.”

2.3 x11vnc con acceso a la pantalla de login


Si ejecutamos el comando x11vnc, el servidor se comporta como un servidor VNC “normal”: es
necesario que exista una sesión iniciada por el usuario en el servidor para que el cliente pueda
conectarse.

Para ejecutarlo como un servicio del sistema, primero creamos un archivo para systemd.
root@debian00:/# nano /etc/systemd/system/x11vnc.service

El contenido del fichero.


[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service

[Service]
ExecStart=/usr/bin/x11vnc -xkb -norc -noxdamage -repeat -forever
-shared -displ$
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restart-sec=2

[Install]
WantedBy=multi-user.target

Habilitamos este servicio para que se inicie al arrancar el sistema.


root@debian00:/# systemctl enable x11vnc
Created symlink from /etc/systemd/system/multi-
user.target.wants/x11vnc.service to /etc
/systemd/system/x11vnc.service.

5/10
Escritorio remoto VNC
x11vnc -acceso a la pantalla de login

A partir de aquí, ya podemos reiniciar el sistema. Una vez iniciado, podremos conectarnos al
servidor incluso cuando está mostrando la ventana de login. De este modo, cualquier usuario del
sistema podrá acceder al escritorio.

Aquí, por ejemplo, vemos cómo iniciamos sesión con martin.

6/10
Escritorio remoto VNC
x11vnc -acceso a la pantalla de login

Es importante tener en cuenta que el servidor refleja todo lo que hacemos en el cliente, y viceversa.

Nota:
Conseguimos conectarnos con el cliente TightVNC (Windows), pero no con otros como Remmina
(Ubuntu) o MultiVNC (Windows).

2.4 Algunos diagnósticos

Comprobar puerto 5900 abierto y el programa que lo está ejecutando.


root@debian00:/# netstat -tunap | grep 5900
tcp 0 0 0.0.0.0:5900 0.0.0.0:*
LISTEN 7514/x11vnc
tcp 0 0 10.33.0.2:5900 10.33.0.10:59786
ESTABLISHED 7514/x11vnc
tcp6 0 0 :::5900 :::*
LISTEN 7514/x11vnc

Ver líneas del archivo de log correspondientes al cliente, que tiene la IP 10.33.0.10
root@debian00:/# cat /var/log/x11vnc.log | grep 10.33.0.10
11/05/2017 12:25:00 Got connection from client 10.33.0.10
11/05/2017 12:25:00 check_access: client 10.33.0.10 matches pattern 10.
11/05/2017 12:25:00 incr accepted_client=1 for 10.33.0.10:59786 sock=12
11/05/2017 12:25:00 Pixel format for client 10.33.0.10:

7/10
Escritorio remoto VNC
x11vnc -acceso a la pantalla de login

3 Apéndice: Arquitecturas VNC y X server


Linux utiliza el Sistema X Window (abreviado X) como su GUI. X es una GUI un tanto especial.
Por ejemplo: un servidor X es, literalmente, un programa servidor de red. Los servicios de red
ofrecen a los clientes acceso a recursos locales, y así sucede también para un servidor X. Lo especial
en el caso del servidor X es que los “recursos locales” son la pantalla, el teclado y el ratón del
usuario. De este modo, cualquier programa (LibreOffice, GIMP, …) son clientes X que utilizan el
protocolo de red X, el cual acepta la entrada del usuario y produce la salida en pantalla, todo ello
en el mismo ordenador.

3.1 X Server
Cuando se utiliza X en una red, sin embargo, el usuario se sienta en el servidor X y los clientes X
son los programas que el usuario quiere que se ejecuten en otro ordenador. Esta configuración
requiere un segundo protocolo de red para iniciar la conexión. Este segundo protocolo puede ser
telnet, SSH o XDMCP (X Display Manager Control Protocol). Para este protocolo de login, el
cliente X ejecuta la parte servidor y el servidor X ejecuta la parte cliente.

El acceso remoto X requiere de un cliente y un servidor en ambos ordenadores.


Las flechas indican el inicio de sesión.
En el caso de XDMCP, el cliente está integrado en el programa servidor X.

Este tipo de configuración funciona bien en muchas redes locales, pero tiene sus inconvenientes.
Por ejemplo, requiere un protocolo de incialización de dos vías, lo que nos puede causar
problemas con algunos cortafuegos o con los routers NAT. Además, aunque los servidores X están
disponibles para la mayoría de plataformas, no suelen estar instalados en ordenadores Windows.
Por eso, entre otras cosas, en general se prefiere utilizar otro protocolo: el RFB (Remote Frame
Buffer), que viene implementado en la familia de programas VNC (Virtual Network Computing).

8/10
Escritorio remoto VNC
x11vnc -acceso a la pantalla de login

3.2 VNC
VNC es una herramienta multiplataforma que proporciona acceso remoto a Linux, UNIX, Mac OS,
Windows y otros sistemas desde cualquier tipo de cliente. Con VNC, el usuario se sienta en el
ordenador cliente y accede al servidor remoto. En Linux, el servidor VNC o bien refleja el
contenido de la pantalla del servidor X local en el ordenador remoto, o bien incluye su propio
servidor X que puede operar independientemente del servicio que administra la pantalla local.
Esta configuración elimina la necesidad de una conexión de red inversa, y puesto que los clientes
y servidores VNC están disponibles para un montón de sistemas operativos, los usuarios pueden
utilizar un sólo cliente para acceder a cualquier servidor.

Un servidor VNC incluye un servidor X que puede comunicarse con los clientes X
locales.
Las flechas indican el inicio de sesión.

El inconveniente de VNC es que la autenticación RFB está basada en contraseñas sin nombres de
usuario. Así, cada usuario debe lanzar una sesión VNC server independiente y conectar a esa
instancia VNC especificando el puerto correcto. Este requisito podría resultar tolerable en un
sistema monousuario, pero es extremadamente incómodo en un ordenador multiusuario.

3.3 VNC con XDMCP


Para evitar estos contratiempos, se pueden enlazar las dos aproximaciones. Podemos reconfigurar
nuestro servidor XDMCP local para ayudar al servidor X integrado en VNC para que proporcione
autenticación multiusuario. Ahora, cuando un usuario VNC remoto contacta con el servidor VNC,
puede loguearse con su nombre de usuario y contraseña para acceder a su sesión VNC única, de
modo que el ordenador puede manejar tantos usuarios como queramos.

9/10
Escritorio remoto VNC
x11vnc -acceso a la pantalla de login

Añadir XDMCP a la configuración VNC proporciona mayor flexibilidad


Las flechas indican el inicio de sesión.

4 Fuentes
http://www.karlrunge.com/x11vnc/
http://www.softpanorama.org/Xwindows/VNC/vnc_on_linux.shtml
https://askubuntu.com/questions/549982/whats-the-difference-between-realvnc-and-x11vnc
https://www.ibm.com/developerworks/library/os-multiuserloginsvnc/
https://help.ubuntu.com/community/VNC/Servers
https://linux.die.net/man/1/x11vnc
https://linuxadas.blogspot.com.es/2017/04/servidor-vnc-con-acceso-pantalla-de.html

r.17.5 @aula30x

10/10

Potrebbero piacerti anche