このガイドでは、UbuntuにDockerコンテナとしてApacheGuacamoleをインストールする方法を学習します。 Ubuntu22.04を使用しています。 Apache Guacamoleは、クライアントレスHTML5 Webベースのリモートデスクトップゲートウェイであり、Webブラウザを介してサーバーとデスクトップへのリモートアクセスを提供します。 VNC、RDP、SSHなどの標準プロトコルをサポートしています。
UbuntuにDockerコンテナとしてApacheGuacamoleをインストールします
ワカモレは2つの部分で構成されています。
guacamole-server
、これは、guacdプロキシと、Guacamoleがリモートデスクトップに接続するために必要なすべてのネイティブサーバー側コンポーネントを提供します。guacamole-client
これは、通常はサーブレットコンテナによって提供されるクライアントを提供しますTomcat
。
Apache Guacamole Webベースのリモートデスクトップクライアントをセットアップするには、これらのコンポーネントの両方をインストールする必要があります。
Guacamoleは、デフォルトのUbuntu22.04リポジトリで利用できます。 ただし、利用可能なバージョンは最新ではありません。
apt-cache policy guacd
guacd: Installed: (none) Candidate: 1.3.0-1.1 Version table: 1.3.0-1.1 500 500 http://ke.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
この記事の執筆時点では、Ubuntu22.04にはOpenSSL3.xが付属しており、Guacamoleが正常にコンパイルおよびインストールするにはopenssl 1.xが必要であるため、ソースからのGuacamoleのビルドは失敗します。
したがって、Ubuntu22.04にApacheGuacamoleをインストールする必要がある場合の唯一のオプションは、openssl関連の警告がエラーとして扱われないようにするか、Dockerコンテナーとして実行することです。
Ubuntu22.04にDockerコンテナとしてApacheGuacamoleをインストールします
Ubuntu22.04でApacheGuacamoleをDockerコンテナとして実行できるようにするため。
- 以下のコマンドを実行して、Ubuntu22.04にDockerCEをインストールします。
sudo apt install ca-certificates curl gnupg lsb-release -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor > /etc/apt/trusted.gpg.d/docker-archive-keyring.gpg
echo
"deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
> /etc/apt/sources.list.d/docker.list
apt update
apt install docker-ce docker-ce-cli containerd.io
- Ubuntu22.04にDockerComposeをインストールします。
以下のコマンドを実行して、Ubuntu22.04にDockercomposeをインストールします。
curl -sL "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
- Apache GuacamoleContainerImagesをダウンロードする
以下のコマンドを実行して、ApacheGuacamoleサーバーおよびクライアントイメージをダウンロードします。
docker pull guacamole/guacd
docker pull guacamole/guacamole
利用可能な画像の一覧表示。
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
guacamole/guacd latest e391c1b36ad7 15 hours ago 271MB
guacamole/guacamole latest ec2f40adddc3 17 hours ago 439MB
ApacheGuacamole認証を構成する
Guacamole Dockerコンテナが機能するには、MySQLデータベース、PostgreSQLデータベース、LDAPディレクトリ、RADIUSサーバーなどの認証メカニズムが少なくとも1つ必要です。
このガイドでは、MySQLデータベース認証を使用します。
その結果、MySQLデータベースコンテナをデプロイしましょう。 最新のMySQL8Dockerイメージを使用しています。
- 以下のコマンドは、最新のMySQL 8 Dockerイメージをダウンロードし、MySQL8Dockerコンテナを作成します。
guacamole_db
、ワカモレデータベース(guacdb
)、MySQLrootユーザーパスワード;
docker run --name guacamole_db -e [email protected] -e MYSQL_DATABASE=guacdb -d mysql/mysql-server
- 次に、ApacheGuacamoleMySQLデータベース初期化スキーマを生成する必要があります。
スキーマを格納するディレクトリを作成しましょう。
mkdir -p /opt/guacamole/mysql
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > /opt/guacamole/mysql/01-initdb.sql
- GuacamoleMySQLデータベース初期化スクリプトをMySQLDockerコンテナにコピーします。
docker cp /opt/guacamole/mysql/01-initdb.sql guacamole_db:/docker-entrypoint-initdb.d
スクリプトはにコピーされます /docker-entrypoint-initdb.d
MySQLDockerコンテナのディレクトリ。
- MySQLデータベースコンテナに接続します。
docker exec -it guacamole_db bash
これにより、MySQLコンテナのルートディレクトリに移動します。
bash-4.4#
初期化スクリプトが使用可能であることを確認してください。
ls /docker-entrypoint-initdb.d/
- GuacamoleMySQLデータベースを初期化します。
cd /docker-entrypoint-initdb.d/
mysql -u root -p
で指定されたパスワードを使用してください MYSQL_ROOT_PASSWORD
その上。 ここで、MySQLプロンプトにドロップする必要があります。
bash-4.4# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 24 Server version: 8.0.29 MySQL Community Server - GPL Copyright (c) 2000, 2022, Oracle and/or its affiliates. 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>
Guacamoleデータベースを初期化します。
use guacdb;
source 01-initdb.sql;
初期化が完了したら、使用可能なテーブルを確認します。
show tables;
サンプル出力;
+---------------------------------------+ | Tables_in_guacdb | +---------------------------------------+ | guacamole_connection | | guacamole_connection_attribute | | guacamole_connection_group | | guacamole_connection_group_attribute | | guacamole_connection_group_permission | | guacamole_connection_history | | guacamole_connection_parameter | | guacamole_connection_permission | | guacamole_entity | | guacamole_sharing_profile | | guacamole_sharing_profile_attribute | | guacamole_sharing_profile_parameter | | guacamole_sharing_profile_permission | | guacamole_system_permission | | guacamole_user | | guacamole_user_attribute | | guacamole_user_group | | guacamole_user_group_attribute | | guacamole_user_group_member | | guacamole_user_group_permission | | guacamole_user_history | | guacamole_user_password_history | | guacamole_user_permission | +---------------------------------------+ 23 rows in set (0.01 sec)
次に、Guacamoleデータベースユーザーを作成し、データベースに必要な権限を付与します。
create user [email protected]'%' identified by 'ChangeME';
grant SELECT,UPDATE,INSERT,DELETE on guacdb.* to [email protected]'%';
flush privileges;
quit
MySQLコンテナを終了します。
exit
実行中のコンテナを確認する場合。
docker ps
サンプル出力;
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b78a10e6b107 mysql/mysql-server "/entrypoint.sh mysq…" 15 minutes ago Up 15 minutes (healthy) 3306/tcp, 33060-33061/tcp guacamole_db
ご覧のとおり、ヘルスステータスは正常です(開始および実行中)。
ステータスを再度確認して、特定のフィールドを印刷できます。
docker ps --format '{{.ID}}t{{.Image}}t{{.Status}}t{{.Names}}'
コンテナのログを確認することもできます。
docker logs guacamole_db
Guacamoleサーバーコンテナを起動します
GuacamoleServerコンテナをサービスとしてバックグラウンドで起動できます。
docker run --name guacamole-server -d guacamole/guacd
docker logs --tail 10 guacamole-server
guacd[7]: INFO: Guacamole proxy daemon (guacd) version 1.4.0 started
guacd[7]: INFO: Listening on host 0.0.0.0, port 4822
繰り返しますが、しばらくしてから実行中のコンテナを一覧表示します。
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 669ad905db27 guacamole/guacd "/bin/sh -c '/usr/lo…" 23 minutes ago Up 23 minutes (healthy) 4822/tcp guacamole-server b78a10e6b107 mysql/mysql-server "/entrypoint.sh mysq…" About an hour ago Up About an hour (healthy) 3306/tcp, 33060-33061/tcp guacamole_db
ご覧のとおり、Guacamoleサーバーが稼働しています。
Guacamoleクライアントコンテナを起動します
これで、Guacamoleクライアントを起動できます。
これを機能させるには、GuacamoleサーバーとGuacamoleデータベースにリンクする必要があります。
また、Guacamoleクライアントポートを公開する必要があります。 8080 ワカモレへの外部アクセスを許可するためにホスト上で。
すべてのコンテナはデフォルトのDockerネットワークを使用します。
したがって、Guacamoleクライアントを起動します。
docker run --name guacamole-client --link guacamole-server:guacd
--link guacamole_db:mysql -e MYSQL_DATABASE=guacdb
-e MYSQL_USER=guacadmin -e MYSQL_PASSWORD=ChangeME
-d -p 80:8080 guacamole/guacamole
Dockerコンテナプロセスを確認します。
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 07233565559c guacamole/guacamole "/opt/guacamole/bin/…" 23 seconds ago Up 20 seconds 0.0.0.0:80->8080/tcp, :::80->8080/tcp guacamole-client 669ad905db27 guacamole/guacd "/bin/sh -c '/usr/lo…" 29 minutes ago Up 29 minutes (healthy) 4822/tcp guacamole-server b78a10e6b107 mysql/mysql-server "/entrypoint.sh mysq…" About an hour ago Up About an hour (healthy) 3306/tcp, 33060-33061/tcp guacamole_db
ご覧のとおり、Guacamoleクライアントはポート8080でリッスンしており、ホストではポート80として公開されています。
ss -altnp | grep :80
LISTEN 0 4096 0.0.0.0:80 0.0.0.0:* users:(("docker-proxy",pid=6129,fd=4)) LISTEN 0 4096 [::]:80 [::]:* users:(("docker-proxy",pid=6135,fd=4))
ブラウザからApacheGuacamoleにアクセスする
Guacamoleがセットアップされると、アドレスを使用してWebブラウザーからGuacamoleにアクセスできます。 http://server-IP/guacamole
。
デフォルトのクレデンシャル。
- ユーザー: guacadmin
- パスワード: guacadmin
ログインに成功すると、ApacheGuacamoleWebダッシュボードが表示されます。
そして、あなたは行きます。 ご覧のとおり、接続はまだ追加されていません。 これで、Guacamoleに接続を追加できます。
設定ページでGuacamoleユーザーのパスワードをリセットすることもできます。
これで、Ubuntu22.04にApacheGuacamoleをDockerコンテナーとしてインストールするためのガイドは終了です。
続きを読む ワカモレユーザーガイド。
その他のチュートリアル;
Ubuntu22.04にApacheGuacamoleをインストールします
Guacamole:RDPサーバーの閉じた/接続の拒否を修正する方法:セキュリティネゴシエーションが失敗しました(セキュリティタイプが間違っていますか?)
The post UbuntuにDockerコンテナとしてApacheGuacamoleをインストールします appeared first on Gamingsym Japan.