GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar túneles SSH para acceder a servidores restringidos

Además de enviar datos ssh, el protocolo ssh puede canalizar otro tráfico entre dos hosts. Los túneles ssh más comunes son remotos y locales.

La tunelización SSH o el reenvío de puertos SSH es un método para crear una conexión SSH cifrada entre un cliente y una máquina servidor a través de la cual se pueden retransmitir los puertos de servicios.

Túnel SSH local con reenvío de puertos

Puede usar un túnel ssh local cuando desee acceder a un recurso al que no puede acceder directamente, pero un servidor ssh al que tiene acceso sí puede. Estos son algunos escenarios.

Proxy a Servidor Remoto

En la imagen de arriba, el host azul no puede llegar a http://192.168.0.3 pero puede ssh a 192.168.0.2. El siguiente comando ssh se ejecutó en el host azul permitirá que el anfitrión azul alcance al anfitrión rojo.

ssh -L 8080:192.168.0.3:80 [email protected]

Ahora el host azul puede abrir un navegador, vaya a http://localhost:8080 , y se le presentará la página web alojada en 192.168.0.3.

Reenvío de puerto local

En la imagen de arriba, el host azul quiere conectarse al host rojo en el puerto 80, pero hay un firewall en el medio que lo niega. Debido a que el host azul puede ssh al host rojo, podemos crear un túnel ssh de reenvío de puerto local para acceder a ese puerto.

El comando en el host azul será:

ssh -L 8080:192.168.0.2:80 [email protected]

Ahora, cuando el host azul abre un navegador y va a http://localhost:8080 podrán ver lo que sea que tenga el servidor rojo en el puerto 80.

Sintaxis de reenvío de puerto local

Esta sintaxis para crear un túnel de reenvío de puerto ssh local es esta:

ssh -L <LPORT>:<RHOST>:<RPORT> <GATEWAY>

Túnel SSH remoto con reenvío de puertos

En este escenario, estamos creando un túnel ssh inverso. Aquí podemos iniciar un túnel ssh en una dirección, luego usar ese túnel para crear un túnel ssh en el otro sentido. Esto puede ser útil cuando coloca una computadora de dron dentro de una red y desea que "llame a casa". Luego, cuando llama a casa, puede conectarse a través del túnel ssh establecido.

Estamos en el host verde y queremos hacer ssh al host azul. Sin embargo, el firewall bloquea esta conexión directamente. Debido a que el host azul puede ssh al host verde, podemos conectarnos usando eso, y cuando el host verde quiera volver al host azul, puede viajar a lo largo de este túnel previamente establecido.

El host azul inicia un túnel ssh como este:

ssh -R 2222:localhost:22 [email protected]

Esto abre el puerto 2222 en el host verde, que luego lo reenvía al puerto 22 en el host azul. Entonces, si el host verde se conectara a sí mismo en el puerto 2222, llegaría al host azul.

El host verde ahora puede enviar ssh al host azul de esta manera:

ssh -p 2222 [email protected]

Uso de la opción -N

Al usar ssh, puede especificar -N indicador que le dice a ssh que no necesita enviar ningún comando a través de la conexión ssh cuando se establece. Esta opción se usa a menudo cuando se crean túneles, ya que a menudo no necesitamos recibir un aviso.

Autossh

El autossh El comando se usa para agregar persistencia a sus túneles. El trabajo que tiene es verificar que su conexión ssh esté activa y, si no lo está, crearla.

Aquí hay un comando autossh que puede reconocer.

autossh -N -i /home/blueuser/.ssh/id_rsa -R 2222:localhost:22 [email protected]

El -i /home/blueuser/.ssh/id_rsa opción dice usar un certificado para autenticar esta conexión ssh.

Ahora, cuando su túnel se caiga, automáticamente intentará volver a conectarse y seguirá intentándolo hasta que tenga éxito. Para que sea persistente durante un reinicio, agregue el comando ssh como un trabajo cron.


Linux
  1. ¿Cómo puedo usar SSH con un proxy SOCKS 5?

  2. Cómo saber si una conexión ssh ControlMaster está en uso

  3. Use scp para copiar un archivo a diferentes servidores

  4. ¿Cómo scp a través de una máquina intermedia?

  5. Acceso solo a tunelización ssh

Archivo host de Linux:¿Cómo editarlo y usarlo?

Cómo usar SSH para conectarse a un servidor remoto

Cómo usar una clave SSH con usuarios no root

Ssh:¿cómo funciona el túnel Ssh inverso?

¿Cómo usar Secure Shell Access (SSH) a través de PuTTY?

Cómo deshabilitar la verificación de clave de host SSH en Linux