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ówi Port 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ś podobnego
iptables -t nat -I PREROUTING -p tcp -i wan0 --dport 443 -j DNAT --to-destination 10.1.2.3:22
gdzie 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 HTTPCONNECT
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
dodaj ProxyCommand
linię podobną do poniższej, jeśli twój internetowy serwer proxy to http://web-proxy.work.example.com:3128
:
Host home
HostName mmm.dyndns.example.net
ProxyCommand corkscrew web-proxy.work.example.com 3128 %h %p
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 .