http tunneling + ssh tunneling + 리모트 데스크탑

사내에서는 외부망으로의 접속이 제한된다.

방화벽에서 실제 패킷까지 까보는 것인지, 80번 포트에서 서비스 중인 ssh server에 접속하는 것도 불가하다. 이게 가능하면 그냥 ssh tunneling 으로 원격 데스크탑에 연결해서 쓰는데, 이게 안되어서 찾게 된 것이 http tunneling 이다.

PC에서 노트북에 접속하는 중간에 방화벽이 있기 때문에 방화벽에서 ssh 프로토콜의 연결을 잘라버린다. 따라서, ssh 프로토콜의 데이터를 http 프로토콜로 wrapping해서 전달하는 것이다.

ssh client가 PC의 로컬에 있는 3390 포트에 접속하면 http tunnel client가 이놈을 고이 싸서 http 패킷으로 만들어서 노트북의 80번 포트에 http tunnel server로 전달해준다. http tunnel server는 이녀석을 노트북의 로컬에 있는 443 포트로 전달해준다. 논리적으로 http tunnel server와 http tunnel client가 없이 ssh server와 client간의 연결이 성립하는 것이다.

이 과정에 http tunnel 서비스를 해주는 프로그램이 필요한데, http://neophob.com/2006/10/gnu-httptunnel-v33-windows-binaries/ 이녀석을 가져다 쓰면 된다. 인터페이스는 불친절하지만 잘 동작은 한다.

ssh server와 client는 https://www.bitvise.com/index 에서 가져다 쓰면 된다. 개인용은 무료인듯 하다.

bitvise 프로그램은 친절하게도, ssh 연결이 성공하면 자동으로 원격 데스크탑 세션을 연결할 수 있도록 ssh tunnel을 구성해준다.