SlideShare une entreprise Scribd logo
1  sur  68
Télécharger pour lire hors ligne
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=quot;Microsoft Windows XP Professionalquot; /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=quot;SiteUrlquot; VALUE=quot;http://webserverquot;> 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=quot;progressbarquot; VALUE=quot;truequot;>
    − Para personalizar los mensajes durante la inicialización del applet:
        •   <PARAM NAME=quot;boxmessagequot; VALUE=quot;Please wait while Java applet loads...quot;>
    − Redirección a la página de inicio:
        •   <PARAM NAME=quot;RedirectUrlquot; VALUE=quot;http://freenx.cica.es/plugin/Java/nxapplet.htmlquot;>
    − Nombre del fichero de sesión:
        •   <PARAM NAME=quot;SessionUrlquot; VALUE=quot;/plugin/Java/session/session.nxsquot;>
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 quot;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

Contenu connexe

En vedette

En vedette (9)

Gdg 2013
Gdg 2013Gdg 2013
Gdg 2013
 
9/9 Curso JEE5, Soa, Web Services, ESB y XML
9/9 Curso JEE5, Soa, Web Services, ESB y XML9/9 Curso JEE5, Soa, Web Services, ESB y XML
9/9 Curso JEE5, Soa, Web Services, ESB y XML
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Estampas De Colombia
Estampas De ColombiaEstampas De Colombia
Estampas De Colombia
 
Ebe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nubeEbe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nube
 
Redes lan2 : instrucción 1/2006 de la Junta de Andalucía
Redes lan2 : instrucción 1/2006 de la Junta de AndalucíaRedes lan2 : instrucción 1/2006 de la Junta de Andalucía
Redes lan2 : instrucción 1/2006 de la Junta de Andalucía
 
5/9 Curso JEE5, Soa, Web Services, ESB y XML
5/9 Curso JEE5, Soa, Web Services, ESB y XML5/9 Curso JEE5, Soa, Web Services, ESB y XML
5/9 Curso JEE5, Soa, Web Services, ESB y XML
 
3/9 soa y web services
3/9 soa y web services3/9 soa y web services
3/9 soa y web services
 
Eclesiologia 4 Igl Sacramental
Eclesiologia 4 Igl SacramentalEclesiologia 4 Igl Sacramental
Eclesiologia 4 Igl Sacramental
 

Similaire à Guadalinex con colinux y Tecnología Nomachine NX

Capitulo 1
Capitulo 1Capitulo 1
Capitulo 1ULEAM
 
Linux Kernel - System Calls - Modules - Drivers
Linux Kernel - System Calls - Modules - DriversLinux Kernel - System Calls - Modules - Drivers
Linux Kernel - System Calls - Modules - DriversMartin Baez
 
Hyper-V en Windows 2008 R2 Interoperativilidad en Linux
Hyper-V en Windows 2008 R2 Interoperativilidad en LinuxHyper-V en Windows 2008 R2 Interoperativilidad en Linux
Hyper-V en Windows 2008 R2 Interoperativilidad en LinuxDiego Gancedo
 
Configuracion de Firewalls e Pasarelas
Configuracion de Firewalls e PasarelasConfiguracion de Firewalls e Pasarelas
Configuracion de Firewalls e PasarelasMiguel Morales
 
Virtualización Hyper-V R2
Virtualización Hyper-V R2Virtualización Hyper-V R2
Virtualización Hyper-V R2ITSanchez
 
Rails Against The Machine
Rails Against The MachineRails Against The Machine
Rails Against The Machineguestae6a05
 
Arquitectura sistemas operativos
Arquitectura sistemas operativosArquitectura sistemas operativos
Arquitectura sistemas operativosvichesito85
 
Jornadas Microsoft Virtualizacion
Jornadas Microsoft  VirtualizacionJornadas Microsoft  Virtualizacion
Jornadas Microsoft VirtualizacionITSanchez
 
Introducción a OpenSolaris y ZFS
Introducción a OpenSolaris y ZFSIntroducción a OpenSolaris y ZFS
Introducción a OpenSolaris y ZFSjuandanielp
 
Webcast hyperv trabajando con discos de red
Webcast   hyperv trabajando con discos de redWebcast   hyperv trabajando con discos de red
Webcast hyperv trabajando con discos de redITSanchez
 
Terminología técnica informática
Terminología técnica informáticaTerminología técnica informática
Terminología técnica informáticaanlisila
 
Terminología técnica informática
Terminología técnica informáticaTerminología técnica informática
Terminología técnica informáticaanlisila
 
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]RootedCON
 

Similaire à Guadalinex con colinux y Tecnología Nomachine NX (20)

Workshop reversing
Workshop reversingWorkshop reversing
Workshop reversing
 
El cpu
El cpuEl cpu
El cpu
 
Capitulo 1
Capitulo 1Capitulo 1
Capitulo 1
 
Linux Kernel - System Calls - Modules - Drivers
Linux Kernel - System Calls - Modules - DriversLinux Kernel - System Calls - Modules - Drivers
Linux Kernel - System Calls - Modules - Drivers
 
Virtualización de GNU/Linux Debian con Xen
Virtualización de GNU/Linux Debian con XenVirtualización de GNU/Linux Debian con Xen
Virtualización de GNU/Linux Debian con Xen
 
Hyper-V en Windows 2008 R2 Interoperativilidad en Linux
Hyper-V en Windows 2008 R2 Interoperativilidad en LinuxHyper-V en Windows 2008 R2 Interoperativilidad en Linux
Hyper-V en Windows 2008 R2 Interoperativilidad en Linux
 
Configuracion de Firewalls e Pasarelas
Configuracion de Firewalls e PasarelasConfiguracion de Firewalls e Pasarelas
Configuracion de Firewalls e Pasarelas
 
Virtualización Hyper-V R2
Virtualización Hyper-V R2Virtualización Hyper-V R2
Virtualización Hyper-V R2
 
Rails Against The Machine
Rails Against The MachineRails Against The Machine
Rails Against The Machine
 
Arquitectura sistemas operativos
Arquitectura sistemas operativosArquitectura sistemas operativos
Arquitectura sistemas operativos
 
Jornadas Microsoft Virtualizacion
Jornadas Microsoft  VirtualizacionJornadas Microsoft  Virtualizacion
Jornadas Microsoft Virtualizacion
 
Sistemas
SistemasSistemas
Sistemas
 
Sistemas
SistemasSistemas
Sistemas
 
Introducción a OpenSolaris y ZFS
Introducción a OpenSolaris y ZFSIntroducción a OpenSolaris y ZFS
Introducción a OpenSolaris y ZFS
 
Webcast hyperv trabajando con discos de red
Webcast   hyperv trabajando con discos de redWebcast   hyperv trabajando con discos de red
Webcast hyperv trabajando con discos de red
 
Terminología técnica informática
Terminología técnica informáticaTerminología técnica informática
Terminología técnica informática
 
Terminología técnica informática
Terminología técnica informáticaTerminología técnica informática
Terminología técnica informática
 
Sistema de colas Condor en CICA
Sistema de colas Condor en CICASistema de colas Condor en CICA
Sistema de colas Condor en CICA
 
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
 
Sistemas operativos ligeros
Sistemas operativos ligerosSistemas operativos ligeros
Sistemas operativos ligeros
 

Plus de Juan Carlos Rubio Pineda

Plus de Juan Carlos Rubio Pineda (15)

Anexo seguridad tic-centrorespaldo
Anexo seguridad tic-centrorespaldoAnexo seguridad tic-centrorespaldo
Anexo seguridad tic-centrorespaldo
 
Continuidad de sistemas
Continuidad de sistemasContinuidad de sistemas
Continuidad de sistemas
 
Redes lan1: cableado (orden 25/9/2007)
Redes lan1: cableado (orden 25/9/2007)Redes lan1: cableado (orden 25/9/2007)
Redes lan1: cableado (orden 25/9/2007)
 
Zentyal curso-ja
Zentyal curso-jaZentyal curso-ja
Zentyal curso-ja
 
Supercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
Supercomputación y Cloud computing en CICA. Jornadas Universidad de HuelvaSupercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
Supercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
 
Seminario metodologías agiles bloque II
Seminario metodologías agiles bloque IISeminario metodologías agiles bloque II
Seminario metodologías agiles bloque II
 
Seminario de metodologías ágiles, bloque I
Seminario de metodologías ágiles, bloque ISeminario de metodologías ágiles, bloque I
Seminario de metodologías ágiles, bloque I
 
8/9 Curso JEE5, Soa, Web Services, ESB y XML
8/9 Curso JEE5, Soa, Web Services, ESB y XML8/9 Curso JEE5, Soa, Web Services, ESB y XML
8/9 Curso JEE5, Soa, Web Services, ESB y XML
 
7/9 Curso JEE5, Soa, Web Services, ESB y XML
7/9 Curso JEE5, Soa, Web Services, ESB y XML7/9 Curso JEE5, Soa, Web Services, ESB y XML
7/9 Curso JEE5, Soa, Web Services, ESB y XML
 
6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XML6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XML
 
4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML
 
2/9 Curso JEE5, Soa, Web Services, ESB y XML
2/9 Curso JEE5, Soa, Web Services, ESB y XML2/9 Curso JEE5, Soa, Web Services, ESB y XML
2/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Curso Ejb3
Curso Ejb3Curso Ejb3
Curso Ejb3
 
Exportador S I C A C V N 1
Exportador S I C A  C V N 1Exportador S I C A  C V N 1
Exportador S I C A C V N 1
 

Dernier

Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 

Dernier (20)

Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 

Guadalinex con colinux y Tecnología Nomachine NX

  • 1. 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/
  • 2. COLINUX • ¿Cómo funciona? • ¿En qué estado está la versión que tenemos ahora disponible? • Problemas y soluciones. • Usos y aplicaciones
  • 3. 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.
  • 4. 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
  • 5. 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.
  • 6. 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..
  • 7. COLINUX • Resumen del canal de paso de páginas (4KB)
  • 8. 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
  • 9. 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
  • 10. 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.
  • 11. 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.
  • 12. 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=quot;Microsoft Windows XP Professionalquot; /noexecute=Optln /fastdetect • Corrección: cambiamos Optln por AlwaysOff /NOPAE
  • 13. 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.
  • 14. 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.
  • 15. 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.
  • 16. 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.
  • 17. 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.
  • 18. 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.
  • 20. NOMACHINE NX / FREENX
  • 21. 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.
  • 22. 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
  • 23. 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.
  • 24. 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.
  • 25. 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.
  • 26. 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.
  • 27. 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
  • 28. 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).
  • 29. Introd. a la tecnología • Gráfica de funcionamiento:
  • 30. 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.
  • 31. 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.
  • 32. 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.
  • 33. 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.
  • 34. 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.
  • 35. 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
  • 36. Componentes NX • Configuración del archivo de nxapplet.html de nxplugin − Buscamos la linea que contenga: <PARAM NAME=quot;SiteUrlquot; VALUE=quot;http://webserverquot;> 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=quot;progressbarquot; VALUE=quot;truequot;> − Para personalizar los mensajes durante la inicialización del applet: • <PARAM NAME=quot;boxmessagequot; VALUE=quot;Please wait while Java applet loads...quot;> − Redirección a la página de inicio: • <PARAM NAME=quot;RedirectUrlquot; VALUE=quot;http://freenx.cica.es/plugin/Java/nxapplet.htmlquot;> − Nombre del fichero de sesión: • <PARAM NAME=quot;SessionUrlquot; VALUE=quot;/plugin/Java/session/session.nxsquot;>
  • 38. 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.
  • 39. 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.
  • 40. Ejemplos de configuración Nomachine NX node.cfg FREENX node.conf
  • 41. 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
  • 42. 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á.
  • 43. 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.
  • 44. 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]
  • 45. 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
  • 46. 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:
  • 47. 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...
  • 48. Uso de claves propias en FREENX • Pinchamos en el botón KEY
  • 49. Uso de claves propias en FREENX • Se abre el cuadro para el import:
  • 50. Uso de claves propias en FREENX • Buscamos el fichero con la clave:
  • 51. Uso de claves propias en FREENX • Una vez aplicados los cambios, podremos logarnos en el servidor:
  • 52. 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.
  • 59. 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á.
  • 60. Configuración del cliente • Configuración del escritorio
  • 61. 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.
  • 62. 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:
  • 63. 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.
  • 64. 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.
  • 65. Configuración del cliente • Servicios encapsulados:
  • 66. 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.
  • 67. 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 quot;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.
  • 68. 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