Вы находитесь на странице: 1из 68

Guadalinex en colinux,

aplicando tecnología de
escritorios remotos con
NOMACHINE NX / FREENX

Juan Carlos Rubio Pineda


http://creativecommons.org/licenses/by/2.5/es/
COLINUX
• ¿Cómo funciona?

• ¿En qué estado está la versión que tenemos ahora


disponible?
• Problemas y soluciones.

• Usos y aplicaciones
COLINUX
• ¿Cómo funciona?
− Colinux es una modificación de un kernel y otras utilidades Linux (un
driver que debe precargarse), que proporciona los medios
necesarios para poder ejecutar una distribución Linux (la que
deseemos) en el contexto de drivers de un Sistema Operativo Host
(dentro de un S.O. Microsoft Windows 2K, 2K3 o XP)
− El kernel linux que se ejecuta dentro de Windows, lo hace en el
mismo nivel de privilegios que el kernel envolvente, es decir,
Windows.
− El Kernel linux huésped, se ejecuta con una cantidad de memoria
prefijada antes de lanzarse, que puede variar, siempre dentro del
límite REAL de la máquina envolvente.
− El kernel huésped, dispone de sus propias tablas de páginas y
control absoluto de la MMU (memory management unit), con un
límite de direccionamiento de 4GB.
COLINUX
• Resumen:
Host Userspace

colinux-serial-daemon
process Host Kernel Guest Kernel

colinux-daemon coLinux
IPC using process Kernel Normal
named pipes driver Linux
Main Run Userspace
Loop ioctl() Passage
entry page entry
colinux-console-nt
(unmodified
process
binaries)

colinux-net-daemon
process

colinux-bridged-net-daemon
process
COLINUX
• En el S.O. envolvente, un proceso del espacio de
usuario windows, colinux-daemon, ejecuta de forma
constante llamadas a ioctl (es una función que controla
parámetros de dispositivos subyacentes, descritos
como ficheros, en sistemas UNIX).
• El driver colinux, conecta el kernel host o envolvente
con el huésped usando un código de bajo nivel i386, de
modo que el estado de la CPU siempre se preserva
(registros generales y registros de control).
• Cuando el huésped requiere datos del host, o cuando
se eleva una interrupción, se produce una conexión con
el driver colinux del S.O. envolvente.
COLINUX
• Resumen del Kernel Space
Host Kernel Guest Kernel
Interrupt
coLinux forwarding
host kernel cob
driver cobd
d
(linux.sys)

entry
Passage entry conet
Run
ioctl()
Page

cocon

Etc..
COLINUX
• Resumen del canal de paso de páginas (4KB)
COLINUX
• Control de interrupciones y excepciones

Host Kernel Guest Kernel


Host ISR (interrupt service
routine) table Page
Guest ISR table
Fault
YY < 32 (internal)
XX >= 32

ISR YY
Internal
IDE0 entry
Passage entry handling
handling Page
code
IDE0
(external)

ISR XX ISR XX
COLINUX
• Gestión de la memoria y mapping:
Guest Kernel
Physical Memory FFFFFFFF Virtual Address Space
fixmaps
page tables that
map this address
space
Reverse address
translation tables

pseudo
physical
ram

bss
data
C0000000 text
COLINUX
• ¿Qué otros cambios incorpora el kernel modificado
colinux?
− Añade un método que actúa de interfaz con el driver colinux
que está cargado en el host envolvente.
− Añade unos dispositivos virtuales que implementan el control
con dispositivos de bloques (disco), salida de vídeo (consola)
e interfaces de red. Entre ellos está el driver cofs, un
dispositivo que conecta el disco de la máquina envolvente
para poder ser montado en la máquina huésped. Acceso en
lectura y escritura.
− El acceso al hardware está denegado (se ha modificado la
función ioperm() y la función iopl() para que fallen).
− El acceso al hardware, debe pasar por lo tanto por la capa de
abstracción implementada, es decir, usando los dispositivos
virtuales mencionados.
COLINUX
• ¿Qué versión tenemos ahora disponible y en qué
estado se encuentra?
− colinux 0.6.4: Estable hasta Noviembre. Es necesario algunos
cambios para obtener total fiabilidad (ver problemas y
soluciones).
− Colinux 0.7.1: Estable desde el 2 de Noviembre de 2007. Aún
reciente, aunque corrige:
• Rendimiento de interfaces slirp
• Nuevo driver TAP Win32, lo que mejora el rendimiento de estos
interfaces
• Bugs con ciertos tipos de micros P4 y Xeon
• Bug con Vista.
• Mejora en el tratamiento de la memoria.
COLINUX
• Problemas y soluciones
− 1.- En algunas versiones de XP puede provocar una BSD
(blue screen of death), fácilmente corregible modificando un
parámetro en en archivo boot.ini de windows.
• El motivo: una protección que windows incorpora para evitar los
ataques de desbordamiento de buffer.
• Ejemplo de boot.ini que puede derivar en una BSD:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=Optln /fastdetect

• Corrección: cambiamos Optln por AlwaysOff /NOPAE


COLINUX
• Problemas y soluciones (II)
− A veces, el proceso colinux-console-nt o el proceso
colinux-console-fltk pueden colgarse si se ejecutan contra el
archivo de configuración XML.
• Solución: usar los parámetros de línea de comandos en un batch
(nuestro caso). Incluso los desarrolladores de colinux, aconsejan usar
esta opción de forma preferente.
• Cuando montamos colinux como un servicio windows, estos procesos
no son lanzados, con lo que obviamos el problema.
− Un usuario podría lanzar dos instancias de LINUX (colinux)
que escriban en el mismo disco de forma accidental,
provocando corrupción de datos
• En un script de arranque, se ha contemplado esta eventualidad, de
manera que existe una línea que evita la carga de una nueva instancia
sin haber finalizado la primera (a través del linux.sys)
• Es muy efectivo, ya que impide cargar linux.sys, de manera que no hay
medios para saltarse esta protección de forma accidental.
COLINUX
• Problemas y soluciones (III)
− La máquina colinux no detecta un dispositivo USB recién
conectado.
• Ni lo hará, ya que el kernel de colinux no contempla estos dispositivos.
• Solución: windows lo detecta, y accedo a él a través del interfaz cofs.

− No tenemos sonido
• El kernel de colinux tampoco permite acceder a tarjetas de sonido.
• Gracias a la función de streaming de audio de freenx, conseguimos
que sea la tarjeta de sonido de la máquina envolvente la que realice
esta función, con lo que disponemos de sonido.
− No tenemos acceso al CDROM/DVD-ROM, grabadora.
• Podemos montar el contenido en forma de fichero .ISO
− Podemos acceder a través de windows.
COLINUX
• Problemas y soluciones (III)
− La instalación de guadalinex necesita un mínimo de 4GB de
archivo de imagen para ejecutarse. Pero grabar archivos de
más de 2GB en un DVD sin fraccionarlos puede acarrear
dificultades.
• Solución: Usamos UnxUtils,
− split -b => Dividimos en trozos de 1 GB
− cat -B => Unimos los trozos
− El disco se me ha quedado pequeño. Necesitamos más
espacio
• Un archivo de imagen de 10GB comprimido con bzip2 puede alcanzar
un espacio disponible de 10GB para linux una vez descomprimido.
− Aunque algunos antivirus tienden a descomprimir estos archivos para
comprobar si almacenan virus; por ejemplo, OfficeScan, de TrendMicro.
• Bastaría crear un nuevo archivo y montarlo, si bien es posible un
traspaso completo de los datos a un nuevo archivo que representa un
sistema de ficheros para colinux.
COLINUX
• Problemas y soluciones (IV)
− ¿Por qué no me funciona el eye candy (por ejemplo, compiz o
beryl)
• Porque usan drivers nativos de las tarjetas gráficas con aceleración,
como ATI o nVIDIA, y colinux tan sólo contempla acceso a una consola
en texto.
• La única posibilidad gráfica con la que contamos es usar un servidor X
como XMING (o compilarlo desde cygwin), o usar FREENX (que ya
incluye un servidor X de cygwin, además de otras mejoras).
− ¿Puedo ver TDT con mi sintonizador USB o TV analógica
desde mi Linux?
• Por la misma razón anterior, no será posible.
− ¿Puedo ver vídeo en demanda desde mi Linux?
• Eso sí es posible; freenx se comporta de manera adecuada en
streaming.
COLINUX
• Usos y aplicaciones
− Migración progresiva desde Windows
• Colinux es muy veloz (es un proceso; no una capa global de
abstracción como vmware, con reparto de CPU), y proporciona todo el
software disponible en linux sin recompilar.
− Colinux puede arrancar múltiples instancias
• Ideal para simulación y estudio de un cluster de supercomputación.
− Colinux puede arrancar DESDE WINDOWS un sistema linux
que tengamos en nuestra máquina sin necesidad de disponer
de un arranque dual con grub o lilo. o bien tener ambas
posibilidades disponibles.
− Colinux puede acceder al disco de la máquina envolvente sin
usar artificios como samba.
COLINUX
• Usos y aplicaciones (II)
− Colinux puede ser la forma de probar guadalinex sin miedo
particionar nuestro disco, sino simplemente copiar unas
carpetas a nuestro disco, y empezar a ejecutar..
− Colinux trae todas las aplicaciones linux al escritorio windows.
− Colinux puede lanzarse como un servicio windows
• Esto permite disponer de un linux preparado para el uso requerido, SIN
NECESIDAD DE QUE EL USUARIO INICIE UNA SESIÓN.
− Colinux puede crecer en espacio de disco sin provocar
“tragedias”.
− Colinux es tan ágil y rápido como un proceso más de los que
estén ejecutándose en Windows.
COLINUX
NOMACHINE NX / FREENX
NOMACHINE NX
• NOMACHINE NX: ¿Qué es?
− NOMACHINE NX es una solución para proporcionar
aplicaciones centralizadas a clientes ligeros o trabajadores
remotos sobre cualquier tipo de conexión de red. El software
de NX es capaz de transportar sesiones de escritorios X-
Window, RDP y RFB con sorprendente velocidad y facilidad
de uso.
− El Servidor NX se ejecuta sobre cualquier sistema operativo
Linux, o Solaris
− Hay clientes NX para una gran variedad de plataformas y
sistemas operativos, incluso dispositivos embebidos como
HP/Compaq iPAQ y Sharp Zaurus.
Introd. a la tecnología
• Detrás de NX de NoMachine está la arquitectura NX
Distributed Computing Architecture (NXDCA), que usa
dos conocidos y ampliamente utilizados estándares
abiertos: ssh (encriptación) y el sistema X-Window.
• NXDCA es un conjunto de tecnologías que conforman
una capa en el servidor que habilita a cualquier UNIX
para prestar los servicios de un servidor de terminales,
existiendo importantes diferencias entre alternativas
similares como RFB y RDP
Introd. a la tecnología
• VNC (RFB) y Microsoft Terminal Server (RDP), son protocolos
mucho más simples que las X.
− Su simplicidad no compensa su falta de eficiencia y prestaciones.
− Estos protocolos, dibujan para pantalla remota transfiriendo cantidades
enormes de datos de imagen que se envían a través de la red.
− Incluso aceptando que RDP es de mayor nivel y eficiencia que RFB, no ha
sido diseñado para el uso diario de recursos de cómputo, sino cono un
“añadido” al sistema operativo subyacente.

• X-Window sin embargo, es el subsistema gráfico (y no una


extensión) del sistema operativo del host. Las aplicaciones X se
comunican con el sistema gráfico (X-Window) usando el
protocolo X, de manera que el sistema operativo no tiene que
añadir una capa para trasladar refrescos de pantalla sobre la red.
Introd. a la tecnología
• Si el protocolo de las X es mucho más adecuado para
ejecutar aplicaciones remotas que el protocolo RDP
¿Por qué entonces en la práctica, parece lo contrario?
− La respuesta está en los roundtrips.
− Las aplicaciones en X-Window recientes se están escribiendo
teniendo en cuenta cada vez menos la posibilidad de
ejecutarlas en remoto.
− La mayoría de las operaciones X son asíncronas (no hay que
esperar la respuesta a la petición); sin embargo, hay
operaciones que son síncronas.
• Aunque en local cientos de rountrips de milisegundos sean
despreciables, en conexiones remotas, una aplicación puede tardar
demasiado en iniciarse por culpa de ellos.
• Hasta en la propia xlib (la librería que usan absolutamente todas las
aplicaciones X) hay llamadas que implican innecesariamente llamadas
síncronas.
Introd. a la tecnología
• Entonces, ¿Qué solución aporta NX a este problema?
− Hace de caché de peticiones
• Iniciar KDE la primera vez, implica una descarga de unos 4Megabytes
• Iniciar KDE la segunda vez, sólo requiere 35Kbytes
− Se logran ratios de mejora del orden de 10:1 a 100:1
− Podemos usar NX hasta con un modem de 9600bps
− Comprime tanto peticiones como imágenes
• X-Window trabaja con bitmaps, cuando pueden transmitirse imágenes
con menor ancho de banda en PNG
• Además, dispone de mecanismos de compresión que aumentan el
rendimiento que puede lograrse con la compresión ZLIB nativa del
protocolo ssh (Ej.- ssh –XC fulano@maquina).
− Y además, esta compresión consume 10 veces menos recursos y la
compresión es 10 veces mejor.
Introd. a la tecnología
• Si NX es ssh+X+conjunto de añadidos de mejora, ¿Qué servidor
X se usa?
− Se usa XMING, o lo que es lo mismo, el port del sistema X compilado
mediante CYGWIN, e incluído en el mismo bloque que constituye el cliente
NX (es decir, el cliente NX, incluye un servidor X).
− Lo bueno de esto, es que el portapapeles de windows y el portapapeles de
las X ESTAN CONECTADOS, aunque sólo para transmitir texto (lo cual es
tremendamente útil).
• En sentido W->U, pegamos con el botón central del ratón
• En sentido U->W, pegamos con un CTRL+V o con la opción Pegar de contexto.

• ¿Puede servirnos NX para conectar mediante VNC o RDP, de


manera optimizada?
− La respuesta es SÍ, aunque la mejora ganada en este caso, consiste
básicamente en aprovechar la caché.
− Crear un acceso que conecte por ejemplo, a una máquina Windows por
RDP, saltando a través de un NX Server puede mejorar el ratio de 2:1 a
10:1.
Introd. a la tecnología
• ¿Eso es todo lo que NX puede hacer por mí?
− NX permite que las aplicaciones remotas usen una impresora
local
− NX permite que las aplicaciones remotas usen un recurso de
disco compartido local
• Encapsula el protocolo SAMBA dentro de la conexión SSH.
− NX se comporta de manera aceptable haciendo streaming de
vídeo.
− NX es capaz de encapsular el sonido de la máquina remota
para que sea reproducido en la máquina cliente
• Para ello usa el componente NXESD.
− NX puede suspender una sesión X para después ser
recuperada (resume), al estilo de VNC y RDP, funcionando
como un screen gráfico (permite elegir entre una lista de
sesiones suspendidas)
• Secuencia de teclado: CTRL+ALT+T en el cliente
Introd. a la tecnología
• <<Esto no es nuevo, GNU/Linux, ya que existen
desde hace tiempo los demonios de sonido y de
impresión, y también NFS o samba>>
− Sí, pero el hecho de que TODO pueda gestionarse de manera
sencilla en un único producto, lo hace tremendamente
atractivo.
− Y además, un cliente NX puede instalarse de una forma tan
sencilla como ejecutar un applet Java (nxplugin -NX Web
Companion-).
− La guinda del pastel, consiste en que el uso de recursos del
servidor NX es bastante bajo; unos 40/64 MB de RAM y
100Mhz de CPU por sesión, con un uso de ancho de banda
de unos 40 Kbits/s.
• Un servidor mediano en la actualidad, puede soportar cientos de
sesiones NX sin que merme el rendimiento (aunque depende, claro
está, de lo que ejecute cada usuario).
Introd. a la tecnología
• Gráfica de funcionamiento:
Componentes NX
• NXAGENT:
− Este componente actúa como una aplicación más de escritorio no visible,
que permite que las aplicaciones que se ejecuten en el escritorio sean
autónomas, y eviten los roundtrips.
• Funciona cono un servidor X que multiplexa las conexiones X de los clientes a
una única petición al servidor X, eliminando los roundtrips.
• Prepara los datos haciendo un encoding según el tipo de conexión, para
facilitar la labor a NXPROXY (véase más adelante)
• Lanza una una instancia de NXPROXY.

• NXVIEWER:
− Permite actuar de proxy para conectar por VNC a otra máquina, mejorando
el rendimiento con la caché NX.

• NXDESKTOP:
− Idem nxviewer, pero para conexiones RDP.
• NXESD
− Permite encapsular el sonido en la conexión NX, y reproducirlo en la
máquina local.
Componentes NX
• NXNODE (I):
− Es el core de la arquitectura distribuída NX.
− Se encarga de:
• Lanzar el proceso nxagent
• Lanzar las aplicaciones con el DISPLAY adecuado (cuando acaban, envía un
SIGTERM a NXAGENT), donde el DISPLAY lo enlaza NXPROXY.
• Lanzar un proceso de monitorización.
− Se encarga de exportar el entorno a los usuarios, de manera que las
sesiones se ejecutan en computadoras con NXNODE’s en una especie de
Cluster Virtual
• Es decir, cientos de NXNODE’s pueden estar conectados con uno o más
servidores para controlar miles de sesiones concurrentes.
− Esto garantiza la escalabilidad.
− Cualquier computadora puede ser un NXNODE de la arquitectura NXDCA.
Una red NX es muy similar a una red p2p, en el sentido de que en p2p, si
buscamos una canción, los motores de búsqueda nos redirigen al servidor
apropiado, proporcionando la credencial de autorización necesaria, para
permitir que el otro nodo acepte la conexión.
Componentes NX
• NXNODE (II):
− No sólo distribuye la carga de red distribuyendo sesiones, sino
que puede distribuir las aplicaciones que se ejecuten en una
sesión entre diferentes servidores.
− Esto puede ser necesario cuando, por ejemplo, un recurso o
aplicación no está disponible en el nodo original, o bien porque
un recurso esté más “próximo” al usuario siguiendo el camino
más corto a través de la red.
− Esto garantiza un mejor rendimiento.
Componentes NX
• NXPROXY:
− Comprime (remoto) y descomprime (local) el tráfico de red.
− Cachea.
− Encapsula en un túnel el tráfico SMB y multimedia
• Ejemplo; un túnel entre dos hosts puede crearse así:
− En la máquina remota:
» nxproxy –C :1200

− En la local:
» nxproxy –S <host_remoto>:1200

− NXPROXY hace uso del Virtual Display; esto es, el socket de


la conexión actúa como display en el servidor, y la conexión X
es reenviada (forwarded) a el peer nxproxy más cercano.
− Delega la labor de compresión de lo que NXAGENT le
proporciona (encoding) a NXCOMP, y actúa de proxy con lo
que el resultado de los datos ya codificados y comprimidos.
Componentes NX
• NXSSH:
− Se usa para explotar las ventajas de ejecución remota que
permite el protcolo SSH
− Básicamente, permite que ganemos acceso a las funciones o
propiedades del nodo remoto, autenticándonos con el usuario
remoto “nx”.
• Importante: Si usamos WRAPPERS o el fichero hosts.allow, debemos
permitir un sshd:localhost para garantizar que a través de SSH,
podamos levantar un proceso NXNODE, que a su vez llama a
NXAGENT.
− Encripta toda la comunicación mediante criptografía de clave
pública.
• Por defecto, NX se instala con unos certificados de NOMACHINE, pero
podemos crear los nuestros, con la precaución de importarlos en
nuestro cliente para garantizar la conexión.
Componentes NX
• NXPLUGIN (NX Web Companion):
− Es un applet Java, más un conjunto de binarios, que permiten
que pueda instalarse el cliente NX en los Sistemas Operativos:
• MAC OS
• WINDOWS
• LINUX
• SOLARIS

− Necesita un Servidor Web Apache 1.3.X/2.X o compatible.


− Tras la instalación mediante el repositorio, copiamos el
directorio plugin al web root:
• #cp -a /usr/NX/share/plugin /var/www
Componentes NX
• Configuración del archivo de nxapplet.html de nxplugin
− Buscamos la linea que contenga:
<PARAM NAME="SiteUrl" VALUE="http://webserver"> y la modificamos para
que contenga el nombre dns o la ip de nuestro servidor web.
− En este punto ya deberíamos poder acceder al applet java.
− Por último, necesitamos copiar un archivo de sesión nxs (se crea
gráficamente con un cliente NX) al directorio de sesiones del plugin.

• Parámetros de configuración para el Applet:


− Para habilitar o deshabilitar la barra de progreso:
• <PARAM NAME="progressbar" VALUE="true">
− Para personalizar los mensajes durante la inicialización del applet:
• <PARAM NAME="boxmessage" VALUE="Please wait while Java applet loads...">
− Redirección a la página de inicio:
• <PARAM NAME="RedirectUrl" VALUE="http://freenx.cica.es/plugin/Java/nxapplet.html">
− Nombre del fichero de sesión:
• <PARAM NAME="SessionUrl" VALUE="/plugin/Java/session/session.nxs">
Componentes NX
Diferencias NX Server
(NOMACHINE) y FREENX (libre)
• Freenx nos proporciona la conexión de tantos usuarios
como nuestro hardware nos permita.
− NXServer únicamente nos permite 2 usuarios simultáneos.
• Al ser la misma empresa la que desarrolla tanto el
servidor, clientes y herramientas, la compatibilidad es
bastante mejor.
− En freeNX hubo problemas entre las versiones del cliente y del
servidor (1.5 - 2.0)

• FREENX nos permite mayor control y número de


opciones que la versión gratuita de NOMACHINE NX.
Configuración del servidor
• Archivos de configuración:
− node.cfg: Para NOMACHINE NX Server
− node.conf : Para FREENX Server.
• Localización
− /usr/NX/etc/node.cfg (NOMACHINE NX SERVER)
− /etc/nxserver/node.conf (Freenx)
− Las directivas tienen diferencias de formato.
• Ejemplo de excepción: En NOMACHINE NX se admiten espacios en la
asignación de valores a las variables, y en FREENX no.
Ejemplos de configuración

Nomachine NX node.cfg FREENX node.conf


Directivas de configuración
más importantes
(node.conf)
• SERVER_NAME=”freenx.cica.es”
− Esta opción es obligatoria para que el servidor Freenx funcione correctamente.
Aquí debemos poner el FQDN del servidor que esta corriendo el servicio.
− Es innecesaria en un NX Server.
• ENABLE_USER_DB=”1”
− Con esta directiva únicamente los usuarios que estén en el fichero de password de
freenx tendrán permiso de conectarse al servidor freenx. Si la opción esta a 0 todos
los usuarios del sistema pueden conectarse al servidor freenx.

• Directivas de logging:
− En node.cfg: SessionLogLevel. En node.conf: NX_LOG_LEVEL.
• 0: No Logging
• 1: Errors
• 2: Warnings
• 3: Important Informatión
• 4: Server- Client Comunication
• 5: Informatión
• 6: Debugging Informatión
Directivas de configuración
más importantes
(node.conf)
• NX_LOG_LEVEL=6
− Es recomendable poner el logging en 1, cuando el servicio
funciona bien. Cuando tengamos algún problema que
queramos depurar tendríamos que poner el logging en 6 para
poder ver en tiempo real el log del demonio.

• NX_LOG_SECURE=1
− Con esta opción a 1 no se muestran las contraseñas en el log,
de lo contrario se mostrarían en claro. Es muy recomendable
dejar esta opción a 1.

• NX_LOGFILE=/var/log/nxserver
− Aquí especificamos donde de ubica el fichero de log y como
se llamará.
Directivas de configuración
más importantes
(node.conf)
• SESSION_LIMIT=200
− Este parámetro limita la cantidad de sesiones que soporta el
servidor, por defecto el servidor está limitado a unas 200
conexiones simultaneas.

• SESSION_USER_LIMIT=200
− Con este parámetro limitamos las conexiones por usuario, es
decir, cuantas veces un usuario puede conectarse
simultaneamente. Por defecto 200 conexiones simultaneas por
usuario.
Comandos de administración
del Servidor NX/FREENX
• Comandos más útiles:
− ¿Cómo obtener la lista de usuarios NX?
nxserver --userlist
− ¿Cómo enviar un mensaje a todos los usuarios
conectados?
nxserver --broadcast “El servidor se reiniciará para XXX en 15
minutos”
− Obtener el estado del servicio
nxserver --status
− Terminar/suspender una sesión desde el servidor
nxserver --list
nxserver --terminate [sid] / --suspend [sid]
Instalación de un servidor
FREENX
• Repositorios principales de paquetes de FREENX:
− Berlios (http://www.berlios.de)
− Seveas (http://free.linux.hp.com/~brett/seveas/freenx/)
• Contiene sólo paquetes para Ubuntu.
• Mantiene los más recientes; los últimos son para Feisty Fawn 7.04 (aún no para
Gutsy Gibbon 7.10)

• Opciones de instalación:
− NoMachine Keys: Se utilizarán las claves que vienen por defecto y que
hará que a nuestro servidor se puede conectar cualquier cliente. Muy
inseguro ya que no tenemos control de quien se esta conectando. Es mas
fácil de instalar.
− Custom Keys: Se crearán unas claves personalizadas que habría que
copiar a cada cliente en el directorio /usr/NX/share
− Remove freenx keys: Borra las claves ya existentes.
• Para iniciar o para el servicio utilizaremos los siguientes
comandos:
− #nxserver --stop
− #nxserver --start
Uso de claves propias en
FREENX
• La clave se almacena en el fichero client.id_dsa.key en
el subdirectorio .ssh del home de nx (por defecto, en
freenx,
en /var/lib/nx/nxserver/home/.ssh/client.id_dsa.key).
• Se tiene que compartir esta clave con todos los clientes
que se quieran autorizar. Esto lo hacemos importando
la clave en las máquinas clientes.
• Para importar la clave en el cliente haremos lo
siguiente:
Uso de claves propias en
FREENX
• Copiamos el fichero client.id_dsa.key a la estación de
trabajo del cliente, por scp o con un pendrive, cd, etc.
• Una vez que la clave este copiada, abrimos el cliente nx
y pinchamos en el boton configure...
Uso de claves propias en
FREENX
• Pinchamos en el botón KEY
Uso de claves propias en
FREENX
• Se abre el cuadro para el import:
Uso de claves propias en
FREENX
• Buscamos el fichero con la clave:
Uso de claves propias en
FREENX
• Una vez aplicados los cambios, podremos logarnos en
el servidor:
Uso de claves propias en
FREENX
• Consejos de seguridad:
− En el directorio por defecto del home del usuario nx,
encontraremos un directorio oculto /var/lib/nxserver/home/.ssh.
• En este directorio encontraremos el fichero de claves permitidas
authorized_key o authorized_key2, client.id_dsa.key y known_hosts.
− El fichero authorized_key o authorized_key2 varía su nombre
únicamente para indicarle al demonio de ssh si las conexiones
entrantes son del tipo protocolo 1 ó 2.
− En vez de utilizar los fichero hosts.allow y hosts.deny para
restringir la entrada a determinada direcciones ip, podemos
utilizar el archivo authorized_key2 para restringir por ip's.
• Con la clausula form=”ip,ip,ip,....” al comienzo de cada clave podemos
restringir el acceso a la máquina desde el exterior.
Instalación del cliente
Instalación del cliente
Instalación del cliente
Instalación del cliente
Instalación del cliente
Instalación del cliente
Configuración del cliente
• Configuración de velocidad:
− Modem: Para conexiones por o hacia modem, típicamente
unos 56kbits/s.
− ISDN: RDSI, para conexiones entre 64 y 128Kbits por
segundo.
− ADSL: Optimizará las conexiones entre 256Kbits y 1Mbit de
ancho de banda.
− WAN: Optimiza en el rango de 2Mbits a 8Mbtis
− LAN: Idem entre 10Mbits y 1Gigabit
• NOTA: Estas opciones, así como las siguiente pueden
ser modicadas posteriormente en el último paso, así
que no hay que preocuparse por si no sabemos algunos
datos o si no estamos seguros de si funcionará.
Configuración del cliente
• Configuración del escritorio
Configuración del cliente
• Configuración del escritorio (II)
− Tipo de conexión
• Unix: Es el habitual, compatible con el sistema Linux
• Windows: Para servidores Terminal Server de Microsoft o compatible RDP
• VNC: Para conectarse a servidores VNC, es decir protocolo RFB
− sistema de escritorio
• KDE, Gnome o Custom, en el podemos arrancar cualquier escritorio o
aplicación.
− Tamaño del escritorio:
• 640x480: Aconsejable si nuestro escritorio está a 800x600 y no queremos
conectarnos a pantalla completa
• 800x600: Aconsejable si nuestro escritorio está a 1024x768 y no queresmos
conectarnos a pantalla completa
• 1024x768: Aconsejable si nuestro escritorio está a una resolución superior a
1024x768 y no queremos conectarnos a pantalla completa
• Avaliable Area: Utiliza todo el espacio de escritorio disponible
• Fullscreen: Pantalla completa
• Custom: personalizamos la resolución mediante las dos cajas que aparecen a
la derecha.
Configuración del cliente
• Configuraciones de compresión de imagen:
− En el area de Display debemos seleccionar Use customs
setting y luego pinchar en el botón Modify. Una vez hecho esto
veremos un cuadro con las siguientes opciones:
Configuración del cliente
• Use JPEG image compression: Alta compresión pero
se pierde mucha calidad, se puede elegir el nivel de
compresión asumiendo la pérdida que deseemos.
• Use PNG image compression: Compresión de alta
calidad (por defecto).
• Use plain X bitmaps: Sin compresión ninguna
• Disable render extension: Deshabilitar cualquier tipo
de aceleración, sólo marcar cuando haya problemas de
visualización.
Configuración del cliente
• En la sección Network (red) tendremos
− Disable no-delay on TCP connection Desahabilitar el que se
trate que los eventos seanen tiempo real
− Disable ZLIB stream compression Desactivar la compresión
ZLIB durante toda la conexión.
− Enable SSL encryption of all traffic Cifrar toda la conexión
con SSL.
− Cache: podremos configurar tanto la caché residente en
memoria RAM, como laque se pueda guardar en el disco duro.
También podemos borrar la caché de sesiones anteriores.
Configuración del cliente
• Servicios encapsulados:
Configuración del cliente
• Enable printing and file sharing Activa la compartición de
archivos e impresión a través de SAMBA. Antes de conectarnos,
debemos especificar qué recursos disponibles queremos
encapsular.
• Enable multimedia support Activa soporte multimedia. Redirige
la reproducción del sonido a la máquina cliente.
• Finalmente en la pestaña Environment se configuran las
variables de entorno que usaremos, directorio del usuario, del
sistema, de los tipos de letras utilizados.
• Una vez configurado todo a nuestro gusto procederemos a pulsar
Save para guardar las opciones o directamente OK si no nos
interesa guardarla para posteriores sesiones.
Teclas de control del cliente
• Teclas rápidas el cliente NX 3.0
− CTRL+Alt+Shift+Esc: Abortar una sesión que no responde
− Ctrl + Alt + T: Terminar una sesión con opción a suspender
− Ctrl + Alt + F: Conmutar entre sesión en ventana o pantalla
completa (sesión iniciada como full screen).
− Ctrl + Alt + M: to Minimizar o maximizar una sesión fullscreen
− Ctrl + Alt + keypad: navegación viewport
− Ctrl + Alt + R: conmutar entre modos "auto-resize/viewport“
− Ctrl + Alt + E: Activar lazy encoding
− Ctrl + Alt + J: Forzar un sincronización de redibujado
− Alt + F4
− Ctrl + Alt + K: Activar/desactivar la captura de las teclas Alt
+Tab y Print Screen.
Fuentes de documentación
• Documentación de NoMachine http://
www.nomachine.com
• Documentación de BerliOS http://openfacts.berlios.de/
index-en.phtml
• Linux Journal
http://www.linuxjournal.com/node/8477/print
• Documentación de Sebastián Balboa, ponencia de
e-Verano.org 2006