카테고리 없음2013. 6. 18. 10:09

 

19-3장. 원격지에서 리눅스 서버를 관리하기

 

 

● VNC 서버 개요

 

텔넷 서버 및 SSH 서버를 설치하고 나면 모든 작업을 다 할 수 있지만,

텔넷이 지원하지 않는 것이 하나있다.

 

바로 X 윈도우 환경을 지원하지 않는 것이다. 그러므로 X 윈도우 전용 명령어를 사용할 수가 없다.

꼭 텍스트 모드에서 사용 가능한 명령어만 써야 한다.

 

최근 추세에 따라 X 윈도우 환경에서 사용되는 유틸리티나 명령어가 많으므로 이 점을 개선해서

이제는 X 윈도우 환경 자체를 원격지에서 사용해 보도록 하자.

 

원격지에서 X 윈도우 환경 자체를 사용할 수 있도록 해 주는 서버 프로그램으로 VNC 서버가 있다.

VNC 서버의 개념은 텔넷과 거의 동일하다.

 

다만 단점이 있다면, 텔넷은 전통적으로 오랫동안 사용되어 왔으므로 대부분의 OS에 "telnet" 이란 클라이언트 프로그램이 있는데 반해 VNC는 별도의 클라이언트 프로그램을 설치해 주어야 한다.

 

또한 원격지로 그래픽 확면을 전송하는 원리이므로, 텍스트만 전송하는 텔넷에 비해서 속도가 많이 느려진다.

 

 

[VNC 서버의 개념도]

 

 

[VNC 서버 설치 과정 요약]

 

 

 

 

< VNC 서버를 구축해보자 >

 

 

[[ Fedora Server ]]

 

VNC 서버를 설치하고 가동하자.

 

페도라 11에서 제공하는 tigervnc-server가 설치되어 있는지 확인하고

설치되어 있지 않다면 yum으로 설치한다.

 

 
[VNC 서버 설치]

 

rpm -qa | grep tigervnc

tigervnc 패키지가 깔려있는지 확인

(안깔려있는 것을 확인)

 

yum -y install tigervnc-server

yum 명령으로 VNC 서버 설치

 

 

서비스를 가동하자.


[vncserver의 가동 실패]

 

service vncserver status

vncserver의 현재 상태 확인

(현재 정지된 상태임을 확인)

 

service vncserver start

vncserver를 가동시킨다.

가동이 되지 않는다. VNC 서버는 서비스(데몬)를 가동하기 전에 여러가지 설정해 줘야 할 것이 있다.

 

※ 서비스가 작동하는지 확인하기 위해서 "service 서비스이름 status"를 사용해도 되지만

이것이 가끔 틀리게 응답하기도 한다.

그래서 "ps -ef | grep vnc"로 프로세스가 작동하고 있는지 확인해 봐야 할 때도 있다.

VNC 서버뿐 아니라 다른 서비스(데몬)에서도 이러한 경우가 종종 있으므로 주의하자.

 

 

[[ Fedora Server ]]

 

VNC 서버가 작동할 수 있도록 설정해 준다.

 

Fedora Server의 사용자 중에서 외부에서 VNC 클라이언트로 접속할 수 있는

VNC 전용 사용자를 별도로 생성해 줘야 한다.

 

새로 사용자를 만들어 줘도 되지만

이번 실습에서는 "root" 사용자로 외부에서 VNC 클라이언트로 접속할 수 있도록 해 보자.

(다른 사용자로 해도 마찬가지이지만, 약간 더 고려해야 할 사항이 있을 수 있다)

 

우선 vi 에디터나 gedit로 "/etc/sysconfig/vncservers" 파일의 제일 아래에

VNCSERVERS="1:root" 를 추가하고 저장한다.

 

여기서 숫자1은 디스플레이 번호를 의미한다.



vi /etc/sysconfig/vncservers



[/etc/sysconfig/vncservers 파일]

 

※ 대부분의 설정 파일 앞에 붙은 "#" 표시는 주석을 의미한다.

그러므로 삭제해도 상관없다.

 

위의 설정 파일에 입력한 사용자(이 경우는 root)의 홈 디렉토리에

".vnc"라는 디렉토리를 만들어 주고

그 디렉토리에 VNC 클라이언트로 접속할 때 사용할 6글자 이상의 암호를 새로 생성해 준다.

 

내 경우엔 암호는 그냥 항상 연습할때 쓰는 "암호1234."으로 입력했다.

(각자 임의대로 입력하면 된다)



[VNC 전용 암호 생성 파일]

 

"ls"로 확인해 보면 "passwd"라는 파일이 생성되어 있다.

 

※ 파일 이름이나 디렉토리 이름 앞에 점(.)이 들어간 것은 숨김 파일(Hidden File)을 의미한다.

"ls" 명령으로는 확인되지 않으며, "ls -a" 옵션을 줘야 확인할 수 있다.

 

이제 VNC 서버를 가동하고, 가동이 되었는지 확인한다.



[VNC 서비스(데몬) 가동]

 

service vncserver start

성공적으로 vncserver가 가동 되었다.

 

service vncserver status

현재 vncserver가 실행되고 있음을 확인

 

※ 혹시 서비스가 가동되지 않는 경우에는 대개 /etc/sysconfig/vncservers 파일의 편집 중에

오타가 생긴 경우가 많으니 대소문자에 유의해서 확인해보자.

 

 

[[ Fedora Client ]]

 

Fedora Client에서 서버로 접속해 보자.

 

master 사용자로 접속하고 터미널을 하나 연다.

(master는 임의로 내가 만든 사용자이니 각자 만든 임의의 사용자로 접속하면 된다)

 

Fedora Client에도 VNC 클라이언트 프로그램이 설치되어 있지 않으므로

"yum -y install 패키지명"으로 설치한다.

페도라 11에서 제공하는 VNC 클라이언트의 패키지명은 "tigervnc"다.

 

※ yum 설치를 위해서는 root 사용자로 접속해야 하지만, 하나의 명령어만 실행할 때는

su -c '명령어'를 사용하는 편이 간편하다.



[VNC 클라이언트 설치]

 

rpm -qa | grep vnc

vnc 패키지가 설치되어 있는지 확인한다.

 

su -c 'yum -y install tigervnc'

tigervnc를 관리자 권한으로 설치한다.

 

페도라 서버에 접속해 본다.

명령어는 "vncviewer 서버IP:디스플레이번호"이며

여기서 '디스플레이번호'는 아까 입력한 "/etc/sysconfig/vncservers" 파일의

디스플레이번호와 일치해야 한다.

나는 "1"이라고 입력했었다.

 

그런데 접속이 안 된다.

그 이유는 서버의 방화벽에서 VNC 서비스를 열어주지 않아서이다.



[VNC 서버로 접속 실패]

 

 

[[ Fedora Server ]]

 

VNC 서비스를 허용해 주자.

 

"system-config-firewall" 명령어로 VNC 서버의 서비스를 허용해 주자.

 

'그 외의 포트'를 선택하고 <추가>

'사용자 정의' 체크 -> '5901'의 tcp 프로토콜을 추가한다.

경고창이 나오면 <예>를 클릭하고 [방화벽 설정] 창을 닫는다.

 

※ 경우에 따라서 '5900' TCP 프로토콜도 허용해 줘야 한다.



system-config-firewall





[VNC 서버의 포트인 5901 허용]

 

또한, 우리는 root 사용자로 접속할 것이므로, /etc/securetty라는 파일이 있다면

아무 이름으로 다르게 바꾼다.



[/etc/securetty 파일의 이름 변경]

 

 

[[ Fedora Client ]]

 

다시 VNC 서버에 접속해 본다.

 

"vncviewer 서버IP:디스플레이번호"로 접속하면 password를 입력하는 창이 뜬다.

(내가 지정한 IP와 디스플레이 번호는 192.168.100.111:1)

여기에는 아까 생성한 VNC용 암호를 입력하고 엔터를 누른다.

(내가 지정했던 암호는 "암호1234.")



[VNC 암호 확인]

 

X 윈도우의 터미널이 하나 열린다.

이제는 Fedora Server에 X 윈도우 환경으로 원격 접속 되었다.

 

접속된 VNC 화면에서 웹 브라우저를 클릭해서 실행해 보자.

실제 Fedora Server에서 작업하는 것과 완전히 동일하게 사용이 가능하다.


 

현재 이 창이 VNC서버를 이용해 Fedora Client에서 Fedora Server로 접속한 모습이다.

오른쪽 위 최소화 버튼을 눌러보자.



[Fedora Server에 VNC로 접속]

 

원래의 Fedora Client의 바탕화면이 보인다.

 

 

[[ 호스트OS=Windows 클라이언트 ]]

이번에는 Windows에서 페도라 서버의 X 윈도우 환경을 사용해 보자.

Windows에도 VNC 클라이언트 프로그램이 필요하다.

 

http://www.tigervnc.com에 접속하여 Windows용을 다운로드한다.

또는 직접 http://sourceforge.net/projects/tigervnc/files/에 접속해도 된다.





[www.tighervnc.com에서 다운로드]

 

다운로드한 파일을 설치한다.

특별히 어려운건 없으나 설치 중에 [Select Additional Tasks] 창에서

아래의 그림과 같이 체크박스를 모두 해제한다.

 

지금 Windows에는 TigerVNC Server는 필요 없기 때문이다.



[Windows용 tigerVNC 설치]

 

설치가 완료되면

TigerVNC Viewer를 실행하자.



 

Server 칸에 "<서버IP>:<디스플레이번호>"를 입력하고

Password는 VNC 서버에서 설정한 VNC용 비밀번호를 입력한다.

(나는 "암호1234."으로 설정했다)




 

Windows에서도 Fedora Client에서 했던 것과 동일한 환경으로

Fedora Server에 접속하여 사용할 수 있다.



[Windows에서 Fedora Server에 접속]

 

이제는 어디를 가더라도 Windows 환경에서 Fedora Server의 X 윈도우 환경에 접속해서

사용할 수 있게 되었다.

 

 

[[ Fedora Server ]]

 

현재는 Fedora Server를 재부팅하면 vncserver를 또 시작해 줘야 한다.

페도라 서버가 부팅될 때 VNC 서버도 자동으로 가동되도록 설정해 보자.

 

터미널에서 "LANG=C"를 입력해서 잠깐 영문모드로 터미널 설정을 변경하자.

이는 다음에 실행할 명령이 깨져보이는 것을 방지하기 위함이다.

 

"ntsysv" 명령을 실행해서 [Services] 창이 열리면, 목록에서 'vncserver'를 찾자. (아래쪽에 있다)

그리고 스페이스를 눌러 "*"가 표시되도록 한다.

 

이는 리눅스가 시작되면 자동으로 실행되도록 설정하는 것이다.

[Tab]키를 눌러 <OK>를 누른다.



LANG=C

ntsysv

 


[자동 시작 설정]

 

이제는 Fedora Server를 재부팅해도, 자동으로 vncserver가 작동한다.

현재 터미널을 닫자.

 

Posted by 아이맥스