Noticia SSH, más que un shell seguro

SSH (Secure SHell) es un protocolo que nos sirve para acceder de forma segura a equipos remotos, básicamente como lo hace Telnet, pero usando algoritmos de cifrado que nos ayudan a mantener nuestra conexión segura, sobre todo si queremos acceder a equipos que desempeñan alguna función importante dentro de una organización.

Generalmente, para acceder debemos proporcionar nuestro usuario y la dirección del equipo, para que el servidor SSH nos solicite la contraseña de acceso:

ssh usuario@equiporemoto

Desde que el cliente inicia la primera conexión entre el equipo remoto y nosotros, la información ya está viajando de forma segura, evitando que alguien pueda obtener nuestras credenciales de acceso a dicho equipo, sin embargo SSH es un protocolo muy adaptable y que nos ofrece muchas posibilidades.

SCP


La primera de ellas es poder transferir archivos entre el cliente y equipo remoto, sin necesidad de montar un servidor FTP o NFS, simplemente usando SCP (Secure CoPy) que implementan la mayoría de servidores SSH:

scp archivo.tar.gz usuario@equiporemoto:/home/usuario
scp usuario@equiporemoto:/var/log/messages messages.txt

SSH Tunneling


Esta característica es muy útil, ya que nos permite enviar y recibir información que no necesariamente sean comandos shell entre el cliente y el equipo remoto, por ejemplo la navegación común y corriente. Si no adivinan que utilidad puede tener esto piensen en lo siguiente: necesitan acceder a una página, pero el lugar donde están tiene implementado un firewall que bloquea precisamente dicha página, por lo tanto, podemos hacer ‘tunneling’ con un equipo remoto que no tenga dichos bloqueos y pasar la navegación en dicha página por nuestra sesión SSH:

ssh -D 8888 usuario@equiporemoto

Una vez conectados, nuestro cliente SSH ‘escucha’ en el puerto 8888 como un servidor proxy, para que podamos configurar nuestro navegador y toda el tráfico sea transmitido a través de la sesión SSH

proxy-353x400.png


Otro ejemplo que se me ocurre, es cuando por alguna restricción geográfica, no podamos acceder a algún servicio web desde donde estamos, al hacer el túnel, dicho servicio web detecta como origen la IP de nuestro servidor remoto, no nuestra IP de cliente. Esto equivale de alguna manera a las VPNs (Virtual Private Network)

Reverse SSH


Si por alguna razón necesitamos acceder a un equipo que se encuentra detrás de un firewall y este no nos permite redireccionar el tráfico SSH hacia él, podemos hacer un ‘reverse SSH’, de tal forma que ese equipo se conecte a otro servidor SSH, al cual nosotros podamos también conectarnos, para poder así acceder al equipo detrás del firewall. Un ejemplo que me viene a la mente, es cuando queremos ayudar a un amigo que no tiene ni idea de como configurar una redirección en su módem, pero necesitamos acceder a su equipo de manera remota:

Amigo —> Módem —> Servidor SSH <— Nosotros

Los pasos a seguir son relativamente muy sencillos:

Amigo
ssh -R 9999:localhost:22 usuario@servidorssh

Nosotros
ssh usuario@servidorssh
Una vez dentro del servidor SSH, podremos conectarnos con el equipo de nuestro amigo usando
ssh amigo@localhost -p 9999

Como podrán observar, toda la magia radica en el parámetro -R, que le indica al servidor intermedio que en el puerto 9999 está escuchando el equipo de nuestro amigo ahora como servidor.

Estas solo son algunas posibilidades que SSH nos ofrece pero los invito a que experimenten con algunas más, por ejemplo; podemos hacer scripts desatendidos usando llaves RSA, redireccionar sesiones X (modo gráfico) a nuestro entorno gráfico, solo por mencionar algunas.

The post SSH, más que un shell seguro appeared first on Desde Linux.


70JEbi2ZLtA


Continúar leyendo...