(Open)SSH를 이용한 Port Forwarding 기능을 이용하면
여러가지로 편리할 것 같아서 글을 올립니다.
1) 사용법
ssh -L <local_port>:<remote_host>:<remote_port> <hostname> ...
ex) $ ssh -L 23:myserver.com:23 myserver.com -l my_login_id
password : ....
$ telnet localhost
(remote host 로 telnet 한 것 과 같음)
c.f) ssh manpage 참고
- 반대의 경우도 가능하다 -R option 참고
- Local Machine에서만 되나 ?
. 아니다 ssh_config : GatewayPorts 참고
- ssh configuration에 설정 가능
. LocalForward 3306 <remote_host>:3306 <-- 이렇게 설정 가능
2) 동작 방식
Local Application(client)--> <local_port>
|
V
<SSH Session - Local:X to Remote:22>
|
V
<remote_host:remote_port>--> Remote Application(server)
3) 왜 ?
Remote host 를 관리하다 보면 보안 세션이 필요할
경우가 많다.
- 새로 호스트 만들면서 MySQL에 대해 port를 열었더니
누군가 DB 사용자 암호를 '조심해77'로 바꿔 놓은 것에 충격받아서
참고) VNC Server with ssh
(http://www.uk.research.att.com/vnc/sshvnc.html) 4) 활용 예
a) database management
b) Remote X over VNC
c) Web Server Admin
- 각종 관리 툴의 접근 권한을
localhost로 지정한 후 80 port forwarding을 이용해서 관리
d) POP3 이용시
- 일종의 mini VPN tunnel 이다.
e) SMTP Server 이용시
- 외부에서 회사 서버를 이용해서 외부로 메일 보낼때
localhost 를 smtp server로 이용해서 가능
기타 등등...
5) 단점
- ssh session을 닫음 안된다.
- 회사의 NAT Machine이 일정 기간 동작이 없으면 연결을 잘라버리는 경
우.
- 좀 불편한다.
6) 기타
- 편한 방법은 SSL tunnel 을 제공해주는 Software를 찾아 쓴다.
(이런걸 상용화 해서 파는 회사도 있다.)
- SecureCRT의 경우 Port Forwarding option이 있다.
본인의 경우 Cygwin - openssh 를 이용하여 그러려니 하고 사용 중.
끝.
--
-_-a