본문 바로가기
네트워크 (LAN,WAN)

방화벽 우회 ssh 터널링 (포트포워딩)

by 날으는물고기 2011. 4. 24.

방화벽 우회 ssh 터널링 (포트포워딩)

1. 방화벽으로 ssh를 제외한 다른 모든 포트가 막혀있는 경우 ssh 터널링(포트 포워딩) 을 이용하여 해당 서버의 다른 포트로 우회하여 접근하는 방법

 -  로컬 머신에서 다음과 같은 명령으로 방화벽이 설정되어있는 서버로 접속한다.

ssh -L 8080:remoteServer:8181 user@remoteServer

    이 명령은 로컬 8080번 포트를 접속한 서버의 8181번 포트로 포워딩한다
    이후 localhost:8080 번으로 접속하여 해당서버의 8181번 포트로 접근 가능하다

    putty를 사용한다면 다음과 같이 세션 설정에 Source port 를 8080으로 Destination 을 remoteServer:8181로 하고 추가한다. 

* 만일 터미널에서 다음과 같은 에러 메세지와 함께 포트 포워딩이 동작하지 않는다면 /etc/ssh/sshd_config 파일의  AllowTcpForwarding  셋팅이 no 인지 확인한다  (no  로 설정되어있다면 yes로 바꾸도록 한다)

[channel 3: open failed: administratively prohibited: open failed ]




2.방화벽으로 막혀있는 어떤 서버가 우리쪽 일부 IP에게만 접근을 허용했을때 접근이 허용된 서버를 경유하여 접근하는 방법

  - 접근이 허용된 머신에서 다음과 같은 명령으로 해당 포트로의 접근을 방화벽으로 막혀있는 서버의 포트로 redirect 시킨다

ssh -gR 8080:remoteServer:8181 user@localhost (또는 로컬 머신에서 ssh -gR 8080:remoteServer:8181 user@[접근이 허용된 서버] ...)

   이 명령은 로컬포트 8080으로의 접근을 remoteServer 8181번 포트로 redirect 시킨다 ( -g 옵션을 사용하지 않는 경우 외부접근을 허용하지 않고 local 에서의 접근만을 허용하게 된다)

* 만일 -g 옵션을 주었는데도 외부에서 해당 서버의 8080 포트를 이용하여 방화벽으로 막혀있는 서버의 8181번 포트로 접근할 수 없다면 /etc/ssh/sshd_config 파일의 GatewayPorts 옵션이 no 인지 확인한다(디폴트는 no 이다) .. yes로 바꾼다


출처 : schatzt.springnote.com
728x90

댓글