guadalinex con colinux y tecnología nomachine nx

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/

Upload: juan-carlos-rubio-pineda

Post on 28-Jun-2015

3.686 views

Category:

Technology


0 download

DESCRIPTION

Este documento cubre las principales características de la tecnología colinux y cómo solventar problemas. También los principales componentes de NX

TRANSCRIPT

Page 1: Guadalinex con colinux y Tecnología Nomachine NX

Guadalinex en colinux, aplicando tecnología de escritorios remotos con NOMACHINE NX / FREENX

Juan Carlos Rubio Pinedahttp://creativecommons.org/licenses/by/2.5/es/

Page 2: Guadalinex con colinux y Tecnología Nomachine NX

COLINUX

• ¿Cómo funciona?

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

• Problemas y soluciones.

• Usos y aplicaciones

Page 3: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 4: Guadalinex con colinux y Tecnología Nomachine NX

COLINUX• Resumen:

Host Userspace

Guest KernelHost Kernel

coLinuxKernel driver

Run ioctl()

Normal Linux

Userspace

(unmodifiedbinaries)

colinux-daemonprocess

MainLoop

colinux-bridged-net-daemonprocess

colinux-net-daemonprocess

colinux-serial-daemonprocess

colinux-console-ntprocess

IPC using named pipes

Passage page entryentry

Page 5: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 6: Guadalinex con colinux y Tecnología Nomachine NX

COLINUX

• Resumen del Kernel Space

Passage Page

Host Kernel Guest Kernel

entry entry

cobd

conet

cobd

cobd

cocon

Interrupt forwarding

cobd

Etc..

coLinux host kernel

driver(linux.sys)

Run ioctl()

Page 7: Guadalinex con colinux y Tecnología Nomachine NX

COLINUX• Resumen del canal de paso de páginas (4KB)

Page 8: Guadalinex con colinux y Tecnología Nomachine NX

COLINUX

• Control de interrupciones y excepciones

Passage Page

Host Kernel Guest Kernel

entry entry

ISR YY

ISR XX

Page Fault

(internal)

IDE0(external)

Guest ISR table

ISR XX

Host ISR (interrupt service routine) table

IDE0handling

code

Internalhandling

YY < 32XX >= 32

Page 9: Guadalinex con colinux y Tecnología Nomachine NX

COLINUX

• Gestión de la memoria y mapping:

text

Physical MemoryGuest Kernel

Virtual Address SpaceFFFFFFFF

C0000000databss

pseudophysical

ram

page tables that map this address

space

fixmaps

Reverse addresstranslation tables

Page 10: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 11: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 12: Guadalinex con colinux y Tecnología Nomachine NX

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:

• Corrección: cambiamos Optln por AlwaysOff /NOPAE

[boot loader]timeout=30default=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

Page 13: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 14: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 15: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 16: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 17: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 18: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 19: Guadalinex con colinux y Tecnología Nomachine NX

COLINUX

Page 20: Guadalinex con colinux y Tecnología Nomachine NX

NOMACHINE NX / FREENX

Page 21: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 22: Guadalinex con colinux y Tecnología Nomachine NX

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

Page 23: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 24: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 25: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 26: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 27: Guadalinex con colinux y Tecnología Nomachine NX

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

Page 28: Guadalinex con colinux y Tecnología Nomachine NX

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).

Page 29: Guadalinex con colinux y Tecnología Nomachine NX

Introd. a la tecnología

• Gráfica de funcionamiento:

Page 30: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 31: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 32: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 33: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 34: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 35: Guadalinex con colinux y Tecnología Nomachine NX

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

Page 36: Guadalinex con colinux y Tecnología Nomachine NX

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">

Page 37: Guadalinex con colinux y Tecnología Nomachine NX

Componentes NX

Page 38: Guadalinex con colinux y Tecnología Nomachine 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.

Page 39: Guadalinex con colinux y Tecnología 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.

Page 40: Guadalinex con colinux y Tecnología Nomachine NX

Ejemplos de configuración

Nomachine NX node.cfg FREENX node.conf

Page 41: Guadalinex con colinux y Tecnología Nomachine NX

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

Page 42: Guadalinex con colinux y Tecnología Nomachine NX

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á.

Page 43: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 44: Guadalinex con colinux y Tecnología Nomachine NX

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 servicionxserver --status

− Terminar/suspender una sesión desde el servidornxserver --list

nxserver --terminate [sid] / --suspend [sid]

Page 45: Guadalinex con colinux y Tecnología Nomachine NX

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

Page 46: Guadalinex con colinux y Tecnología Nomachine NX

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:

Page 47: Guadalinex con colinux y Tecnología Nomachine NX

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...

Page 48: Guadalinex con colinux y Tecnología Nomachine NX

Uso de claves propias en FREENX

• Pinchamos en el botón KEY

Page 49: Guadalinex con colinux y Tecnología Nomachine NX

Uso de claves propias en FREENX

• Se abre el cuadro para el import:

Page 50: Guadalinex con colinux y Tecnología Nomachine NX

Uso de claves propias en FREENX

• Buscamos el fichero con la clave:

Page 51: Guadalinex con colinux y Tecnología Nomachine NX

Uso de claves propias en FREENX

• Una vez aplicados los cambios, podremos logarnos en el servidor:

Page 52: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 53: Guadalinex con colinux y Tecnología Nomachine NX

Instalación del cliente

Page 54: Guadalinex con colinux y Tecnología Nomachine NX

Instalación del cliente

Page 55: Guadalinex con colinux y Tecnología Nomachine NX

Instalación del cliente

Page 56: Guadalinex con colinux y Tecnología Nomachine NX

Instalación del cliente

Page 57: Guadalinex con colinux y Tecnología Nomachine NX

Instalación del cliente

Page 58: Guadalinex con colinux y Tecnología Nomachine NX

Instalación del cliente

Page 59: Guadalinex con colinux y Tecnología Nomachine NX

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á.

Page 60: Guadalinex con colinux y Tecnología Nomachine NX

Configuración del cliente

• Configuración del escritorio

Page 61: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 62: Guadalinex con colinux y Tecnología Nomachine NX

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:

Page 63: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 64: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 65: Guadalinex con colinux y Tecnología Nomachine NX

Configuración del cliente

• Servicios encapsulados:

Page 66: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 67: Guadalinex con colinux y Tecnología Nomachine NX

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.

Page 68: Guadalinex con colinux y Tecnología Nomachine NX

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