====== 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 -L 5901:direccionlocal: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). No se va a background, para eso se necesita el -f
Si su usuario es diferente tendrá 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 31280:192.168.8.253:3128 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