2019/02/25

Apache GuacamoleをWindows Subsystem for Linux上で動かす

WSL上で動くGuacamoleに接続しブラウザonブラウザしてる図

ブラウザの中でリモートデスクトップしたいときってありますよね。
ブラウザの中でブラウザが起動したいわけです。

Apache Guacamoleというプロダクトがそれに答えてくれます。
RDPやVNC、SSHをGuacamoleをインストールしたサーバが中継し、Guacamole自体はそれをHTML5に変換し配信してくれます。


なので、Guacamoleサーバを構築し接続する設定を行えば、クライアント側はモダンブラウザでアクセスすればどこの環境にもアクセスできるようになります。

Guacamoleサーバの構築手順は結構複雑なので、UbuntuやRHEL/CentOSについては有志がインストールスクリプトを公開してくれていますし、Docker Composeですぐに利用するための手順もあります。

プライベートセグメントとの中継部分にGuacamoleを用意し、ブラウザからアクセスしプライベートのネットワーク上のサーバにアクセスするという使い方が想定されていると思います。またユーザ管理機能や詳細ログ、二段階認証も準備されているので業務レベルでもある程度活用できると思います。


さて、環境の準備なんですがこれ自体は上記スクリプトを活用すればそんなに難しくないです。ただ、今回やりたいことは Windows に対してのRDP接続をGuacamoleに中継させてウェブブラウザからアクセスするということです。
つまりRDP接続はすでにできる状態なので、Guacamoleを利用するためだけに新しくサーバを別途構築するような手間はしたくない。ただし直接Windowsにインストールすることもできません。



「Windows Subsystem for LinuxにインストールしたらGuacamole用にサーバ建てなくていいんじぇね?」

というわけでタイトルの通り、Apache GuacamoleをWindows Subsystem for Linux上にインストールしてみた軌跡です。


まず結論から言うと注意点はありますが、Windows 10 Pro/Windows Server 2019上にインストールし接続できることを確認しました。

■インストール手順
(Windows Server 2019の場合には事前にWSLの環境構築が必要です。構築手順はこちを参考にしていただければと思います。→ さくらのクラウドのWindows Server 2019でWindows Subsystem for Linuxを試してみた

WSLではUbuntu 18.04を選択しました。
公開されているApache Guacamoleのインストールスクリプトを活用させていただきます。
※管理者で実行しています

GitHub - MysticRyuujin/guac-install: Script for installing Guacamole on Ubuntu

ちなみにインストールにはすごい時間がかかり、失敗します。
MySQLが必要になるんですがWSL上ではちゃんと起動しないということが原因です。
ですので、失敗したタイミングでMySQLを手動実行してあげます。



sudo service mysql start

その後もう一回スクリプトを実行すると成功すると思います。



その後表示されるメッセージの通りウェブブラウザからアクセスするとログイン画面が表示されます。
※Windowsファイアーウォールの設定はちゃんと行う必要があります。

■Windowsに接続するための設定 と Windows側の設定

Guacamole側の設定はそれほど難しくないです。
RDPを使う場合には「Ignore server certificate」のチェックを外してあげましょう。

また、接続される側のWindows側のレジストリ設定を変更してあげる必要もあります。
Guacamole, RDP, Windows 10 and Windows Server 2016 

設定ができれば一番上の画像の様にウェブブラウザからWindowsへのアクセスができるようになります!


■注意点

当然ですがRDPの代替になるほどのクオリティではありません。

  • キー配列がUS?固定です
  • 日本語入力はできないわけではないですが切り替えには半角全角が使えないので、マウスでOS側のIMEの設定を変えて上げる必要があります
  • Winキーなどはクライアント側で実行されるので使えません。(Ctrl+Wでリモート先のブラウザのタブを閉じようとすると当然ですがクライアント側のタブが閉じられます

こういったこともトータルで考えてブラウザさえアレばすぐに使えるという利便性は圧倒的です。
最近は業務もブラウザで完結できることが多くなっています。一部の業務ソフトもブラウザ内で扱えるようにGuacamoleを活用してゆきましょう!