회사 방화벽 뒤에 Linux fedora21 클라이언트 랩톱이 있으며 (http 및 https 포트는 통과하지만 ssh 22는 허용하지 않음) 집에는 자체 라우터 뒤에 Linux fedora21 서버가 있습니다. 홈 서버의 퍼블릭 IP 주소를 지정하면 https로 검색 할 수 있습니다 (홈 라우터를 구성했기 때문에)
http / s 포트를 통해 홈 서버에 ssh (원격 셸)를 사용할 수 있습니까?
라는 도구를 보았습니다 corkscrew
. 도움이 되겠습니까?
opensshd
및 httpd
홈 서버에서 실행됩니다. 다른 무엇을 구성해야합니까?
답변
가능한 것은 방화벽이 허용하는 내용에 따라 다릅니다.
방화벽이 포트 443에서 임의 트래픽을 허용하는 경우
일부 방화벽은 간단한 방법으로 포트 443에서 모든 것을 허용합니다.이 경우 홈 서버에 접근하는 가장 쉬운 방법은 포트 443에서 SSH 연결을 수신하는 것입니다. 컴퓨터가 인터넷에 직접 연결된 경우 간단히 추가 Port 443
로 /etc/ssh/sshd_config
또는 /etc/sshd_config
말한다 라인 바로 아래 Port 22
. 컴퓨터가 들어오는 연결을 리디렉션하는 라우터 / 방화벽 뒤에있는 경우 다음과 같은 방법으로 들어오는 연결을 포트 443에 대한 서버의 포트 22로 리디렉션합니다.
iptables -t nat -I PREROUTING -p tcp -i wan0 --dport 443 -j DNAT --to-destination 10.1.2.3:22
wan0
라우터의 WAN 인터페이스는 어디에 있고 홈 네트워크의 서버 IP 주소는 10.1.2.3입니다.
홈 서버가 포트 443에서 HTTPS 연결과 SSH 연결을 모두 청취 할 수있게하려면 SSH와 HTTPS 트래픽을 쉽게 구별 할 수 있습니다 (SSH에서는 서버가 먼저 대화하고 HTTP 및 HTTPS에서는 클라이언트가 대화합니다) 먼저). 이를 설정하는 방법에 대한 자습서는 http://blog.stalkr.net/2012/02/sshhttps-multiplexing-with-sshttp.html 및 http://wrouesnel.github.io/articles/Setting%20up%20sshttp/ 를 참조하십시오. 최대 sshttp , 또한 되세요 SSH 포트 80 또는 443에서 웹 서버 (의 nginx)는 이러한 포트에서 실행되는 동안
CONNECT 터널링을 허용하는 웹 프록시가있는 경우
일부 방화벽은 모든 나가는 연결을 차단하지만 프록시를 통해 웹을 탐색하여 HTTPCONNECT
방법으로 방화벽의 구멍을 효과적으로 뚫을 수 있습니다. CONNECT
위 등의 포트 443에서 듣고이 결합해야 할 수 있도록 방법은 특정 포트로 제한 될 수 있습니다.
SSH가 프록시를 통과하게하려면 corkscrew 와 같은 도구를 사용할 수 있습니다 . 당신으로 ~/.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
HTTP (S)에서 SSH 랩핑
일부 방화벽은 포트 443에서도 SSH 트래픽을 허용하지 않습니다. 이러한 방화벽에 대처하려면 방화벽이 통과 할 수있는 것으로 SSH를 위장하거나 터널링해야합니다. proxytunnel로이 를 수행하는 방법에 대한 자습서는 http://dag.wiee.rs/howto/ssh-http-tunneling/ 을 참조 하십시오 .
답변
다른 방법으로 시도하고 웹 서버를 설정하면 서버를 ssh 할 수 있습니다.