1 votos

¿SSH y SOCKS dentro de un túnel encriptado HTTPS utilizando un servidor Apache en Windows o qué?

He pasado horas revisando Super/Stack y otros sitios y aún no he encontrado la respuesta. Así que voy a intentar preguntar aquí otra vez. Señalaría algunas respuestas parciales que encontré en enlaces pero son tan enmarañadas o medio respondidas que creo que puede empeorar las cosas para cualquiera que lea esto.

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

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

  2. Podría probar Stunnel, SSHL, HTTPProxy, Httptunnel, cliente Corkscrew o lo que sea que alguien pueda explicar claramente cómo hacer (o enlazar a una guía) pero debe ejecutarse en Windows.

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

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

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

Luego, mientras HTTPS está activo y encriptado 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 de un navegador

Esto es principalmente para fines educativos, pero me doy cuenta de que también es para sortear el firewall. Como todos son mis computadoras, puedo instalar software en el lado del cliente si es necesario, pero lo mejor sería no tener software excepto Putty/WinSCP y un navegador en el que pueda cambiar el puerto de proxy en el lado del cliente. De esta manera, si alguna vez tengo que ejecutar esto desde una PC que no poseo, es probable que pueda usar putty/WinSCP sin levantar sospechas o necesitar derechos de administrador.

He escuchado sobre Squid y Ngnix como servidores proxy del lado del servidor, pero actualmente tengo Apache 2.4 ejecutándose. Supongo que podría cambiarlo. Básicamente quiero crear una especie de punto final de navegación por Internet (a través de un proxy SOCKS) y transferencia de archivos (a través de 22 completamente ocultos en SSL) al que podría acceder desde cualquier lugar, que no sería bloqueado siempre que la red en la que me encuentre permita conexiones SSL.

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

Editar: Hay preguntas como esta por ahí sin respuestas, y con respuestas confusas. Pero nada completo para mí. Además, no estoy seguro de si mi pregunta está formateada correctamente. Soy nuevo por aquí.

1voto

user1016274 Puntos 741

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

No sería necesario tener Apache instalado 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 sí, por ejemplo, telnet sin cifrar).

Si necesita evadir el reconocimiento de la aplicación, se podría pensar en crear un túnel VPN SSL sobre el cual comenzaría un túnel SSH... parte de lo 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.

0voto

Wangsu Puntos 61

No sé mucho sobre VMs, así que asumiendo que puedes lidiar con problemas de VM. Esta guía debería ayudarte.

Vas a configurar un servidor stunnel4 como en la guía (cambia connect a 127.0.0.1:22 y accept a 443), luego configura el servidor ssh como de costumbre.

Luego ve al PC del cliente, descarga el Cliente Stunnel, haz clic derecho en el icono de la bandeja y ve a Editar Configuración copia esto (cambia la ip):

[ssh]
client = yes
accept = 127.0.0.1:22
connect = [dirección IP del servidor]:443

Ahora regresa al menú y haz clic en Recargar Configuración. Y ya está; deberías poder conectarte a ssh pero usando 127.0.0.1:22.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X