Mi Blog
👉 Cómo crear un túnel SSH en GNU/Linux

Cómo crear un túnel SSH en GNU/Linux

 
(1 Voto)

En multitud de ocasiones nos encontramos con un servicio (web, ftp, etc...) en equipo remoto que no está accesible desde remoto, pero al cual sí podemos acceder a través de una conexión segura SSH. Generalmente, no se puede acceder por políticas de seguridad y porque suelen estar detrás de algún firewall o en una red privada. Pero... existe una solución y os voy a explicar paso a paso como conectar utilizando un sencillo túnel SSH desde consola con GNU/Linux.

Seguid leyendo y os enseñaré a crear un túnel SSH desde consola con GNU/Linux...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿QUÉ ES SSH?

SSH (o Secure Shell) es el nombre de un protocolo y del programa que lo implementa cuya principal función es el acceso remoto a un servidor por medio de un canal seguro en el que toda la información está cifrada. Además de la conexión a otros dispositivos, SSH permite copiar datos de forma segura (tanto archivos sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir contraseñas al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH y también puede redirigir el tráfico del (Sistema de Ventanas X) para poder ejecutar programas gráficos remotamente. El puerto TCP asignado es el 22.

SSH trabaja de forma similar a como se hace con telnet. La diferencia principal es que SSH usa técnicas de cifrado que hacen que la información que viaja por el medio de comunicación vaya de manera no legible, evitando que terceras personas puedan descubrir el usuario y contraseña de la conexión ni lo que se escribe durante toda la sesión; aunque es posible atacar este tipo de sistemas por medio de ataques de REPLAY y manipular así la información entre destinos.

 

 

SSH nos garantiza el anonimato de las comunicaciones

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • 2 equipos con GNU/Linux
  • Conexión a Internet (recomendado, no obligatorio)

 

 

2.- CONCEPTO Y ESQUEMA DE RED

Generalmente, una conexión TCP se realiza directamente entre el equipo cliente (PC LOCAL) y el servidor ubicado utilizando su puerto para acceder a un servicio en concreto, por ejemplo un servidor Web con Nginx. Sin embargo, en muchas ocasiones, nos encontramos que solo tenemos acceso SSH y no podemos acceder, "desde remoto", a un servicio en concreto.

Para este tutorial, utilizaremos una red muy sencilla donde el PC LOCAL tiene acceso a un equipo remoto solo a través de SSH, pero la conexión con el puerto 80 del equipo remoto está bloqueado por un Firewall. Conseguiremos acceder al puerto 80 a través de un túnel SSH abierto entre el PC LOCAL y el EQUIPO REMOTO.

Túnel SSH con GNU/LinuxEsquema de red

 

 

 

 

3.- ACTIVAR EL TCP FORWARDING

Para poder hacer túneles SSH es imprescindible tener activado en el servidor de SSH la opción de TCPForwarding. Para ello hay que editar el fichero /etc/ssh/sshd_config y cambiar el valor a Yes y descomentar la línea para que quede de la siguiente forma:

AllowTcpForwarding yes

 

 

Una vez hecho el cambio hay que reiniciar el servidor SSH (las sesiones abiertas no se desconectan):

raul@debian:~$ sudo /etc/init.d/ssh restart

 

 

O el siguiente comando si usamos SystemD:

raul@debian:~$ sudo systemctl restart ssh

 

 

4.- CREAR EL TÚNEL SSH

Para crear el túnel SSH, es tan sencillo como ejecutar un único comando, siguiendo la siguiente sintaxis (recordad usar un puerto [local_port] que no esté en uso y entre 1024 y 65535):

Sintaxis:

ssh -L local_port:localhost:remote_service_port user@server

 

Donde:

  • local_port: Nuevo puerto a abrir en local donde se creará el túnel SSH
  • localhost: Nuestra máquina local
  • remote_service_port: Puerto remoto a donde queremos que conecte nuestro túnel SSH
  • user: Usuario SSH del servidor remoto
  • server: Dirección del servidor SSH

 

En nuestro ejemplo, la conexión y creación del túnel SSH se realizará de la siguiente forma:

raul@pc-cliente:~$ ssh -L 8888:localhost:80 Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

 

 

Una vez creado el túnel, la conexión se mantendrá abierta hasta que hagamos exit, cerremos la ventana del shell o se corte la conexión.

 

 

5.- CONECTAR AL SERVIDOR NGINX REMOTO A TRAVÉS DEL TÚNEL SSH

El siguiente paso será conectar al servidor Nginx a través del túnel SSH. Para ello, en la URL del navegador debemos introducir la siguiente URL http://127.0.0.1:8888 o http://localhost:8888

Túnel SSH con GNU/Linux Conexión a un Nginx a través de túnel SSH

 

 

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!
Cookies

Usamos cookies en nuestro sitio web. Algunas de ellas son esenciales para el funcionamiento del sitio, mientras que otras nos ayudan a mejorar el sitio web y también la experiencia del usuario (cookies de rastreo). Puedes decidir por ti mismo si quieres permitir el uso de las cookies. Ten en cuenta que si las rechazas, puede que no puedas usar todas las funcionalidades del sitio web.