SSH reverse Tunnel en Iphone o Ipad sin Jailbreak

image

Ya había hablado anteriormente de como hacer un ssh Reverse Tunnel y para que sirve pero resulta que en el trabajo empezaron a bloquear acceso a diferentes aplicaciones o paginas que uso para no volverme loco ahí, una de ellas por ejemplo, Apple Music así que decidí darme a la tarea de intentar hacer funcionar un tunnel en mi iphone que no tiene Jailbreak y la verdad resultó mucho más fácil de lo que creí, aquí les dejo como hacerlo por si ocupan.

NOTA: No me voy a detener a explicar como preparar el servidor SSH por que eso ya lo hice AQUÍ así que asumiré que ya hicieron esa parte y me iré directo a la parte del cliente

1.- Primero que nada, necesitamos una terminal que nos permita conectarnos por ssh a nuestro servidor, encontré varias pero la que más me gustó fue vSSH que tiene versión de pago y la versión Lite, que para este caso, me funcionó perfectamente bien, esta aplicación me gustó y decidí dejarla porque entre otras cosas nos ahorra la parte de configurar a mano el port forwarding.

image

2.- Creamos una nueva conexión donde pondremos los datos de nuestro servidor.

image

3.- Agregamos el port forwarding, seleccionando “Dynamic SOCKS proxying” con esto abriremos una conexión SOCKS hacia nuestro servidor.

image

4.- Ahora tenemos que configurar la conexión de nuestro Iphone o Ipad para que se conecte a nuestro servidor usando un servidor SOCKS, lamentablemente eso no es posible, sin embargo hay manera de darle la vuelta y es configurando nuestra conexión para que use un script proxy, este script tiene que estar en internet y debe de estar en un lugar que pueda ser accesible desde nuestro teléfono, este script es bastante simple y debe de tener la terminación .pac

Ya que tenemos el script lo agregamos a nuestra conexión, desde “Configuración => Wi-Fi => “signo de admiración” => Proxy HTTP

image

5.- Ahora solo resta iniciar desde vSSH nuestra conexión y listo!! ya estamos dirigiendo todo el tráfico a nuestro Tunnel.

EXTRA: un problema que tiene esta solución, es la manera en que IOS administra el “multi task” ya que si tienes periodos muy largos de inactividad IOS cierra la app vSSH y nos deja sin tunnel, por lo que tendríamos que iniciarla de nuevo.

Ahora, si tienes Jailbreak eso lo solucionas con cualquier tweak de multitask, yo en lo personal uso la opción Aura del tweak  Multiplexer que pueden encontrar en la repo de BigBoss

image

Espero esto les sirva.

SSH Tunnel en Linux o mac

¿Para que demonios sirve el tunnel?

la respuesta políticamente correcta es:

Un tunnel SSH sirve para garantizar la comunicación segura entre dos máquinas.

Los usos que se le pueden dar son muy diversos y tiene muchas ventajas como:

  1. El túnel SSH es una buena solución para navegar por internet en el caso que nos hallemos en Red local No segura.
  2. La navegación a través de un túnel SSH garantiza nuestra confidencialidad ya que nadie podrá conocer las páginas web que estamos visitando ni que estamos haciendo.
  3. La navegación a través de un túnel SSH garantiza la integridad de los datos transmitidos y recibidos ya que la probabilidad que alguien pueda modificar las datos que enviamos o recibimos es muy baja.
  4. Los túneles SSH son una buena solución para asegurar la comunicación entre 2 máquinas y para fortificar protocolos débiles como por ejemplo HTTP, SMTP. FTP, Telnet, etc.

Normalmente cuando estamos en una red pública, como en un cafe internet o un starbucks hay muchos usuarios conectados a la misma red y esto es un problema de seguridad importante porqué somos susceptibles de recibir ataques que nos pueden lanzar cualquiera de los usuarios que están conectados a la misma red local que nosotros.

hoy en día multitud de conexiones a Internet se realizan mediante el protocolo http. El protocolo http tiene la particular de transferir la información en texto plano sin cifrar.

Cualquier usuario que esté en esta misma red podrá interceptar nuestro tráfico fácilmente. Por lo tanto con un simple sniffer el atacante podría averiguar contraseñas de servicios que tenemos contratados o usamos, como por ejemplo el servicio de wordpress, servidores ftp, telnet, etc. Además el atacante podrá averiguar fácilmente a los sitios a los que nos estamos conectando.

Ahora, la realidad y para lo que más se usa un Tunnel SSH es:

Para vulnerar ciertas restricciones impuestas por nuestro ISP o por ejemplo también nos puede servir para vulnerar ciertas restricciones impuestas por proxies y firewall.

Un tunnel SSH basicamente se compone de dos máquinas, una que está fuera de nuestra red  (servidor SSH) y una local (normalmente la computadora del trabajo o nuestra laptop con la que vamos a navegar desde el starbucks).

Al crear un tunnel SSH cuando introduzcamos  cualquier dirección  en el navegador se enviará una petición http al servidor SSH con las siguientes particularidades:

  1. La petición http viajará por el túnel SSH que hemos establecido.
  2. Nuestra petición, y la totalidad de tráfico entrante y saliente estará completamente cifrado.

Por lo tanto aunque recibamos el ataque antes mencionado y se intercepte nuestro tráfico dentro de la red local comprometida, nadie podrá obtener nuestras credenciales, ni modificar el contenido de la petición ni robarnos información ya que la información que obtendrán estará completamente cifrada.

Por lo tanto con el túnel SSH estamos garantizando la integridad y confidencialidad del tráfico entre nuestra máquina y el servidor SSH que está fuera de nuestra red Local en una ubicación segura y no susceptible de ataques.

Una vez nuestra petición está en el servidor SSH tendrá que dirigirse al servidor web de la página que queremos conectarnos.

Si bien es cierto que en el último tramo (entre nuestro servidor SSH y el servidor web que queremos contactar) la información va a viajar en texto plano, las posibilidades de recibir algún tipo de ataque son muy bajas.

¿Como puedo configurar en tunnel SSH?

Primero que nada necesitamos una computadora fuera de la red local, no necesariamente tiene que ser la de nuestra casa, hay muchisimos proveedores de VPS Hosting en einternet y sus precios van desde $3.5 dolares mensuales y son muy fáciles de instalar y configurar.

Preparando el servidor SSH

1.- En el servidor SSH necesitamos instalar SSH. en mi caso es un servidor con ubuntu 13.

$ sudo apt-get install ssh.

2.- Editamos /etc/ssh/sshd_config, nos fijamos que tenga la opción AllowTcpForwarding yes y si no la tiene se la debemos de agregar.

3.- Reiniciamos el sshd

$ sudo service ssh reload

Listo! eso es todo del lado del servidor.

Del lado de la PC o laptop local, lo unico que necesitamos hacer es correr el siguiente comando.

ssh -D 8080 -C -N usuario@IP del servidor

El puerto 8080 puede ser cambiado por el que mas nos convenga, por ejemplo un puerto abierto en la red de la empresa donde trabajamos XD

En nuestro navegador o en las opciones de proxy globales de nuestra PC configuramos el SOCKS Proxy con la ip 127.0.0.1 y el puerto que usamos en el comando anterior.

Listo! ya con estos simples pasos todo el trafico de nuestra máquibna ira cifrado y de forma segura a través del firewall de nuestra empresa y podremos navegar sin restricciones y de forma segura por internet.