
Esta receta es para todos aquellos que estais en un entorno restrictivo en el que solo hay acceso al exterior a través de un proxy HTTP, como es mi caso actualmente.
Tan solo os será necesario un programa llamado Corkscrew. Los usuarios de Debian y derivados lo tenemos a tiro de apt-get.
Con esta información ya nos vamos haciendo una idea de lo que va a pasar. Vamos a invocar ssh a través de Corkscrew para que se conecte al servidor de destino utilizando el proxy. El servidor de SSH utiliza el puerto 22 y lo normal es que el proxy no pueda acceder a dicho puerto, por este motivo será necesario que en el servidor al que queremos acceder le hayamos hecho un pequeño truco previo. El “truco” consiste en redirigir un puerto web que no esté en uso al puerto 22. Usualmente se utiliza el 443.
Vamos a ver como se cocina todo esto junto.
Lo mas limpio es usar iptables para redirigir el trafico. La orden es esta.
# iptables -t nat -A PREROUTING -i ippp0 -p tcp —dport 443 -j REDIRECT —to-port 22
Con corkscrew instalado vamos al directorio $HOME/.ssh y editamos el fichero config (si no existe, lo creamos). En su interior ponemos esto:
Host servidor.casa.com ProxyCommand /usr/bin/corkscrew proxy.curro.es 8080 %h %p
Donde proxy.curro.es el la dirección del proxy de nuestra red y 8080 es el puerto que usa el proxy. Las variables %h y %p se refieren al host y al port que usaremos para conectar y se le pasan desde el comando ssh como veremos a continuación.
Ahora para conectar a cualquier sitio tan sólo necesitamos ejecutar la orden.
$ ssh -p 443 usuario@servidor.casa.com
usuario:password
y en el fichero anterior (ssh_proxy) ponemos:
ProxyCommand /usr/bin/corkscrew proxy.curro.es 8080 %h %p $HOME/.ssh/autenticacion
ServerAliveInterval 60 ProxyCommand /usr/bin/corkscrew proxy.curro.es 8080 %h %p
Comentarios
Una duda fsancho
Hermano, una duda que necesito ver si me puedes ayudar, como puedo hacer esto en windows redirigir lo que biene al 443 para el 22 y usar el servicio OpenSSH y si hago esto los otros servicios se ven afectados o no?
mi direccion de email es: kikoforever@gmail.com
Gracias.