En algunas ocasiones, simplemente, necesitamos establecer conexiones remotas (y seguras), a pesar de todas las trabas que nos puedan poner. Es entonces cuando ssh
brilla con fuerza.
Imaginemos: tu trabajo se desarrolla en una red local fuertemente protegida por proxys
y firewalls
del tamaño de una lavadora industrial. Sólo algunas conexiones, las más típicas, consiguen salir de esta LAN y adentrarse en la red y, por supuesto, aquellas que parten o llegan al puerto 22 son sistemáticamente descartadas, evitando que puedas conectarte a tu servidor de casa.
Si seguimos echando la mente a volar, hay una solución sencilla y fácil para sortear el proxy
y salir al exterior. Pero, como todo lo bueno, tiene condiciones y es que, supongo que será gracias al firewall, es áltamente recomendable que el puerto donde escucha ssh tu servidor casero sea el 443 o el 8080. Es decir, que utilices un puerto reconocible y, lo más importante, que pueda traspasar el proxy
sin problemas.
En el equipo que está situado dentro de la red local, instalamos un paquete que nos permita crear túneles con el proxy
.
sudo aptitude install connect-proxy
A continuación y también en ese equipo, editamos el fichero ~/.ssh/config
y añadimos estas líneas:
# Conexiones hacia fuera de la red local
Host server.n1mh.org
ProxyCommand connect -H user@proxy:8080 %h 8080
# Conexiones dentro de la red local (no usa proxy)
Host *
ProxyCommand connect %h %p
Por supuesto, de las dos primeras se pueden añadir tantas como sea necesario. Esta configuración dice que, para las conexiones a server.n1mh.org
, ssh
debe usar el argumento ProxyCommand
y establecer un túnel con esos parámetros: -H
especifica que proxy
usaremos, pasando el usuario, servidor y puerto, respectivamente; %h
es el servidor al que queremos conectarnos, está definido en la primera línea y necesita saber el puerto, que en este caso es 8080.
Tras esta mínima configuración, sólo tenemos que lanzar la conexión, como siempre hemos hecho:
diego@workaholic$ ssh [email protected]
Y ya estaremos en casa… porque no hay nada como el hogar.
10 ideas sobre “[truco] Conexiones ssh a través de un proxy”
Muy buena Diego, muchas veces nos complicamos la vida cuando con 5 lineas sencillas lo podemos hacer 😉
Me gusto el tip 😉 gracias Diego
sigue el espíritu UNIX, KISS ;).
saludos
Además de verdad, Kiss total, gran post Diego 😉
hahaha cerró el artículo con una frase épica: «no hay nada como el hogar»
Muy buen artículo y bastante buscado en la internet, lamentablemente la mayoría de usuarios caseros no gustan ni conocen de linux, de todos modos siempre hay soluciones. Me quedo siguiendo de cerca al autor.
Saludos.
Se trata de corkscrew:
http://www.linuxito.com.ar/seguridad-2/76-como-crear-un-tunel-ssh-a-traves-de-un-proxy-http
Hola diego muy interesante el articulo tengo una inquietud quiero hacer algo parecido a lo que tu mencionas pero ftp desde windows a traves de proxy squid trate de hacerlo mediante el firewall y no me funciono si pudieras ayudarme
perdona, pero no entiendo el escenario que planteas. ¿Puedes concretarlo?
Interesante .. no conocía connect-proxy
La verdad es que siempre he usado .. tsocks .. que sirve para eso y mucho mas.