본문 바로가기
서버/리눅스 서버

15. 우분투 / 데비안 버추얼 박스 (VirtualBox) 설치 및 웹 관리자(phpvirtualbox)설치하기

by ㅋㅋ잠자 2015. 2. 5.
반응형

-추가사항-

2015-08-12 에 버추얼박스 5.0 하위 방법으로 설치 성공하였습니다.

phpvirtualbox 도 5.0에 맞게 대응업데이트가 되었으니 최신버전으로 작업하시면 됩니다.



안녕하세요. 도정진입니다.

   

카페에 글을 쓰다보니 폰트가 너무 작은것 같아서 1.5 포인트를 올려서 글을 작성합니다. ㅎㅎ

   

이 글은 ARM 장치의 리눅스에서는 지원되지 않습니다. 인텔 x86 에서만 지원됩니다.

   

오늘은 우분투/데비안 리눅스 서버에 버추얼박스를 설치해보고 그것을 웹페이지로 컨트를 해 보겠습니다. 실제로 화면 (xwindow) 를 열어서 화면을 보면서 버추얼박스를 컨트롤 할 수 있지만 실제로는 서버에 화면을 원격으로 연결해서 하는 작업이 매우 번거롭기 때문에 웹상에서 컨트롤 할 수 있는 UI가 있으면 정말 편할것 같았습니다.

   

그래서 찾은 대안이 phpvirtualbox 입니다. 이것을 사용해서 버추얼박스를 컨트롤이 가능하고 내장된 VNC 추가 모듈을 통해 콘솔 접속을 하실 수 있습니다.

   

   

설치하면서 한가지 문제점에 봉착한것이 있습니다. phpvirtualbox 는 기본으로 설정된 계정이 admin/admin 인데 제 서버에서는 아무리 작업해도 admin/admin 으로 로그인이 되지 않았습니다. (비밀번호 리커버리 작업을 해도 마찬가지였습니다.) 그래서 저는 그냥 No Auth 모드로 설정하고 아파치 서버단에서 인증작업을 추가했습니다.

   

실제로 phpvirtualbox 에 내장된 유저 기능으로 작업하게 되면 서버가 아주 크다고 가정할 때 각 유저마다 사용자 계정으로 접속한 것처럼 개인화가 가능하지만 일반적인 개인 클라우드에서는 그정도 까지는 필요없기 때문에 간단하게 아이디와 비번을 거는것으로 해결을 보았습니다.

   

   

그럼 시작합니다.

   

   

   

   

   

1. 버추얼 박스 설치

   

실제로 버추얼 박스는 apt-get install virtualbox 하면 설치가 되긴 합니다만 이미 공식 홈페이지에 우분투 / 데비안 용 레포가 있습니다. 그것을 통해서 최신버전을 설치해 보도록 하겠습니다.

   

레포 리스트를 추가해야 하기 때문에 아래의 파일을 열어줍니다.

   

nano /etc/apt/sources.list

   

파일을 열어보면 아래처럼 생겼습니다. 맨 아래 부분에 추가해 줍니다.

   

   

위 주소들은 각 리눅스 배포판에 맞는 소스 주소입니다. 그중에 맞춰서 하나만 추가해 주시면 됩니다. 정확하지는 않지만 trusty 는 우분투 14.04 / saucy 는 12.04 / wheezy 는 데비안 7.0 / squeeze 는 데비안 6.0 으로 알고 있습니다. ㅎㅎ

   

저는 우분투 14.04 이기 때문에 제일 위의 것을 추가하였습니다.

   

   

이렇게 저장해 주시고 컨트롤 + O (저장) 후 컨트롤 + X 눌러서 나옵니다.

   

그 다음, 위의 레포에 대한 키 파일을 등록시켜 주어야 합니다. 키파일을 먼저 다운받고 추가해 줍니다.

   

   

이렇게 하고 나면 방금 추가한 repo 에 대한 키가 추가 됩니다. 그리고 레포 설정이 끝났으니 패키지 리스트를 업데이트 합니다.

   

apt-get update

이렇게 해준뒤에 버추얼 박스를 설치해 봅니다.

   

apt-get install virtualbox-4.3

현 최신버전은 4.3 버전입니다. 혹시나 하위버전을 설치하고 싶으시다면 - 뒤에 원하시는 버전을 적으시면 됩니다.

   

그럼 버추얼 박스 관련 모듈들이 빌드되어 설치가 됩니다. (시간이 좀 걸립니다.)

   

   

   

   

   

   

2. 버추얼 박스 Extension Pack 설치하기

   

Extension Pack 은 확장팩입니다. 이 팩을 왜 설치하는지는 모르겠지만 풀버전의 버추얼박스 구동을 위해서 설치를 진행합니다. (실제로 물리적인 USB 를 내부에 마운투 하는데에 쓰인다고 합니다.)

   

그럼 일단 Extension Pack 은 GUI 상태에서 설치를 하실 수도 있습니다만 기본적으로 터미널에서 설치를 진행해 보겠습니다.

   

Extension Pack 의 경우 지금 구동하고 있는 버추얼 박스 버전과 같아야 함으로 현재 설치된 버전이 무엇인지 알아야 합니다. 설치된 버전은 설치 당시에 로그를 보시면 버전을 알 수 있습니다.

   

그에 맞는 버전을 wget 으로 받겠습니다.

   

   

https://www.virtualbox.org/wiki/Downloads

   

상기 주소로 이동하여 해당하는 버전의 Extension Pack 의 주소를 복사합니다.

   

그리고 터미널 창에 붙여넣습니다. (wget ______________________________(주소) )

   

저는 4.3.20 을 사용하기 때문에 아래처럼 넣었습니다.

   

   

그럼 위의 파일이 받아지고 Extension Pack 설치는 아래처럼 하시면 됩니다.

   

VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.20-96996.vbox-extpack

   

이렇게 하시면 Extension Pack 설치가 완료됩니다.

   

   

   

   

   

   

3. VBoxWebService 활성화 하기

   

실제로 버추얼박스 웹서비스를 활성화 하기 까지 많은 시행착오를 겪었습니다. 우분투 레포에 있는 것으로 설치하면 vboxwebservice 가 존재하지 않기 때문에 꼭 위의 오라클에서 제공하는 레포 주소로 설치를 진행하시길 바랍니다.

   

먼저 웹서비스를 할 계정을 추가합니다.

   

useradd –d /home/vbox –m vbox

그리고 해당 계정의 패스워드를 설정해 줍니다.

passwd vbox

그 다음 vbox 계정을 vboxuser 그룹에 추가해 줍니다.

adduser vbox vboxusers

   

그럼 계정설정은 끝났습니다. 실제로 화면을 뛰어 버추얼 박스를 윈도우 에서 실행하시는 것처럼 하게 되면 유저가 vbox 유저로 로그인을 하지 않으시기 때문에 실제로는 거기서 만든 VM이 vbox 로 로그인하는 phpvirtualbox 에서는 보이지 않습니다. 참고하세요 ㅎㅎ

   

   

그리고 /etc/default/virtualbox 로 이동하시어 (기본적으로 없는 파일입니다. 새로 생성되는 파일입니다.) 위처럼 입력을 해줍니다. 계정은 위에서 설정하신대로 입력해 주시면 됩니다.

   

VBOXWEB_USER=vbox

   

그리고 부팅시 자동실행 되도록 합니다.

   

   

update-rc.d vboxweb-service defaults

   

그리고 서버를 시작합니다. 그리고 뭔가 설정이 잘 되지 않았으면 서버 Status 가 Not Running 으로 표시됩니다.

   

   

/etc/init.d/vboxweb-service start

   

/etc/init.d/vboxweb-service status

   

정상적으로 실행이 되는것을 체크합니다.

   

   

   

   

   

4. 아파치 웹서버 설치하기

   

http://blog.djjproject.com/75

   

아파치 웹서버 설치는 위의 글을 참고하셔서 추가적으로 아래의 패키지를 추가 설치해 주시면 됩니다.

   

apt-get install php-soap

   

혹은 아래의 명령어로 설치합니다.

   

apt-get install apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common apache2 apache2-doc apache2-suexec libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libapr1 php5-common php5-mysql php-pear

   

이렇게 하면 아파치 웹서버가 설치가 됩니다. 그런데 위 명령어는 우분투 12.04 에 맞춰진 것으로 14.04 이신 분들은 꼭 위 제 블로그 게시물을 참고해 주시길 바랍니다.

   

설정을 따로 하지 않으셨다면 기본적인 웹루트는 /var/www 입니다. 아래의 소스포지에 가셔서 최신 phpvirtualbox 를 받아주세요.

   

http://sourceforge.net/projects/phpvirtualbox/

   

압축을 푸셔서 WinSCP 로 넣어주셔도 되고 wget 으로 하시고 unzip 을 통해서 터미널 상에서 작업하셔도 됩니다.

   

그럼 구조는 아래와 같이 됩니다.

   

   

그럼 http://아이피주소/vbox 로 접속해 봅니다. 위는 제 기준에 맞춰져 있습니다.

   

정상적으로 로그인 페이지가 뜰것입니다. 그럼 설치한 웹서버와 파일은 정상적으로 위치되었습니다. 그리고 한가지 php 파일을 수정해야합니다.

   

   

   

   

5. phpvirtualbox 설정하기

   

저는 이상하게도 phpvirtualbox 에서 기본 계정 admin / admin 으로 접속이 아무리 해도 안되었습니다. 그래서 apache 서버 단의 암호 기능을 사용했습니다. 추가 코멘트 주시면 글을 수정해 놓겠습니다.

   

   

phpvirtualbox 를 압축 푼 위치로 가시면 config.php.sample?? 이 있습니다. 그것을 config.php 로 바꾸시고 위 그림처럼 상기 3번에서 설정한 계정정보와 비밀번호를 넣습니다.

   

그렇게 하고 저장하고 다시 http://아이피주소/vbox 에 접속해 봅니다. 초기 암호와 비밀번호는 admin / admin 입니다. 그럼 로그인이 가능하고 웹페이지에 사용자 암호설정으로 비밀번호를 바꾸어 주시면 됩니다. 그럼 설치는 여기서 끝입니다.

   

그러나 저는 왜인지는 모르겠지만 admin / admin 으로 죽어도 로그인이 안되었습니다. 패스워드나 아이디가 틀렸다고 나오네요. 패스워드를 리커버리하는 php 파일을 통해 초기화 했음에도 불구하고 로그인이 안되어서 아파치 서버단의 패스워드 기능을 이용해서 보안작업을 하였습니다.

   

htpasswd 를 이용해서 페이지에 암호를 걸었습니다. (제일 기초적인 방식입니다. 보안성이 그리 좋지는 않습니다.)

   

   

htpasswd 를 터미널창에 입력해 봅니다. 설치가 안되어 있다고 하면 아래의 명령어로 설치해 주세요.

   

apt-get install apache2-utils

   

그리고 아래처럼 패스워드 파일을 만듭니다.

   

   

명령어는 -c (패스워드파일위치) 아이디 입니다. 이것을 입력하면 패스워드를 입력하는 창이 뜹니다.

   

그리고 전에 가상호스트 설정하는 방법에 대해서 알려드렸습니다. 그 설정에 아래의 설정을 덧붙입니다.

   

http://blog.djjproject.com/118

   

   

<VirtualHost 192.168.0.14:80>

ServerName vbox.djjproject.com

ServerAlias www.vbox.djjproject.com

ServerAdmin djj9404@gmail.com

DocumentRoot /usbhdd/htdocs/vbox

DirectoryIndex index.html index.php /_h5ai/server/php/index.php

   

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

   

   

   

<Directory "/usbhdd/htdocs/vbox">

AllowOverride None

Order allow,deny

allow from all

AuthType Basic

AuthName "VirtualBox Web Interface"

AuthUserFile /usbhdd/htdocs/vbox/passwd

Require user djj9405

</Directory>

   

   

   

   

   

   

</VirtualHost>

   

지금 제 가상호스트 설정파일입니다. 위처럼 설정을 해주시면 암호 걸기가 가능합니다. 그리고 phpvirtualbox config.php 에 noAuth 를 true 로 설정해 줍니다.

   

   

그럼 아래처럼 기본적인 보안이 작동됩니다.

   

   

   

   

   

   

6. 사용해보기

   

   

웹페이지에 들어가시면 위와같은 창이 뜨고 사용법은 예나 VirtualBox 와 같습니다.

   

설치 미디어는 원격으로 마운트가 불가능하기 때문에 서버에 위치가 되어 있어야 합니다.

   

   

   

윗 탭에는 현재 서버 정보가 보이고 밑 2번째에는 제가 만들어 놓은 가상머신이 보입니다.

   

   

오른쪽 위에 콘솔을 누르면 아래의 메뉴가 뜨고 VNC 로 화면이 원격으로 보입니다.

   

   

창이 너무 작거나 그러면 좀 불편하기 때문에 위의 Detach 를 누르면 원격 창이 팝업으로 열리게 됩니다.

   

   

네 그럼 여기까지 설치 및 사용기를 마치겠습니다.

   

   

감사합니다 ㅎㅎ

반응형

댓글