martes, 3 de diciembre de 2013

Accediendo a un servidor SSH a través de un proxy con Corkscrew



Cuando un servidor proxy impide conectarse a puertos que no sean de navegación web puede usarse la herramienta Corkscrew.

En el siguiente ejemplo muestro los ficheros de configuración necesarios para realizar una conexión SSH a través de un túnel con Corkscrew sobre el proxy HTTP.

Además se incluye en los ficheros la configuración necesaria para que SSH coja un usuario en la conexión y redirija los puertos 4080 y 3128 de la máquina remota. Además, el servidor SSH de los ficheros de ejemplo escucha en el puerto 443.

El formato del fichero ".ssh/config" sería el siguiente:

Host <ip_destino>
    ProxyCommand corkscrew <proxy_host> <proxy_host> %h %p ~/.ssh/proxyauth
    LocalForward 4080 localhost:4080
    LocalForward 3128 localhost:3128
    Port 443
    User <default_user>

Y el formato del fichero ".ssh/proxyauth" sería el siguiente:

<user>:<password>

TRUCO: es posible que el proxy HTTP filtre también por nombre de máquina, con lo que al realizar la conexión SSH con la máquina es mejor usar direcciones IP. Por ejemplo, si se quiere acceder a una máquina que tenga un nombre asignado en un DNS dinámico, como DynDNS o similares, es mejor resolver primero la IP con nslookup, y después usar la IP.

OTRO TRUCO: también es posible que el servidor SSH se tenga que poner en el puerto 443 u 80, porque el proxy puede ser que permita únicamente conexiones destino a esos puertos.

--