[우분투 / 데비안] Guacamole 0.9.10 incubating 설치하기 (HTML5 Clientless RDP VNC SSH TELNEL Client)

category 서버/리눅스 서버 2017.02.01 23:53

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




먼저 Guacamole 은 웹 상에서 RDP SSH VNC TELNET 등을 사용할 수 있는 어플리케이션입니다. 제한된 환경에서 사용하거나 프로그램을 추가적으로 설치하기 싫을 때 및 Guacamole 이 설치된 네트워크 상의 서버에 접속할 때 사용하면 좋습니다.


기본적으로 기능은 각 연결당 파일을 업로드 다운로드 할 수 있고 Guacamole 을 사용하면서 화면에 나오는 것들을 레코딩 할 수 있는 기능도 있습니다. (레코딩 기능은 사용해 보지 못했습니다.)


추가적으로 스크린 쉐어 기능도 있으며 RDP 에서 새롭게 마이크 IN 기능도 지원합니다. 


차후에 Web USB 기능도 활성화가 된다면 정말 금상첨화가 아닐지 생각해봅니다 ㅎㅎ



새로운 기능에 대해서는 아래 글에서 자세히 설명 드리겠습니다.


한편, 요즘은 글을 간략하게 적는 편이라 명령어를 입력한 후, 나오는 결과물에 대해서 스크린샷을 잘 찍지 않습니다.



간단한 구동 원리는 아래와 같습니다.






1. 사전에 필요한 패키지 설치하기


우분투 버전이 15.04 일 경우와 debian 버전이 jessie 이상일 경우에는 tomcat8 을 사용해야하고 그 이하 버전은 tomcat7 을 사용하시면 됩니다.


테스트 환경은 우분투 14.04 가상머신이며 동일한 방법으로 debian jessie 에 설치를 성공하였습니다.


이 가이드는 tomcat7 로 설명이 되어 있습니다. tomcat8 을 사용하시는 분은 참고해서 바꿔 주시길 바랍니다.


apt-get install ntp build-essential libcairo2-dev libjpeg-dev libpng12-dev libossp-uuid-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev libvorbis-dev default-jdk debconf-utils tomcat7 libjpeg-dev libwebp-dev libavcodec-dev libavutil-dev libswscale-dev


다음으로 mysql 을 통해 구동이 됨으로 mysql 도 설치해 줍니다.


apt-get install mysql-server mysql-client


이후에 나오는 비밀번호 설정창에서는 마음에 드는 비밀번호로 설정해 주시면 됩니다. 





2. 필요한 파일 다운받기


본래 파일을 소스포지에서 다운받아야 하나 wget 으로 바로 받을수가 없어서 제 서버 링크로 대체합니다.


공식 다운로드 링크는 아래와 같습니다.


http://guacamole.incubator.apache.org/releases/0.9.10-incubating/


# 톰캣 webapp 컴파일 된 파일

wget http://download.djjproject.com/linux/guacamole/guacamole-0.9.10-incubating.war


# jdbc 인증 모듈

wget http://download.djjproject.com/linux/guacamole/guacamole-auth-jdbc-0.9.10-incubating.tar.gz


# guac 서버 소스

wget http://download.djjproject.com/linux/guacamole/guacamole-server-0.9.10-incubating.tar.gz


# mysql 연결 모듈

wget http://download.djjproject.com/linux/guacamole/mysql-connector-java-5.1.40.tar.gz





3. guac 컴파일 하기


먼저 받은 server 파일을 압축해제 합니다.


tar xvf guacamole-server*


압축이 해제 되었으면 압축이 풀린 폴더로 이동합니다.


cd guacamole-server-0.9.10-incubating/


먼저 필요한 패키지가 모두 설치되었는지 확인과 컨피그를 위해 아래 명령을 입력합니다.


./configure --with-init-dir=/etc/init.d


------------------------------------------------

guacamole-server version 0.9.10-incubating

------------------------------------------------


   Library status:


     freerdp ............. yes

     pango ............... yes

     libavcodec .......... yes

     libavutil ........... yes

     libssh2 ............. yes

     libssl .............. yes

     libswscale .......... yes

     libtelnet ........... yes

     libVNCServer ........ yes

     libvorbis ........... yes

     libpulse ............ yes

     libwebp ............. yes


   Protocol support:


      RDP ....... yes

      SSH ....... yes

      Telnet .... yes

      VNC ....... yes


   Services / tools:


      guacd ...... yes

      guacenc .... yes


   Init scripts: /etc/init.d


Type "make" to compile guacamole-server.


위 처럼 모든 라이브러리가 정상적이다면 아래처럼 컴파일을 합니다.


# CPU 수에 맞게 옵션을 주시길 바랍니다. 저는 6코어라 6을 줬습니다. n3150 기준으로는 4를 주시면 됩니다.

make -j 6


make install


ldconfig





4. 웹앱 설치하기 (tomcat)


먼저 받은 guacamole.war 파일을 /var/lib/guacamole 에 옮겨 줍니다.


mkdir /var/lib/guacamole

mv guacamole-0.9.10-incubating.war /var/lib/guacamole/guacamole.war


다음으로 옮긴 guacamole.war 파일을 tomcat webapps 폴더에 심링크 시켜 줍니다.


# tomcat7 과 tomcat8 경로가 다릅니다.

ln -s /var/lib/guacamole/guacamole.war /var/lib/tomcat7/webapps/guacamole.war


그리고 mysql 과 jdbc 모듈을 압축 풀고 모듈이 위치할 폴더를 생성하고 파일을 배치합니다.


tar xvf guacamole-auth-jdbc-0.9.10-incubating.tar.gz


tar xvf mysql-connector-java-5.1.40.tar.gz


mkdir -p /usr/share/tomcat7/.guacamole/{extensions,lib}


mv guacamole-auth-jdbc-0.9.10-incubating/mysql/guacamole-auth-jdbc-mysql-0.9.10-incubating.jar /usr/share/tomcat7/.guacamole/extensions/


mv mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/share/tomcat7/.guacamole/lib





5. DB 초기 설정하기


기본적으로 guacamole 에서 사용할 계정과 DB를 생성해 주어야 합니다.


# 패스워드는 1번 단계에서 설정한 비번을 입력하시면 됩니다.

mysql --host=localhost --user=root --password=djj9405


mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 5

Server version: 5.7.17-0ubuntu0.16.04.1 (Ubuntu)


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> CREATE DATABASE IF NOT EXISTS guacdb;

Query OK, 1 row affected (0.00 sec)


# IDENTIFIED BY 부분에 사용하고 싶으신 비밀번호를 넣으시면 됩니다. 저는 djj9405 로 설정했습니다.

mysql> CREATE USER 'guacuser'@'localhost' IDENTIFIED BY 'djj9405';

Query OK, 0 rows affected (0.00 sec)


mysql> grant select,insert,update,delete on guacdb.* to 'guacuser'@'localhost';

Query OK, 0 rows affected (0.00 sec)


mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)


mysql> exit

Bye


한편, DB 안에 아무것도 없는 상태임으로 수동으로 기본 제공되는 SQL 파일을 넣어 주어야 합니다.


cd guacamole-auth-jdbc-0.9.10-incubating/mysql/schema/


# 패스워드 부분에 1번 단계에서 설정한 비밀번호를 넣습니다.

cat ./*.sql | mysql --host=localhost --user=root --password=djj9405 guacdb





6. guacamole 설정파일 만들기


설정파일은 편의상 /etc/guacamole 에 작성하겠습니다.


mkdir /etc/guacamole

nano /etc/guacamole/guacamole.properties


mysql-hostname: localhost

mysql-port: 3306

mysql-database: guacdb

mysql-username: guacuser

# mysql 패스워드는 root 의 패스워드가 아니라 guacuser 의 패스워드 입니다.

mysql-password: djj9405      

mysql-disallow-duplicate-connections: false


다음으로 guacamole.war 에서 읽을 수 있도록 심링크를 겁니다.


ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat7/.guacamole/





7. freerdp 관련 모듈 등록하기


freerdp 모듈을 등록하지 않으면 RDP 에서 소리나 공유폴더, 프린터 등이 작동되지 않습니다. 컴파일 하여 make install 한다고 하여 /usr/lib 폴더에 자동으로 복사가 되지 않습니다.


따라서 컴파일된 결과물로 심링크를 통해 모듈로 등록하겠습니다.


mkdir -p /usr/lib/x86_64-linux-gnu/freerdp


ln -s /usr/local/lib/freerdp/guac*.so /usr/lib/x86_64-linux-gnu/freerdp





8. 재시작하기 및 접속해보기


설치가 완료 되었습니다. 모듈 등록 때문에 리부팅을 시켜 주시길 바랍니다.


리부팅 후에 서버 IP:8080/guacamole 로 접속하면 정상적으로 로그인 페이지가 열립니다.  (예시 http://192.168.100.13:8080/guacamole/ )


초기 아이디 비번은 guacadmin 입니다.



초기 계정 삭제를 위해서 관리자 권한으로 계정을 하나 생성해 주시고, 기본 계정 로그아웃 후에 생성한 계정으로 로그인하여 guacadmin 계정을 삭제해 주시면 초기 설정은 끝납니다.





9. 사용 영상


차후에 설정 및 사용 가이드를 작성하겠습니다.

오늘은 사용 영상만 보여드리도록 하겠습니다.



읽어 주셔서 감사합니다 ㅎㅎ


댓글을 달아 주세요