2014년 4월 21일 월요일

SSH 터널링 사용하기

아래 설명은 모두 리눅스 환경을 기준으로 함.


로컬 SSH 터널링

로컬 포트로 패킷이 들어가면 SSH 터널을 통해 SSH 서버로 전송되고 SSH 서버는 패킷을 목적지 호스트의 목적지 호스트 포트로 전달한다.
$ ssh -L L_PORT:D_HOST:D_PORT SSHSRV_HOST
L_PORT: 로컬 포트
D_HOST: 목적지 호스트 이름
D_PORT: 목적지 호스트 포트
SSHSRV_HOST: SSH로 접속할 서버 호스트 이름 (클라이언트는 직접 사용하는 시스템)

리모트 SSH 터널링

로컬 SSH 터널링과 정 반대로 리모트 포트로 패킷이 들어가면 SSH 터널을 통해 SSH 서버로부터 SSH 클라이언트로 전송되고 SSH 클라이언트는 패킷을 목적지 호스트의 목적지 호스트 포트로 전달한다.
$ ssh -R R_PORT:D_HOST:D_PORT SSHSRV_HOST
R_PORT: 로컬 포트
D_HOST: 목적지 호스트 이름
D_PORT: 목적지 호스트 포트
SSHSRV_HOST: SSH로 접속할 서버 호스트 이름 (클라이언트는 직접 사용하는 시스템)

 

 

다이나믹 SSH 터널링

SOCKS 프로토콜을 사용한다. 지정한 로컬 포트를 통해 SSH 서버측에서 네트워크를 사용하는 것과 같이 모든 네트워크를 중계시킨다.
$ ssh -D L_PORT SSHSRV_HOST
L_PORT: 로컬 SOCKS 포트 SSHSRV_HOST: SSH로 접속할 서버 호스트 이름 (클라이언트는 직접 사용하는 시스템)



참조


댓글 없음:

댓글 쓰기