12 marzo 2009
Tunel SSH Permanentes entre Servidores Linux
Vuelvo a mis fueros técnicos con una traducción (un poco libre) de un artículo en Inglés sobre el tema que marca el título. Que lo disfrutéis.
Si estás leyendo esto es que quieres conectar un servicio entre dos máquinas comunicadas por un canal no seguro através de ssh. Suponemos que ese servicio es mysql, pero puede ser cualquier otro y solo hay que modificar los scripts para que usen el puerto correspondiente.
Planteamiento del escenario:
Los requerimientos son:
Pasos:
Crear un usuario ‘tunnel’ en HostA:
Crear un par de claves pública/privada
Ahora creamos el script /home/tunnel/check_ssh_tunnel.sh en HostA
Ahora solo añade el script al crontab del usuario 'tunnel' para que se compruebe la conexión cada pocos minutos. Automáticamente reconectará el tunel si algo falla. Cuando crea una nueva conexión enviará un correo al usuario definido en el crontab.
0 Comentarios
Enlaces a este envio:
Si estás leyendo esto es que quieres conectar un servicio entre dos máquinas comunicadas por un canal no seguro através de ssh. Suponemos que ese servicio es mysql, pero puede ser cualquier otro y solo hay que modificar los scripts para que usen el puerto correspondiente.
Planteamiento del escenario:
------------ -----------------
-- HOST A -- --------- Internet ------------ HOST B --
-- -- -- ssh y mysql --
------------ -----------------
Los requerimientos son:
- Un servidor ssh en HostB
- Un servidor mysql en HostB
- Un cliente ssh en HostA que pueda establecer conexión con HostB
- Un cliente mysql en HostA
Pasos:
Crear un usuario ‘tunnel’ en HostA:
[root@hosta ~]# useradd -d /home/tunnel tunnel
[root@hosta ~]# passwd tunnel ## Un pasword fuerte
[root@hosta ~]# su - tunnel ## Convertirse en el usuario 'tunnel'
Crear un par de claves pública/privada
[tunnel@hosta ~]$ ssh-keygenAhora usa cat para ver el fichero id_rsa.pub que contiene la clave pública que necesitas pner en HostB.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tunnel/.ssh/id_rsa): ## pulsar enter
Enter passphrase (empty for no passphrase): ## no usar password
Enter same passphrase again:
Your identification has been saved in /home/tunnel/.ssh/id_rsa.
Your public key has been saved in /home/tunnel/.ssh/id_rsa.pub.
The key fingerprint is:
6f:30:b8:e1:36:49:74:b9:32:68:6e:bf:3e:62:d3:c2 tunnel@hosta
[tunnel@hosta ~]# cat /.ssh/id_rsa.pubAhora crea un usuario 'tunnel' en HostB y guarda la clave pública de tunnel@HostA en el fichero de claves autorizadas:
ssh-rsa blahAAAAB3NzaC1yc2EAAAABIwAAAQEA......6BEKKCxTIxgBqjLP tunnel@hosta
[root@hostb ~]# useradd -d /home/tunnel tunnelEn este momento deberías poder conectarte desde HostA a HostB con el usuario tunnel sin usar un passwrod. Depende de tu configuración, es posible que debas añadir al usuario 'tunnel' a los usuarios permitidos en /etc/ssh/sshd_config. También es posible que quieras cambiar algunas opciones de SSh, como el puerto de destino, en ~/.ssh/config.
[root@hostb ~]# passwd tunnel ## Un pasword fuerte
[root@hostb ~]# su - tunnel
[tunnel@hostb ~]# mkdir .ssh
[tunnel@hostb ~]# vi .ssh/authorized_keys ## Now paste in the public key for tunnel@hosta
Ahora creamos el script /home/tunnel/check_ssh_tunnel.sh en HostA
createTunnel() {Guardamos el fichero y lo hacemos ejecutable:
/usr/bin/ssh -f -N -L13306:hosta:3306 -L19922:hosta:22 tunnel@hostb
if [[ $? -eq 0 ]]; then
echo Tunnel to hostb created successfully
else
echo An error occurred creating a tunnel to hostb RC was $?
fi
}
## Run the 'ls' command remotely. If it returns non-zero, then create a new connection
/usr/bin/ssh -p 19922 tunnel@localhost ls
if [[ $? -ne 0 ]]; then
echo Creating new tunnel connection
createTunnel
fi
chmod 700 ~/check_ssh_tunnel.shEl script intenta conectarse al puerto local 19922 y ejecutar el comando ls. Si falla, intenta crear el tunel SSH. El comando para crear el tunel SSH, tunelará el puerto local 13306 al puerto 3306 de HostB. Puedes modificar aquí lo necesario para que los puertos se adecuen a tus necesidades. También crea un tunel del puerto local 19922 al puerto 22 en HostB que comprobar la conexión.
Ahora solo añade el script al crontab del usuario 'tunnel' para que se compruebe la conexión cada pocos minutos. Automáticamente reconectará el tunel si algo falla. Cuando crea una nueva conexión enviará un correo al usuario definido en el crontab.
Etiquetas: linux, mysql, script, ssh, tunel
0 Comentarios
Enlaces a este envio:
10 febrero 2009
Una foto bonita
Una foto muy bonita. No es gimpeada, es la función de sacar panorámicas del móvil, de ahí los elementos dobles.El doble arco iris no es por esa razón: había dos concéntricos.
0 Comentarios
Enlaces a este envio:
17 diciembre 2008
Si eres legal
01 diciembre 2008
Diciembre y Nieva
1 de diciembre de 2008. Las Navidades se acercan y el tiempo ha decidido hacernoslo saber: Nieva. Aunque la semana pasada ya nos avisó con algunos copos, hoy parece que se lo está tomando en serio.
Precaución al volante y abrigarse mucho ;)
0 Comentarios
Enlaces a este envio:
Precaución al volante y abrigarse mucho ;)
0 Comentarios
Enlaces a este envio:
26 noviembre 2008
Ilusión óptica
En el blog Mighty Optical Ilusions veo esta imágen:

Con ayuda de firefox he conseguido desvelar un poco la imagen. Pon el cursor encima aquí para verla:
0 Comentarios
Enlaces a este envio:

Con ayuda de firefox he conseguido desvelar un poco la imagen. Pon el cursor encima aquí para verla:
Etiquetas: personal
0 Comentarios
Enlaces a este envio:
24 noviembre 2008
Semi-nuevo trabajo
Hoy empiezo un nuevo trabajo. Si otra vez. Bueno, a medias. Es en la misma empresa, pero no en el mismo puesto de trabajo donde he estado el último mes (que era "en casa de un cliente".
Ahora es en las oficinas propias de la empresa y por lo menos tengo mi propio puesto de trabajo. Aún no tengo muy claras mis tareas, pero tiene pinta de apaga-fuegos... A ver que tal sale todo.
0 Comentarios
Enlaces a este envio:
Ahora es en las oficinas propias de la empresa y por lo menos tengo mi propio puesto de trabajo. Aún no tengo muy claras mis tareas, pero tiene pinta de apaga-fuegos... A ver que tal sale todo.
Etiquetas: personal
0 Comentarios
Enlaces a este envio:
28 octubre 2008
Primer día en el nuevo curro
Por el momento la cosa pinta bien. Llevo el día y medio leyendo manuales, pero lo que veo me gusta. Aunque en principio me decepcionó un poco el hecho de volver a sistemas y abandonar mis bien amados desarrollos, creo que este puesto en concreto y en esta empresa en concreto, puede merecer la pena el cambio.
0 Comentarios
Enlaces a este envio:
Etiquetas: personal
0 Comentarios
Enlaces a este envio:



