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

18.1 [우분투/데비안]HTML5 기반 원격 데스크톱 (SSH/RDP/VNC/TELNET) Guacamole 0.9.7 + MySQL 설치하기.

by 도정진 ㅋㅋ잠자 2015. 9. 6.
728x90

   

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

   

시간이 없어서 간략하게 빨리 적는 점 이해해 주시길 바랍니다.

   

   

본래 Guacamole 은 MySQL 연동을 통해 구지 텍스트 기반 인증 방식을 통하지 않고도 웹상에서 컨넥션을 추가하고 사용이 가능합니다.

   

   

이런식으로 텍스트 기반 파일을 만들어서 저장하고 guacd 서비스와 tomcat7 서비스를 재시작하여 아래처럼 리스트에 반영을 하는 귀찮은 작업을 하지 않아도 된다는 이야기 입니다.

   

   

예전부터 Guacamole 과 MySQL DB 연동을 통해서 군내부의 PC를 통해 원격으로 서버작업을 쉽게 하려고 했었습니다. 제가 관리하는 서버가 여러 개다 보니 위 처럼 텍스트파일을 수정하고 재시작하고 이런게 힘들었습니다.

   

재시작을 하게 되면 제가 로그인해 있는 Guacamole 의 터미널 컨넥션이 죽으니까요.

   

Guacamole 제작사의 매뉴얼도 너무 이상하게 설명이 되어 있어서 요리조리 고민을 하다가 설치방법을 알아 내었습니다.

   

실제로 MySQL 연동을 하게 되면 아래처럼 쉽게 컨넥션 수정이 가능하고 사용자 설정도 가능해집니다.

   

   

   

   

   

   

   

그리고 원격화면을 보고 있는 도중에는 컨트롤+쉬프트+알트 버튼을 누르면 아래와 같이 원격화면에 클립보드나 파일을 전송할 수 있는 툴이 생깁니다.

   

   

   

컨넥션 제작 예시는 아래와 같습니다.

   

   

   

   

   

   

-설치해보기-

   

   

먼저 MySQL 을 사용하기 위해서 MySQL 을 설치합니다.

apt-get install mysql-server mysql-client

   

루트 비밀번호는 마음에 드는것으로 해주면 됩니다.

   

   

Guacamole 서버 파일과 / 클라이언트.war / jdbc와 mysql 컨넥터를 다운받습니다.

   

   

필요한 의존성 패키지를 설치합니다.

   

apt-get install make libcairo2-dev libpng12-dev freerdp-x11 libssh2-1 libvncserver-dev libfreerdp-dev libvorbis-dev libssl0.9.8 gcc libssh-dev libpulse-dev tomcat7 tomcat7-admin tomcat7-docs

   

apt-get install libcairo2-dev libpng12-dev libossp-uuid-dev

   

서버 소스를 압축을 풀고 그 폴더로 이동합니다.

   

tar -zxvf guacamole-server-0.9.7.tar.gz

cd guacamole-server-0.9.7/

   

컴파일을 진행합니다. 마지막에 guacd 가 잘 동작하는지 확인해 봅니다.

   

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

   

   

make && make install && ldconfig

service guacd restart

   

guacamole-0.9.7.war 파일을 guacamole.war 로 이름을 바꿔주고 아래의 심링크 작업을 합니다.

   

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

   

그리고 MySQL 연동을 하기 위해서 이동 작업을 합니다.

   

tar -zxf mysql-connector-java-5.1.32.tar.gz

tar -zxf guacamole-auth-jdbc-0.9.7.tar.gz

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

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

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

   

.guacamole 폴더 내부에 extensions 폴더와 lib 폴더를 생성하고 JAR 파일을 넣는 작업이였습니다.

   

다음은 미리 제공한 MYSQL 데이터를 MYSQL 서버에 넣는 작업입니다. (어려워서 직접 터미널에 나온 내용을 붙여 넣었습니다.)

   

root@nuc-server:~# mysql -u root -p

Enter password:

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

Your MySQL connection id is 108

Server version: 5.5.44-0ubuntu0.14.04.1 (Ubuntu)

   

Copyright (c) 2000, 2015, 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 guacdb;

Query OK, 1 row affected (0.00 sec)

   

mysql> create user 'guacd'@'localhost' identified by 'djj9405';

Query OK, 0 rows affected (0.01 sec)

   

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

Query OK, 0 rows affected (0.01 sec)

   

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

   

mysql> quit

Bye

   

노란색으로 한 것이 guacd 계정의 비밀번호 입니다.

   

   

다음 미리 만들어진 MySQL 데이터를 집어 넣는 작업입니다.

root@nuc-server:~/guacamole-auth-jdbc-0.9.7/mysql/schema# cat ./*.sql | mysql -u root -p guacdb

Enter password:

   

실제로 mysql/schema 폴더에는 처음에 넣는 초기값 DB파일이 있습니다.

   

   

   

그 다음 guacamole.properties 파일을 만들어 주어야 합니다.

mkdir -p /etc/guacamole

   

컨피그 파일을 생성합니다.

   

nano /etc/guacamole/guacamole.properties

   

내용은 아래와 같습니다.

   

# MySQL properties

mysql-hostname: localhost

mysql-port: 3306

mysql-database: guacdb

mysql-username: guacd

mysql-password: djj9405

   

# Additional settings

mysql-disallow-duplicate-connections: false

   

이렇게 상위에서 설정한 guacdb 의 사용자 계정과 비밀번호를 입력해 주면 됩니다.

   

그리고 심링크 작업.. (이건 제작사 매뉴얼에 나와있는 정보입니다.)

   

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

   

   

   

설치가 완전히 끝났으니 모든 서비스를 재시작해줍니다.

   

service guacd restart && service tomcat7 restart

   

접속은

   

http://ip-address:8080/guacamole 입니다.


초기 아이디 비밀번호는 guacadmin / guacadmin 입니다 ㅎㅎ



   

   

리버스 프록시를 활용하려면 아파치 기준으로는 아래와 같이 세팅하시면 됩니다.

   

<Virtualhost *:80>

   

ProxyRequests Off

ServerName remote.djjproject.com

<Proxy *>

Order Deny,allow

Allow from all

</Proxy>

ProxyPass / http://127.0.0.1:8080/guacamole/ max=20 flushpackets=on

ProxyPassReverse / http://127.0.0.1:8080/guacamole/

ProxyPassReverseCookiePath /guacamole/ /

   

</Virtualhost>

   

 

   

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

   




   

   

감사합니다.

   

728x90

댓글10

  • uuurrr123 2015.09.07 14:05

    안녕하세요. 서버가 막혀서요. ㅠㅠ 갤럭시 넥서스 twrp 2.7.0.0 있으시면 보내주실 수 있나요?starpod82@naver.com 입니다. ㅠㅠ
    답글

  • simon 2015.12.27 14:31

    왜 로그인이 안될까요? ㅠㅠ
    guacd/ 비밀번호

    로 로그인 하는거 아닌가요?
    답글

    • http://blog.djjproject.com/124

      이 글도 참고해 보시면 좋습니다.


      제가 게시글에 초기 아이디 비밀번호를 명시해 두지 않았네요 ㅠㅠ

      죄송합니다. 글 수정 하겠습니다.

    • 안녕하세요. ㅋㅋ잠자입니다 ㅎㅎ

      mysql 비밀번호와 guacamole 에 로그인 하는 비밀번호는 다릅니다.

      정확하게 답변 드립니다.

      guacadmin / guacadmin 입니다 ㅎㅎ




      로그인하시고 비밀번호를 변경하시면 됩니다.

      아니면 새로운 administrative 계정을 만들고 guacadmin 는 삭제해도 됩니다 ㅎㅎ

  • simon 2015.12.27 15:40

    다시 천천히 하다보니

    root@nuc-server:~/guacamole-auth-jdbc-0.9.7/mysql/schema# cat ./*.sql | mysql -u root -p guacdb

    여기 #에서 오류가 있어서 cd로 디렉토리 이동후 cat 하였습니다

    하지만 ㅠㅠ 여전히

    guacadmin/ guacadmin 으로도 로그인이안되더라고요 ㅠㅠ
    답글

  • simon 2015.12.27 23:17

    우분투 재설치후 root로 처음부터 끝까지 하니까 성공했습니다 ^^ 좋은 정보 감사합니다 ^^
    답글

  • Favicon of https://neguru.tistory.com 이정식 2016.05.11 11:45 신고

    안녕하세요. 좋은 정보 감사드리며, 질문 드릴게 있어 글 남김니다.
    크롬 원격데스크탑처럼 pin 코드 같은 방식이나 기타 인증 방식으로 클라이언트가 접속 허용 여부를 선택할수는 없나요? 혹여 가능한 방법이 있을까요?
    이멜은 jsclub@outlook.com 입니다.
    답글