# Asistencia remota sin abrir puertos, ¿es posible?

## nandelbosc

Buenos dias,

ayer me llamo un compañero al que le instalé ubuntu (ya se que no es gentoo, pero para el tema nos sirve igualmente) diciendome que no podia instalar un programa con wine.

Al llegar vi que era un simple ejucatable de un par de megas que necesitaba muchas librerias de window$... le pregunté para que era y me contó que el departamento informatica de la empresa donde trabaja se lo envió para poder conectar-se remotamente.

Le dije que no era posible, ya que tendria que abrir puertos en el router, y tal, a lo que constestó muy seguro que no era necesario.

Es posible que exista una aplicación (para window$) la cual abre una conexión a un servidor y asi, éste puede conectar-se para dar asistencia remota?

De ser asi, existe algo para linux? 

Resumo... estoy buscando una aplicación la cual inicie una conexion, para asi ahorrar-se abrir puertos en el router y dar asistencia a los usuarios.

SALUDOS!

----------

## Stolz

Desconozco si existe pero desde luego es posible

----------

## nandelbosc

Gracias stolz.

Si crees que es posible, creo que seria muy interesante que si alguien conoce alguna aplicación nos lo cuente.

Me ahorraria muchos viajes y rapidez a la hora de solucionar pequeñas dudas a nuevos usuarios (sin experiencia en linux ni routers) de linux.

A ver si alguien da con la solución!!!

Saludos!

----------

## nandelbosc

Por cierto,

no me importa que sea con o sin entorno grafico, con eso me refiero que con tener la opción que el usuario "pinche" un icono, yo pueda inciar una sesión SSH me bastaria.

También es verdad que si es con entorno gráfico y el usuario puede ver lo que hago, seria la leche! (perdon por la expresión...   :Cool:   )

----------

## Stolz

 *nandelbosc wrote:*   

> Por cierto,
> 
> no me importa que sea con o sin entorno grafico, con eso me refiero que con tener la opción que el usuario "pinche" un icono, yo pueda inciar una sesión SSH me bastaria.
> 
> También es verdad que si es con entorno gráfico y el usuario puede ver lo que hago, seria la leche! (perdon por la expresión...    )

 

Si quieres usar ese hipotético programa para luego usar SSH para conectar a la máquina en la que está instalado el programa no resuelves el problema, ya que SSH sí requiere tener un puerto abierto para poder conectar. La única forma que se me ocurre de poder hacer lo que quieres es que el hipotético programa se encargue de todo, sin intervencion de otros que requieran puerto para conectar desde el exterior.

La forma de hacerlo que se me ocurre es simple: Tu programa se conecta a un servidor externo a la red, lee los comandos a ejecutar y los ejecuta. Así no tendrías que tener un puerto externo abierto a la escucha.

----------

## nandelbosc

 *Quote:*   

> Si quieres usar ese hipotético programa para luego usar SSH para conectar a la máquina en la que está instalado el programa no resuelves el problema, ya que SSH sí requiere tener un puerto abierto para poder conectar.
> 
> 

 

Solo era una idea, para hacer-lo facil...   :Embarassed: 

 *Quote:*   

>  La única forma que se me ocurre de poder hacer lo que quieres es que el hipotético programa se encargue de todo, sin intervencion de otros que requieran puerto para conectar desde el exterior.

 

Es exactamente lo que me gustaria

 *Quote:*   

> La forma de hacerlo que se me ocurre es simple: Tu programa se conecta a un servidor externo a la red, lee los comandos a ejecutar y los ejecuta. Así no tendrías que tener un puerto externo abierto a la escucha.

 

Simple para ti!   :Crying or Very sad:  a falta de conocimiento para llevar-lo a cabo, esperare a ver si alguien propone una solución.

Gracias!

----------

## Stolz

jaja, para mi tampoco es fácil. Con simple me refiero a la técnica, implementarlo ya es otra cosa.

----------

## gringo

 *Quote:*   

> estoy buscando una aplicación la cual inicie una conexion, para asi ahorrar-se abrir puertos en el router y dar asistencia a los usuarios

 

pues la verdad, yo creo que todo depende de si por medio hay algún cortafuegos, además de un router o proxy o lo que sea, y como estén configurado estos. 

Si p.ej. se aplica un política muy restrictiva al cortafuegos ( osea denegar todo salvo lo que el administrador diga) casi te puedo asegurar que el programa ese no vaya a funcionar. Igual con http-tunnel o alguna trampilla así cuela, pero ya digo, depende de lo que haya en medio del cliente y el servidor.

saluetes

----------

## nandelbosc

tienes razón gringo, pero quien tenga un firewall bien configurado, o es una empresa (con su departamento informatico) o un usuario avanzado. En los dos casos son capaces de abrir puertos o lo que haga falta.

Lo que estoy buscando está destinado a usuarios domesticos, con ADSL i un par de ordenadores en la red, sin muchas mas complicaciones   :Wink: 

----------

## 2uncas

Para windows existe www.logmein.com - hay otras -  tiene una versión gratis y no hay que hacer nada en los routers.

Para Linux, no he encontrado nada parecido, pero si alguien lo conoce pues sería de agradecer que lo pusiera.

Saludos.

----------

## JotaCE

hay un sistema que se llama inquiero no se muy bien como funciona pero el soporte es via web.

----------

## ekz

Pero la mayoría de las veces el puerto 80 se encuentra abierto, no bastaría con configurar SSH para que escuche en ese puerto?

Saludos!

----------

## nandelbosc

Acabo de perder unos minutos por la web de Inquiero ( http://www.ntrsupport.com/ ) y creo que se aleja mucho de lo que busco...

es propietario, de pago y por lo que entiendo tienes que conectar-te a su servidor... busco algo mas simple, para dar soporte a usuarios que nunca (nunca digas nunca!) me van a reportar ningun beneficio, aparte de la satisfacción de que usén linux!

gracias de todos modos!

----------

## nandelbosc

 *Quote:*   

> Pero la mayoría de las veces el puerto 80 se encuentra abierto, no bastaría con configurar SSH para que escuche en ese puerto?

 

A si? Pues no me he encontrado con nadie con router que tenga el puerto 80 abierto y apuntando al ordenador que toca...   :Wink: 

Parece buena, pero no es una opción...   :Crying or Very sad: 

----------

## Inodoro_Pereyra

 *2uncas wrote:*   

> Para windows existe www.logmein.com - hay otras -  tiene una versión gratis y no hay que hacer nada en los routers.
> 
> Para Linux, no he encontrado nada parecido, pero si alguien lo conoce pues sería de agradecer que lo pusiera.
> 
> Saludos.

 

Yo administro todos mis servidores, clientes que se conectan a estos servidores y algun que otro cliente remoto (por remoto me refiero a kilómetros de por medio) usando Hamachi de la gente de logmein que propone zuncas y SSH, VNC o Terminal Server dependiendo cada caso. Creo que es justo lo que estás necesitando. 

Es transversal a cualquier configuración NAT, osea, funciona sin mapear puertos en routers ni nada, traspasa firewalls a menos que como dice gringo, la política por defecto sea denegar todo y funciona tanto en windows como en linux. En linux tiene su versión consola como no podía ser de otra forma y su frontend, ambos están en portage.

Ademas de todo eso, la conexión va por una VPN centralizada y encriptada con un numero de IP virtual fijo, de forma de que no necesitás andar acordandote de cual es el numero de IP de tu cliente para poder conectarte si este tiene IP dinámico.

Si a eso le sumás VNC por ejemplo, que de nuevo corre sobre cualquier plataforma podrías hacer:

```
ssh root@numero_de_IP_hamachi_de_tu_cliente

root@tu_cliente ~ $ emerge x11-vnc

root@tu_cliente ~ $ x11-vnc -display :0
```

Luego en local abrir un segundo terminal y ejecutar:

```
USE="-server" emerge vnc

vncviewer numero_de_IP_hamachi_de_tu_cliente
```

La implementación que te acabo de mostrar es a título ilustrativo. Es totalmente insegura por que no le estamos protegiendo por contraseña el servidor VNC a tu cliente pero por otro lado, si solo corres el servidor cuando lo necesites, al desconectarse el cliente, se cierra el servidor.

Se pone mas interesante cuando agregas hamachi como servicio para que se ejecute siempre, y agregas tus numeros de IP hamachi al archivo hosts para no tener que recordar numeros y llamar a cada host por su nombre.

En definitiva, después de la rueda, el transistor y la crema de afeitar, hamachi es la mas grande invención del hombre hasta ahora, y es GRATIS!!!  :Very Happy: 

Espero que te sirva.

Salud!

----------

## Coghan

Solo está para windows este servidor vnc pero es posible que con los vnc de linux se pueda hacer algo similar.

Existe de ultravnc http://www.uvnc.com/pchelpware/sc/index.html esta implementación del server de vnc, en este caso creas en linea un servidor (que se ejecuta en la máquina a controlar) muy ligero y este es el que llama al cliente (del otro lado nosotros que queremos controlar la máquina remota). En nuestro lado solo hemos de lanzar el cliente a la escucha con el puerto que hemos asignado y abrir el puerto en nuestra máquina para que el servidor pueda llamarnos con el comando

```
vncviewer /listen 35557
```

La ventaja está que en la Pc remota no hay que instalar nada, solo le envias el ejecutable via email o http, etc, que no pesa nada, ni necesitas que del otro lado se abra ningún puerto.

- - - - - - - - - - - - - - 

EDITO: Se puede lanzar el cliente desde linux con el comando 

```
vncviewer -listen -encodings "hextile copyrect" 
```

 sacado del foro de ultravnc http://forum.ultravnc.info/viewtopic.php?t=5410&highlight=linux

----------

## nandelbosc

Pido mil disculpas 2uncas, se me habia pasado tu respuesta y parece ser la solución! Hamachi Rocks!!!   :Wink: 

Después de probar-lo unas tres milt veces!   :Rolling Eyes:   sin éxito lo dejaré... simpre me queda "unreachable".

Es possible que sea los firewalls de mi empresa. El fin de semana lo probaré en un ADSL normal y corrinte.

Gracias a todos!

----------

## 2uncas

 *Quote:*   

> 
> 
> Pido mil disculpas 2uncas, se me habia pasado tu respuesta y parece ser la solución! Hamachi Rocks!!! :wink:
> 
> 

 

No pasa nada :wink: 

saludos.

----------

## sag

Si mi memoria no me falla esto se puede hacer en linux, pero tiene que usar la version TightVnc de Linux, que fue de los que primero implemento esta funcionalidad(no me acuerdo si en la version estable esta). El funcionamiento de los parametro seria igual que la versión UVnc, lo malo es que con esta versión no se puede encriptar la comunicación aunque se con un simple rc4 que es lo que hace Uvnc.

Otra posivilidad seria instalar un repetido http://sourceforge.net/project/showfiles.php?group_id=63887 lo unico es que aqui si que hay que abrir puertos.

 *Coghan wrote:*   

> Solo está para windows este servidor vnc pero es posible que con los vnc de linux se pueda hacer algo similar.
> 
> Existe de ultravnc http://www.uvnc.com/pchelpware/sc/index.html esta implementación del server de vnc, en este caso creas en linea un servidor (que se ejecuta en la máquina a controlar) muy ligero y este es el que llama al cliente (del otro lado nosotros que queremos controlar la máquina remota). En nuestro lado solo hemos de lanzar el cliente a la escucha con el puerto que hemos asignado y abrir el puerto en nuestra máquina para que el servidor pueda llamarnos con el comando
> 
> ```
> ...

 

----------

## chumi

Buenas a todos....

Hace tiempo que leo el foro, aunque normalmente no contesto mucho (casi todas las dudas que me surgen están contestadas en otros mensajes, y soy demasiado 'torpe' para dar respuestas acertadas a las dudas de otros) pero en esta conversación creo que puedo aportar algo...

En realidad, a nivel de red, hay muy pocas cosas (alguien sabe alguna?) que se puedan realizar en windows (pagando) y no en linux...

Creo que el propio ssh puede realizar una conexión a la inversa: el cliente hace la conexión a tu máquina, tu  haces una conexión a lo que crees que es tu máquina y... voila, estás en la maquina del cliente. Consulta por ejemplo este enlace : http://linux.byexamples.com/archives/238/ssh-reverse-tunneling

Incluso si el cliente está detrás de un proxy que sólo permite http/htpps, puedes usar proxytunnel para crear un túnel de conexión desde el cliente a tu equipo.

Espero haber sido de ayuda...

Saludos!!

----------

## ZaPa

Hola.

Veamos, lo que tu estas buscando, yo lo he hexo hace varios años atrás.. y la técnica que utilizaba se llama "Reverse Shell"..

Si el equipo al que quieres conectar tiene firewall y no deja conectarse nada a esa máquina... porqué no hacemos que esa máquina a la que queremos conectarnos, se conecte a nuestra máquina? .

No recuerdo exáctamente como era, pero lo he utilizado varias veces y de verdad puedes 'evitar' firewalls y yo creo que es lo que necesitas.

Lo que si recuerdo es que utilizaba netcat y un backdoor que no recuerdo el nombre.

Busca info sobre reverse shell y postea cualquier novedad.

Actualizo:

He encontrado info al respecto, y creo que te va a venir de lujo  :Smile:  .

La info es de una revista de hack, y esta muy pero que muy bien explicado como funciona el tema... puedes bajar la revista en cuestion del siguiente enlace:

http://rapidshare.com/files/471262/Cuadernos_HackxCrack_Numero_8.rar

En dicha revista la explicación esta para windows xp pero puedes hacerlo tambien con linux ya que netcat también está disponible para linux o con telnet si lo prefieres...

PD: Hecharle un ojo a dicho numero de la revista... la 2º parte de reverse shell esta muy interesante.. reverse shell + emulando protocolo http entre victima-atacante. INTERESANTISIMO !

Saludos y espero que te haya servido de ayuda.

Avisanos de cualquier novedad.

----------

## sag

Buscando otra cosa me he he acordado de este post al ver una posible solución a lo que tu querías.

La solución se encuentra en UnixToolBox http://cb.vu/unixtoolbox.xhtml que creo que debería ser una lectura obligatoria para todos.

La solución consiste en crear tunel mediante Ssh pudiendo ser en ambos sentidos.

Posible solución -> http://http://cb.vu/unixtoolbox.xhtml#vpn

----------

## Coghan

Echándole una mano a una amiga que tiene Ubuntu en su portátil hicimos la prueba de hacer la conexión inversa por vnc:

Tener instalado net-misc/vnc con la USE="-server" si no queremos más que el cliente en nuestro equipo.

Tener x11-misc/x11vnc instalado en el equipo al que queremos acceder si es Gentoo o como en mi caso si es una Ubuntu le pido a mi amiga que lance: 

```
sudo apt-get install x11vnc
```

Desde mi gentoo lancé: 

```
vncviewer -listen 35775
```

 El puerto lo he elegido al azar.

En mi router abro el puerto 35775 y lo redirijo a mi equipo

No olvidarnos de permitir el acceso si tenemos iptables 

```
iptables -A INPUT -i eth0 -p tcp 35775 -j ACCEPT
```

Le indico a mi amiga que ejecute en consola el siguiente comando: 

```
x11vnc -connect <NUESTRA IP o DYNDNS>:35775
```

Y lo mejor fueron los comentarios de flipe de ella cuando veía como el ordenador se manejaba solo.

----------

## diegoto

Te comento, hay aplicaciones que utilizan UPNP para abrir puertos en los routers (siempre y cuando en el router tengas habilitada la parte de upnp).

----------

