reenvío de puertos usando ip proxy

reenvío de puertos usando ip proxy

Estoy intentando acceder a mi máquina de forma remota a través de ssh con mi IP pública.

La forma habitual de hacer esto sería permitir el reenvío de puertos en mi enrutador y luego hacerlo: ssh ubuntu@myPublicIppero mi ISP usa CGNAT, por lo que no puedo reenviar puertos con mi IP pública asignada. Entonces utilicé tinyproxy en mi instancia de AWS y conecté mi máquina local a la dirección IP del proxy.

Lo que significa que cada solicitud que hago a través de mi máquina local pasa por la IP del proxy. Ahora mi IP pública se reemplaza con la IP proxy. Mi pregunta es ¿cómo puedo configurar el reenvío de puertos en mi máquina Linux local que tiene el proxy habilitado para poder conectarme a la máquina de forma remota usando ssh como: ssh ubuntu@myProxyIp.

Respuesta1

Para comunicarse con una máquina detrás de NAT/firewall/lo que sea, no necesita nada excepto que esa máquina pueda establecer una conexión saliente a la red pública y acceso ssh a una instancia en la red pública.

La configuración en la máquina detrás de NAT es para garantizar que realice una conexión ssh saliente con el reenvío de puertos inverso habilitado:

ssh -R:60000:127.0.0.1:22 [email protected]

donde [email protected]está la cuenta y la dirección de la instancia en la red pública a la que tienes acceso. Este comando, básicamente, significa lo siguiente: establecer una conexión SSH para friendly.domain.tldusar el usuario joepara autenticar y exponer nuestro puerto tcp local 22 en el extremo remoto como puerto tcp 60000. Si el software del servidor SSH es lo suficientemente reciente (y la configuración lo permite), puede También asigne directamente su puerto reenviado local a una dirección IP orientada a Internet en friendly.domain.tld, pero supongo que dicha configuración no está permitida.

Ahora que nuestra máquina ha establecido el enlace saliente, todo lo que tenemos que hacer para conectarnos desde cualquier lugar es utilizarlo friendly.domain.tldcomo proxy en nuestra conexión SSH. Para esto necesitarás abrir dos ventanas de terminal: la primera se usará para establecer un enlace con la friendly.domain.tldinstancia para reenviar el puerto tcp 60000 expuesto a tu máquina local:

ssh -L60000:127.0.0.1:60000 [email protected]

Esto asigna el puerto tcp 60000 en la interfaz de bucle invertido friendly.domain.tlda la interfaz de bucle invertido de la instancia en la que está ejecutando el comando ssh.

A partir de este momento, puede conectarse a su máquina detrás de NAT simplemente usando:

ssh -p60000 my_account@localhost

¿Dónde my_accounthay una cuenta en su máquina detrás de NAT?

En total, hay tres túneles SSH en juego:

machine_behind_nat <=1=> friendly_instance <=2=> your_laptop
            <=================3==================>

El motivo de dicha configuración es garantizar que incluso si "friendly_instance" se interrumpe en su comunicación con la máquina detrás de NAT no se vea comprometida (no confiamos en "friendly_instance" más allá de permitirle transferir bytes a través de su interfaz loopback. utilizando cifrado de extremo a extremo en nuestro túnel n.° 3, que pasa por los túneles n.° 1 y n.° 2.

Cubríesta configuración en mi blogSi quieres un poco de historia y otros trucos, puedes hacerlo con ssh.

Respuesta2

Dependiendo de lo que realmente necesite reenviar, puede realizar un reenvío de puerto inverso dinámico con ssh.

Si solo necesita proxy del puerto 22:

ssh -R 22:0.0.0.0:2222 user@remote_server

Luego puedes ssh en tu máquina local haciendo:

ssh -p 2222 localuser@ProxyIP

Si desea reenviar dinámicamente:

ssh -R 0.0.0.0:2222 user @remote_server

Puede acceder a cualquier cosa en su red local mediante cadenas de proxy. Preste atención a que cualquier persona que conozca su IP remota y su puerto para el proxy SOCKS pueda acceder a su red local. Es posible que desee implementar un firewall para restringir quién puede acceder a él.

Aquí hay un buen artículo que habla de ello:https://posts.specterops.io/offensive-security-guide-to-ssh-tunnels-and-proxies-b525cbd4d4c6

información relacionada