포트 80을 통해 SSH를 사용할 수 있습니까? 할 수없는 네트워크 방화벽 뒤에

기본 포트를 통해 ssh 할 수없는 네트워크 방화벽 뒤에 있습니다. 이 때문에 bzr 브랜치를 내 저장소로 푸시 할 수 없습니다. 어떻게 든 포트 80을 통해 ssh를 프록시하여 분기를 푸시 할 수 있는지 알고 싶습니다.

나는 코르크 마개가 당신을 그렇게 할 수 있다고 들었지만 정확히 어떻게 해야할지 모르겠습니다.

작동하는 프록시 서버를 알고 있다면 언급하십시오.



답변

올바른 회사 방화벽은 포트에 관계없이 트래픽을 검사하므로 포트 변경이 작동하지 않을 수 있습니다.

서버를 제어하고 여전히 시도하려면 sshd 포트를 포트 80으로 변경할 수 있습니다. 경고 포트 80 (서버)에서 실행중인 다른 것이 있으면 작동하지 않으며 완전히 의미 할 것입니다 서버에 대한 SSH 액세스가 끊어집니다!

을 수정 /etc/ssh/sshd_config하고로 변경 Port해야 80합니다. 그런 다음 실행

sudo restart ssh

그런 다음 연결하십시오.

ssh user@host -p80

bzr 경로는 다음과 같습니다. bzr+ssh://host:80/path/


또 다른 방법은 WebDav를 사용하는 것입니다. 방화벽 문제는 포트 80에서 발생하기 때문에 방화벽 문제를 완전히 극복해야하지만 Apache를 실행하고 여러 가지를 설정해야합니다.

  1. WebDav 설치
  2. 지점을 올바른 장소로 이동
  3. 사용 BZR-WebDAV를 연결하는 플러그인

VPN은 옵션 일 수 있지만 ssh잠겨 있으면 제외 될 것으로 예상됩니다.

당신은 네트워크 관리자에게 말씀을 원할 수도 있습니다. 당신은 무언가를해야하고 그들은 당신을 막고 있습니다. 그들이 차단 ssh해야 할 이유가 있다면 , 그것을 상당히 부정적으로 회피하려는 극단적 인 시도를 보게 될 것입니다 …

간단히 말해 그들과 대화하는 것이 더 안전 할 수 있습니다.


답변

프록시를 통한 SSH

방화벽이 허용하는 경우 모든 포트에서 ssh를 실행할 수 있지만 ssh 서버는 해당 포트에서 수신 대기해야합니다. 방화벽이있는 대부분의 장소는 해당 포트의 트래픽을 분석하고 HTTP가 아닌 것을 차단하기 때문에 포트 80이 작동하지 않을 수 있습니다. 그러나 일반적으로 HTTPS 포트 인 포트 443은 종종 작동합니다. SSH와 HTTPS는 필터링 소프트웨어와 서로 매우 유사하기 때문에 SSH 세션은 HTTPS 세션처럼 보일 것입니다. (HTTPS와 SSH를 구별 할 수 있으므로 방화벽이 충분히 정교하면 작동하지 않습니다.)

서버를 제어 할 수있는 경우 22 (일반 ssh 포트) 외에 포트 443에서 수신 대기하십시오. 포트를 구성 할 수 있습니다 /etc/ssh/sshd_config: 라인 추가

Port 443

Port 22그 외에도 이미 있어야합니다. 이것은 ssh 서버가 HTTPS 서버가 아니라고 가정합니다. 그렇다면 방화벽에서 사용할 수있는 다른 포트를 찾거나 다른 ssh 서버를 찾으십시오 (아래 전달 참조).

웹 브라우저에서 웹 프록시를 설정할 필요가없는 경우 직접 연결을 시도 할 수 있습니다.

ssh -p 443 myserver.example.com

그래도 문제가 해결되지 않으면 다음에서 별칭을 정의하십시오 ~/.ssh/config.

Host myserver
HostName myserver.example.com
Port 443

웹 브라우저에서 웹 프록시를 설정해야하는 경우 ssh에게 프록시를 통과하도록 지시하십시오. 코르크 마개를 설치하십시오 . 당신이 같은 별칭을 정의 ~/.ssh/config, 어디에 http://proxy.acme.com:3128/당신이 외부로 HTTPS에 사용하는 프록시 (적절한 호스트 이름과 포트로 대체)입니다 :

Host myserver
HostName myserver.example.com
Port 443
ProxyCommand /usr/bin/corkscrew proxy.acme.com 3128 %h %p

SSH를 통한 SSH

위의 기술 중 하나를 사용하여 외부 시스템에 액세스 할 수 있지만 관심이있는 시스템에는 도달 할 수없는 경우이를 사용하여 연결을 전달하십시오. 라는 컴퓨터에 ssh를 사용할 수 mygateway있고 SSH 서버에 연결 mytarget하려는 경우 netcat-openbsd 를 설치하십시오 mygateway(또는 Ubuntu를 실행하지 않는 경우 nc명령 이 있는지 확인하십시오 ). 이것을 당신의 것으로 넣으십시오 ~/.ssh/config:

Host mytarget
ProxyCommand ssh mygateway nc %h %p

아파치 SSH

연결하려는 호스트가 이미 Apache를 실행 중이고 포트 443에서 수신 대기 중이고 해당 호스트를 제어 할 수있는 경우 SSH 연결을 승인하고 전달하도록이 Apache를 설정할 수 있습니다. HTTP를 통한 터널링 SSH (S)를 참조하십시오 .


답변

방금 정교한 솔루션을 읽었습니다.

http://benctechnicalblog.blogspot.hu/2011/03/ssh-over-connect-over-port-80.html

홈 서버가 포트 80에서 웹 서버를 실행하더라도 포트 80에서 SSH 홈을 사용할 수 있습니다.

홈 서버가 Apache를 실행한다고 가정합니다. 아이디어는 서버에서 mod_proxy를 활성화 한 다음 localhost (proxy.conf)에 연결하도록 제한하는 것입니다.

<IfModule mod_proxy.c>
         ProxyRequests On
        <Proxy *>
                AddDefaultCharset off
                Order deny,allow
                Deny from all
        </Proxy>
        <Proxy localhost>
          Allow from all
        </Proxy>
        AllowCONNECT 22
        ProxyVia On
</IfModule>

이제 로컬 호스트에 대한 HTTP 연결 요청을 수행 할 수 있으며 웹 서버가 터널을 설정하므로 모든 트래픽이 프록시를 통과해야합니다.

ssh -o 'ProxyCommand nc -X connect -x myhost.example.com:80 localhost 22' myhost.example.com

SSH에 대한 로컬 호스트 연결이 특권이 아닌지 확인하십시오.

포트 80 만 허용하는 라우터 뒤에있는 경우 작동합니다.

프록시 뒤에있는 경우 (웹에 액세스하려면 브라우저에서 프록시를 설정해야 함) 먼저 자신의 호스트에 터널을 설정 한 다음이 터널 내에 다른 CONNECT 요청을 발행하여 호스트에 도착해야합니다. 이것은 더 정교합니다.이를 위해 2 개의 넷캣을 사용해야합니다.

모든 것이 가능하지만 자신의 위험을 감수하십시오 …

최신 정보:

또는 간단히 브라우저를 통해 SSH를 제공하는 웹 응용 프로그램을 사용하십시오. http://en.wikipedia.org/wiki/Web-based_SSH


답변

방화벽에서 포트 80을 통해 이러한 데이터를 전송하지 못하도록 차단하여 SSH 포트를 포트 80으로 변경하도록 서버를 제어 할 수 없거나 포트 80을 통해 SSH를 사용할 수없는 경우 TOR를 시도 할 수 있습니다.

TOR는 거대한 네트워크입니다. 컴퓨터가 전세계 어딘가에 다른 컴퓨터에 연결되어 있고 해당 컴퓨터가 SSH 서버에 도달 할 때까지 다른 컴퓨터에 연결되어 있습니다. 이것은 모든 방화벽에 친화적이며 포트 443에서 발생합니다 (회사가 차단하지 않는 등의 문제는 아닙니다). 말 그대로 거대한 프록시 또는 VPN이며 암호화되어 있습니다. 이 방법으로 모든 포트의 모든 호스트 (포트 22의 서버 SSH)에 액세스 할 수 있습니다.

www.torproject.org 에서 온라인으로 살펴보십시오 .


답변

죄송합니다. 악마의 옹호자를해야합니다.

나는 이것을하는 이유가 가장 크다는 것을 알고 있지만 왜 네트워킹 / 방화벽 관리자가 찾고있는 특정 포트를 열지 않습니까? 보안 관점에서, 웹 검사가 아무것도 놓칠 수있는 기회를 원하십니까? std 트래픽을 위해 포트 80을 우회하도록 구성되어 있고 위험에 처한 경우.

포인트 투 포인트 VPN이 더 안전한 옵션 일 수있는 위의 몇 가지 제안에 동의합니다. 다시 한 번, 보안 관점에서 보안 정책을 실제로 우회하는 이유와 액세스를 위해 서버를 dmz 또는 백본에 넣을 수없는 이유를 알고 싶습니다. 나만. 행운을 빕니다.


답변