ブラウザからアクセスできる踏み台サーバを構築

  • 2017.05.02
  • OSS
ブラウザからアクセスできる踏み台サーバを構築

ブラウザからアクセスできるリモートデスクトップクライアントApache Guacamole

Apache Guacamoleは、VNC,SSH,RDP,telnetプロトコルを利用してブラウザ上から端末を操作することができるソフトです。
今回は、CentOS7にインストールしてみました。

環境準備

Apache Guacamoleを利用するためには、色々なパッケージが必要となるためyum等を利用してパッケージをインストールしていきます。

ffmpegのインストール

Apache Guacamoleには操作を記録する機能もあるため記録用にffmpegをインストールします。
動画記録をしない場合には不要です。

Apache Guacamole Serverのインストール

Apache Guacamole Serverをダウンロードします。
下記サイトから最新版をダウンロードしました。2017年5月時点では0.9.12でした。
Apache Guacamole

ダウンロードしたファイルを解凍し、要件を満たしているかを確認します。

利用したいプロトコルサポートがyesになっているか、必要ライブラリがインストールされているかを確認します。

実行結果を下記のようになります。

下記コマンドを実行し、インストールします。

Apache Guacamole Clientのインストール

tomcatのインストール

Apache Guacamole ClientはJavaで動作するためtomcatが必要になりますので、tomcatをインストールします。

Mavenのインストール

Apache Guacamole ClientのコンパイルにMavenが必要になりますので、Mavenをインストールします。

Apache Guacamole Clientインストール

下記ページから、Clientをダウンロードします。
Apache Guacamole Client

ファイルを解凍し、コンパイルします。

warファイルをtomcatのwebappsディレクトリへコピー

認証用ファイルuser-mapping.xmlの作成

user-mapping.xmlに認証情報を記載し、接続先を記載します。
認証情報はLDAPやDBを指定することもできますが、今回は一人でしか利用しないのでuser-mapping.xmlファイルに記載します。

/usr/local/guacamoleを設定ファイルの保存先としましたが、自由に変更可能です。
user-mapping.xmlは下記のように記載します。

一例ですので、他のプロトコル等を利用したい場合には公式ページでご確認ください。
この例の場合には、

  1. 192.168.1.1 のCentOS7へSSHアクセス
  2. 192.168.1.2 のWindows 10へリモートデスクトップアクセス
  3. 192.168.1.3 のWindows 7へリモートデスクトップアクセス

をする設定になります。nameも自由に変更できるのでわかりやすいホスト名等にするといいと思います。

起動ファイルの編集(tomcat,guacd)

user-mapping.xmlファイルを保存した場所を、GUACAMOLE_HOMEという環境変数で指定する必要があります。

tomcatとguacdの起動

tomcatを先に起動し、guacdを後から起動します。

Apache Guacamoleの起動確認

ブラウザを利用して、http://サーバIP:8080/guacamole/ へアクセスします。
下記のような画面が表示されます。

user-mapping.xmlで指定したユーザIDとパスワードを入力し、【Login】をクリックします。
ログインに成功すると下記画面になります。
すでに接続テストをした後のため、RECENT CONNECTIONSにいくつか表示されています。

ALL CONNECTIONSにuser-mapping.xmlで定義したサーバ一覧が表示されているので、接続したいホストをクリックします。
ブラウザからアクセスし、操作することができるようになります。

Windowsの場合、リモートデスクトップのオプションで、
「ネットワークレベル認証でリモートデスクトップを実行しているコンピュータからのみ接続を許可する」としている場合接続できないことがあります。
その場合には、
「リモートデスクトップを実行しているコンピュータからの接続を許可する」
を選択し、接続を試してみてください。

まとめ

ブラウザから利用できるので、色々な用途に使えそうです。
メモリ2GBのマシンに構築しましたが、ローカル環境内では特に遅延することもなく動いています。
クラウドサービス上に踏み台サーバを構築し、クラウドサービス上にあるローカルIPしかもたないサーバへアクセスするのにも便利かと思います。(VPN経由でアクセスできれば不要ですね)
またWindows Serverで踏み台サーバを構築した場合には、リモートデスクトップ用のライセンスも必要になるため、このようなOSSを使って構築することでコストの削減にもなりますね。

操作記録機能もあるようなので、別な機会に試してみたいと思います!

OSSカテゴリの最新記事

%d人のブロガーが「いいね」をつけました。