トップ OSS紹介 Apache Guacamole

Apache Guacamole

NRIのOpenStandiaが提供するApache Guacamole最新情報

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側も接続元と同様に特別なクライアントを導入する必要はありません。

クエリ

Riakは、基本的なGET、POST、PUT、DELETEメソッドのHTTPリクエストによるRESTフルなAPIを提供します。セカンダリインデックス、検索(Apache Solr経由)、MapReduceなど、より複雑なクエリも可能です。

多様な認証方式

Guacamoleは標準のDB認証(MySQL/PostgreSQL)の他にLDAP、OpenID、SAML、RADIUS認証やSSO、TOPOなどをサポートしています。

操作ログ・動画の記録

端末へのアクセスログや操作ログはもちろん、接続後の操作を動画として記録しておくことが出来ます。キーボード入力などもテキストベースのログとして記録することが出来るため、動画では確認出来ないショートカットキーなども確認することが出来ます。

画面共有

Guacamoleは画面共有用のURLを発行することができ、複数人で一つの画面を操作・閲覧することが出来ます。また、操作・閲覧の権限はそれぞれに分けることも出来るので、不要な入力をさせないことも出来ます。

権限管理

接続するユーザやグループごとにアクセス可能な接続先やプロトコルを設定することが出来ます。

ユースケース

Guacamoleは昨今の急激なリモートワーク環境の整備・移行に伴って、自宅からの接続をセキュアに行いたい、リモートワークでも細かく業務状況を把握したい場合などに有用なアプリケーションです。また、画面共有の機能を使うことで、ミーティングや会議、教育現場でのリモートでの指導なども容易に実施することが出来ます。

動作環境

Guacamoleの動作にはJava(Tcomcat)と以下のパッケージが必要となります。

※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は下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • VyOS

    VyOS

    ヴィワイオーエス。オープンソースのVyattaから派生したDebian Linuxベースのソフトウェアルータです。

  • OpenStack

    OpenStack

    オープンスタック。パブリック/プライベートクラウド IaaS環境構築のためのクラウド基盤ソフトウェアです。

オープンソースに関する様々な課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。