jump to navigation

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

Posted by bushwaca in Acceso Remoto, Linux, Ubuntu.
Tags: , , , , ,
trackback
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.

About these ads

Comentarios»

1. Juanpa - 5 julio 2009

Muy bien explicado gracias

bushwaca - 5 julio 2009

Me alegro de que te fue util.

Saludos y gracias por el comentario.

2. cristian - 9 septiembre 2009

hola, esta muy bueno el post, pero tengo un inconveniente, loguea por que no se cual es el usuario por defecto, y la pass

bushwaca - 9 septiembre 2009

No entiendo tu consulta. Si logueas es porque estas dentro de la pc… como es que no tienes el usuario y la pass?

Si te da la opcion para loguearte y no puedes hacerlo revisa esto:
En la parte que dice “AllowUsers juanma amigo@201.180.241.21 nx” (que es el punto 3) juanmma es un usuario ya existente de esa pc que hace de servidor. Es decir que si yo me siento delante de esa pc, para poder ingresar al SO uso al usuario juanma para loguearme. Seguramnete tu te loguearas con otro nombre de usuario, por eso cambia juanma por TU usuario del servidor o cualquiera que exista en el (los permisos que tengas al ingresar por ssh dependeran de los privilegios que tenga ese usuario). Es decir que agregue al paramentro “AllowUsers” un usuario que ya existia en la pc que hace de servidor. Tu debes hacer lo mismo.

Ahora para loguearme con ssh uso ese usuario es decir juanma y como pass uso la pass del usuario juanma, la misma con la que me logueo al SO.

Espero que ayude esto.
Saludos.

3. Sergi - 20 octubre 2009

Buenas compañero,

Primero de todo felicitarte por tu blog y por el articulo.
Lo he seguido paso a paso y he logrado instalar el nx. El problema viene al conectarse. Me devuelve el siguiente error:

NX> 203 NXSSH running with pid: 10242
NX> 285 Enabling check on switch command
NX> 285 Enabling skip of SSH config files
NX> 285 Setting the preferred NX options
NX> 200 Connected to address: 95.17.59.9 on port: 22
NX> 211 The authenticity of host ‘userXXX.dyndns.org (IPXXX)’ can’t be established.
RSA key fingerprint is 92:ba:a3:c9:f1:d8:9b:b8:cd:79:31:….XXX.
Are you sure you want to continue connecting (yes/no)?
Failed to add the host to the list of known hosts (/home/userXXX/.ssh/known_hosts).
NX> 202 Authenticating user: nx
NX> 204 Authentication failed.

Sabes que es lo que estoy haciendo mal ? Muchas gracias por tu ayuda y tu aportación a la comunidad.

bushwaca - 21 octubre 2009

Uff bueno… es dificil esto sin la pc en al mano por el hecho de que no sigo exactamente tu configuracion pero por el mensaje podemos decir esto.

1) Nx intenta conectarse a la ip 95.17.59.9 por el puerto 22. Fijate si le cambiaste el puerto a ssh o lo dejaste como va por defecto, de ser asi arreglalo.
2) Esta intentando conectarse a un dominio llamado “userXXX.dyndns.org” pero no puede conectarse. Tienes abrierto los puertos de tu router? Digamos…. si ssh se conecta por el puerto 45 abre ese puerto en tu router. Tambien tienes que haber sincronizado tu dominio de dyndns con la ip de tu router antes.
3) El usuario nx intenta autenticarse pero no puede. Agregaste al servidor al usuario nx en la configuracion de ssh? De no ser asi agregalo.
4) Cuando te dice “Failed to add the host to the list of known hosts (/home/userXXX/.ssh/known_hosts)” es un problema de la llave publica. En realidad eso puede ser un problema de ssh que en el post de ssh lo explico.

Como recomendacion:
Lo mejor es primero conectarse por lan para ver de que todo funciona bien.
Para ir paso por paso y no sufrir muchos problemas podrias intentar primero intentar hacer la guia de ssh para ver si algo no va bien. Por las dudas aqui la guia.

Saludos y cualquier cosa me consultas.

4. Jose A. Martínez - 13 marzo 2011

Gracias por el tutorial. Por favor puedes resolverme la siguiente duda?
He configurado todo tal como lo explicas, el NX, el SSH… de hecho conecto ok con Putty y con SSH FTP pero con NX intenta conectar y me sale el siguiente error: “The remote proxy closed the connection while negotiating the session. This may be due to the wrong authentication credentials passed to the server” y ya se me acabaron las ideas… ¿una ayudita…? Gracias

bushwaca - 14 marzo 2011

Bien.. un par de cositas:

a) Debido a problemas tecnicos no podre ayudarte mucho por el momento pero te dire un par de cosas para que te entretengas mientras.

El problema tecnico es que ando sin internet, debo reinstalar mi Debian y volverlo a configurar completamente desde cero aunque esto ultimo puede ser una ventaja en este caso. Sin dos PCs disponibles es casi imposible y hacer todo esto desde el trabajo es mas que dificil.

Una vez que haga esto te doy una mano mas precisa siguiendo este tuto y viendo si me da algun problema similar al que tienes.

b) Por ssh te conectas al servidor sin problemas?

c) “This may be due to the wrong authentication credentials passed to the server”

1 – Puede que sea un temita de la llave o de una incorrecta configuracion de ssh….
2 – Agregaste “AuthorizedKeysFile”?
3- En “AllowUsers” agregaste el usuario con el que te quieres conectar y este es un usuario ya existente del sistema?
4 – Los puertos estan correctos? Es decir… son los mismos que tienes configurados en ssh?
5 – El protocolo de autenticacion de ssh esta en 2?
6 – No se como tienes configurado ssh, pero yo sigo estos pasos.

Suerte con eso.

5. Jose A. MArtinez - 14 marzo 2011

Este proyecto es el mismo que FreeNX?

Gracias.

bushwaca - 14 marzo 2011

No, no es el mismo proyecto pero de alguna manera es lo mismo. Segun tengo entendido antes era un solo proyecto y luego se dividivieron.

Las web oficiales:
FreeNX
NoMachine

Saludos y suerte.

6. José A. Martínez - 14 marzo 2011

[Solucionado]
Ya tengo solucionado el acceso, el tutorial es correcto al 100%, el problema es que lo estaba instalando como “root” y luego tenía problemas de permisos. Hay que instalarlo como usuario con derechos administrativos, pero nunca como root.
Saludos a toda/os…

bushwaca - 15 marzo 2011

Me alegro entonces de que ya te funciona.

PD: Creo que se puede tambien como root, pero debes cambiar algunas cosas en la configuracion pero igualmente no es recomendable.

Saludos y suerte.

7. odalinto - 16 marzo 2011

gracias!
excelente guia, pude instalar y hacer funcionar
todo siendo nuevo en linux.

sds

bushwaca - 16 marzo 2011

Me alegro de que asi sea, me deja tranquilo de que se entiende entonces.

Saludos y gracias por comentar.

8. omar - 2 noviembre 2011

una ves que ingresas el equipo remoto hay forma de que quede un registro con la dirección ip usuario etc del equipo donde se conecto

bushwaca - 9 noviembre 2011

Mmm no se si es una consulta o una afirmacion. De ser una consulta, solo te dire que no olvides que en realidad estamos haciendo un accceso remoto mediante ssh, con lo cual, con mirar los logs del servidor de ssh ……

Saludos y suerte con eso.


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: