働き方改革の一助に、「Apache Guacamole」でリモートデスクトップ
schedule 2018/04/16 refresh 2023/11/09
働き方改革の取り組みを提唱される昨今ですが、
社内制度の見直しや、働き方(副業、兼業、テレワークなど)を見直すなど、
様々な取り組みが行われています。
さて、今回はそんな働き方改革の一助となれるかもしれない、
社内環境に社外から接続することができるツール、Apache Guacamoleをご紹介したいと思います。
Apache Guacamoleとは
Apache Guacamoleは、クライアントレス(Webブラウザを使用する)のリモートデスクトップゲートウェイです。
接続プロトコルには、VNC,RDP,SSHなどの標準プロトコルをサポートしています。
ライセンス
Apache License、Version 2.0が適用されたオープンソース(OSS)となっています。
環境構築
Apache Guacamoleをインストール、起動までを記載します。
以下の構成でインストールします。
OS:CentOS7
Apache Guacamole: 0.9.14 (2018-01-18 09:47:00 -0800リリース)
インストール手順
リポジトリの設定を行います。
■EPELリポジトリ
# yum install epel-release
■nux-dextopリポジトリ(ffmpegに必要)
# yum install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
必須依存関係のインストール
# yum install gcc
# yum install cairo-devel libjpeg-turbo-devel libpng-devel uuid-devel
オプション依存のインストール
# yum install ffmpeg-devel freerdp-devel pango-devel libssh2-devel libtelnet-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel#
guacamole-serverのダウンロード
# wget --content-disposition 'http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/0.9.14/source/guacamole-server-0.9.14.tar.gz'
# tar -xzf guacamole-server-0.9.14.tar.gz
# cd guacamole-server-0.9.14/
configureを実行します。
見つかったライブラリのリストと、ビルドする必要のあるライブラリの一覧を見ることができます。
# ./configure --with-init-dir=/etc/init.d
------------------------------------------------
guacamole-server version 0.9.14
------------------------------------------------
Library status:
freerdp ............. yes
pango ............... yes
libavcodec .......... yes
libavutil ........... yes
libssh2 ............. yes
libssl .............. yes
libswscale .......... yes
libtelnet ........... yes
libVNCServer ........ yes
libvorbis ........... yes
libpulse ............ yes
libwebp ............. yes
wsock32 ............. no
Protocol support:
RDP ....... yes
SSH ....... yes
Telnet .... yes
VNC ....... yes
Services / tools:
guacd ...... yes
guacenc .... yes
Init scripts: /etc/init.d
Type "make" to compile guacamole-server.
configureが完了したら、 " make "を実行し、 guacamole-serverをコンパイルします。
# make
「make install」を実行してビルドされたコンポーネントをインストールし、
次に「ldconfig」を実行してシステムのインストール済みライブラリのキャッシュを更新します。
# make install
# ldconfig
この時点で、すべてがインストールされていますが、 guacdは実行されていません。
Guacamoleを使用するには、クライアントコンポーネントをインストールした後にguacdを実行する必要があります。
Tomcatのインストール
# yum install tomcat
guacamole-clientのダウンロード
# cd /var/lib/tomcat/webapps/
# wget --content-disposition 'http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/0.9.14/binary/guacamole-0.9.14.war'
Guacamole設定
Guacamoleのディレクトリ作成
# mkdir /etc/guacamole
guacamole.propertiesを設定します。
これはGuacamole設定ファイルです。 このファイル内のプロパティは、Guacamoleがguacdに接続する方法を指示し、インストールされている認証拡張機能の動作を設定します。
# vi /etc/guacamole/guacamole.properties
# guacd-hostname: localhost
# guacd-port: 4822
# user-mapping: /etc/guacamole/user-mapping.xml
Guacamoleのデフォルトの認証方法は、 user-mapping.xmlという1つのファイルからすべてのユーザーと接続を読み取ります。
MySQLなどのデータベースにユーザと接続先を保存できますが、今回は設定ファイルに事前に設定します。
# vi /etc/guacamole/user-mapping.xml
<user-mapping>
<authorize username="接続先ユーザ名" password="パスワード">
<connection name="Windows(任意の表示名)">
<protocol>rdp</protocol>
<param name="hostname">IPアドレス/ホスト名</param>
<param name="port">3389</param>
<param name="security">tls</param>
<param name="ignore-cert">true</param>
</connection>
<connection name="Linux">
<protocol>ssh</protocol>
<param name="hostname">example.secioss.local</param>
<param name="port">22</param>
<param name="username">Linuxユーザ名</param>
<param name="password">パスワード</param>
</connection>
</authorize>
</user-mapping>
GUACAMOLE_HOMEの設定を行います。
# vi /etc/sysconfig/tomcat
# 末尾に以下を追加
GUACAMOLE_HOME=/etc/guacamole
tomcat 起動
# systemctl start tomcat
guacamole-server起動
# systemctl start guacd
動作確認
Guacamoleを起動したら、実際にアクセスしてみます。
guacamoleを実行しているサーバにアクセスしてみます
http://guacamoleサーバのIPまたはホスト名:8080/guacamole
以下の様な画面が表示されます。
Guacamoleへのログインは、user-mapping.xmlで設定した、authorizeでログインします。
ポータル画面から、設定したリモートデスクトップ先が一覧表示されますので、アクセスしたいリモートデスクトップ先を選択すると、リモートアクセスが行えます。
設定が正しく設定されていると、リモートアクセスに成功します。
最後に
今回は、Apache Guacamoleを使用して簡単な構成でリモートデスクトップを実現しました。
実際に運用に組み込むような場合には、不正アクセスを防いだり、IPでアクセスを制限したりと、
様々なセキュリティ対策をしたうえで使用することになると思います。
2段階認証などの機能はApache Guacamoleにデフォルトで実装されていますので、
試してみてはいかがでしょうか。