¿SSH y SOCKS dentro de un túnel cifrado HTTPS usando un servidor Apache de Windows o qué?

¿SSH y SOCKS dentro de un túnel cifrado HTTPS usando un servidor Apache de Windows o qué?

He pasado horas revisando Super/Stack y otros sitios y aún no he encontrado la respuesta. Entonces, voy a intentar preguntar aquí nuevamente. Señalaría algunas respuestas parciales que encontré en los enlaces, pero son tan complicadas o están medio respondidas que creo que pueden empeorar las cosas para cualquiera que lea esto.

Hasta ahora, he podido configurar un servidor Apache ejecutándose en mi PC local con un certificado autofirmado. Tengo el puerto de mi enrutador reenviando 443 a este servidor. También tengo OpenSSH ejecutándose en el puerto 22 de mi PC local. Mi meta es:

  1. Quiero poder conectarme desde Putty/WinSCP a mi PC en el puerto 22, mediante un túnel a través de la conexión SSL 443, y navegar a través de SOCKS como si estuviera en dicha PC.

  2. Podría probar Stunnel, SSHL, HTTPProxy, Httptunnel, Corkscrew en el lado del cliente o cualquier cosa que alguien pueda explicar claramente cómo hacer (o vincular a una guía), pero debe ejecutarse en Windows.

  3. Mi preferencia sería configurar el servidor Apache (¿mod_proxy/pase de proxy?) para (¿por sí solo?) reenviar el 443 entrante al puerto 22 para que OpenSSH recoja la conexión y SOCKS para navegar.

    NOTA: Aquí hay una descripción del flujo. No puedo usar una VPN (ya en una) y no puedo usar 443 en SSH porque el FW de capa 7 ve el protocolo SSH y lo bloquea. La PC del cliente ya está en VPN, por lo que no se puede usar ninguna VPN.

Win PcA > Win ServerB ejecutando algo (¿Apache/Nginx?) {SSL}

Luego, mientras HTTPS está activo y cifrado, envíe:

Win PcA > Win ServerB ejecutando OpenSSH {SSH} a través de WinSCP o Putty para SFTP

&

Win PcA > Win ServerB ejecutando OpenSSH {SSH} a través de Putty para SOCKS a través del navegador

Esto es principalmente para fines de conocimiento, pero me doy cuenta de que también es para perforar FW. Como son todas mis computadoras, puedo instalar software en el lado del cliente si es necesario, pero lo mejor sería no tener ningún software excepto Putty/WinSCP y un navegador. Puedo cambiar el puerto proxy en el lado del cliente. De esta manera, si alguna vez tengo que ejecutar esto desde una PC que no me pertenece, lo más probable es que pueda salirme con PuTTY/WinSCP sin levantar banderas ni necesitar derechos de administrador.

He oído hablar de Squid y Ngnix para el lado del servidor como servidores Proxy, pero actualmente tengo Apache 2.4 ejecutándose. Podría cambiarlo, supongo. Básicamente, quiero crear una especie de navegación Inet (a través del proxy SOCKS) y un punto final de transferencia de archivos (a través de 22 completamente oculto en SSL) al que pueda acceder desde cualquier lugar, que no se bloqueará siempre que la red en la que estoy permita conexiones SSL. .

Las guías disponibles para configurar Apache y un certificado autofirmado me llevaron hasta aquí... ahora tengo demasiadas opciones. Gracias por leer.

Editar: Hay preguntas como esta sin respuestas y con respuestas confusas. Pero nada completo para mí. Además, no estoy seguro de que mi pregunta tenga el formato correcto. Nuevo por aquí.

Respuesta1

SSH ya utiliza SSL para cifrar el tráfico. Para utilizar el puerto HTTPS tcp/443 (a menudo) permitido para conectarse al servidor SSH de su hogar, solo necesitará configurar tanto su cliente SSH como su servidor SSH para usar el puerto tcp/443. WinSCP como cliente lo permite. Dependiendo del software utilizado para el servidor SSH, esto también debería ser posible, además de instalar su propio certificado SSL.

No necesitarás tener instalado Apache para esto. De hecho, como Apache terminaría la conexión SSL, el tráfico cifrado desde allí a un servidor SSH local no sería posible (pero, por ejemplo, telnet no cifrado).

Si necesita evadir el reconocimiento de la aplicación, podría pensar en crear un túnel VPN SSL sobre el cual iniciaría un túnel SSH... parte del cual menciona con Apache + OpenSSH. Necesitaría un software adicional para el servidor VPN SSL, como (?) OpenVPN, que no formará parte de Apache en absoluto.

Respuesta2

No sé mucho sobre máquinas virtuales, así que suponiendo que puedas solucionar los problemas de las máquinas virtuales. esta guíadebería ayudar.

Configurará un servidor stunnel4 como en la guía (cambie la conexión a 127.0.0.1:22 y acepte a 443), luego creará el servidor ssh como de costumbre.

Después de ir a la descarga de la PC cliente y alCliente de túnel, haga clic derecho en el icono de la bandeja y vaya aEditar configuracióncopia esto (cambia la ip):

[ssh]
client = yes
accept = 127.0.0.1:22
connect = [ip address of the server]:443

Ahora regrese al menú y haga clicRecargar configuración. Y tu estas listo; simplemente debes conectarte a ssh pero usando 127.0.0.1:22.

información relacionada