Apache Guacamole情報
Apache Guacamoleとは
Apache Guacamole(アパッチ ワカモレ)はリモートデスクトッププロトコルを用いて他のPCにアクセスするためのWebアプリケーションです。
Guacamoleは元々、RealMint(「RealMint」は「terminal」のアナグラム)というJavaScriptのTelnetクライアントが起源となっています。その後HTML5のVNCクライアントを経て、現在のリモートデスクトップゲートウェイ・VNC/RDPクライアントの形へと発展していきました。
Guacamoleはサーバとクライアントによって構成されています。
Guacamoleサーバ(ユーザがWebブラウザからアクセスするサーバ)
Guacamoleサーバは、グラフィックや動画、音声などを扱うライブラリとguacdで構成されており、C言語で実装されています。
guacdとは、任意のプロトコルとGuacamoleプロトコルの変換を行うプロキシデーモンです。Guacamole プロトコルはテキストベースのプロトコルです。JavaScriptはバイナリプロトコルを効率的には扱えないため、Guacamoleではこのプロトコルを用いて通信を行います。
Guacamoleクライアント(ユーザが接続情報の確認や操作を行うために使うWebアプリケーションを提供するクライアント)
Guacamoleクライアントは、サーブレットコンテナ(Tomcat)を用いてWebアプリを提供しており、Guacamoleサーバ内にあります。
Java・JavaScriptで開発されています。
接続の流れは下記の図の通りです。「HTML5 Web Browser」が接続元となるユーザのブラウザで、「RDP」「VNC」と記載されているものが接続先となるサーバやPCとなります。
※画像:公式サイトより
接続元のブラウザでGuacamoleサーバにアクセスすることで、Guacamoleサーバ内のGuacamoleクライアントが接続情報の一覧や接続操作を行うWebアプリケーションを表示します。そのGUI上で接続先を決定することで、Guacamoleサーバはguacdを介して各接続先へ接続します。
このように接続先と同一ネットワーク内にインターネット上に公開されたGuacamoleを配置することでブラウザからの通信を中継し、リモート接続します。
主な特徴
クライアントレス |
通常、リモート接続を行う場合はRDPにはリモートデスクトップクライアント、SSHにはターミナルなどそれぞれのプロトコルに合わせたクライアントアプリケーションが必要になりますが、Guacamoleはどのプロトコルにおいても、ウェブブラウザのみで接続することができます。そのため、接続元のスマートフォンやPC側に特別なアプリケーションを導入する必要はありません。 また、接続先となるサーバやPC側も接続元と同様に特別なクライアントを導入する必要はありません。 |
---|---|
多様な認証方式 |
Guacamoleは標準のDB認証(MySQL/PostgreSQL)の他にOpenID ConnectやSAMLを使用したSSO、LDAPやRADIUSによる認証、TOTPによる多要素認証などをサポートしています。 |
操作ログ・動画の記録 |
端末へのアクセスログや操作ログはもちろん、接続後の操作を動画として記録しておくことができます。キーボード入力などもテキストベースのログとして記録することができるため、動画では確認できないショートカットキーなども確認することができます。 |
画面共有 |
Guacamoleは画面共有用のURLを発行することができ、複数人で一つの画面を操作・閲覧することができます。また、操作・閲覧の権限はそれぞれに分けることもできるので、不要な入力をさせないこともできます。 |
権限管理 |
接続するユーザやグループごとにアクセス可能な接続先やプロトコルを設定することができます。 |
ユースケース
Guacamoleは昨今の急激なリモートワーク環境の整備・移行に伴って、自宅からの接続をセキュアに行いたい、リモートワークでも細かく業務状況を把握したい場合などに有用なアプリケーションです。また、画面共有の機能を使うことで、ミーティングや会議、教育現場でのリモートでの指導なども容易に実施することができます。
動作環境
Guacamoleの動作にはJava(Tomcat)と以下のパッケージが必要となります。
※Docker が動作する環境であれば、別途公式からDockerイメージも提供されています。
- Cairo
- libjpeg-turbo
- libpng
- libuuid
また、接続プロトコルなどによって以下のオプションパッケージも必要になります。
- FFmpeg
- FreeRDP
- Pango
- libssh2
- libtelnet
- libVNCServer
- libwebsockets
- PulseAudio
- OpenSSL
- libvorbis
- libwebp
Apache Guacamoleのライセンス
Guacamoleのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。
参考情報
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。