Tengo una computadora portátil cliente Linux Fedora21 detrás de un firewall corporativo (que deja pasar los puertos http y https pero no SSH 22) y tengo un servidor Linux Fedora21 en casa detrás de mi propio enrutador. La navegación con https funciona cuando especifico la dirección IP pública de mi servidor doméstico (porque configuré mi enrutador doméstico)
¿Es posible ssh (shell remoto) a mi servidor doméstico a través del puerto http / s?
Vi una herramienta llamada corkscrew
. ¿eso ayudaría?
opensshd
y httpd
ejecutar en el servidor de inicio. ¿Qué más necesitaría configuración?
sshd
http-proxy
MMM
fuente
fuente
Respuestas:
Lo posible depende de lo que permita el firewall.
Si el firewall permite el tráfico arbitrario en el puerto 443
Algunos cortafuegos toman la salida simple y permiten cualquier cosa en el puerto 443. Si ese es el caso, la forma más fácil de llegar a su servidor doméstico es hacer que escuche las conexiones SSH en el puerto 443. Si su máquina está directamente conectada a Internet, simplemente añadir
Port 443
a/etc/ssh/sshd_config
, o/etc/sshd_config
justo por debajo de la línea que dicePort 22
. Si su máquina está detrás de un enrutador / firewall que redirige las conexiones entrantes, haga que redirija las conexiones entrantes al puerto 443 al puerto 22 de su servidor con algo comodónde
wan0
está la interfaz WAN en su enrutador y 10.1.2.3 es la dirección IP de su servidor en su red doméstica.Si desea permitir que su servidor doméstico escuche tanto las conexiones HTTPS como las conexiones SSH en el puerto 443, es posible: el tráfico SSH y HTTPS se puede distinguir fácilmente (en SSH, el servidor habla primero, mientras que en HTTP y HTTPS, el cliente habla primero). Consulte http://blog.stalkr.net/2012/02/sshhttps-multiplexing-with-sshttp.html y http://wrouesnel.github.io/articles/Setting%20up%20sshttp/ para obtener tutoriales sobre cómo configurar esto con sshttp y también SSH en el puerto 80 o 443 mientras el servidor web (nginx) se ejecuta en estos puertos
Si tiene un proxy web que permite hacer túneles CONNECT
Algunos cortafuegos bloquean todas las conexiones salientes, pero permiten navegar por la web a través de un proxy que permite que el método HTTP
CONNECT
perfore efectivamente un agujero en el cortafuegos. ElCONNECT
método puede estar restringido a ciertos puertos, por lo que es posible que deba combinar esto con la escucha en el puerto 443 como se indicó anteriormente.Para hacer que SSH vaya a través del proxy, puede usar una herramienta como sacacorchos . En su
~/.ssh/config
, agregue unaProxyCommand
línea como la siguiente, si su proxy web eshttp://web-proxy.work.example.com:3128
:Envolviendo SSH en HTTP (S)
Algunos firewalls no permiten el tráfico SSH, incluso en el puerto 443. Para hacer frente a estos, debe disfrazar o hacer un túnel SSH en algo que el firewall permita. Consulte http://dag.wiee.rs/howto/ssh-http-tunneling/ para obtener un tutorial sobre cómo hacer esto con proxytunnel .
fuente
ProxyCommand nc -X connect -x __proxy_IP__:__port__ %h %p
puede intentarlo de otra manera, configurar un servidor web, que puede hacer que su servidor ssh,
https://github.com/huashengdun/webssh
fuente
Puede usar sslh si desea ejecutar AMBOS un servidor HTTPS y un servidor SSHd en el mismo puerto 443.
fuente