Usuario :
Clave :
[ Recuperar mi clave ] [ Crear una cuenta ]
Jonathan Makuc, Universidad Diego Portales
  Suscripción   RSS







Tunel Reveso SSH en Linux
Por Jonathan Makuc, última modifiación: 08 de Junio de 2009 10:54, leído 8843 veces.
Tags: Manuales
   

Alguna vez se ha preguntado usted "Sera posible entrar a mi computador de la oficina por SSH aun cuando existe un firewall que me lo impide?". Pues si, es posible.

La respuesta se encuentra en la magia del modificador -R del comando ssh de linux.

ssh -RpuertoExterno:hostInterno:puertoInterno usuario@pc_externo

Un simple ejemplo es:

usuario@interno$ ssh -R10022:localhost:22 usuario@pc_externo

Esto abrira el puerto 10022 en el pc_externo el cual dirige el trafijo al puerto 22 de interno. Luego para poder acceder al computador interno, podemos hacer desde el pc_externo el siguiente comando:

usuario@interno$ ssh -p10022 usuario@localhost

Esto abrirá una conexion ssh que tendra como destino el puerto 22 del equipo interno.

 

A continuacion veremos diferentes casos de filtraje de conexiones que suelen darse en empresas o universidades, y como se puede obtener control de nuestra maquina en el interior en cada circunstancia.

En cada ejemplo utilizaremos los siguientes valores, para simplificar la explicación:

- Puerto SSH de la maquina interna: 22
- Puerto Web: 80
- Puerto Web SSL (HTTPS): 443
- Nombre del equipo en la empresa/universidad: interno
- Nombre del equipo en el exterior: externo
- Puerto redirigido en el exterior al interior: 10022

Se asume se tiene un computador en el exterior con servicio SSH abierto en el puerto 22.

CASO 1: Firewall filtra conexiones entrantes
Este el caso mas simple, basta utilizar el comando ssh -R

usuario@interno$ ssh -R10022:localhost:22 usuario@externo 

Esto abrirá el puerto 10022 en el pc_externo el cual dirige el tráfijo al puerto 22 de interno. Luego para poder acceder al computador interno, podemos hacer desde el pc_externo el siguiente comando:

usuario@interno$ ssh -p10022 usuario@localhost

Esto abrirá una conexión ssh que tendra como destino el puerto 22 del equipo interno.

 

CASO 2: Firewall filtra conexiones entrantes y salientes a puertos que no sean WEB
En esta situación debemos utilizar un puerto web para establecer la conexión hacia el computador externo. La mejor opción es el puerto 443, dado que el firewall debe redirigir la conexión original hacia el servidor destino sin tocarla, de manera que pueda establecerse la sessión segura entre ambas máquinas.

Como tenemos nuestro computador externo con el servicio SSH en el puerto 22, debemos configurarlo para que también escuche en el puerto 443. Simplemente editemos el archivo de configuración del demonio ssh sshd_config que en las distribuciones en base Debian se encuentra en /etc/ssh/sshd_config. Agregemos la linea:

Port 443

Reiniciemos el servicio y listo.

Luego el comando de conexión hacia el computador externo sería:

usuario@interno$ ssh -p443 -R10022:localhost:22 usuario@externo

Esto intentará la conexion hacia externo en el puerto 443, y abrirá el puerto 10022 en el pc_externo el cual dirige el trafijo al puerto 22 de interno. El comando de conexión hacia el interior es identico al caso 1.

 

CASO 3: Proxy de conexión saliente
Esta situación es la más compleja, dado que requiere configuración adicional tanto en el computador externo como el interno.

Primero se debe configurar al servicio SSH en externo para que escuche al puerto 443, como se muestra en el paso 2.

A continuación se debe instalar corkscrew, software que permite tunelear conexiones TCP a través de proxies. Lo utilizaremos para engañar al proxy utilizando el puerto 443, haciéndole pensar que queremos acceder a una página web segura, cuando la verdad estamos iniciando una conexión ssh en ese puerto.

Para instalar corkscrew puede seguir el link arriba o en distribuciones basadas en Debian hacer:

apt-get install corkscrew

A continuación debemos configurar el ssh saliente de interno para que utilize corkscrew. Para esto creemos un archivo de configuracion especial en $HOME/.ssh donde colocaremos los parametros de corkscrew.

ProxyCommand /usr/bin/corkscrew HOST_PROXY PUERTO_PROXY %h %p

HOST_PROXY = Nombre del servidor o IP del proxy
PUERTO_PROXY = Puerto del servicio proxy. Usualmente 8080
%h = Host destino SSH, reemplazado en el momento del comando
%p = Puert destino SSH, reemplazado en el momento del comando

Ejemplo archivo $HOME/.ssh/configuracionCorkscrew:

ProxyCommand /usr/bin/corkscrew proxy.miempresa.com 8080 %h %p

Finalmente para iniciar la conexion ssh, con puerto reverso, utilizando corkscrew para disfrazar la conexión TCP, queda más o menos así:

ssh -p443 -F $HOME/.ssh/configuracionCorkscrew  -R10022:localhost:22 usuario@externo

El acceso al computador desde el exterior es analogo al paso 1.

 

Enjoy!




Comentarios

  Página 1 de 2 Avanzar >
Vrxoewua @ 14 de Diciembre de 2010 11:27
twtoijox 71232 pjoeydyz 090 jkkwnfxx %D ppbgvmgj :OO xmugmcks 80221
vMeESuXZzabdKuwf @ 15 de Diciembre de 2010 20:28
florida shipped tramadol @ 17 de Diciembre de 2010 10:29
buy tramadol 50mg 1246
XnbVlVbTRWU @ 17 de Diciembre de 2010 20:35
n20Yqn rrvebhutybhk, [url=http://oeqdkurzbond.com/]oeqdkurzbond[/url], [link=http://apxcalxbxscl.com/]apxcalxbxscl[/link], http://ryxpywqvdyft.com/
KilsehdZxPrWHqclA @ 18 de Diciembre de 2010 12:50
hRkshX wikipedia tramadol swre
dyaCaBEKmKR @ 18 de Diciembre de 2010 22:17
uNAdoHWPEJxxKlSli @ 07 de Enero de 2011 21:06
nWITsf jiufhxbkexzz, [url=http://xenweiibviyy.com/]xenweiibviyy[/url], [link=http://gigbthhfxhni.com/]gigbthhfxhni[/link], http://goihgytxkcst.com/
OC7JT92Ouo @ 17 de Septiembre de 2013 06:39
Thanks, helped me a bunch I am mtiraging from using Fedora to Ubuntu and the PHP and apache files are in a different place.You Could also add the other commonly changed one max_post_size.I was atempting to import my database using phpmyamdin so had to change that Bob
7jreojWbY @ 19 de Septiembre de 2013 05:30
excellent info Hello! I notice that's sowhmeat aside written content however We might been set on whenever you will understood for the reason that we becomes the real legitimate captcha plugin regarding our ideas type? I am combined with exact identical blog method
YLue8sk8YF @ 19 de Septiembre de 2013 08:32
Hi, I've followed your very clear iortsuctinns but the php.ini file is not getting updated. I've checked the location from the info list and its the same. What else can I do? Is there another file lurking somewhere?I'm using Ubuntu 11.04 and Xampp. http://rnpxwjf.com [url=http://wcvlur.com]wcvlur[/url] [link=http://urqoqw.com]urqoqw[/link]
  Página 1 de 2 Avanzar >


Deja tu comentario
Nombre :
Email :
[ Comentar con mi usuario Ublog ]
Comentario :
Verificación :
Complete los números de la imágen en el siguiente recuadro.
Usuario :
Clave :
[ Registrarme ] [ Comentar sin registrarme ]
Ublog.cl es un producto JM Software.
Copyright © 2007-2018 JM Software. Todos los derechos reservados.

Contáctanos   |   Avisos Legales