SSH의 소켓 프록시를 이용한 방화벽 우회

위의 그림에서 관리자가 방화벽의 룰셋을 아무리 강하게 설정해두어도 SSH 터널링 기법을 이용하면 외부의 SSH 서버를 통해, 접근이 금지된 사이트, 서버로 접속하는 것이 가능합니다. 쉽게 말하면 방파제를 높게 쌓아두고 작은 구멍을 내놓는 것에 비유할 수 있겠죠. 이제 내부 사용자는 방화벽의 통제를 받지 않고 자신이 하고 싶은 대로 편하게 작업을 할 수 있어 편리한 반면, 회사 내부 네트워크에는 외부에서 접근 가능한 작은 틈새가 생겼습니다.

이제 본격적으로 SSH을 Socks Proxy로 사용하는 방법을 알아보도록 하겠습니다. 지금부터 설명하는 내용은 위의 그림과 같은 구성을 염두에 두고 작성한 것임을 참고하시기 바랍니다.

1. 먼저 외부 SSH 서버에 sshd 를 80 포트로 binding 하여 운영하도록 합니다.
(보안 관리자가 보안에 대한 의지가 강해서 tight 하게 룰셋을 설정한 방화벽이라고 하더라도 직원들이 아예 웹 사이트에 접근하지 못하도록 80 포트를 막는 경우는 거의 없다는 것에 착안한 것입니다).

2. 자신의 노트북 혹은 컴퓨터에 PuTTY를 설치합니다.
메뉴를 한글로 번역한 한글 PuTTY를 사용하시면 더욱 편리합니다.

3. 사용의 편의를 위해 Path 에 PuTTY가 설치된 디렉터리를 추가합니다.

4. 이제 자신의 노트북 혹은 컴퓨터에서 명령행 창을 열고 아래와 같은 명령어를 입력합니다.
putty -D 8080 -P 80 -ssh [외부SSH서버의 IP]

5. 웹 브라우저의 설정에서 (IE의 경우 [도구]->[인터넷 옵션]->[연결]->[LAN설정]->[고급]) 프록시 설정을 다음과 같이 변경합니다.
A. socks 부분에 127.0.0.1 라고 입력합니다.
B. Port 에는 8080 이라고 입력합니다.
C. 위에 있는 HTTP, FTP 등의 다른 부분은 전부 공백으로 합니다.

6. MSN 메신저도 [도구]->[옵션]->[연결]->[고급 설정]에서 프록시 설정을 다음과 같이 변경합니다.
A. socks 부분에 127.0.0.1 라고 입력합니다.
B. Port 에는 8080 이라고 입력합니다.

이제 여러분은 Socks Proxy를 통해 방화벽의 감시나 제한을 받지 않고 간편하게 암호화된 통신을 즐기실 수 있습니다.다시 한번 말씀드리지만 이 방법은 업무 상 피치 못한 경우를 제외하고는 사용하지 않는 것이 좋습니다. 이 점 주의하시기 바랍니다.

댓글 남기기