Cómo configurar un servidor terminal en Linux usando Ubuntu 9.10 y FreeNX
Introducción
El paradigma del escritorio centralizado vuelve a cobrar fuerza: en lugar de cada equipo ejecutando todo localmente, un servidor potente puede servir escritorios remotos a clientes ligeros o equipos de sobremesa. FreeNX es una implementación de código abierto del servidor NX de NoMachine que combina buena calidad visual con bajo consumo de ancho de banda. Por defecto NX viaja sobre SSH, por lo que las conexiones se cifran.
Escenarios habituales:
- Acceso remoto seguro a puestos de trabajo internos desde una única puerta de enlace.
- Acceso a tu equipo doméstico desde un netbook o portátil con la experiencia completa del escritorio.
- Reutilizar equipos antiguos con el Linux Terminal Server Project (LTSP).
Importante: estas instrucciones funcionaron para el autor. La seguridad de red es compleja; aplica estas pautas con cuidado y responsabilidad.
Qué vas a necesitar
- Un equipo con Ubuntu 9.10 instalado y acceso administrativo (root / sudo).
- Conexión de red y posibilidad de asignar una IP fija en la subred deseada.
- Acceso al router para reenviar puertos si quieres conexiones desde fuera de tu red.
- Cliente NX (NoMachine) en el equipo remoto.
Concepto breve: SSH — protocolo seguro de acceso remoto que cifra tráfico; NX — protocolo que optimiza renderizado remoto sobre SSH.
Preparación del sistema (prerrequisitos)
Abre una terminal: Aplicaciones -> Accesorios -> Terminal. Sube a root:
sudo su -l
Instala los paquetes mínimos necesarios. openssh-server es requisito para FreeNX; fail2ban ayuda a bloquear intentos de fuerza bruta; firehol facilita la configuración del cortafuegos iptables:
aptitude update && aptitude install openssh-server fail2ban firehol
Prueba que el servidor SSH escucha localmente:
ssh 127.0.0.1
Verás la huella digital RSA y la pregunta sobre si continuar. Anota la huella si quieres compararla más tarde. Pulsa Ctrl+C para cancelar la conexión de prueba.
Deja la terminal abierta para pasos siguientes.
Configuración de red: IP estática
Como servidor accesible remotamente, conviene asignarle una IP estática. Si prefieres reservar una IP en tu servidor DHCP, eso también vale, pero aquí explicaremos la configuración local estática.
- Averigua la configuración actual de red:
ifconfig eth0
Anota inet addr (dirección IP), Bcast (broadcast) y Mask (máscara).
cat /etc/resolv.conf
Anota los servidores DNS (nameserver).
route
Anota la puerta de enlace junto a la línea que empieza por default.
- Edita el archivo de interfaces y cambia a estática (usa tus valores de red):
nano /etc/network/interfaces
Si aparece:
iface eth0 inet dhcp
cámbialo a:
iface eth0 inet static
Añade (sustituye por tus valores):
address 192.168.1.253
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 8.8.8.8, 8.8.4.4
Guarda (Ctrl+O) y sal (Ctrl+X).
Consejo: los DNS públicos de Google (8.8.8.8, 8.8.4.4) suelen ser rápidos y fáciles de recordar.
- Reinicia la red:
/etc/init.d/networking restart
Si todo va bien, prueba abrir Firefox y navegar.
Configuración básica del cortafuegos con FireHOL
Para este tutorial dejaremos abierto únicamente el puerto 22 (SSH) entrante y permitiremos salidas sin restricción. Ajusta según tus políticas de seguridad.
- Habilita FireHOL editando:
nano /etc/default/firehol
Cambia:
START_FIREHOL=NO
a:
START_FIREHOL=YES
- Actualiza la lista de direcciones reservadas:
get-iana
- Edita la configuración principal:
nano /etc/firehol/firehol
Al final del archivo añade:
server ssh accept
Guarda y arranca FireHOL:
firehol start
Deberías ver un mensaje similar a:
Activating new firewall (47 rules): OK
Comprueba las reglas actuales de iptables si lo deseas:
iptables --list
Nota: si prefieres reglas más estrictas (por ejemplo, limitar orígenes) inclúyelas aquí.
Instalación de FreeNX
FreeNX está disponible en una PPA para Ubuntu 9.10. Ejecuta:
add-apt-repository ppa:freenx-team
aptitude update
aptitude install freenx
/usr/lib/nx/nxsetup --install
Este último comando configura las claves y servicios de FreeNX en el servidor.
Si deseas reforzar la seguridad, genera claves personalizadas. Tendrás que distribuir la clave pública o el paquete de claves junto con el cliente NX a los usuarios autorizados.
Generar y gestionar claves (opcional pero recomendado si expuesto a Internet)
- La instalación crea claves por defecto. Para entornos internos eso suele bastar.
- Si el servidor va a ser accesible desde Internet, genera claves nuevas y distribúyelas a los clientes. Guarda una copia segura de esa clave.
Procedimiento de ejemplo (no sobrescribas si no sabes lo que haces):
# (comando ilustrativo; la herramienta puede variar según versión)
/usr/lib/nx/nxsetup --backup
/usr/lib/nx/nxsetup --generate
Sigue la documentación de FreeNX para importar claves en clientes.
Instalación del cliente NoMachine (NX Client)
Desde el equipo cliente, descarga e instala el cliente NX desde:
http://www.nomachine.com/download.php
Pasos rápidos en el cliente:
- Ejecuta el Asistente de Conexión NX.
- Pon un nombre a la sesión, escribe la IP del servidor y elige la velocidad de red (p. ej. LAN).
- Cambia el entorno de escritorio por defecto a GNOME si el servidor usa GNOME (Ubuntu 9.10 por defecto).
- Ajusta resolución de pantalla y demás opciones.
- Si has generado claves personalizadas, marca “Show the Advanced Configuration dialog” y, en Server > Key, importa la clave personalizada.
- Conéctate con tu usuario y contraseña.
La primera conexión solicitará verificar la huella RSA: compárala con la prueba SSH local realizada al principio. Si cambia en futuras conexiones, investiga antes de aceptar.
Administración de usuarios remotos
Para añadir usuarios que puedan conectarse:
Ve a System -> Administration -> Users and Groups y crea usuarios con contraseña.
Recuerda asignar permisos mínimos necesarios y separar cuentas administrativas.
Reenvío de puerto en router / acceso externo
Para acceder desde fuera de tu red local, reenvía el puerto TCP 22 del router hacia la IP del servidor. En entornos empresariales es preferible colocar un cortafuegos / bastión entre el servidor NX y la red interna.
Si expones SSH a Internet, sigue las recomendaciones de seguridad a continuación.
Seguridad y endurecimiento (recomendado)
Importante: este apartado contiene pasos que aumentan sustancialmente la seguridad si vas a exponer el servicio:
- Forzar autenticación por clave pública en SSH y deshabilitar contraseña para cuentas privilegiadas.
- Cambiar el puerto SSH por defecto (22) es una medida de reducción de ruido, no una defensa por sí sola.
- Habilitar fail2ban con reglas para SSH para bloquear IPs con demasiados intentos fallidos.
- Limitar usuarios que pueden iniciar sesión por SSH con AllowUsers o AllowGroups en /etc/ssh/sshd_config.
- Restringir inicios de sesión root: asegúrate de que PermitRootLogin no permita acceso por contraseña.
- Mantener actualizaciones de seguridad del sistema y revisar logs regularmente.
- Si usas claves personalizadas para NX, almacénalas y distribúyelas de forma segura.
Ejemplos y fragmentos útiles:
/ejemplo de configuración SSH (edita con cuidado):
# /etc/ssh/sshd_config (fragmento)
Port 22
PermitRootLogin no
PasswordAuthentication no
AllowUsers tuusuario1 tuusuario2
Reinicia SSH tras cambios:
/etc/init.d/ssh restart
Configurar fail2ban para SSH (resumen):
- Edita /etc/fail2ban/jail.local y añade una sección sshd con maxretry, bantime y findtime adecuados.
Ejecuta y comprueba:
service fail2ban restart
fail2ban-client status sshd
Registro y detección de intrusiones:
- Monitoriza /var/log/auth.log y los logs de FreeNX.
- Configura alertas por correo para bloqueos masivos.
Precaución: cambiar demasiadas variables sin pruebas puede dejar fuera a administradores. Prueba cambios en una ventana ya conectada antes de cerrar sesiones activas.
Privacidad y cumplimiento (notas generales)
Si el servidor maneja datos personales, aplica las normas de privacidad vigentes en tu jurisdicción (por ejemplo: minimiza la retención de logs, protege backups, controla acceso). Considera cifrar discos y tener políticas de gestión de cuentas y contraseñas.
No se dan instrucciones legales aquí; consulta a un responsable de cumplimiento o jurídico si tu uso es empresarial.
Solución de problemas común
- No se conecta el cliente: asegúrate de que SSH escucha y que el puerto 22 está abierto en el cortafuegos.
- Rechazo de clave SSH: compara la huella con la anotada en el paso de prueba.
- Lento o con artefactos: ajusta la calidad/compresión en el cliente NX, o comprueba ancho de banda y latencia.
- Usuarios que no inician sesión: revisa permisos de usuario y límites de recursos.
Comandos útiles para diagnóstico:
netstat -tulpen | grep :22
ps aux | grep nx
tail -f /var/log/auth.log
iptables --list
Alternativas y comparativa rápida
- xrdp: servidor RDP para Linux, compatible con clientes RDP nativos en Windows. Buena compatibilidad pero diferente rendimiento en altas latencias.
- VNC (tightvnc, tigervnc): simple y compatible, pero menos eficiente en ancho de banda que NX.
- NoMachine (versión propietaria actual): rendimiento excelente y más completo que FreeNX, pero con licencias/ediciones diversas.
Cuándo elegir FreeNX:
- Si buscas un equilibrio entre rendimiento y uso de ancho de banda, y quieres aprovechar SSH.
Cuándo no elegir FreeNX:
- Si necesitas compatibilidad directa con clientes RDP empresariales o integración estrecha con Active Directory sin configuraciones adicionales.
Checklist por roles
Administrador (despliegue inicial):
- Instalar Ubuntu 9.10 y acceder como root.
- Instalar openssh-server, fail2ban, firehol.
- Asignar IP estática y comprobar conectividad.
- Configurar FireHOL para abrir puerto 22.
- Instalar FreeNX y ejecutar /usr/lib/nx/nxsetup –install.
- Generar claves personalizadas si el servidor será público.
- Probar conexión local y desde un cliente.
- Documentar huellas RSA y distribuir claves seguras a clientes autorizados.
Usuario remoto (conexión):
- Instalar cliente NoMachine NX.
- Configurar sesión con IP del servidor y entorno GNOME si aplica.
- Importar clave personalizada si fue distribuida.
- Verificar huella RSA en la primera conexión.
Criterios de aceptación / pruebas (prueba mínima)
- Conexión SSH local responde y muestra la huella RSA.
- FireHOL deja acceder a puerto 22 y bloquea otros puertos entrantes.
- FreeNX está instalado y el servicio responde.
- Un cliente NX logra iniciar sesión y mostrar el escritorio GNOME del servidor.
- Las credenciales de usuario permiten iniciar sesión y ejecutar aplicaciones básicas.
Mantenimiento y buenas prácticas
- Mantén copias de seguridad de los archivos de configuración y de las claves Nx.
- Revisa y rota claves si hay sospecha de compromiso.
- Automatiza updates de seguridad y monitoriza logs.
Compatibilidad y migración (nota importante)
Ubuntu 9.10 es una versión antigua. Si trabajas en un entorno moderno, considera migrar a una versión soportada de Ubuntu o usar alternativas actuales de NX o NoMachine. FreeNX y repositorios PPA pueden variar su disponibilidad según la versión.
Mini-metodología de despliegue (rápida)
- Plan: definir IP, usuarios y alcance (interna / externa).
- Preparar: instalar OS y paquetes base.
- Asegurar: configurar SSH, fail2ban y cortafuegos.
- Instalar: FreeNX y generar/importar claves.
- Test: conectar cliente, validar huella y rendimiento.
- Documentar: guardar huellas, claves y procedimientos de recuperación.
Comparación resumida (ventajas / desventajas)
- FreeNX: buen rendimiento, cifrado SSH, ideal para redes con latencia moderada. Desventaja: PPA y soporte pueden variar.
- xrdp: interoperable con RDP; mejor si debes integrar con infraestructuras Windows. Menos eficiente sobre conexiones lentas.
- VNC: simple de configurar; peor uso de ancho de banda y menos seguro por defecto.
Anuncio corto (para ponerlo en tu intranet)
He montado un servidor terminal en Ubuntu 9.10 con FreeNX. Permite acceder al escritorio remoto de forma cifrada vía SSH desde clientes NoMachine. Ideal para acceder a equipos centrales desde portátiles o netbooks. Contacta con el administrador para cuentas y claves.
Enlaces y documentación adicional
- Ubuntu FreeNX Documentation
- Firehol
- Fail2ban
- NoMachine
Resumen final
Has configurado un servidor Ubuntu 9.10 como servidor NX con FreeNX, protegido por SSH y un cortafuegos mínimo. A partir de aquí puedes ajustar políticas de seguridad, crear usuarios y decidir si exponer el servicio desde fuera de la red. Antes de ponerlo en producción, aplica las medidas de endurecimiento y pruebas que hemos descrito.
Importante: si expones este servicio a Internet, prioriza la autenticación por clave y políticas de bloqueo (fail2ban), y considera usar una VPN o un bastión para mayor defensa.
Materiales similares

Descargar juegos en PS4 de forma remota

Ronggolawe: proteger sitios web del ransomware
Apaga tu Nest automáticamente cuando enfría

Apagar WiFi al conectar Ethernet en Windows

Foto de perfil personalizada en Netflix
