Eu tenho um laptop cliente linux fedora21 atrás de um firewall corporativo (que permite portas http e https, mas não o ssh 22) e eu tenho um servidor linux fedora21 em casa atrás do meu próprio roteador. A navegação com https funciona quando eu especifico o endereço IP público do meu servidor doméstico (porque configurei meu roteador doméstico)
É possível ssh (shell remoto) no meu servidor doméstico pela porta http / s?
Eu vi uma ferramenta chamada corkscrew
. isso ajudaria?
opensshd
e httpd
execute no servidor doméstico. O que mais precisaria de configuração?
sshd
http-proxy
MMM
fonte
fonte
Respostas:
O que é possível depende do que o firewall permite.
Se o firewall permitir tráfego arbitrário na porta 443
Alguns firewalls seguem o caminho mais simples e permitem qualquer coisa na porta 443. Se esse for o caso, a maneira mais fácil de acessar seu servidor doméstico é fazê-lo ouvir conexões SSH na porta 443. Se sua máquina estiver diretamente conectada à Internet, basta adicionar
Port 443
a/etc/ssh/sshd_config
ou/etc/sshd_config
logo abaixo da linha que dizPort 22
. Se sua máquina estiver protegida por um roteador / firewall que redireciona as conexões de entrada, redirecione as conexões de entrada para a porta 443 para a porta 22 do servidor com algo comoonde
wan0
está a interface WAN no seu roteador e 10.1.2.3 é o endereço IP do seu servidor na sua rede doméstica.Se você deseja permitir que o servidor doméstico ouça conexões HTTPS e SSH na porta 443, é possível - o tráfego SSH e HTTPS pode ser facilmente distinguido (no SSH, o servidor fala primeiro, enquanto no HTTP e HTTPS, o cliente fala primeiro). Consulte http://blog.stalkr.net/2012/02/sshhttps-multiplexing-with-sshttp.html e http://wrouesnel.github.io/articles/Setting%20up%20sshttp/ para obter tutoriais sobre como definir isso com sshttp e também tenha SSH na porta 80 ou 443 enquanto o servidor da web (nginx) estiver sendo executado nessas portas
Se você tiver um proxy da Web que permita o tunelamento do CONNECT
Alguns firewalls bloqueiam todas as conexões de saída, mas permitem navegar na Web por meio de um proxy que permite que o método HTTP
CONNECT
efetivamente faça um furo no firewall. OCONNECT
método pode estar restrito a determinadas portas, portanto, você pode precisar combiná-lo com a escuta na porta 443, como acima.Para fazer o SSH passar pelo proxy, você pode usar uma ferramenta como o saca-rolhas . No seu
~/.ssh/config
, adicione umaProxyCommand
linha como a abaixo, se o seu proxy da web forhttp://web-proxy.work.example.com:3128
:Agrupando SSH em HTTP (S)
Alguns firewalls não permitem tráfego SSH, mesmo na porta 443. Para lidar com isso, é necessário disfarçar ou encapsular o SSH em algo que o firewall permita. Consulte http://dag.wiee.rs/howto/ssh-http-tunneling/ para obter um tutorial sobre como fazer isso com proxytunnel .
fonte
ProxyCommand nc -X connect -x __proxy_IP__:__port__ %h %p
você pode tentar de outra maneira, configurar um servidor da web, que pode proteger seu servidor,
https://github.com/huashengdun/webssh
fonte
Você pode usar sslh se desejar executar um servidor HTTPS e um servidor SSHd na mesma porta 443.
fonte