original in en Georges Tarbouriech en to es Georges Tarbouriech es to es Javier Palacios
Georges es un usuario viejo de Unix (comercial y libre). VNC ha cambiado su vida :-).
VNC es el sueño del administrador de redes hecho realidad. Podríamos decir que
se trata de un sistema de visualización a distancia, pero es mucho más. Visitar
http://www.uk.research.att.com
permite descargar ese extraordinario software GRATIS. VNC se distribuye bajo
licencia GPL y es disponible para numerosas plataformas. Todos pueden
contribuir, y muchas adaptaciones a diferentes SO han sido realizado por
personas ajenas al proyecto.
Trataremos de descubrir los múltiples aspectos de VNC.
Para usar VNC, necesitan una conexión TCP/IP, un servidor VNC (vncserver) y un cliente VNC (vncviewer) para conectar con la máquina en la cual el servidor VNC está activo. El servidor VNC basado en X funciona según la arquitectura cliente-servidor del mismo X. De hecho obtienen dos servidores en uno: un servidor X y un servidor VNC. Eso permite conservar el mismo número de visualización para el servidor X y el servidor VNC. Para conectar a un servidor VNC, tienen que dar el apellido de la máquina y el número de visualización. El comando parece a "vncviewer nombredemáquina:2". Es decir, si el servidor X tiene el número 2, el servidor VNC también tiene el número 2. Desde el cliente, el viewer, pueden conectar al servidor usando éste número. Si un usuario trabaja en la visualización número 1 y se conectan en el número 2, no se dará cuenta que trabajan en su máquina. VNC es capaz de encontrar el primer número de visualización disponible e informar, pero nada impide usar a otro número. Si vncserver propone el número 2, pueden conectar en la visualización 3,4... si quieren éste número al arrancar vncviewer.
En máquinas bajo Windows será diferente pues no podrán crear una nueva visualización. El desktop estará disponible a distancia. Si nos ponemos en el lugar del usuario trabajando en su máquina, podrá ver todo lo que están haciendo, como si su ordenador funcionara sólo: el número de visualización por defecto será 0. Si conectan dos máquinas NT entre ellas, no necesitan precisar éste número.
VNC existe para numerosos SO diferentes, a veces únicamente como cliente. Es decir, sólo el viewer está disponible. Es el caso de BeOS. Muchos Unices, MacOS, AmigaOS... pueden usar VNC. Para ver todo lo disponible pueden ir a http://www.uk.research.att.com/vnc/platforms.html
Según la plataforma, VNC existe en forma de código fuente o de binarios. Los programas son muy pequeños y es fácil de instalar.
¿Cómo funciona?
¡Es todo lo que necesitan para utilizar el servidor VNC!
En las máquinas equipadas con productos Microsoft, es un poco diferente. Si utilizan NT4.0 pueden arrancar vncserver como un servicio, es el modo recomendado. Bajo Windows 95 o 98 tendrán que arrancarlo desde el icono o el menú. Igual que en los servidores basados en X, pueden definir muchos parámetros. Hay que dar un paseo por el menú propuesto.
No hablaremos de todas las particularidades de los diferentes servidores VNC para todas las plataformas soportadas porque necesitaríamos un artículo entero.
El cliente se compone de un ejecutable llamado vncviewer. Para conectar a un servidor VNC, basta con arrancar vncviewer indicando el número de visualización. Por ejemplo si quieren conectar a un servidor llamado linux en la visualización número 2, sólo tienen quenúmero 2, sólo tienen que escribir "vncviewer linux:2". El password del servidor les será pedido y después se encontrarán en el desktop de la máquina linux como si trabajaban en él. Si están como root, pueden administrar perfectamente la máquina. De modo que cuidado ¡Mejor saber lo que hacer! Todo eso es cierto para cada cliente en cada plataforma.
¡Sólo una palabra: fantástico!
En una red local (a causa de velocidad), VNC permite hacer cosas por lo menos inhabituales. Todo parece posible: pueden arrancar cualquier applicación en cualquier SO. Por ejemplo, si vncserver está activo en una máquina bajo Windows NT y arrancan vncviewer en una máquina bajo BeOS, pueden utilizar todas las applicaciones disponibles en el ordenador NT. Si tienen una licencia para Photoshop, pueden arrancar Photoshop en la máquina BeOS como lo harían en la máquina NT. Eso significa que abren una ventana en la pantalla de BeOS representando el desktop NT: ¡Ahora trabajan en la estación NT!
¡Photoshop bajo BeOS!
¿O Gimp bajo Windows?
Lo repito. Pueden hacer eso desde cualquier máquina que tenga un cliente VNC. Otro ejemplo: si trabajan en una máquina sin acceso al Internet, pueden conectar a un servidor VNC con acceso al mundo exterior y utilizar su navegador para visitar una URL. Por supuesto, pueden también utilizar el software de correo para consultar el buzón o mandar un mensaje.
El cliente VNC no tiene acceso al Internet, sin embargo...
¡Aún más fuerte! Pueden conectar a un servidor VNC y desde éste servidor conectar a otra máquina de la red, y porqué no, arrancar otro cliente VNC en ésta máquina y conectar a otro servidor VNC, y así sucesivamente! Si arrancan un servidor VNC en una máquina Unix, numerosos clientes usando vncviewer pueden conectar al mismo tiempo a éste servidor con números de visualización diferentes. Eso no funcionará en máquinas bajo Windows pues sólo hay una visualización disponible.
¡Pero eso no quiere decir que lo que precede no fuera serio!
Por ejemplo, a muchos SysAdmin les gusta la administración de Windows NT: no pueden saber quién está conectado a un servidor, ni quién hace qué ... salvo que hayan comprado el kit de recursos técnicos, que permite conocer la lista de los procesos en un ordenador dado (pero sin poder "matar" la mayoría de estos procesos). ¡Sin comentarios! Vnc permite dar la vuelta a ésta interesante "funcionalidad". Tomemos un ejemplo.
Desarollan y mantienen diferentes applicaciones bajo Windows (mi compadre Javi dice: ¡Nosotros, los pobres, no podemos elegir!). Cada nueva versión necesita una puesta al día en el servidor y en los clientes. Y las máquinas se encuentran más o menos lejos de su oficina. No pueden poner al día la aplicación si está siendo usada en algún cliente. Con VNC, pueden cerrar la applicación en cada cliente, instalar la evolución y verificar como funciona sin dejar la oficina. Mejor hacer eso cuando nadie trabaja, pero como muchos usuarios olvidan cerrar la applicación despues de usarla, eso tendrán que averiguarlo. Si VNC fué instalado como servicio en las estaciones, pueden arrancar vncserver a distancia desde el servidor NT, conectar a las estaciones y hacer lo que tengan que hacer. Es decir, pueden cerrar las aplicaciones en curso, instalar la evolución (también desde otro servidor que el en el que trabajan y que está conectado al servidor VNC) y controlar su funcionamiento. Entonces, pueden parar el servidor VNC en la máquina lejana y repetir esta operación en otro cliente.
Todo eso no sería posible de ésta manera con una emulación X en las estaciones Windows, pues que el instalador también es propietario. Otra diferencia si comparamos con X: ningún estado se almacena en el cliente. Pueden cortar la conexión del servidor VNC, ir en otra máquina y conectar de nuevo al servidor VNC para seguir con su trabajo. Cosa importante: VNC permite mandar una secuencia Ctrl-Alt-Del para abrir la estación NT lejana. (No era posible en las versiones anterioras).
El ejemplo ese supone que trabajabamos desde un servidor NT. Pueden hacer lo mismo desde una estación Unix, en la cual el cliente VNC está conectado al servidor NT en el que vncserver es activo. Evidentemente pueden administrar su red de ésta manera, usando las "remote commands" (si existen) para arrancar los servidores VNC en las estaciones lejanas si tienen permisos para hacerlo. Y "lejanas" significa cualquier sitio. ¡Pueden hacer todo eso desde su casa!
Y eso nos lleva todo recto a la seguridad.
Cualquier tipo de comunicación en una red puede ser considerado como un agujero de seguridad potencial. ¡Es un hecho! Lo único que pueden hacer es tratar de limitar el riesgo. No se dejen engañar: seguridad es tan solo una palabra. ¡Si alguién dice que su red está 100% segura, no lo crean! Los "piratas" son mucho más listos que piensa la gente: es otro hecho.
Entonces, si quieren mejorar la seguridad de VNC, tienen que mejorar la seguridad de la red. Un firewall, SSL, SSH... pueden ser utilizados para eso. SSL y SSH permiten criptar el tráfico de dos maneras diferentes. No hablaremos de SSL o SSH pues que se trata de otro tema. Si quieren saber más, pueden visitar el site de SSH (http://www.ssh.fi) o el de SSL open source (http://www.openssl.org) Encontrarán extras, parches, add-ons sobre el asunto de la seguridad (no sólo) en el site de AT&T. Entre ellos tendrán un medio de acceso a un servidor detrás de un firewall. Una versión de VNC utilizando una criptografía por llave pública SSLeay también está disponible. Otro medio de limitar las conexiones por señas IP está propuesto: utilizar TCP wrapper. Hay mucho más y no podemos mencionarlos todos. Pueden descubrirlos en http://www.uk.research.att.com/vnc/extras.html.
También existe una versión Java de VNC. Es decir pueden utilizar un navegador compatible Java como un cliente VNC si seleccionan el puerto correcto (58**, a donde ** es el número de visualización: ej. 5802 corresponde a la visualización número 2). Había que mencionar esto aunque sea terriblemente lento, sin hablar del problema de seguridad. Pero ésta versión existe y merece ser probada.
Para cerrar el capítulo de la seguridad en breve, las cosas como son: VNC no es peor en el asunto de la seguridad que telnet o rlogin.
Si no conocen VNC, vale la pena probarlo. Esperamos que éste artículo habrá hechoo atractivo a VNC. Es probablemente uno de los software más extraordinarios en su categoría. Es muy pequeño, bastante rápido (eso depende de la red o del tipo de conexión) y es GRATIS.
Es muy fiable y el único problema que encontre con la última revisión concierne la versión Windows: si el usuario de una estación NT lejana ha dejado la tecla mayusculas pulsada, la secuencia para mandar el Ctrl-Alt-Del parece no funcionar (mi compañero de trabajo sugere escribir el password en un editor, copiarlo y pegarlo en el campo del password... y funciona!). ¡Es todo lo que fui capaz de encontrar! Y eso que uso VNC bajo Solaris Sparc, Irix, Linux, BeOS, AmigaOS y NT. La menos elaborada es probablemente la versión de AmigaOS pero nadie tiene la culpa de esto, puesto que hace tanto tiempo que esa máquina no ha evolucionado...
Ademas, lo que acaban de leer sólo representa una pequeña parte de las inmensas posibilidades de VNC. VNC empieza a aparecer en unas distribuciones Linux, lo que sirve como muestra de su interés. Si tienen una pequeña red en casa o una grande en el trabajo, prueben VNC. ¡Es genial!
Cuando decía yo que vivíamos una época estupenda...