COMO Conexión ssh tras HTTP proxy estricto + MSN messeger

Imagen de letex
0 puntos

1.Objetivos
En mi trabajo hay un proxy que me restringe a ?olo tráfico http y https (puertos 80 y 443), por lo que incluso poniendo la sesión ssh en el puerto 443 no puedo conectar.
Intento explicar:

  • Cómo conectarse a ordenador de tu casa desde el trabajo tras tienes un
  • Crear un túnel ssh a nuestra casa
  • Ejecutar chat Msn Messenger por el túnel creado

Estos objetivo voy a intentar explicarlos tanto en GNU/linux como en windows, haré lo posible

Vamos allá...

2.Situación previa

En mi casa tengo un ordenador de sobremesa para uso cotidiano, pero lo tengo configurado para servirme de servidor de archivos y descargas.¿Cómo?, configurando lo siguiente:

  • Encendido remoto con WakeOnLan y sus MagicPacket
  • Ip dinámica hecha estática con DynDns
  • Router configurado para actualizar DynDns
  • Puerto redirigido a mi ordenador
  • Servidor SSH corriendo siempre
  • Amule,amuled y AmuleWeb configurados
  • Azureus con ServerWeb activado
  • Paquete "x11vnc" para conexión reversa de VNC"
  • Paquete VNCserver, desactivado en inicio

3.Proceso
En mi curro lo había intentado todo para el ssh, pero el proxy sólo me deja pasar tráfico http ó https, por lo que no hay otra posibilidad
Tras días de búsqueda descubrí que había la posibilidad de enmascarar o esconder el tráfico ssh como tráfico https para que el proxy me deje pasar....¿cómo? con corkscrew, que significa sacacorchos en ingles!!

4.Instalación
Encontré un excelente manual en BULMA sobre la configración de corkscrew en GNU/linux, pero yo lo necesito en windows....os adelanto que los pasos sirven...

Solución: Cygwin
Cygwin es una herramienta para tener una consola totalmente usable de linux en windows. Aquí tenéis un tutorial de cómo instalarlo
Yo he seleccionado varios paquetes que he creido necesarios para mis objetivos, aunque los disponibles son muchísimos más.

  • OpenSSH
  • Corkscrew
  • nano - editor de consola
  • vim - editor de consola más potente

En linux sólo tendríamos que instalar corkscrew con:

sudo apt-get install corkscrew

Ahora hay que configurar el Corkscrew, para ello, he seguido el tuorial que hay en BULMA, variando pequeñas cosas:
Esto servirá para arrancar una sesion ssh tunelizada a traves de nuestro servidor proxy del curro para llegar a nuestro servidor ssh de casa usando corkscrew.
Debemos salir del proxy del curro por el puerto 443, por lo que podemos configurar iptables para que nos redirecciones el puerto 443 al 22 (por defecto del ssh)

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 22

(cambiar eth0 por la interfaz correspondiente de salida a internet)

Este código a mí no me ha funcionado correctamente, así que lo que he hecho es cambiar el puerto del ssh al 443.

 sudo gedit /etc/sshd_config

Port 443 (cambiarlo del 22 por defecto)
control +o para guardar
control +x para salir

Para configurar el corkscrew:

Y luego nos creamos un fichero para la conexion a nuestra casa que lo dejaremos en $HOME/.ssh/config que tenga lo siguiente. Esta carpeta no existe en cygwin, así que hacemos

mkdir .ssh

ya que windows no nos la deja crear con el punto
para crear el archivo:

nano .ssh/config

-------------------------------------------------------
# Linea para arrancar Corkscrew cuando uso ssh

ProxyCommand /usr/bin/corkscrew proxy.curro.es PuertoProxy %h %p

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

(Las variables %h y %p seran sustituidas por el nombre de host y puerto del servidor de nuestra casa cuando se lanza el comando ssh. Es como si arrancamos corkscrew de forma manual poniendo las opciones necesarias)

Si el proxy del curro requiere autenticacion pues hay que crearnos otro ficherito, por ejemplo $HOME/.ssh/Autenticacion con el usuario y password de la forma:
usuario:password

Le ponemos los permisos correctos para que nadie pueda ver nuestro usuario y password con:
chmod 600 $HOME/.ssh/Autenticacion

Y ahora el fichero con la linea de corkscrew ($HOME/.ssh/config) cambia a lo siguiente:
-------------------------------------------------------
# Linea para arrancar Corkscrew cuando uso ssh
ProxyCommand /usr/bin/corkscrew proxy.curro.es 8080 %h %p $HOME/.ssh/Autenticacion
-------------------------------------------------------

Bueno, pues ya esta configurado Corkscrew, ahora probamos la conexion haciendo lo siguiente:

ssh -p 443  usuario@servidor.casa.com
ssh -p 443 -F $HOME/.ssh/ConexionServidorCasa usuario@servidor.casa.com

El primero deberemos poner la clave (lo que yo he hecho) y en el segundo no

Este comando arranca corkscrew que se encarga de tunelizar nuestra sesion ssh a través del proxy por el puerto 443 hasta nuestra casa

5.Utilidades
Una vez con posibilidad de conexión a nuestro servidor podemos hacer maravillas:

  • Usarla como proxy socks para firefox y saltarnos asi el proxy en la navegación (ver páginas bloquedas - opción "-D port"
  • Usarla como túnel para VNC - opción "-L": yo no la he probado, pero en teoría se podría
  • Correr aplicaciones desde consola en tu casa

esto último es lo que yo uso a diario.Así consigo hacer multitud de cosas:

  • Consola SSH para comandos - arrancar emule, apagar, etc
  • rtorrent - cliente torrent de consola (correr en screen para desconertar)
  • arrancar el servidor VNC, etc....
  • Coger archivos con el comando scp a través del ssh
  • CHAT MSN
  • CHAT MSN
    Buscando cliente de consola para MSN he encontrado varios: fama-im, tmsnc, etc..
    Pero el que finalmente me ha convencido es Finch

sudo apt-get install finch
man finch

Es un cliente de mensajería MSN con interfaz en consola y muy muy parecido a pigdin (gaim), de hecho están dentro del mismo proyecto.
En el manual está muy bien explicado, así que no me extiendo en su uso.

***********ACTUALIZACIÓN 25/08***********
He encontrado este artículo de cómo usar GAIM a través de un túnel ssh con socks (opción -D)
En cygwin tecleamos:

ssh user@linuxhost.com -p443 -D 1234

Y configuramos el socks de GAIM con los datos

proxy tipo SOCKS v5
localhost y puerto 1234

Y así nos saltamos la protección del proxy podemos chatear sin problemas!!
Y en teoría podríamos hacerlo con cualquier programa que nos permita redireccionamiento a través de un proxy socks
***********ACTUALIZACIÓN 25/08***********

6.Conclusiones
Ya está, ya puedo conectar a mi casa desde el curro y chatear con mi novia durante las guardias.....jejejeje.
Si bien es verdad que hay que decir que la conexión ssh es un poco inestable y si no generas tráfico (comandos) se corta, así que para cosas largas, mejor usar una consola de screen

Espero que a alguien le sirva esta guía, a mí me ayuda todos los días.
En caso de errata o duda, por favor, postead sin problemas!!

Un saludo a todos!!