5.1 리눅스(또는 이종) 네트워크에서의 컴퓨터 공유 by David Mertz
원본 문서 : http://www.ibm.com/developerworks/kr/library/l-share2/ (2002년 3월 1일 작성) 작성 : David Mertz 올림 : 2007년 5월 7일 본 자료는 David Mertz 박사의 허락 하에 게재하며, 원본은 http://gnosis.cx/publish/에 있습니다. 의문점이 있거나 수정할 내용은 언제든지 관리자 그룹을 통해서 연락 바랍니다. 리눅스(또는 이종) 네트워크에서의 컴퓨터 공유, Part 1Secure shell (SSH)과 Virtual Network Computing (VNC) 비교 난이도 : 초급 David
Mertz 박사, 프로그래머/작가, Gnosis Software, Inc. 2001 년 12 월 01 일 Secure shell (SSH)과 Virtual Network Computing (VNC)을 여러 각도에서 비교한다. 두 기술 모두 사용자가 하나의 워크스테이션에서 다른 컴퓨터에 있는 애플리케이션을 실행할 수 있도록 하는 기술이다. (파일 및 프린트 공유나 httpd, ftpd, smtp, nntpd와 같은 인터넷 서비스는 다루지는 않을 것이다.) SSH와 VNC를 설치하고 설정하는 팁을 비롯하여 툴 안정성, 툴 선택, 라이센스 등에 관해 설명한다. 다양한 소프트웨어 프로그램을 효율적으로 작성하고 테스트하기 위해서, 내 로컬 네트워크상에는 상당히 많은 컴퓨터들이 있다. 이러한 머신들은 다양한 오퍼레이팅 시스템을 구동하고 있고 다양한 범위의 하드웨어 설정이 되어있다. 가끔씩 다양한 플랫폼상에서 툴을 평가하기도 한다; 직접 작성한 툴을 테스트하고 디버깅 한다. 네트워크 상의 머신들 대부분은 멀티 부팅 설정으로 다중 오퍼레이팅 시스템이 설치되어 있다. 이 중 많은 것은 "headless" 이다. (모니터나 키보드가 없다). VMWare, Plex86, VirtualPC, SheepShaver 등과 같은 하나의 오퍼레이팅 시스템을 가상화(virtualize)하는 툴은 평가하지 않았다. 어떤 부분에서는 그러한 툴들은 이 글에서 논하려는 것과 비슷한 목적을 수행할 것이다. 다양한 기술들로 인해서 한 워크스테이션의 사용자가 다른 컴퓨터의 애플리케이션을 구동할 수 있다. SSH는 원격 컴퓨터에 텍스트 터미널을 제공한다; X Window System은 실제로 실행되는 곳과는 다른 워크스테이션 상에 대화식의 애플리케이션을 디스플레이 하는 데 사용될 수 있다; VNC는 전체 원격 데스크탑에 대해 "리모콘" 역할을 수행한다. 각 기술에는 장단점이 있다. 그들은 모두 리눅스에서 실행되고 다양한 OS환경과 상호작용이 가능하다. 이러한 툴들을 사용하여 나는 한 워크스테이션(최상의 모니터, 키보드, 의자를 갖추고 있다!)에 앉아서 많은 플랫폼상의 애플리케이션들을 실행하고 테스트하며 시간을 재고 있다. 어떤 것도 재부팅 할 필요가 없다. 나만의 네트워크 설정 나의 로컬 네트워크에는 7개의 노드가 있다. 각자 Apollo, Bacchus, Chaos, Delphi, Echo, Fury, Gaia라는 이름을 붙였다. 이 노드들은 각각 192.168.1.101에서 192.168.1.107까지의 IP 어드레스도 갖고 있다. 물리적으로 같은 머신은 같은 IP 어드레스를 가지고 있다. (가끔씩 DHCP를 사용하는 데 이것은 192.168.1.200 이상의 어드레스를 할당한다). 모두 하드웨어 방화벽/라우터 뒤에 배치되었다. 나는 방화벽을 충분히 신뢰한다. (인터넷을 통해 컴퓨터를 공유해야 하는 독자들이라면 보안에 좀 더 주의를 기울여야 한다. 다음 글에는 보안 문제에 대해서 다루겠다). 앞으로 설명할 쉘 예제를 쉽게 따라올 수 있도록 지금까지 자세한 설명을 했다. 실제로 내가 앉아있는 머신은 Bacchus 이고 로컬 IP 어드레스는 192.168.1.102 이다. Secure shell (ssh) 컴퓨터를 연결하는 대역 친화적인 방식 대부분은 간단한 테스트 쉘을 통한 것이다. 이 같은 비 보안
(Non-secure) 툴로는 Secure shell ( ssh를 이용하여 HOSTS 이름으로 원격 박스에 연결하기
ssh를 이용하여 IP로 원격 박스에 연결하기
이와 마찬가지로 나는 임대한 웹서버를 다음을 사용하여 관리한다: ssh를 이용하여 DNS 이름으로 원격 박스에 연결하기
이종 플랫폼 상에서 이종 머신들 간에 만일 터미널 설정 문제가 있다면 몇 가지 방법이 있다. 유닉스 계열의 대중적인 원격 터미널 세팅
로컬 Virtual Network Computing (VNC) VNC는 많은 GUI 플랫폼에 포팅되고 있는 클라이언트/서버 시스템이다. VNC는 로컬 시스템상의 원격 컴퓨터의 전체 "데스크탑"을 디스플레이 하는 데에 사용되는 프로토콜을 제공한다. Symantec의 pcAnywhere는 같은 용도로 쓰이는 상용 제품이다. 하지만 Microsoft 오퍼레이팅 시스템에만 제한되어 있다. 반면, VNC는 수십 개의 다른 오퍼레이팅 시스템상에서 실행되며 많은 구현과 "variation"들이 있다. 웹사이트 (참
고자료)에서 스크린샷을 참조하는 것도 VNC를 이해하는데 도움이 된다. 일반적으로, VNC 클라이언트 ( X-based 버전의 VNC 서버 ( 일단 VNC가 설치되면 세션을 시작하는 것은 간단하다. (참
고자료). 단일 유저 플랫폼의 경우, 기본적으로 애플리케이션은 실행할 수 있다. 어떤 옵션도 없다. X 에서, 몇 가지
명령행 옵션들은 유용하다. OS/2 Warp "Bacchus" 로컬 머신에서 Mandrake Linux "Fury" 머신까지 Fury에서 VNC 서버 세션 시작
클라이언트 측에서 로컬 같은 원리가 "non-local" 네트워크에도 적용되며 VNC는 보안 용도로 SSH를 통해 터널로 설정될 수 있다. 대부분의 경우, 올바른 세션 지오메트리(geometry)와 색상 깊이를 선택하는 것은 중요하다. 원격 데스크탑이 작을 수록 그리고 사용된 컬러 수가 적을 수록, 디스플레이 반응은 좀 더 빨라진다. 컬러 깊이를 줄이는 것이 반응에 약간의 영향을 미친다는 것을 발견했다; VNC의 hextile 인코딩은 스크린의 세련되지 못한 "pixel-by-pixel" 전송 보다 훨씬 더 효율적이다. 하지만 스크린 사이즈는 분명한 차이를 보인다. 일반적으로, 위의 1260x940과 같은 원격 지오메트리를 사용하면 1280x1024 비디오 세팅으로 매우
훌륭히 작동한다. 나는 약간의 여유 공간을 두어 VNC titlebar와 로컬 데스크탑의 taskbar를 위한 공간으로
허용했다. 하지만 VNC 연결에 있어서 한 가지 문제점은 로컬 데스크탑은 고유의 목적에 맞춰 몇 가지 키스트로크를 이용해야
한다. 특정 클라이언트에 따라, 많은 원격 키스트로크가 다중 키스트로크 작동으로 에뮬리에트 되어야 한다. 예를 들어, 나의 로컬
OS/2 주목할 만한 VNC 구현이라 한다면 Java 버전일 것이다. 고유의
리눅스(또는 이종) 네트워크에서의 컴퓨터 공유, Part 2VNC, Desktop On-Call, remote X, 보안 난이도 : 초급 David
Mertz 박사, 회장/CEO., Gentoo Technologies, Inc 2002 년 3 월 01 일 이 글에서는 원격에서 애플리케이션을 실행하는 방식으로서 SSH, remote X, VNC, 다른 기술들을 비교한다. David는 VNC 설정 문제, IBM의 Desktop On-Call, remote X, 보안 문제를 다룬다. Part 1 에서는 이종 로컬 네트워크를 설명하고 다른 OS와 아키텍쳐에서 애플리케이션을 비교하고 테스트하는데 이를 어떻게 사용하는지를 설명했다. 하나의 워크스테이션에서 사용자는 다양한 기술을 사용하여 다른 워크스테이션에 있는 애플리케이션을 실행할 수 있다. SSH는 원격 컴퓨터에 텍스트 터미널을 제공한다; X Window System은 이것이 실제로 실행되는 곳이 아닌 다른 워크스테이션에서 인터랙티브 애플리케이션을 나타내는데 사용될 수 있다. VNC는 전체 원격 데스크탑에 리모콘(remote-control) 역할을 한다. 각 기술들마다 장단점이 있다. 그들 모두 리눅스에서 실행되지만 variation(호스트 또는 원격)은 이종 네트워크에 맞는 다양한 OS 환경과 인터랙션이 가능하다. 이러한 툴틀을 조합하여 나는 하나의 워크스테이션(최상의 모니터, 키보드, 의자를 갖춘)에서 어떤것도 재부팅하지 않고 다른 플랫폼들에 있는 애플리케이션을 실행하고 테스트하고 조정한다. Part 1에서 SSH와 VNC를 소개했다. 이 글에서는 VNC에 대해 좀더 이야기하겠다. 원격 X와 보안도 다루겠다. 네트워크 셋업 나의 로컬 네트워크에는 7개의 노드가 있다. 각각 Apollo, Bacchus, Chaos, Delphi, Echo, Fury, Gaia라는 이름을 가지고 있다. 이 노드들은 로컬 IP 주소 192.168.1.101 에서 192.168.1.107까지 할당받았다. 다른 OS들로 멀티부팅 될 때 같은 머신이 같은 IP 주소를 얻는다. 공용 인터넷을 통해 컴퓨터를 공유하길 원하는 독자들이라면 보안 문제를 고려해야 한다. 내가 실제로 사용하고 있는 머신은 Bacchus이고 IP 주소는 192.168.1.102 이다. VNC 설정하기 Part
1 에서 리눅스 플랫폼에서 VNC를 시작하는 방법을 설명했고 스크린 배치와 칼러에 대한 언급을 했었다. 하지만 VNC를
설정하여 사용하는 중요한 문제는 거론하지 않았다. 이 글에서는 오직 UNIX 계열 주어진 사용자 계정에서 VNC 디폴트 설정
VNC 세션을 만들었다. 명령행에 어떤것도 지정되지 않으면 기본 해상도가 사용된다. 기본 지오메트리(geometry)는 1024 x 768 이며, 기본 색상 수는 8-bit 이다. Part 1에서는 다른 해상도를 사용하는 스크립트 파일을 구현하는 방법을 설명했다. 첫 실행시 만들어진 VNC "시작" 커스터마이징
위 예제에서, 기본 VNC 세션을 죽이는 문제를 살펴보자. 이를 서버 끝단에서 수행해야 한다. VNC 세션이 시작했는지를 보는
빠른 방법은 Desktop On-Call & eComStation "Charming Python" 칼럼 독자들이라면 OS/2를 참조하는 것에 약간 놀랐을 것이다. 이것은 수년 전에 대중성을 잃은 것이기 때문일 것이다. 하지만 OS/2 Warp의 Workplace Shell은 리눅스, Windows, MacOS, BeOS에 나타난 어떤 GUI 보다도 훨씬 앞서있다는것이 나의 지론이다. WPS은 정말 좋지만 내가 사용하는 진짜 이유는 관성적으로 사용하는 것에 가깝다. 수년 동안 OS/2 친화적인 툴을 구현해왔다. 그리고 그들은 서로 잘 작동했다. 최근 Serenity Systems' eComStation의 리뷰 카피를 받은것에 흥분되어 있다. eComStation (eCS)은 작년에 발표되었고 "Warp core"에 최신 패치와 기타 툴들이 포함되어 있다. eCS에 포함된 툴에는 "Desktop On-Call (DToC)"이라는 IBM 제품이 있다. DToC 서버 버전은 Windows와 리눅스 모두 사용가능하다. 하지만 미국에서는 구입하기 힘들다. DToC가 하는 일은 VNC의 역할과 비슷하다. DToC 서버는 네트워크를 통한 "원격 데스크탑"을 제공하기 위해 HTTP 프로토콜로 전송한다. DToC용 클라이언트 애플리케이션은 JavaScript와 자바 모두 가능한 브라우저이다. 기본적으로, 웹 브라우저는 DToC로의 연결 인터페이스이다. DToC는VNC 처럼 로컬 캡쳐 키스트로크, 멀티 키 시퀀스, 대역폭/해상도 모순 문제를 갖고 있다. DToC는 VNC 보다 장점이 많다. HTTP 전송은 DToC가 VNC보다 방화벽 통과가 쉽다는 것을 의미한다. 게다가 DToC안에서 파일 전송 인터페이스를 얻기때문에 DToC가 실행되는 한 개별 FTP, Samba, NFS 등의 전송 서버가 실행될 필요가 없다. 하지만 단점은, DToC는 VNC보다 응답속도가 느리다는 점이다. 하지만 심각할 정도는 아니다. eCS에 번들된 다른 툴은 Hoblink X11is라고 하는 X Server이다. 아직 사용해본적은 없지만 사용하게 되면 나의 로컬 네트워크의 OS/2 노드에 훨씬 쉽게 통합될 것이다. Remote X Window System X Window System은 매우 훌륭한 소프트웨어 발상이다. 대부분의 리눅스 사용자들에게 X Window System은 (또는 "X11", 하지만 "X Windows"를 칭하는 것은 아님)은 아마도 GUI 애플리케이션을 로컬에서 디스플레이 하기위해 윈도우 매니저를 호출하는 API로서 인식된다. 하지만 실제의 X11은 훨씬 더 재미있다. X11은 언제나 클라이언트와 서버를 갖고 있다. 심지어 클라이언트와 서버 모두 같은 머신에서 실행될 때도 그렇다. X 클라이언트와 X 서버는 우리가 생각하는 것과는 반대일 것이다. X 서버는 기저의 애플리케이션에 디스플레이 기능을 제공하는 디바이스이다. X 클라이언트는 시각적 아웃풋을 내놓을 수 있는 장소를 제공하는 X 서버와 비슷하다. 서버와 클라이언트는 로컬 워크스테이션에서 실행되면서 순전히 내부 채널을 통해 통신한다. 하지만 로컬 머신과 원격 머신이 개입되면 로컬 머신은 X 서버이고 원격 머신은 X 클라이언트가 된다. 가끔은 다른 워크스테이션에 디스플레이 되어야 할 필요도 있다. 그러할 경우 역할은 보존된다. X Window System을 충분히 활용하기 위해서는 상단에 윈도우 매니저를 실행하도록 한다. 이렇게 하여 윈도우를 움직이고, 최소화하며 새로운 X 클라이언트를 시작할 수 있다. 로컬 워크스테이션에 디스플레이하기 위해 원격 애플리케이션(X 클라이언트)을 시작하는 방법을 살펴보자. 앞으로
설명될 모든 머신은 리눅스지만 X 서버와 클라이언트가 있는 다른 시스템도 비슷한 방식으로 작동한다. 로컬 머신이 사용할 IP
어드레스를 설정해야한다. 로컬 머신의 IP 주소 찾기 (X 서버)
그런다음 원격 머신의 애플리케이션이 로컬 X 서버를 사용할 수 있는 로컬 권한을 갖고 있는지를 확인한다: X 서버 권한 설정
원격 머신에 실행할 애플리케이션을 시작할 수 있다. 직접 머신으로 갈 수도 있지만 대부분의 경우 원격 쉘
세션을 여는 것이 가장 쉬운 방법이다. (여기에서는 불안한 원격 머신 Fury로 연결하기 (X 클라이언트)
모든것이 잘 진행된다면, 원격머신은 자동으로 연결되고 있는 머신을 찾는다. 다음은 그 반대의 경우이다: X Client Fury의 DISPLAY 환경 변수 확인
X 클라이언트를 시작할 수 있다. 예제에서는 X 서버상에 나타날 X 클라이언트의 애플리케이션 시작하기
가끔씩 위와 같은 상황에서 문제가 생긴다. 다음의 전형적인 문제를 보자: 원격 머신 Delphi로 연결하기
위와 같은 순서로 실행해보자: X Client Delphi의 DISPLAY 환경변수 점검
No (잘못된) DISPLAY 설정
Bacchus는 X 서버를 사용할 수 있는 권한받은 Delphi가 아직 없다: X 서버가 연결을 거부했다. 연결하도록 한다.
모든 것이 잘되어 간다: Launch an app on X Client to display on X Server
보안 문제 Part 1에서 VNC와 X11 모두 인터넷 채널을 통할 때 불안하다고 언급했다. 모든 원격 디스플레이는 공용 라우터를 통해 암호가 해제된다. 나는 방화벽 뒤에 있는 개인용 LAN을 걱정하지 않는다. 전 세계적으로 원격 컴퓨터를 공유하기 위해 이러한 기술을 사용하려면 VNC 또는 X11 프로토콜은 SSH를 통해 레이어링(layer) 한다. SSH를 통해 VNC를 설정하려면 "Making VNC more secure using SSH" (참 고자료)를 읽기를 바란다. SSH를 통한 X 레이어링은 쉽다. OpenSSH를 사용하고 있다면 설정을 적용하려면 로컬 X 서버에 디스플레이하기 위해 X 클라이언트를 시작하는것은 X 클라이언트로 포워팅한 sshd X11 사용하기
Delphi로 연결하더라도 참고자료
IBM Desktop On-Call 참고자료 X Window System 참고자료
기타 참고자료
필자소개
목차로 가기 |
eComStation ArcaOS | 예전 사이트소개 / 새 사이트소개 | 설치 관련 도움 요청 | 초기화면 가기 |
Copyright © 1995-2021 |