저는 회사 방화벽 뒤에 Linux fedora21 클라이언트 노트북이 있고(http 및 https 포트는 허용하지만 ssh 22는 허용하지 않음) 집에 내 라우터 뒤에 Linux fedora21 서버가 있습니다. 홈 서버의 공용 IP 주소를 지정하면 https를 사용하여 찾아볼 수 있습니다. (홈 라우터를 구성했기 때문입니다.)
http/s 포트를 통해 내 홈 서버에 SSH(원격 쉘)로 연결할 수 있습니까?
라는 도구를 봤습니다 corkscrew
. 도움이 될까요?
opensshd
httpd
홈 서버에서 실행됩니다 . 다른 구성이 필요합니까?
답변1
가능한 것은 방화벽이 허용하는 것에 따라 다릅니다.
방화벽이 포트 443에서 임의 트래픽을 허용하는 경우
일부 방화벽은 포트 443의 모든 것을 허용하는 간단한 접근 방식을 취합니다. 이 경우 홈 서버에 액세스하는 가장 쉬운 방법은 SSH 연결을 포트 443에서 수신 대기하도록 하는 것입니다. 컴퓨터가 인터넷에 직접 연결되어 있는 경우에는 또는 아래에 Port 443
줄 을 추가하기만 하면 됩니다 . 컴퓨터가 들어오는 연결을 리디렉션하는 라우터/방화벽 뒤에 있는 경우 다음 명령을 사용하여 포트 443의 들어오는 연결을 서버의 포트 22로 리디렉션합니다./etc/ssh/sshd_config
/etc/sshd_config
Port 22
iptables -t nat -I PREROUTING -p tcp -i wan0 --dport 443 -j DNAT --to-destination 10.1.2.3:22
여기서 wan0
는 라우터의 WAN 인터페이스이고 10.1.2.3은 홈 네트워크에 있는 서버의 IP 주소입니다.
홈 서버가 HTTPS 연결과 SSH 연결 모두에 대해 포트 443에서 수신 대기하도록 하려면 이것이 가능합니다. SSH와 HTTPS 트래픽은 쉽게 구분할 수 있습니다(SSH에서는 서버가 먼저 통신하고 HTTP와 HTTPS에서는 클라이언트 측이 먼저 통신합니다). 투엔드 대화 먼저). 바라보다http://blog.stalkr.net/2012/02/sshhttps-multiplex-with-sshttp.html그리고http://wrouesnel.github.io/articles/Setting%20up%20sshttp/설정 방법에 대한 튜토리얼sshttp,그리고웹 서버(nginx)가 이 포트에서 실행 중인 경우 포트 80 또는 443에서 SSH를 사용하십시오.
CONNECT 터널링을 허용하는 웹 프록시가 있는 경우
일부 방화벽은 나가는 모든 연결을 차단하지만 프록시를 통한 웹 검색은 허용합니다.HTTP 프로토콜CONNECT
방화벽에 구멍을 뚫는 효과적인 방법입니다. 이 CONNECT
방법은 특정 포트로 제한될 수 있으므로 위의 포트 443에서 수신 대기하는 것과 결합할 수 있습니다.
프록시를 통해 SSH를 얻으려면 다음과 같은 도구를 사용할 수 있습니다.병따개. ~/.ssh/config
웹 ProxyCommand
프록시가 다음과 같은 경우 http://web-proxy.work.example.com:3128
:
Host home
HostName mmm.dyndns.example.net
ProxyCommand corkscrew web-proxy.work.example.com 3128 %h %p
그런 다음 연결을 실행하면 됩니다 ssh home
.
SSH를 HTTP(S)로 래핑
일부 방화벽은 포트 443에서도 SSH 트래픽을 허용하지 않습니다. 이러한 상황을 처리하려면 SSH를 방화벽이 허용하는 것으로 위장하거나 터널링해야 합니다. 바라보다http://dag.wiee.rs/howto/ssh-http-tunneling/이 작업에 대한 튜토리얼프록시 터널.
답변2
당신은 그것을 사용할 수 있습니다SSLH동일한 포트 443에서 HTTPS 서버와 SSHd 서버를 실행하려는 경우.
답변3
다른 방법을 시도해 볼 수 있습니다. SSH를 통해 서버에 연결할 수 있는 웹 서버를 설정하는 것입니다.