
Web sobre cualquier protocolo
██╗ ██╗ ██████╗ ████████╗ ██████╗ ██████╗
██║ ██║██╔═══██╗╚══██╔══╝██╔═══██╗██╔══██╗
██║ █╗ ██║██║ ██║ ██║ ██║ ██║██████╔╝
██║███╗██║██║ ██║ ██║ ██║ ██║██╔═══╝
╚███╔███╔╝╚██████╔╝ ██║ ╚██████╔╝██║
╚══╝╚══╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝
WOTOP es una herramienta diseñada para tunelizar cualquier tipo de tráfico a través de un canal HTTP estándar.
Útil en escenarios donde hay un proxy que filtra todo el tráfico excepto el HTTP(S) estándar. A diferencia de otras herramientas que requieren estar detrás de un proxy que permita pasar tráfico arbitrario (posiblemente después de una solicitud CONNECT inicial), o herramientas que solo funcionan para SSH, esta no impone tales restricciones.
Suponiendo que deseas usar SSH para conectarte a una máquina remota donde no tienes privilegios de root.
Habrá 7 entidades:
Si no hubiera proxy, la comunicación sería algo como:
Cliente -> Proceso SSH del Cliente -> Servidor de destino -> Proceso SSH del Servidor de destino
En este escenario, aquí está el método propuesto:
Cliente -> Proceso SSH del Cliente -> Proceso WOTOP del Cliente -> Proxy -> Proceso WOTOP del Servidor de destino -> Proceso SSH del Servidor de destino -> Servidor de destino
WOTOP simplemente envuelve todos los datos en paquetes HTTP y los almacena en búfer según corresponda.
Otro escenario aún más complicado sería si tienes un servidor de utilidad externo y necesitas acceder a los recursos de otro servidor desde detrás de un proxy. En este caso, wotop seguirá ejecutándose en tu servidor externo, pero en lugar de usar localhost en el segundo comando (sección de Uso), usa el nombre de host de la máquina de destino que tiene el host.
En la máquina cliente:
./wotop <puerto-salto-cliente> <nombre-servidor-destino> <puerto-salto-servidor>
En la máquina de destino:
./wotop <puerto-salto-servidor> localhost <puerto-destino> SERVER
(Nota la palabra clave SERVER al final)
En el caso de SSH, el puerto de destino sería 22. Ahora, una vez que estos dos estén ejecutándose, para SSH ejecutarías lo siguiente:
ssh <usuario-maquina-destino>@localhost -p <puerto-salto-cliente>
Nota: La palabra clave SERVER le dice a wotop qué lado de la conexión debe estar sobre HTTP.
¡Las solicitudes de extracción (Pull Requests) son más que bienvenidas! 😄