fbpx
Wikipedia

Redirección de puertos

La redirección de puertos, a veces llamado tunelado de puertos, es la acción de redirigir un puerto de red de un nodo de red a otro. Esta técnica puede permitir que un usuario externo tenga acceso a un puerto en una dirección IP privada (dentro de una LAN) desde el exterior vía un router con NAT activado.

La redirección de puertos permite que computadoras remotas (por ejemplo, máquinas públicas en Internet) se conecten a un computador en concreto dentro de una LAN privada.

Por ejemplo:

  • la redirección del puerto 8000 en el router a la máquina de otro usuario permite streaming SHOUTcast
  • la redirección de los puertos 5000 a 6000 a la máquina de un usuario permite el uso de Unreal Tournament

Las máquinas con Linux modernos consiguen esto añadiendo reglas de iptables a la tabla nat: con el destino DNAT a la cadena de PREROUTING o con el destino SNAT en la cadena de POSTROUTING.

Las máquinas BSD y Mac OS X usan una herramienta similar llamada ipfw. La herramienta ipfw corre probablemente como una parte ya integrada del núcleo del sistema operativo.

Tipos de redirección de puertos

Forwarding de Conexiones SSH

SSH permite redirigir muchos tipos de información desde un punto hacia otro de forma segura utilizando un canal cifrado (como todas las comunicaciones con SSH) este mecanismo también es conocido como port-forwarding y permite a clientes y servidores SSH abrir puertos para enrutar el tráfico hacia un algún destino en la red.

Este mecanismo es utilizado con frecuencia para evadir restricciones de firewall y filtros establecidos en la red, de esta manera es posible recibir y enviar paquetes desde destinos que no se encuentran permitidos por firewalls o proxies de manera explícita. En general, la analogía del “enrutador de llamadas” en una línea telefónica clásica puede ser un ejemplo perfecto de este mecanismo, donde una conexión de entrada es recibida por un intermediario que lo único que hace es enviar la llamada a su correspondiente destino, esto es justo lo que hace un túnel SSH (port-forwarding). Ahora bien existen 3 tipos de túneles distintos estos son: Local, Remoto y Dinámico, La diferencia entre estos tipos de túneles radica principalmente en la dirección de la comunicación.

Redirección local de puertos

Consiste en la conexión de la máquina local a una máquina remota en un puerto determinado. Con SSH se puede crear un túnel local con la opción “-L” por ejemplo:

> ssh -L 8080:www.debian.org:80 root @ 192.168.1.34 

El comando anterior establece una conexión con el host 192.168.1.34 y una vez se han ingresado las credenciales de acceso válidas, se establece el túnel local en el puerto 8080 (este puerto se abre en la máquina del cliente que ha intentado establecer la conexión). Cuando se realice una petición sobre el puerto 8080 en dicha máquina, esta será redireccionada al sitio establecido (www.debian.org).

Por otro lado, la opción “-L” puede declararse varias veces en el mismo comando, por ejemplo:

> ssh -L 8080:www.debian.org:80 -L 8081:www.fsf.org:80 root @ 192.168.1.34 

Este caso es exactamente igual al anterior, la única diferencia es que se abren dos puertos (8080 y 8081) en la máquina local del cliente SSH, cada uno de estos puertos ejecutará una acción de “redirección” a la correspondiente ruta declarada.

Redirección remota de puertos

Siguiendo la misma lógica de los túneles locales, los túneles remotos establecen un puerto de escucha para que redirija una petición concreta, sin embargo el sentido de la conexión es lo que cambia con respecto a los túneles locales, es decir, con los túneles locales se abre un puerto local que apunta a una dirección concreta, sin embargo, con un túnel remoto, se abre un puerto en la máquina SERVIDORA (servicio SSH) y posteriormente este apunta a una dirección concreta (como puede apreciarse, justo en el sentido contrario que los túneles locales). Este mecanismo puede ser utilizado por atacantes que han logrado comprometer un servicio SSH y que desean tener un túnel inverso hacia su propia máquina para acceder a la red interna de una organización, también es frecuente que se utilice con la única finalidad de realizar un bypass de restricciones de proxies y firewalls. Para crear un túnel remoto (o inverso) se utiliza la opción “-R” del siguiente modo:

> ssh -R 8080:www.debian.org:80 root @ 192.168.1.34 

De este modo cuando se establezca la conexión con el servidor se abrirá el puerto 8080 en el servidor SSH (en este ejemplo en 192.168.1.34) Ahora cuando se realice una petición a la máquina 192.168.1.34, en el puerto declarado en la ejecución del comando (8080) este realizará la acción de redirección de la conexión hacia el destino especificado (www.debian.org.80).

Sin embargo lo más común es que se desee establecer como destino de la conexión, la máquina del cliente (o atacante) que a su vez puede tener un servidor SSH listo para recibir conexiones:

> ssh -R 8080:192.168.1.33:22 root @ 192.168.1.34 

En este caso la máquina del cliente/atacante (192.168.1.33) será la que reciba la conexión desde el servidor SSH (192.168.1.34) una vez se intente realizar una conexión contra el puerto 8080 en la máquina 192.168.1.34.

Por otro lado, del mismo modo que ocurre con los túneles locales, en el caso de los túneles remotos también se pueden establecer uno o varios túneles con la opción “-R” por ejemplo:

> ssh -R 8082:192.168.1.33:22 -R *9090:192.168.1.35:22 root @ 192.168.1.34 

En el caso anterior se han definido dos declaraciones de redirección de puertos, la primera abre un puerto en el servidor (8082) que permite redirigir las conexiones entrantes por dicho puerto, hacia el puerto 22 de la máquina 192.168.1.33. La segunda especificación indica que las conexiones entrantes por el puerto 9090 (que provienen de cualquier sitio, para esto esta el “*”) serán redireccionadas a la máquina 192.168.1.35, ambas máquinas en este caso pueden estar siendo controladas por el atacante.

Redirección dinámica de puertos

Un túnel dinámico permite convertir al servidor SSH en un servidor proxy SOCKS el cual es un protocolo ampliamente utilizado para programas que soliciten cualquier conexión a internet por medio de un servidor proxy, de esta forma cualquier programa puede utilizar este puerto para establecer cualquier tipo de conexión de forma segura por medio del servidor SSH (cualquier programa como por ejemplo un navegador web). Este tipo de túnel es muy similar a un túnel remoto, sin embargo, su principal diferencia radica en que cuando se establece una conexión en el puerto donde se encuentra establecido el servidor proxy, este no redirige a una ruta específica (dirección estática como en el caso de los túneles remotos donde dicha ruta se indica en la ejecución del comando), en lugar de esto, el puerto que se encuentra en estado de escucha en el servidor SSH, redirigirá a una dirección dinámica que el cliente solicita (como una dirección solicitada desde un navegador web) esta es, a efectos prácticos, la principal diferencia entre un túnel remoto y un túnel dinámico, como se puede apreciar, en un túnel remoto la relación entre puerto y dirección a enrutar es de uno a uno, mientras que en un túnel dinámico dicha relación es de uno a muchos.

Para establecer un túnel dinámico, se utiliza la opción “-D” por ejemplo:

> ssh -D 8090 -C root @ 192.168.1.34 

De esta manera se ha establecido como puerto dinámico el 8090, de este modo cuando un programa utilice este puerto para establecer una conexión con un sitio externo, el servidor SSH redirigirá la petición a dicho sitio por medio de un canal cifrado. Por otro lado, la opción “-C” permite comprimir los datos que se envían por medio del canal SSH, esta opción permitirá acelerar el tráfico de los datos cuando dichos datos son basados en texto, como por ejemplo HTML (navegación web) sin embargo puede presenciar retardos cuando se trata de contenido binario, como por ejemplo la descarga de ficheros.

Finalmente, es posible mezclar estos tipos de túneles en una misma ejecución del comando, permitiendo de esta forma, tener combinaciones tales como túneles remotos y dinámicos en la misma conexión al servidor SSH, por ejemplo:

> ssh -R 8082:192.168.1.33:22 -R 9090:192.168.1.35:22 -D 9191 root @ 192.168.1.34 

En esta entrada se han establecido algunas bases de los conceptos avanzados de SSH, en próximas entradas, el objetivo será intentar profundizar un poco más en el entendimiento y posterior práctica de este protocolo utilizando algunas técnicas de hacking que involucran este servicio.

Advertencias sobre redirección de puertos

Algunas advertencias sobre la redirección de puertos incluyen:

  • la necesidad de redirigir los paquetes que vienen al puerto redirigido del router así como la necesidad de reescribirlos para que la máquina hacia la que el puerto está redirigido pueda responder a la dirección de origen, que a su vez lleva a,
  • la incapacidad de la máquina (privada) de destino para ver el emisor real de los paquetes redirigidos, y en su lugar verlos como si originasen del router.

Véase también

Enlaces externos

  • www.yougetsignal.com;
  • www.canyouseeme.org, informa si los puertos de una computadora están redirigidos adecuadamente (incluso puertos por debajo del 1024);
  • , ejemplo de redirección de puertos usando SSH para acceder a un MySQL en una IP privada;
  • Open.Nat, librería de clases .NET para redirección de puertos en dispositivos NAT con UPNP and PMP.
  •   Datos: Q1049673

redirección, puertos, redirección, puertos, veces, llamado, tunelado, puertos, acción, redirigir, puerto, nodo, otro, esta, técnica, puede, permitir, usuario, externo, tenga, acceso, puerto, dirección, privada, dentro, desde, exterior, vía, router, activado, r. La redireccion de puertos a veces llamado tunelado de puertos es la accion de redirigir un puerto de red de un nodo de red a otro Esta tecnica puede permitir que un usuario externo tenga acceso a un puerto en una direccion IP privada dentro de una LAN desde el exterior via un router con NAT activado La redireccion de puertos permite que computadoras remotas por ejemplo maquinas publicas en Internet se conecten a un computador en concreto dentro de una LAN privada Por ejemplo la redireccion del puerto 8000 en el router a la maquina de otro usuario permite streaming SHOUTcast la redireccion de los puertos 5000 a 6000 a la maquina de un usuario permite el uso de Unreal TournamentLas maquinas con Linux modernos consiguen esto anadiendo reglas de iptables a la tabla nat con el destino DNAT a la cadena de PREROUTING o con el destino SNAT en la cadena de POSTROUTING Las maquinas BSD y Mac OS X usan una herramienta similar llamada ipfw La herramienta ipfw corre probablemente como una parte ya integrada del nucleo del sistema operativo Indice 1 Tipos de redireccion de puertos 1 1 Redireccion local de puertos 1 2 Redireccion remota de puertos 1 3 Redireccion dinamica de puertos 2 Advertencias sobre redireccion de puertos 3 Vease tambien 4 Enlaces externosTipos de redireccion de puertos EditarForwarding de Conexiones SSHSSH permite redirigir muchos tipos de informacion desde un punto hacia otro de forma segura utilizando un canal cifrado como todas las comunicaciones con SSH este mecanismo tambien es conocido como port forwarding y permite a clientes y servidores SSH abrir puertos para enrutar el trafico hacia un algun destino en la red Este mecanismo es utilizado con frecuencia para evadir restricciones de firewall y filtros establecidos en la red de esta manera es posible recibir y enviar paquetes desde destinos que no se encuentran permitidos por firewalls o proxies de manera explicita En general la analogia del enrutador de llamadas en una linea telefonica clasica puede ser un ejemplo perfecto de este mecanismo donde una conexion de entrada es recibida por un intermediario que lo unico que hace es enviar la llamada a su correspondiente destino esto es justo lo que hace un tunel SSH port forwarding Ahora bien existen 3 tipos de tuneles distintos estos son Local Remoto y Dinamico La diferencia entre estos tipos de tuneles radica principalmente en la direccion de la comunicacion Redireccion local de puertos Editar Consiste en la conexion de la maquina local a una maquina remota en un puerto determinado Con SSH se puede crear un tunel local con la opcion L por ejemplo gt ssh L 8080 www debian org 80 root 192 168 1 34 El comando anterior establece una conexion con el host 192 168 1 34 y una vez se han ingresado las credenciales de acceso validas se establece el tunel local en el puerto 8080 este puerto se abre en la maquina del cliente que ha intentado establecer la conexion Cuando se realice una peticion sobre el puerto 8080 en dicha maquina esta sera redireccionada al sitio establecido www debian org Por otro lado la opcion L puede declararse varias veces en el mismo comando por ejemplo gt ssh L 8080 www debian org 80 L 8081 www fsf org 80 root 192 168 1 34 Este caso es exactamente igual al anterior la unica diferencia es que se abren dos puertos 8080 y 8081 en la maquina local del cliente SSH cada uno de estos puertos ejecutara una accion de redireccion a la correspondiente ruta declarada Redireccion remota de puertos Editar Siguiendo la misma logica de los tuneles locales los tuneles remotos establecen un puerto de escucha para que redirija una peticion concreta sin embargo el sentido de la conexion es lo que cambia con respecto a los tuneles locales es decir con los tuneles locales se abre un puerto local que apunta a una direccion concreta sin embargo con un tunel remoto se abre un puerto en la maquina SERVIDORA servicio SSH y posteriormente este apunta a una direccion concreta como puede apreciarse justo en el sentido contrario que los tuneles locales Este mecanismo puede ser utilizado por atacantes que han logrado comprometer un servicio SSH y que desean tener un tunel inverso hacia su propia maquina para acceder a la red interna de una organizacion tambien es frecuente que se utilice con la unica finalidad de realizar un bypass de restricciones de proxies y firewalls Para crear un tunel remoto o inverso se utiliza la opcion R del siguiente modo gt ssh R 8080 www debian org 80 root 192 168 1 34 De este modo cuando se establezca la conexion con el servidor se abrira el puerto 8080 en el servidor SSH en este ejemplo en 192 168 1 34 Ahora cuando se realice una peticion a la maquina 192 168 1 34 en el puerto declarado en la ejecucion del comando 8080 este realizara la accion de redireccion de la conexion hacia el destino especificado www debian org 80 Sin embargo lo mas comun es que se desee establecer como destino de la conexion la maquina del cliente o atacante que a su vez puede tener un servidor SSH listo para recibir conexiones gt ssh R 8080 192 168 1 33 22 root 192 168 1 34 En este caso la maquina del cliente atacante 192 168 1 33 sera la que reciba la conexion desde el servidor SSH 192 168 1 34 una vez se intente realizar una conexion contra el puerto 8080 en la maquina 192 168 1 34 Por otro lado del mismo modo que ocurre con los tuneles locales en el caso de los tuneles remotos tambien se pueden establecer uno o varios tuneles con la opcion R por ejemplo gt ssh R 8082 192 168 1 33 22 R 9090 192 168 1 35 22 root 192 168 1 34 En el caso anterior se han definido dos declaraciones de redireccion de puertos la primera abre un puerto en el servidor 8082 que permite redirigir las conexiones entrantes por dicho puerto hacia el puerto 22 de la maquina 192 168 1 33 La segunda especificacion indica que las conexiones entrantes por el puerto 9090 que provienen de cualquier sitio para esto esta el seran redireccionadas a la maquina 192 168 1 35 ambas maquinas en este caso pueden estar siendo controladas por el atacante Redireccion dinamica de puertos Editar Un tunel dinamico permite convertir al servidor SSH en un servidor proxy SOCKS el cual es un protocolo ampliamente utilizado para programas que soliciten cualquier conexion a internet por medio de un servidor proxy de esta forma cualquier programa puede utilizar este puerto para establecer cualquier tipo de conexion de forma segura por medio del servidor SSH cualquier programa como por ejemplo un navegador web Este tipo de tunel es muy similar a un tunel remoto sin embargo su principal diferencia radica en que cuando se establece una conexion en el puerto donde se encuentra establecido el servidor proxy este no redirige a una ruta especifica direccion estatica como en el caso de los tuneles remotos donde dicha ruta se indica en la ejecucion del comando en lugar de esto el puerto que se encuentra en estado de escucha en el servidor SSH redirigira a una direccion dinamica que el cliente solicita como una direccion solicitada desde un navegador web esta es a efectos practicos la principal diferencia entre un tunel remoto y un tunel dinamico como se puede apreciar en un tunel remoto la relacion entre puerto y direccion a enrutar es de uno a uno mientras que en un tunel dinamico dicha relacion es de uno a muchos Para establecer un tunel dinamico se utiliza la opcion D por ejemplo gt ssh D 8090 C root 192 168 1 34 De esta manera se ha establecido como puerto dinamico el 8090 de este modo cuando un programa utilice este puerto para establecer una conexion con un sitio externo el servidor SSH redirigira la peticion a dicho sitio por medio de un canal cifrado Por otro lado la opcion C permite comprimir los datos que se envian por medio del canal SSH esta opcion permitira acelerar el trafico de los datos cuando dichos datos son basados en texto como por ejemplo HTML navegacion web sin embargo puede presenciar retardos cuando se trata de contenido binario como por ejemplo la descarga de ficheros Finalmente es posible mezclar estos tipos de tuneles en una misma ejecucion del comando permitiendo de esta forma tener combinaciones tales como tuneles remotos y dinamicos en la misma conexion al servidor SSH por ejemplo gt ssh R 8082 192 168 1 33 22 R 9090 192 168 1 35 22 D 9191 root 192 168 1 34 En esta entrada se han establecido algunas bases de los conceptos avanzados de SSH en proximas entradas el objetivo sera intentar profundizar un poco mas en el entendimiento y posterior practica de este protocolo utilizando algunas tecnicas de hacking que involucran este servicio Advertencias sobre redireccion de puertos EditarAlgunas advertencias sobre la redireccion de puertos incluyen la necesidad de redirigir los paquetes que vienen al puerto redirigido del router asi como la necesidad de reescribirlos para que la maquina hacia la que el puerto esta redirigido pueda responder a la direccion de origen que a su vez lleva a la incapacidad de la maquina privada de destino para ver el emisor real de los paquetes redirigidos y en su lugar verlos como si originasen del router Vease tambien EditarSecure Shell Conmutacion de paquetes Tunel informatica Enlaces externos Editarwww yougetsignal com www canyouseeme org informa si los puertos de una computadora estan redirigidos adecuadamente incluso puertos por debajo del 1024 www sanafapech net ejemplo de redireccion de puertos usando SSH para acceder a un MySQL en una IP privada Open Nat libreria de clases NET para redireccion de puertos en dispositivos NAT con UPNP and PMP Datos Q1049673 Obtenido de https es wikipedia org w index php title Redireccion de puertos amp oldid 140201709, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos