jump to navigation

NoMachine (NX, FreeNX) – Acceso remoto en Ubuntu desde internet 4 septiembre 2008

Posted by bushwaca in Acceso Remoto, Linux, Ubuntu.
Tags: , , , , ,
16 comments
NX

NoMachine

NX nos permite acceder de manera remota y de manera visual como VNC pero con la diferencia de que es mas veloz y que lo hace a traves de SSH, lo cual lo hace mucho mas seguro. Otra gran diferencia es que accedemos a una nueva sesion en nuestro servidor por defecto (si queremos podemos hacerlo con la que esta en ejecucion con la opcion «shadow»), no como VNC en el cual accedemos a la sesion que se esta ejecutando, lo cual es otro punto a favor en cuanto a seguridad (tal vez en VNC se pueda tambien, eso no lo se). Es multiplataforma y altamente configurable. Si tu idea es controlar una PC de forma grafica en una LAN o desde internet esta es tu aplicacion.

NX es un programa informatico que realiza conexiones remotas X11 muy rapidas, lo que permite a los usuarios acceder a escritorios remotos incluso bajo conexiones lentas como las realizadas con modem.
NX realiza una compresion directa del protocolo X11, lo que permite una mayor eficiencia que VNC. La informacion se envia mediante SSH, por lo que toda la informacion que se intercambian servidor y cliente esta cifrada.
NX esta desarrollado por la empresa italiana NoMachine, que ha liberado el codigo. Existe una implementación libre de esta aplicación, llamada FreeNX.

Comencemos:

1 – Instalar SSH

Para poder usar NX deben tener instalado SSH en su servidor y cliente. SSH y OpenSSH-Server estan en los repos, pero si no saben como hacerlo pueden mirar aqui que explico como instalarlo y configurarlo (tambien explico como configurar el router por si quieren conectarse no solo desde su LAN). El link es de una entrada anterior de este blog y creo que esta bastante completo.

2 – Descargar el servidor

Descargan los paquetes de NX Free Edition for Linux desde la pagina de NoMachine NX . Ahi descargan los 3 paquetes «.deb» y los instalan en su servidor en la ruta «/usr/NX». Para hacerlo, primero los descargan, los mueven a su carpeta «/home/usuario» (usuario es el nombre de su usuario), abren una consola y ponen:

sudo dpkg -i nxclient_3.2.0-14_i386.deb
sudo dpkg -i nxnode_3.2.0-13_i386.deb
sudo dpkg -i nxserver_3.2.0-16_i386.deb

3 – Configurar el servidor

Deben hacer unos cambio en la configuracion de SSH del servidor. Para ello pongan en consola:
sudo gedit /etc/ssh/sshd_config

En «AllowUsers» agreguen «nx». Con esto estamos agregando como usuario a «nx». Tanto el usuario «nx» como el usuario mediante el cual accederan a su sesion deben estar, de otra manera no podran acceder a su servidor, lo que quedaria algo asi por poner un ejemplo:

AllowUsers juanma amigo@201.180.241.21 nx

Y agreguen al final de todo el archivo la linea:
AuthorizedKeysFile /usr/NX/home/nx/.ssh/authorized_keys2

Reiniciamos ssh con:
sudo /etc/init.d/ssh restart

Comprobamos que todo funciona bien poniendo en consola:
sudo /usr/NX/bin/nxserver --status

Si va bien nos dira algo como esto:
NX> 900 Connecting to server …
NX> 110 NX Server is running.
NX> 999 Bye.

Si no nos sale esto del todo bien, no se preocupen… seguro es un problema de puertos. Lo mejor es que sigan leyendo.

4 – Configurar puertos del servidor

Si es que seguiste mi guia de SSH o eres un usuario paranoico de la seguridad seguramente cambiaste los puertos que trae por defecto SSH. Si lo hiciste hay que hacer unas ligeras modificaciones en los archivos node.cfg y server.cfg del NX, de lo contrario sigue con el otro punto. Si bien NX toma la configuracion de SSH debemos darle una manito para que lo haga bien:

a) Editamos el archivo server.cfg poniendo en consola
sudo gedit /usr/NX/etc/server.cfg

Ahi buscamos las lineas donde dice «SSHDPort» y «SSHAuthPort» y ponemos el puerto que configuramos para SSH y descomentamos la linea borrando el simbolo «#», lo que quedaria algo asi:

SSHDPort= "4564"
SSHAuthPort = "4564"

Guardamos y salimos del editor

b) Editamos el archivo node.cfg poniendo en consola
sudo gedit /usr/NX/etc/node.cfg

Ahi buscamos las lineas donde dice «SSHDPort» y ponemos el puerto que configuramos para SSH (que es el mismo que pusimos en server.cfg) y descomentamos la linea borrando el simbolo «#», lo que quedaria algo asi:

SSHDPort= "4564"

Guardamos y salimos del editor

c) Reiniciamos el servidor con:
sudo /etc/init.d/ssh restart

sudo /usr/NX/bin/nxserver --restart

5 – Instalar el cliente

Ahora vamos a la PC con la cual accederemos al servidor (cliente) y le instalamos el cliente de NX Free. Para ello o usamos el mismo que descargamos anteriormente (solo el paquete cliente) o lo hacemos nuevamente de la pagina de NoMachine NX . Desde la web oficial descargan solo el cliente de exactamente del mismo lugar que antes (antes descargamos el cliente, node y server) y lo instalan.

Pueden descargarlo, lo mueven a su carpeta «/home/usuario» (usuario es el nombre de su usuario), abren una consola y ponen sudo dpkg -i nxclient_3.2.0-14_i386.deb o cuando le dan click para descargar, en vez de descargar ponen abrir y listo.

6 – Configurar cliente

Para configurar el cliente vamos a «Aplicaciones» – «Internet» – «NXClient for Linux» – «NX Connection Wizard». Ahi podemos accederemos a un Wizard donde podemos configurar los equipos remotos a los que queremos acceder.
Para configurarlo, debemos dar un nombre de sesion («Mi conexion a casa»), en «Host» ponemos la IP (o el dominio DynDns si consiguramos nuestro router) del equipo remoto, en «Port» especificamos el puerto con el que se conectara (por defecto esta el «22») . Luego especificamos el escritorio que usa el equipo (Gnome o KDE por ejemplo) y si queremos podemos darle incluso el tamaño a la ventana de nuestra sesion remota y ya estariamos.
El equipo remoto debe tener instalado tanto NXFree Server como el servidor SSH y ser accesible (pertenecer a nuestra VPN). Con este asistente podemos definir el acceso a tantos equipos como queramos.

7 – Conectarnos

Cada vez que nos queremos conectar vamos a «Aplicaciones» – «Internet» – «NXClient for Linux» – «NX Client For Linux», ponemos el usuario y password del equipo remoto y ya estariamos dentro de ese PC.

Es posible que la primera vez que queramos conectarnos no podamos hacerlo si lo hacemos desde internet, eso es porque puede que tengamos algun problema para obtener la llave publica. Por eso que lo recomendable es que lo hagamos desde la LAN la primera vez.

Aca les pongo una captura:

NXCaptura

Bueno, hasta al prox y espero que no sea para acceso remoto ajaja.