Instalar vnc server en Arch Linux para poder acceder de forma remota al escritorio gnome3 e interactuar con la sesión que ya se encuentra activa en el sistema.

Cómo surgió VNC1

Idea que surgió allá en los Laboratorios de Investigación de Olivetti & Oracle Corporation en la Universidad de Cambridge del Reino Unido, allí desarrollaron VNC sistema por el cual sería posible conectarse a una PC de forma remota. Espacio que tuvo lugar hasta el año 2002 cuando fué adquirido por AT&T quien decidió terminar el proyecto y cambiar su nombre por “AT&T Research Lab”. Para ese entonces parte del equipo de desarrollo de VNC (conformado por Richardson, Harter, Weatherall y Hopper) crean RealVNC a fin de continuar con el proyecto de código abierto –opensource– y fundar un nuevo branding con el mismo nombre para fines comerciales. Años más tarde, el 14 de Agosto de 2014, la empresa conformada por quienes habían dado vida al proyecto, solicitó ante la corte estadounidense el registro de la marca RealVNC2 nombre conformado por las mismas sigas que hacen referencia al tipo de sistema. Solicitud que se hizo efectiva a partir del 6 de Octubre de 2015 vigente para el territorio de Estados Unidos y a nivel internacional.

El ADN y lenguaje VNC

  • VNC Server – Es el programa instalado en la PC sobre la que se estará compartiendo el acceso y/o visualización para monitoreo. El servidor habilita de forma pasiva al cliente que tomará control de esta terminal.
  • VNC Client (Viewer) – Es el programa que permite visualizar la PC de destino que estará abriendo su conexión a la conexión remota desde el cliente.
  • Protocolo VNC (RFB) – Desarrollado como un simple código que otorga la posibilidad de compartir la imágen del servidor al cliente.

Seguridad

En cuanto a la seguridad, RFB no se destaca como protocolo con mecanismos de protección, sino lo contrario a ello. Sin embargo a lo largo del tiempo desde su primer lanzamiento ha dado lugar a  nuevos proyectos que en su reemplazo han adoptado nuevos mecanismos seguridad. Un caso de ello es UltraVNC que utiliza un plugin de encriptado, de código abierto, para la contraseña y datos transferidos durante la sesión. Para el caso de TigerVNC, este provee funciones avanzadas de protección compatibles con TLS, la nueva generación de certificados SSL que lleva la seguridad a un nivel aún más elevado sin dejar información visible ante los curiosos que quieran infiltrarse.

Limitaciones

La perfección es algo que escasea en todo lo que vemos y este caso no es una excepción. Entre las cosas que no es posible realizar con VNC se encuentra la capacidad de poder copiar texto que contenga caracteres especiales3, más claramente sólo tiene la capacidad de identificar aquellos de la tabla ASCII. Más allá de esta limitación puede operar en cualquier escritorio sin importar el sistema operativo ya que su funcionamiento está enfocado en la retransmisión de cada píxel de un punto a otro sin tener que hacer uso de librerías externas que muchas veces son la barrera que marca los terrenos permitidos de un programa.

Pasos a seguir

  1. Iniciar la instalación de tigervnc
    [nandu@nvg ~]$ sudo pacman -Sy tigervnc
    [nandu@nvg ~]$ vncserver
        
    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/nandu/.Xauthority does not exist
    xauth: (stdin):1: bad display name "nvg.isnandu.local:1" in "add" command
        
    New 'nvg.isnandu.local:1 (nandu)' desktop is nvg.isnandu.local:1
        
    Creating default startup script /home/nandu/.vnc/xstartup
    Creating default config /home/nandu/.vnc/config
    Starting applications specified in /home/nandu/.vnc/xstartup
    Log file is /home/nandu/.vnc/nvg.isnandu.local:1.log
    
  2. Compartir la misma sesión que está ejecutándose en el escritorio de gnome
    [nandu@nvg ~]$ x0vncserver -display :0 -passwordfile ~/.vnc/passwd
  3. Ejecutar con systemctl y activar el inicio automático con el sistema.
    [nandu@nvg ~]$ sudo nano /etc/systemd/system/x0vncserver.service

    Añadir el siguiente contenido al archivo

    [Unit]
    Description=Remote desktop service (VNC)
    After=syslog.target network.target
    
    [Service]
    Type=forking
    User=foo
    ExecStart=/usr/bin/sh -c '/usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/nandu/.vnc/passwd &'
    
    [Install]
    WantedBy=multi-user.target
    

Fuente

Wikipedia: Historia y desarrollo
Patente RealVNC
Soporte UTF-8 únicamente