¡Esta es una revisión vieja del documento!


Como desplegar remoto con un tunel SSH

Descripción

VNC para despliegue remoto es muy inseguro para sacarlo a internet. Sin demasiada complicacion se puede
hacer un tunel con SSH y desplegar remoto.

Prerequistos

VNC y SSH aunque puede usarse para otro servicios

Procedimiento

Para hacer vnc a traves de ssh .. .para hacerlo mas seguro se usael port-forwarding de ssh.

1. Tiene cuenta al otro lado

Debe tener cuenta y password en el otro lado con servidor ssh corriendo. O sea tiene acceso ssh. Ademas debe tener un sesion de vnc corriendo en el servidor.

2. Debe ejecutar el forwardeador

ssh -N -f -L 5901:server.example.com:5901 server.example.com 

Con este comando se asocia el puerto 5901 (primer valor) de la maquina local con el puerto remoto de server.example.com(segundo valor). Si su usuario es diferente tendra que hacer.

ssh -l usuario -N -f -L 5901:server.example.com:5901 server.example.com

Si el puerto de SSH es otro o tiene llave funciona igual

ssh -p 2222 -l usuario -i llave.pem -N -f -L 5901:server.example.com:5901 server.example.com 

Y recuerde si va a mapear puertos menores a 1024 necesitara usuario root

3. Lance el aplicativo

vncviewer localhost:1

Lo que implica que realmente se esta haciendo vncviewer server.example.com:5901
pero por el tunel ssh.

 

Y debe funcionar.

4. O al reves. Mapee el puerto de aqui para alla

Puede hacer lo contrario .. que es mapear el puerto de alla hacia aca. Por ejemplo si quiero que user un proxy en mi maquina
 

ssh -p 2222 -l usuario -N -f -R 3128:192.168.8.200:31280 skina.homelinux.org 

5. Conseguir internet en una maquina aislada

Por ejemplo si requiero tener internet en una maquina cerrada que solo tengo con ella conexion VPN + SSH .. Que hago?

  • Levanto la VPN
  • Monto proxys: squid (3128) y un DNS (53) (ejm: dnsmasq)
  • Mapeo los puertos
 
ssh -p 2222 -l admin -N -f -R 3128:192.168.8.253:31280 172.19.4.21
  • Varibles de ambiente en el destino
 
export ftp_proxy="http://localhost:31280"
export http_proxy="http://localhost:31280"
export https_proxy="http://localhost:31280"

Esto suele ser suficiente pero si esta tan bloqueado a veces toca agregar DNS tambien

ssh -p 2222 -l root -N -f -R 53:192.168.8.253:53 172.19.4.21

En el resolv.con toca agregar lo siguiente pare que consulte al 53/tcp

options use-vc
nameserver 127.0.0.1

En el caso de NPM tambien toca otra variable de ambiente

export CGI_HTTP_PROXY="http://localhost:3128"

Problemas

1. En windows se muere la conexion

Toca ponerle un keepalive a mano .. y funciona

.\\plink.exe -a -2 -C -t -noagent -ssh -i .\\id_rsa.ppk -P 2222 -l admin -L 0.0.0.0:2222:172.16.63.129:2222 172.16.63.129 while true ; do echo -n -e “\\\\r\\\\e[OK– `date`” ; sleep 60s ; done

Este script imprime cada minuto la fecha … bonito
-

Referencias

- https://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html
- http://www.passivemode.net/updates/2006/6/5/ssh-vnc.html

FIN
 


Advertencia

Este documento es privado y es de uso exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra le ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.


 

 

14-Julio-2005\t\tKasandra\tv0.1 Primera version

Volver arriba