Mam klienckiego laptopa fedora21 za firewallem korporacyjnym (który przepuszcza porty HTTP i https, ale nie ssh 22) i mam serwer Linux fedora21 w domu za moim routerem. Przeglądanie za pomocą protokołu https działa, gdy podam publiczny adres IP mojego serwera domowego (ponieważ skonfigurowałem router domowy)
Czy możliwe jest ssh (zdalna powłoka) na moim serwerze domowym przez port http / s?
Widziałem narzędzie o nazwie corkscrew
. czy to pomogłoby?
opensshd
i httpd
uruchom na serwerze domowym. Co jeszcze wymagałoby konfiguracji?
sshd
http-proxy
MMM
źródło
źródło
Odpowiedzi:
To, co jest możliwe, zależy od tego, na co pozwala zapora.
Jeśli zapora sieciowa zezwala na dowolny ruch na porcie 443
Niektóre zapory ogniowe wychodzą w prosty sposób i zezwalają na cokolwiek na porcie 443. W takim przypadku najłatwiejszym sposobem na uzyskanie dostępu do serwera domowego jest umożliwienie nasłuchiwania połączeń SSH na porcie 443. Jeśli komputer jest podłączony bezpośrednio do Internetu, po prostu dodaj
Port 443
do/etc/ssh/sshd_config
lub/etc/sshd_config
poniżej linii, która mówiPort 22
. Jeśli komputer znajduje się za routerem / zaporą, która przekierowuje połączenia przychodzące, przekieruj połączenia przychodzące do portu 443 na port 22 serwera za pomocą czegoś podobnegogdzie
wan0
jest interfejs WAN routera, a 10.1.2.3 to adres IP serwera w sieci domowej.Jeśli chcesz pozwolić serwerowi domowemu nasłuchiwać zarówno połączeń HTTPS, jak i połączeń SSH na porcie 443, jest to możliwe - ruch SSH i HTTPS można łatwo rozróżnić (w SSH serwer mówi najpierw, podczas gdy w HTTP i HTTPS klient mówi pierwszy). Zobacz http://blog.stalkr.net/2012/02/sshhttps-multiplexing-with-sshttp.html i http://wrouesnel.github.io/articles/Setting%20up%20sshttp/, aby dowiedzieć się, jak to ustawić z sshttp , a także mieć SSH na porcie 80 lub 443, podczas gdy serwer WWW (nginx) działa na tych portach
Jeśli masz serwer proxy sieci Web, który umożliwia tunelowanie CONNECT
Niektóre zapory blokują wszystkie połączenia wychodzące, ale umożliwiają przeglądanie Internetu za pośrednictwem serwera proxy, który pozwala metodzie HTTP
CONNECT
skutecznie przebić dziurę w zaporze.CONNECT
Metoda może być ograniczone do niektórych portów, więc może trzeba połączyć to z nasłuchuje na porcie 443, jak powyżej.Aby SSH działał przez serwer proxy, możesz użyć narzędzia takiego jak korkociąg . W swoim
~/.ssh/config
dodajProxyCommand
linię podobną do poniższej, jeśli twój internetowy serwer proxy tohttp://web-proxy.work.example.com:3128
:Zawijanie SSH w HTTP (S)
Niektóre zapory nie zezwalają na ruch SSH, nawet na porcie 443. Aby sobie z tym poradzić, musisz ukryć lub tunelować SSH w coś, co przepuszcza zapora. Zobacz http://dag.wiee.rs/howto/ssh-http-tunneling/, aby zapoznać się z samouczkiem na temat robienia tego za pomocą proxyytunelu .
źródło
ProxyCommand nc -X connect -x __proxy_IP__:__port__ %h %p
możesz spróbować w inny sposób, skonfigurować serwer WWW, który może ssh serwer,
https://github.com/huashengdun/webssh
źródło
Możesz użyć sslh, jeśli chcesz uruchomić ZARÓWNO serwer HTTPS i serwer SSHd na tym samym porcie 443.
źródło