jueves, 2 de agosto de 2012

SSH, sftp y scp a través de Proxy HTTP con corckscrew

Escenario


Si vuestro trafico de salida a Internet pasa por un Proxy HTTP y este no os permite realizar conexiones sftp, scp, o ssh, podéis probar a instalar corckscrew siempre y cuando el servidor proxy sea alguno de los siguientes:
  • Gauntlet
  • CacheFlow
  • JunkBuster
  • Squid
  • Apache mod_proxy
Corckscrew es un paquete que permite realizar túneles ssh a través de un proxy http, os lo podéis descargar de aquí (por el momento la última versión es la 2.0).

Las indicaciones siguientes son para equipos Linux, aunque también se puede instalar en equipos Windows con Cygwin

 

Instalación de corckscrew 


Para instalar corckscrew en un equipo con linux:

Descargamos el paquete en un directorio temporal por ejemplo
makara@kimakara:~$ cd /tmp
kimakara@kimakara:~$ wget http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gz
Descomprimimos el paquete tar.gz
kimakara@kimakara:/tmp$ tar xzvf corkscrew-2.0.tar.gz
Vamos al directorio descomprimido de corckscrew
kimakara@kimakara:/tmp$ cd corkscrew-2.0/
Procedemos a instalar el paquete
kimakara@kimakara:/tmp/corkscrew-2.0$ ./configure
kimakara@kimakara:/tmp/corkscrew-2.0$ sudo make
kimakara@kimakara:/tmp/corkscrew-2.0$ sudo make install

Configuración de ssh para uso de corckscrew


Una vez instalado el paquete necesitamos modificar el fichero de configuración de ssh. 

Para hacerlo de forma global, habilitando el uso de túneles ssh, sftp y scp para todos los usuarios del sistema, debemos editar el fichero /etc/ssh/ssh_config con nuestro editor favorito de la manera siguiente:

Ejemplo de fichero /etc/ssh/ssh_config para habilitar conexiones ssh a cualquier host (los últimos campos "usuario_proxy":"password_proxy" se pueden obviar si el proxy no requiere credenciales)
 Host *
 ProxyCommand /usr/local/bin/corkscrew "ip_proxy" "puerto_proxy" "ip_host_destino" "puerto_host_destino" "usuario_proxy":"password_proxy"
Ejemplo de fichero /etc/ssh/ssh_config para habilitar conexiones ssh a un host concreto (los últimos campos "usuario_proxy":"password_proxy" se pueden obviar si el proxy no requiere credenciales)
Host "ip_host_destino"
 ProxyCommand /usr/local/bin/corkscrew "ip_proxy" "puerto_proxy" "ip_host_destino" "puerto_host_destino" "usuario":"password"
 
En entornos donde solo nos interese habilitar conexiones que usen túneles ssh a ciertos usuarios en concreto, crearemos o editaremos el fichero ~/.ssh/config
(donde "~" es el $HOME de cada usuario) con el mismo contenido que en los ejemplos anteriores.

Si las instalación de corckscrew y las configuraciones son correctas podréis establecer conexiones ssh a través de vuestro proxy http.

Mas información en:


Espero que la información aportada pueda ser de utilidad, cualquier corrección, sugerencia, aportación o alternativa será siempre de gran utilidad!

Saludos!

No hay comentarios:

Publicar un comentario