はじめに
前回の記事では、Apache Guacamoleの概要と導入の背景について紹介しました。今回は、Dockerを使って実際にGuacamole環境を構築する手順を解説します。
Dockerを使えば、依存関係の管理や環境構築が簡単になり、再現性の高いセットアップが可能です。
前提条件
以下の環境を前提としています:
- Docker & Docker Composeがインストール済みのLinux環境(Ubuntuなど)
- root権限またはsudo権限があること
- ポート
8080
(Guacamole Web UI)と4822
(guacd)が開いていること
Docker Composeによる構成
Guacamoleは以下の2つの主要コンポーネントで構成されます:
- guacd:プロトコル変換を行うデーモン
- guacamole:Web UIと接続管理を行うアプリケーション
システム構成図(Docker版)
以下は、Apache GuacamoleをDockerで構築した際の基本構成図です:
この構成図には以下の要素が含まれています:
- ユーザー(ブラウザ)
- Guacamoleコンテナ(Web UI)
- guacdコンテナ(プロトコル変換)
- MySQLコンテナ(認証情報管理)
- 接続先のRDP/VNC/SSHサーバ(複数台対応可能)
docker-compose.yml の例
version: '3'
services:
guacd:
image: guacamole/guacd
container_name: guacd
restart: always
guacamole:
image: guacamole/guacamole
container_name: guacamole
restart: always
ports:
- "8080:8080"
environment:
GUACD_HOSTNAME: guacd
MYSQL_HOSTNAME: db
MYSQL_PORT: 3306
MYSQL_DATABASE: guacamole_db
MYSQL_USER: guacamole_user
MYSQL_PASSWORD: guac_pass
MYSQL_ROOT_PASSWORD: root_pass
depends_on:
- guacd
- db
db:
image: mysql:5.7
container_name: guac_db
restart: always
environment:
MYSQL_ROOT_PASSWORD: root_pass
MYSQL_DATABASE: guacamole_db
MYSQL_USER: guacamole_user
MYSQL_PASSWORD: guac_pass
初期セットアップ手順
-
docker-compose.ymlを作成
mkdir guacamole-docker cd guacamole-docker nano docker-compose.yml
-
コンテナ起動
docker-compose up -d
-
初回アクセス
ブラウザでhttp://<サーバIP>:8080/guacamole
にアクセス -
初期ログイン情報
- ユーザー名:
guacadmin
- パスワード:
guacadmin
- ユーザー名:
接続の追加(RDP例)
- Web UIにログイン
- 「接続」→「新しい接続を作成」
- 以下を入力:
- 名前:
My Windows Server
- プロトコル:
RDP
- ホスト名:
192.168.x.x
- ポート:
3389
- ユーザー名/パスワード:対象サーバの認証情報
- 名前:
トラブルシューティング
問題 | 対処法 |
---|---|
ログインできない | コンテナログを確認:docker logs guacamole
|
接続がタイムアウトする | 対象サーバのファイアウォール設定を確認 |
DB接続エラー |
MYSQL_* 環境変数の設定ミスを確認 |
おわりに
Dockerを使えば、Apache Guacamoleの構築は非常にスムーズです。次回は、LDAP連携やHTTPS化など、運用に向けたセキュリティ強化の方法を紹介します。
次回予告
- LDAPやOAuthによる認証強化
- HTTPS化(Let's Encrypt)
- ログ管理と監査