Daniel J Song's page

prev April 2018 next
SunMonTueWedThuFriSat
1234567
891011121314
15161718192021
22232425262728
2930     

S E A R C H

A R C H I V E S
June 2003
July 2003
August 2003
September 2003
October 2003
November 2003
December 2003
January 2004
February 2004
March 2004
April 2004
May 2004
June 2004
July 2004
August 2004
September 2004
October 2004
November 2004
December 2004
January 2005
February 2005
March 2005
April 2005
May 2005
June 2005
July 2005
August 2005
September 2005
October 2005
November 2005
December 2005
January 2006
February 2006
March 2006
April 2006
May 2006
June 2006
July 2006
August 2006
September 2006
October 2006
November 2006
December 2006
January 2007
February 2007
March 2007
April 2007
May 2007
June 2007
July 2007
August 2007
September 2007
October 2007
November 2007
December 2007
January 2008
February 2008
March 2008
April 2008
May 2008
June 2008
July 2008
August 2008
September 2008
October 2008
November 2008
December 2008
January 2009
February 2009
March 2009
April 2009
May 2009
June 2009
July 2009
August 2009
September 2009
October 2009
November 2009
December 2009
January 2010
February 2010
March 2010
April 2010
May 2010
June 2010
July 2010
August 2010
September 2010
October 2010
November 2010
December 2010
January 2011
February 2011
March 2011
April 2011
May 2011
June 2011
July 2011
August 2011
September 2011
October 2011
November 2011
December 2011
January 2012
February 2012
March 2012
April 2012
May 2012
June 2012
July 2012
August 2012
September 2012
October 2012
November 2012
December 2012
January 2013
February 2013
March 2013
April 2013
May 2013
June 2013
July 2013
August 2013
September 2013
October 2013
November 2013
December 2013
January 2014
February 2014
March 2014
April 2014
May 2014
June 2014
July 2014
August 2014
September 2014
October 2014
November 2014
December 2014
January 2015
February 2015
March 2015
April 2015
May 2015
June 2015
July 2015
August 2015
September 2015
October 2015
November 2015
December 2015
January 2016
February 2016
March 2016
April 2016
May 2016
June 2016
July 2016
August 2016
September 2016
October 2016
November 2016
December 2016
January 2017
February 2017
March 2017
April 2017
May 2017
June 2017
July 2017
August 2017
September 2017
October 2017
November 2017
December 2017
January 2018
February 2018
March 2018
April 2018

G O T O

L O G I N

VNC 

Pages of VNC Category: wikiX, Stuffs,

  1. VNC란
  2. vnc 사용하기
  3. ssh 터널링을 이용한 secure한 vnc 접속
  4. VNC Reverse Connection을 이용하여 원격으로 PC를 사용하자.
  5. vnc 설명
  6. x11vnc
  7. 원격으로 윈도우의 VNC 암호 변경

VNC란  

VNC는 Virtual Network Computing의 약자로, 원격으로 컴퓨터에 접속하여 사용할 수 있게 합니다.

예전 PC애니웨어나, 윈도우즈의 터미널 서비스와 비슷한 기능인데, VNC는 오픈소스이며, x86/Windows만이 아닌 여러가지 플랫폼을 지원해줍니다.

원래 vnc는 AT&T의 프로젝트였지만, 예전 개발 홈페이지

지금은 http://www.realvnc.com 으로 개발이 옮겨졌고 그 외에 tightVNC등 클론들도 여럿 있습니다.

또한 vnc를 이용한 소프트웨어 제품들도 많이 나오고 있습니다.

제 vnc의 스크린샷입니다. http://rommance.net/vncexample.jpg

위 스크린샷처럼 vnc를 사용하면 윈도우에서 리눅스,유닉스, 다른 윈도우즈 컴퓨터들을 모두 접속해서 사용할 수 있습니다.

vnc 사용하기  

vnc를 사용하려면 먼저 설치가 되어야겠죠?

홈페이지에서 윈도우즈용,리눅스용등 자기가 쓸 플랫폼에 맞는 설치 파일을 가져다가 설치합니다.

윈도우즈용은 인스톨 프로그램으로 설치가 쉽게 되어있습니다.

자세한 설명은 하지 않겠습니다. vnc는 다른 데 검색해보시면 사용법을 어렵잖게 찾으실 수 있을 겁니다.

먼저, 서버(접속할 곳)에 vnc server를 실행해야 합니다.

윈도우즈 용은 시작메뉴->프로그램->VNC로 찾아들어가서 보면 Run VNC(App mode)라는 것으로 실행하면 됩니다.

(시스템을 켤 때마다 쓰려면 install as service로 등록하시면 됩니다.)

시작하기 전에 패스워드를 지정하고 기타 옵션 메뉴가 뜨고 서버가 실행됩니다.


리눅스에서 실행하시려면 vncserver라는 프로그램을 실행하면 됩니다. 리눅스에서는 설정을 여럿 건드릴 수 있습니다.

조금 복잡한 면도 있지만 윈도우즈랑 다른 매력은 실행되는 데스크탑이 서로 다른 X 세션으로 열리기 때문에 원격으로 접속해도 그 서버의 로컬 화면을 쓰는 것이 아니라

백그라운드로 새로운 데스크탑이 만들어져 사용되는 겁니다. 장단점이 있겠지만 리눅스는 여러 설정이 가능합니다. (데스크탑 번호를 정할 수 있습니다)

한컴 리눅스 3.1에 기본으로 깔린 원격 데스크탑 공유도 이 vnc를 사용하여 접속할 수 있습니다. 대신 이때는 설정을 어떻게 했는지 모르지만 로컬 화면을 제어할 수 있습니다.

리눅스도 처음 실행 할 때는 암호를 정하게 됩니다.

윈도우즈용 클라이언트를 실행하면 접속할 주소창이 뜨는데, 일단 윈도우즈에 접속한다면, 접속할 서버의 ip만 치면 됩니다. 그리고 암호 치고 들어가면 되지요.

리눅스는 여러 데스크탑을 띄울 수 있기 때문에 처음에 서버를 실행할 때 번호를 부여합니다. vncserver :1 처럼요.

그러면 클라이언트에서는 ip번호:1 이렇게 치고 들어가면 됩니다. 여기서 :1은 데스크탑 번호입니다.

정확히는 포트 번호 offset입니다.

원래 vnc가 5900 포트를 사용하는데 이것을 기준으로 1 2 3 등 offset을 줘서 실행하여 vncserver :1로 실행하면 5901포트가 열리고 :2로 하면 5902로 녈리는 것이죠.

말로 설명하느라 힘들었습니다. 하지만 실제로는 훨씬 쉽습니다. 인터넷에서 스크린샷을 찾아보시면 확실히 쉽다고 느끼실 겁니다.

ssh 터널링을 이용한 secure한 vnc 접속  

고급사용자를 위한 내용입니다.

vnc도 기본적으로 암호화를 할 지는 모르겠습니다만, 안전하지 않은 것은 사실일 겁니다.

vnc 홈페이지에 보면 ssh tunneling을 사용해서 안전한 접속을 하는 use모델 설명이 있습니다. 여깁니다.

먼저 ssh tunneling (port forwarding) 을 아셔야 합니다.


자 여기 잘 설명된 문서가 있습니다. 클릭

결국 tunneling이란 것을 사용하면 ssh로 접속한 상태에서, 상대방의 또다른 포트, 또는 아예 다른 ip의 다른 포트를 ssh를 통과한 포트로 안전하게 접속할 수 있습니다.

예를 들어 제 PC가 rommance로 A라는 서버가 있다고 칩시다. 그리고 A에는 ssh 접속이 되고 웹서비스도 된다고 치지요.

제가 ssh를 접속하면서 내 8080포트를 A:80 포워딩 시켰다고 합시다.


그러면 만일 제가 웹브라우저를 띄우고 주소창에 http://localhost:8080 치면 A 서버의 웹페이지가 나옵니다.

이렇게 되는 것이죠.


내PC 8080 포트->내PC ssh클라이언트 ->ssh 암호화-> A의 ssh 서버 -> A의 웹 서비스포트(80)

내가 내 PC의 8080포트를 접속하면 실제로는 ssh프로그램을 통해 이 포트가 A의 80 포트로 매핑되는 것이죠. 그리고 그 안에는 ssh 암호화가 들어가서 secure해집니다.


그럼 이제 vnc를 이 ssh 터널링으로 사용하는 법을 알아보죠. 가장 어려운 방법으로 이렇게 상황을 설정합니다.


내PC - 인터넷 - 보안서버A - 서버B

 내 PC : 그냥 보통 인터넷에 물려있다. 윈도우즈 PC라고 생각하지요.

 보안 서버 A : ssh 서비스가 제공되고, 파이어월 기능이 제공됩니다. 주소를 firewall.rommance.net으로 가정하겠습니다.

 서버 B: vnc 서비스가 제공됩니다. ssh 서비스는 지원 안합니다.
  보안서버 뒷단에 있기 때문에 외부로부터의 공격과 접속이 차단됩니다.
  IP도 사설 ip를 사용합니다.
  192.168.1.30 으로 쓴다고 가정하지요.
  OS는 윈도우즈라고 가정하겠습니다.


그럼 어떻게 할거냐면

내 PC 5910 포트 -> 내 PC ssh클라이언트 -> ssh 암호화 -> A의 ssh서버 -> B의 vnc서비스(5900포트)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

여기까지 ssh를 사용한 보안이 제공됩니다. A와 B 사이에는 원래 망이 secure하다는, 또는 제한을 걸지 않는다는 보장이 있어야 합니다.

보통 회사의 방화벽이 그렇듯이 말이죠.

먼저 ssh 클라이언트가 내 PC에 있어야 합니다.

여기서는 putty를 사용하겠습니다.

먼저 putty를 실행하시고

http://rommance.net/image/vnc_ssh_putty1.jpg

접속할 서버 A의 주소를 치시고, 프로토콜을 ssh로 설정합니다.

그다음, ssh->tunnels 메뉴에 가서

http://rommance.net/image/vnc_ssh_putty2-new.jpg

자기 포트 5910을 적어주고

포워딩될 주소 192.168.1.30:5900 을 넣어주고 Remote에 체크하고 Add 합니다.

(주의) 새버전의 putty에서는 Remote로 하지 말로 Local로 해야 되더군요. 그래서 그림을 수정했습니다.

http://rommance.net/image/vnc_ssh_putty3.jpg

그리고 접속하면 암호를 넣으라고 나오고, ssh 계정에 맞게 id와 암호를 넣고 접속합니다.

그리고나서, vncviewer를 실행합니다.

http://rommance.net/image/vnc_ssh_viewer.jpg

서버 B의 5900 포트와 연결된 것이 자기 PC의 포트 5910번이니까 주소를 localhost:10으로 하면됩니다.

5900에 offset 10을 더하면 5910이 되지요.

암호를 물어보고 접속해보면 서버 B의 윈도우즈 데스크탑 화면이 나올 것입니다.

VNC Reverse Connection을 이용하여 원격으로 PC를 사용하자.  

방화벽 뒤에 있는 서버를 사용할 때 역으로 서버에서 클라이언트로 접속하는 방법입니다.

http://bbs.kldp.org/viewtopic.php?t=28261

vnc 설명  

http://www.wowlinux.com/download/specialview.html?id=49&view=1 여기에 보면 세팅등 설명이 자세하게 나와있습니다. 또, vncserver에 $cmd .= " -fp unix/:7100"; 를 추가하면 폰트서버 xfs를 사용하여 폰트를 가져올 수 있습니다.

x11vnc  

x11vnc는 리눅스의 vnc가 윈도우의 vnc에서처럼 현재 화면을 공유하게 해줍니다.

원격으로 윈도우의 VNC 암호 변경  

reg라는 콘솔 명령이있습니다.
텔넷이나 ssh로 PC에 접속해서 레지스트리 변경을 하면 됩니다.
>reg
Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  All rights reserved


REG 작업 [매개 변수 목록]

  작업  [ QUERY   | ADD    | DELETE  | COPY    |
               SAVE    | LOAD   | UNLOAD  | RESTORE |
               COMPARE | EXPORT | IMPORT ]

WinXP기준.
$ reg query "HKCUSoftwareORLWinVNC3" /s

HKEY_CURRENT_USERSoftwareORLWinVNC3
    TurboMode   REG_DWORD       0x0
    FileTransferEnabled REG_DWORD       0x1
    BlankMonitorEnabled REG_DWORD       0x1
    DefaultScale        REG_DWORD       0x1
    UseDSMPlugin        REG_DWORD       0x0
    DSMPlugin   REG_BINARY      00FFFFFF48F31400D0FACF0030EB140064FACF0058F4140064FBCF00000000000000000064FACF008A610078C8E61400C0E81400000000000500000004FBCF00C0E814009C61007880B3F57700E71400000000000000000000000000C0E814000000010090FACF00F269007848F3140030EB140060FACF006A6C007858F4140058533F0018533F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    SocketConnect       REG_DWORD       0x1
    HTTPConnect REG_DWORD       0x1
    XDMCPConnect        REG_DWORD       0x1
    AutoPortSelect      REG_DWORD       0x1
    InputsEnabled       REG_DWORD       0x1
    LocalInputsDisabled REG_DWORD       0x0
    IdleTimeout REG_DWORD       0x0
    QuerySetting        REG_DWORD       0x2
    QueryTimeout        REG_DWORD       0xa
    LockSetting REG_DWORD       0x0
    RemoveWallpaper     REG_DWORD       0x1
    Password    REG_BINARY      A2D44D1E563-----
    PollUnderCursor     REG_DWORD       0x0
    PollForeground      REG_DWORD       0x1
    PollFullScreen      REG_DWORD       0x1
    OnlyPollConsole     REG_DWORD       0x0
    OnlyPollOnEvent     REG_DWORD       0x1
    EnableDriver        REG_DWORD       0x1
    EnableHook  REG_DWORD       0x1
    EnableVirtual       REG_DWORD       0x0

$ reg query "HKCUSoftwareORLWinVNC3" /v Password

! REG.EXE VERSION 3.0

HKEY_CURRENT_USERSoftwareORLWinVNC3
    Password    REG_BINARY      A2D44D1E563------

$ reg add "HKCUSoftwareORLWinVNC3" /v Password /t REG_BINARY /d "fe46cea9--------"
Value Password exists, overwrite(Y/N)? y
$ reg query "HKCUSoftwareORLWinVNC3" /v Password

! REG.EXE VERSION 3.0

HKEY_CURRENT_USERSoftwareORLWinVNC3
    Password    REG_BINARY      FE46CEA9--------

$ net stop WinVNc
VNC Server 서비스를 멈춥니다...
VNC Server 서비스를 잘 멈추었습니다.


$ net start WinVnc
VNC Server 서비스를 시작합니다..
VNC Server 서비스가 잘 시작되었습니다.
암호는 아마 crypt로 만들면 될겁니다.(잘 기억 안남)

Posted by rommance at 2006-07-25 13:09:53 . 8508 hits . source . info . diff . 0.693 sec