SSH, más que un shell seguro ( mi frustracion en debian)

Discussion in 'Manuales' started by janod21, Nov 24, 2014.

  1. janod21

    janod21 Usuario Habitual nvl.3 ★
    132/163

    Joined:
    Aug 9, 2007
    Messages:
    7,005
    Likes Received:
    295
    [h=2]SSH, más que un shell seguro[/h]editado y comentarios de janod: lelvo años luchando y tratanto de hacer acceso ssh en distintas plataformas y ahora que estoy retomando los controles dejo este aporte para poder reestudiar y poder lograrlo de una vez por todas.


    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.
    [h=3]SCP[/h] 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
    [h=3]SSH Tunneling[/h] 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
    [​IMG]
    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)
    [h=3]Reverse SSH[/h] 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.