¡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