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

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

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

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

728x90

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

댓글