본문 바로가기

IT/NAS

[자작NAS] 우분투 서버에 Docker로 guacamole 설치

반응형

Guacamole은 웹을 통해서 원격 접속을 가능하게 해주는 일종의 게이트웨이입니다.

VNC, RDP, SSH 등의 프로토콜을 지원하기 때문에 다양한 OS를 추가해서 사용할 수 있습니다.

우분투 서버에서 Docker로 guacamole을 사용하는 방법을 살펴보겠습니다.

 

먼저 우분투 서버에 Docker가 설치되어 있어야 합니다.

아래 링크에서 Docker 설치 방법을 확인할 수 있습니다.

2017/09/06 - [System/Docker] - 도커 CE(Docker CE) 우분투 서버에 설치

 

도커 CE(Docker CE) 우분투 서버에 설치

Docker는 다양한 리눅스 배포판은 물론이고 Windows Server와 Mac 등 대부분의 OS를 지원합니다. 또한 Amazon Web Service와 Microsoft Azure와 같은 클라우드 플랫폼 역시 지원합니다. Docker는 CE(Community Edi..

psychoria.tistory.com

Guacamole을 동작시키기 위해서 MySQL이나 PostgreSQL이 필요합니다.

그리고 guacd라는 서버사이드 프록시를 실행해야 합니다.

Guacamole, guacd와 MySQL 3개의 컨테이너가 실행되어야 합니다.

먼저 Guacamole에서 공식 제공하는 guacd 컨테이너를 생성합니다.

sudo docker run -d \
--name=guacd \
--restart=unless-stopped \
guacamole/guacd

MySQL은 아래 링크의 MariaDB를 설치하면 됩니다.

2016/09/15 - [IT/NAS] - [자작NAS] 6. 우분투 서버에 MariaDB 설치

 

[자작NAS] 6. 우분투 서버에 MariaDB 설치

Docker 설치가 완료되면 다양한 기능을 Docker를 통해 추가할 수 있습니다. 먼저 데이터베이스인 MariaDB를 설치하는 방법을 알아보겠습니다. MariaDB는 기존 MySQL이 오라클의 소유로 넘어가면서 새롭게

psychoria.tistory.com

DB 초기화를 위한 sql 파일을 생성해야 하는데 아래 명령어로 생성 가능합니다.

sudo docker run --rm \
guacamole/guacamole \
/opt/guacamole/bin/initdb.sh --mysql > initdb.sql

생성된 컨테이너는 sql 파일을 생성한 후에 바로 삭제됩니다.

생성된 파일을 MariaDB 컨테이너 내부로 복사합니다.

sudo docker cp ./initdb.sql mariadb:/tmp/initdb.sql

생성된 MariaDB 컨테이너로 이동해서 Guacamole을 위한 데이터베이스를 생성합니다.

sudo docker exec -it mariadb bash

아래 명령어를 입력해서 root 계정으로 접속합니다.

mysql -u root -p

컨테이너 생성시 입력한 비밀번호를 입력해서 로그인하면 됩니다.

아래 쿼리를 순서대로 입력하면 기본적인 설정이 진행됩니다.

CREATE DATABASE guacamole;
CREATE USER 'guacamole'@'%' IDENTIFIED BY 'PASSWORD';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO 'guacamole'@'%';
FLUSH PRIVILEGES;
quit

명령어의 PASSWORD 부분은 실제 사용을 원하는 비밀번호를 입력하면 됩니다.

MariaDB 컨테이너 생성 시 입력한 비밀번호와 같을 필요는 없습니다.

이제 생성했던 initdb.sql 파일을 실행해서 DB 설정을 완료합니다.

cat /tmp/initdb.sql | mysql -u root -p guacamole

비밀번호를 입력하고 아무런 에러도 표시되지 않으면 설정은 완료되며 컨테이너를 빠져나옵니다.

exit

Guacamole 컨테이너 생성 전에 3개의 컨테이너를 하나의 네트워크로 묶기 위해 network를 생성합니다.

sudo docker network create guacamole

그리고 먼저 생성했던 guacd와 MariaDB 컨테이너를 해당 네트워크에 추가합니다.

sudo docker network connect guacamole mariadb
sudo docker network connect guacamole guacd

이제 아래 명령어로 Guacamole을 설치하면 됩니다.

sudo docker run -d \
--name=guacamole \
--network=guacamole \
--restart=unless-stopped \
-e MYSQL_HOSTNAME=mariadb \
-e MYSQL_DATABASE=guacamole \
-e MYSQL_USER=guacamole \
-e MYSQL_PASSWORD='PASSWORD' \
-e GUACD_HOSTNAME=guacd \
-p 8080:8080 guacamole/guacamole

PASSWORD 부분은 DB 설정 시 입력한 비밀번호를 입력하면 됩니다.

네트워크를 지정했기 때문에 자동으로 네트워크에 추가가 됩니다.

웹 브라우저를 켜고 http://IP주소:8080/guacamole 형태로 주소를 입력하면 서비스에 접속할 수 있습니다.

Apache Guacamole

기본 계정과 비밀번호는 guacadmin / guacadmin입니다.

비밀번호 변경

우측 상단에서 Settings를 누르고 Preferences로 이동하면 비밀번호 변경이 가능합니다.

보안을 위해 Users 탭으로 이동한 후 모든 권한과 함께 새로운 계정을 생성하는 것을 추천합니다.

새로운 계정으로 다시 로그인한 이후에 기존 guacadmin 계정을 삭제하면 됩니다.

마지막으로 Connections 탭에서 원하는 SSH나 RDP 세션을 추가하면 됩니다.

반응형