Túnel (informática)

ImprimirCitar

En las redes informáticas, un protocolo de tunelización, túnel o tunneling es un protocolo de comunicación que permite el movimiento de datos de una red a otra, aprovechando la encapsulación. Implica permitir que las comunicaciones de la red privada se envíen a través de una red pública (como Internet) a través de un proceso llamado encapsulación.

Debido a que la tunelización implica volver a empaquetar los datos de tráfico en una forma diferente, quizás con el cifrado como estándar, puede ocultar la naturaleza del tráfico que se ejecuta a través de un túnel.

El protocolo de tunelización funciona utilizando la porción de datos de un paquete (la carga útil) para transportar los paquetes que realmente brindan el servicio. La tunelización utiliza un modelo de protocolo en capas, como los del conjunto de protocolos OSI o TCP/IP, pero por lo general infringe las capas cuando se utiliza la carga útil para transportar un servicio que normalmente no proporciona la red. Normalmente, el protocolo de entrega opera a un nivel igual o superior en el modelo en capas que el protocolo de carga útil.

Usos

Un protocolo de túnel puede, por ejemplo, permitir que un protocolo externo se ejecute en una red que no admite ese protocolo en particular, como ejecutar IPv6 sobre IPv4.

Otro uso importante es proporcionar servicios que no son prácticos o seguros si se ofrecen utilizando solo los servicios de red subyacentes, como proporcionar una dirección de red corporativa a un usuario remoto cuya dirección de red física no forma parte de la red corporativa.

Eludir la política de cortafuegos

Los usuarios también pueden usar túneles para "escabullirse a través" de un firewall, usando un protocolo que el firewall normalmente bloquearía, pero "envuelto" dentro de un protocolo que el firewall no bloquea, como HTTP. Si la política de firewall no excluye específicamente este tipo de "envoltura", este truco puede funcionar para eludir la política de firewall prevista (o cualquier conjunto de políticas de firewall entrelazadas).

Otro método de tunelización basado en HTTP utiliza el método/comando HTTP CONNECT. Un cliente emite el comando HTTP CONNECT a un proxy HTTP. Luego, el proxy establece una conexión TCP con un servidor: puerto en particular y transmite datos entre ese servidor: puerto y la conexión del cliente. Debido a que esto crea un agujero de seguridad, los proxies HTTP compatibles con CONNECT comúnmente restringen el acceso al método CONNECT. El proxy permite conexiones solo a puertos específicos, como 443 para HTTPS.

Otros métodos de tunelización capaces de eludir los cortafuegos de la red utilizan diferentes protocolos como DNS, MQTT, SMS.

Resumen técnico

Como ejemplo de capa de red sobre capa de red, la Encapsulación de enrutamiento genérico (GRE), un protocolo que se ejecuta sobre IP (protocolo IP número 47), a menudo sirve para transportar paquetes IP, con direcciones privadas RFC 1918, a través de Internet utilizando paquetes de entrega con direcciones públicas. Direcciones IP. En este caso, los protocolos de entrega y carga son los mismos, pero las direcciones de carga son incompatibles con las de la red de entrega.

También es posible establecer una conexión utilizando la capa de enlace de datos. El protocolo de túnel de capa 2 (L2TP) permite la transmisión de tramas entre dos nodos. Un túnel no está encriptado por defecto: el protocolo TCP/IP elegido determina el nivel de seguridad.

SSH usa el puerto 22 para habilitar el cifrado de datos de las cargas útiles que se transmiten a través de una conexión de red pública (como Internet), proporcionando así la funcionalidad de VPN. IPsec tiene un modo de transporte de extremo a extremo, pero también puede operar en un modo de túnel a través de una puerta de enlace de seguridad confiable.

Para comprender una pila de protocolos particular impuesta por la tunelización, los ingenieros de redes deben comprender los conjuntos de protocolos de carga útil y de entrega.

Protocolos comunes de tunelización

  • IP en IP (Protocolo 4): IP en IPv4/IPv6
  • SIT/IPv6 (Protocolo 41): IPv6 en IPv4/IPv6
  • GRE (Protocolo 47): Encapsulación de enrutamiento genérico
  • OpenVPN (puerto UDP 1194)
  • SSTP (puerto TCP 443): protocolo de tunelización de sockets seguros
  • IPSec (Protocolo 50 y 51): Seguridad del Protocolo de Internet
  • L2TP (Protocolo 115): Protocolo de Túnel de Capa 2
  • VXLAN (puerto UDP 4789): red de área local virtual extensible.
  • GINEBRA
  • Guardia de alambre

Tunelización segura de Shell

Un túnel Secure Shell (SSH) consiste en un túnel encriptado creado a través de una conexión de protocolo SSH. Los usuarios pueden configurar túneles SSH para transferir tráfico no cifrado a través de una red a través de un canal cifrado. Es un enfoque basado en software para la seguridad de la red y el resultado es un cifrado transparente.

Por ejemplo, las máquinas con Microsoft Windows pueden compartir archivos mediante el protocolo Server Message Block (SMB), un protocolo no cifrado. Si uno montara un sistema de archivos de Microsoft Windows de forma remota a través de Internet, alguien que husmeara en la conexión podría ver los archivos transferidos. Para montar el sistema de archivos de Windows de forma segura, se puede establecer un túnel SSH que enruta todo el tráfico SMB al servidor de archivos remoto a través de un canal cifrado. Aunque el protocolo SMB en sí mismo no contiene cifrado, el canal SSH cifrado a través del cual viaja ofrece seguridad.

Una vez que se ha establecido una conexión SSH, el túnel comienza con SSH escuchando un puerto en el host remoto o local. Todas las conexiones a él se reenvían al especificado dirección y puerto con origen en el host opuesto (remoto o local, como antes).

La tunelización de una carga útil que encapsula TCP (como PPP) a través de una conexión basada en TCP (como el reenvío de puertos de SSH) se conoce como "TCP sobre TCP", y hacerlo puede inducir una pérdida drástica en el rendimiento de la transmisión (un problema conocido como "fusión de TCP"),es por eso que el software de red privada virtual puede usar un protocolo más simple que TCP para la conexión del túnel. Sin embargo, esto a menudo no es un problema cuando se usa el reenvío de puertos de OpenSSH, porque muchos casos de uso no implican túneles TCP sobre TCP; el colapso se evita porque el cliente OpenSSH procesa la conexión TCP local del lado del cliente para llegar a la carga real que se está enviando y luego envía esa carga directamente a través de la propia conexión TCP del túnel al lado del servidor, donde OpenSSH El servidor "desenvuelve" de manera similar la carga útil para "envolverla" nuevamente para enrutarla a su destino final. Naturalmente, este envolver y desenvolver también se produce en el sentido inverso del túnel bidireccional.

Los túneles SSH brindan un medio para eludir los firewalls que prohíben ciertos servicios de Internet, siempre que un sitio permita conexiones salientes. Por ejemplo, una organización puede prohibir que un usuario acceda a páginas web de Internet (puerto 80) directamente sin pasar por el filtro proxy de la organización (que proporciona a la organización un medio para monitorear y controlar lo que el usuario ve a través de la web). Pero es posible que los usuarios no deseen que el filtro proxy de la organización controle o bloquee su tráfico web. Si los usuarios pueden conectarse a un servidor SSH externo, pueden crear un túnel SSH para reenviar un puerto determinado en su máquina local al puerto 80 en un servidor web remoto. Para acceder al servidor web remoto, los usuarios apuntarían su navegador al puerto local en http://localhost/

Algunos clientes SSH admiten el reenvío de puertos dinámico que permite al usuario crear un proxy SOCKS 4/5. En este caso, los usuarios pueden configurar sus aplicaciones para usar su servidor proxy SOCKS local. Esto brinda más flexibilidad que crear un túnel SSH a un solo puerto como se describió anteriormente. SOCKS puede liberar al usuario de las limitaciones de conectarse solo a un puerto y servidor remotos predefinidos. Si una aplicación no es compatible con SOCKS, se puede usar un proxy para redirigir la aplicación al servidor proxy SOCKS local. Algunos proxificadores, como Proxycap, admiten SSH directamente, lo que evita la necesidad de un cliente SSH.

En versiones recientes de OpenSSH, incluso se permite crear túneles de capa 2 o capa 3 si ambos extremos han habilitado dichas capacidades de túnel. Esto crea tun(capa 3, predeterminada) o tap(capa 2) interfaces virtuales en ambos extremos de la conexión. Esto permite usar la administración y el enrutamiento normales de la red y, cuando se usa en enrutadores, el tráfico de una subred completa se puede tunelizar. Un par de tapinterfaces virtuales funcionan como un cable Ethernet que conecta ambos extremos de la conexión y pueden unirse a los puentes del kernel.

Ciberataques basados ​​en tunelización

A lo largo de los años, la tunelización y la encapsulación de datos en general se han adoptado con frecuencia por motivos maliciosos, con el fin de comunicarse maliciosamente fuera de una red protegida.

En este contexto, los túneles conocidos implican protocolos como HTTP, SSH, DNS, MQTT.

Contenido relacionado

Protocolo de árbol de expansión

El Protocolo de árbol de expansión es un protocolo de red que crea una topología lógica sin bucles para redes Ethernet. La función básica de STP es...

Transparencia referencial

En informática, la transparencia referencial y la opacidad referencial son propiedades de partes de programas informáticos. Una expresión se llama...

Undernet

La Undernet es la tercera red más grande de Internet Relay Chat monitoreada públicamente, c. 2022, con alrededor de 36 servidores de clientes que atienden a...
Más resultados...
Tamaño del texto:
Copiar