¿Es posible enrutar todo el tráfico desde y hacia mi PC local a través de una instancia de AWS mediante el reenvío de puertos?

¿Es posible enrutar todo el tráfico desde y hacia mi PC local a través de una instancia de AWS mediante el reenvío de puertos?

Estoy intentando utilizar las capacidades de reenvío de puertos de PuTTY para establecer una conexión desde la PC de mi hogar (que se ejecuta en Windows 11) a una instancia de AWS Lightsail (que se ejecuta en Ubuntu LTS 20.04) que he aprovisionado y configurado. La idea es utilizar la conectividad a Internet, disponible para la instancia, a través de la PC de mi hogar, algo así como usar un servidor proxy o VPN para acceder a Internet.

Suponga los siguientes parámetros:

  • Dirección IP pública de la instancia de AWS:x.x.x.x
  • Dirección IP privada de la instancia de AWS:Y.Y.Y.Y
  • Puerto SSH:22
  • He abierto el puerto 6088tanto a nivel de cuenta como a nivel de instancia.
  • Dirección IP pública de mi PC local (IP del enrutador):a.a.a.a
  • Dirección IP privada de mi pc local:b.b.b.b

Mi comprensión teórica hasta ahora es que debería usar PuTTY para el reenvío de puertos remotos del puerto 6088 de la instancia remota de Lightsail al puerto local correspondiente de mi PC doméstica en 6088.

He estado intentando (sin éxito) acceder a Internet remoto desde mi PC después de configurar los ajustes del proxy de la PC de casa en localhost:6088. Inicialmente había planeado acceder a la instancia remota a través de un esquema cliente-servidor VNC, pero tampoco pude hacerlo funcionar.

Después de buscar en Google un poco, descubrí que AWS también ofrece instancias específicamente para configurar redes VPN y que permiten el tipo de caso de uso que estoy considerando.

¿Alguien puede sugerir cuál es la forma correcta?

Respuesta1

  1. Tienes el modo de reenvío al revés. El reenvío "remoto" hace que el servidor sea el oyente; las conexiones se realizarían a la dirección del servidor: puerto (tal vez en localhost:6088 desde dentro del servidor, o tal vez en serverip:6088 desde otros hosts) y se reenviarían a su sistema cliente.

    Lo que estás intentando hacer es todo lo contrario de eso, por lo que implicaría algo más parecido al modo de reenvío "Local", donde el SSHclientees el escucha del puerto 6088 (y las reglas de firewall del servidor AWS son irrelevantes).

  2. Tanto el modo "Remoto" como el "Local" tienen funciones fijas; es decir, no permiten que la aplicación especifique dónde desea conectarse; siempre reenvían únicamente al destino especificado. Por ejemplo, si tiene un desvío "local" donde el puerto local es 6088 y el destino remoto es google.com:443, entoncescadaLa conexión a localhost:6088 se transmitirá a google.com:443 y a ningún otro lugar.

    (Esto también significa que incluso si "Local" o "Remoto"erael modo adecuado, no usarías el puerto enapoderadoconfiguración: lo usaría directamente como si fuera el servicio real).

    En su lugar, necesita el tercer modo en PuTTY (reenvío "dinámico"), que todavía está en la misma categoría que "Local", pero hace que PuTTY actúe como un proxy SOCKS. Con un reenvío "dinámico" en el puerto 6088, puede configurar su navegador para usar localhost:6088 como proxy SOCKS y poder navegar a través del servidor AWS.

  3. PuTTY sólo puede actuar como un proxy SOCKS, y Firefox y Chrome saben cómo usar proxies que hablan SOCKS, pero muchas otras aplicaciones no; Es relativamente común ver aplicaciones que admiten "HTTP CONNECT" pero no SOCKS.

    Dado que PuTTY no tiene una función para emular eso, es posible que necesites ejecutar unrealServidor proxy HTTP (por ejemplo, Squid o Privoxy) en el servidor AWS, luego use el reenvío "local" para acceder a él a través de SSH. (O tal vez haga lo que hace/solía hacer Tor, y ejecute Privoxy/Polipo localmente y apúntelo al puerto "Dinámico" de PuTTY, yendo 'navegador→HTTP→Privoxy→SOCKS→PuTTY→SSH→AWS'.)

  4. Todo lo anterior sólo puede manejar tráfico TCP; Si necesita UDP para algo (o incluso si desea pingutilizar un proxy), ninguno de esos tipos de proxy funcionará.

    En ese caso, necesitará configurar un túnel VPN completo entre su PC y el servidor AWS. (SSH no puede hacer eso en Windows y no es muy adecuado para ello en general; en su lugar, usaría OpenVPN, Tailscale, WireGuard o algo similar). No necesita un tipo especial de servidor para ese propósito.

    (Hay tipos de servidores que no son adecuados para configurar una VPN, concretamente los "VPS" extremadamente baratos que ofrecen algunos proveedores y que son simplemente contenedores OpenVZ disfrazados, aunque incluso esos normalmente pueden alojar al menos OpenVPN. No creo AWS tiene algo así; todos sus VPS son servidores virtuales en pleno funcionamiento).

información relacionada