UbuntuのどこからでもコンピューターにアクセスするためにGuacamoleをインストールする方法


Apache Guacamoleは、SSH、VNC、RDPなどのプロトコルを使用してWebブラウザ経由でサーバーやクライアントPCへのリモートアクセスを提供する、クライアントレスのオープンソースWebベースゲートウェイです。

Apache Guacamoleは、次の2つの主要コンポーネントで構成されています。

  • Guacamole Server: This provides all the server-side and native components required by Guacamole to connect to remote desktops.
  • Guacamole Client: This is an HTML 5 web application and a client that allows you to connect to your remote servers/desktops. This is underpinned by the Tomcat server.

この記事では、Ubuntu20.04へのApacheGuacamoleのインストールについて説明します。

開始する前に、次のものがあることを確認してください。

それでは、Ubuntu 20.04LTSにGuacamoleを詳しく調べてインストールしましょう。

このページで

1. Apache Guacamoleのインストールは、ソースコードをコンパイルすることによって行われます。これを実現するには、いくつかのビルドツールが前提条件として必要です。したがって、次のaptコマンドを実行します。

$ sudo apt-get install make gcc g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev libssl-dev libvorbis-dev libwebp-dev

2.ビルドツールのインストールが完了したら、次に進み、Guacamoleのリリースページから最新のtarballソースファイルをダウンロードします。このガイドを執筆している時点で、最新のリリースはGuacamoleバージョン1.2.0です。最新のtarballファイルをダウンロードするには、以下のwgetコマンドを実行するだけです。

$ wget https://downloads.apache.org/guacamole/1.2.0/source/guacamole-server-1.2.0.tar.gz

3.次に、Guacamole tarballファイルを抽出し、非圧縮フォルダーに移動します。

$ tar -xvf guacamole-server-1.2.0.tar.gz
$ cd guacamole-server-1.2.0

4.その後、configureスクリプトを実行して、依存関係が欠落していないかどうかを確認します。これには通常2分ほどかかります。そのため、スクリプトが依存関係のチェックを実行するので、しばらくお待ちください。図のように、サーバーのバージョンに関する詳細を含む一連の出力が表示されます。

$ ./configure --with-init-dir=/etc/init.d

5. Guacamoleをコンパイルしてインストールするには、以下のコマンドを次々に実行します。

$ sudo make
$ sudo make install

6.次に、ldconfigコマンドを実行して、関連するリンクを作成し、Guacamoleサーバーディレクトリ内の最新の共有ライブラリにキャッシュします。

$ sudo ldconfig

7. Guacamoleサーバーを実行するには、Guacamoleデーモン(guacd)を起動し、起動時に有効にして、図のようにステータスを確認します。

$ sudo systemctl start guacd
$ sudo systemctl enable guacd
$ sudo systemctl status guacd

8. Tomcatサーバーは、ブラウザーを介してサーバーに接続するユーザーにGuacamoleクライアントコンテンツを提供するために使用されるため、要件です。したがって、次のコマンドを実行して、Tomcatをインストールします。

$ sudo apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user

9.インストール時に、Tomcatサーバーが稼働している必要があります。次のように、サーバーのステータスを確認できます。

$ sudo systemctl status tomcat

10. Tomcatが実行されていない場合は、起動時に起動して有効にします。

$ sudo systemctl start tomcat
$ sudo systemctl enable tomcat

11.デフォルトでは、Tomcatはポート8080で実行され、UFWを実行している場合は、次のようにこのポートを許可する必要があります。

$ sudo ufw allow 8080/tcp
$ sudo ufw reload

12. Tomcatサーバーをインストールしたら、ユーザーがサーバーに接続できるようにするJavaベースのWebアプリケーションであるGuacamoleクライアントのインストールに進みます。

まず、図のように構成ディレクトリを作成します。

$ sudo mkdir /etc/guacamole

13.次に示すコマンドを使用して、Guacamoleクライアントバイナリを/ etc/guacamoleディレクトリにダウンロードします。

$ sudo wget https://downloads.apache.org/guacamole/1.2.0/binary/guacamole-1.2.0.war -O /etc/guacamole/guacamole.war

14.ダウンロードしたら、図のようにTomcatWebAppsディレクトリへのシンボリックリンクを作成します。

$ ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/

15. Webアプリをデプロイするには、TomcatサーバーとGuacamoleデーモンの両方を再起動します。

$ sudo systemctl restart tomcat9
$ sudo systemctl restart guacd

Guacamoleに関連する2つの主要な構成ファイルがあります。/etc/guacamoleおよび/etc/guacamole/guacamole.propertiesファイル。これはGuacamoleとその拡張子によって使用されます。

16.先に進む前に、拡張機能とライブラリのディレクトリを作成する必要があります。

$ sudo mkdir /etc/guacamole/{extensions,lib}

17.次に、ホームディレクトリ環境変数を構成し、それを/ etc/default/tomcat9構成ファイルに追加します。

$ sudo echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9

18. GuacamoleがGuacamoleデーモン(guacd)に接続する方法を決定するために、図のようにguacamole.propertiesファイルを作成します。

$ sudo vim /etc/guacamole/guacamole.properties

以下の内容を追加してファイルを保存してください。

guacd-hostname: localhost
guacd-port:     4822
user-mapping:   /etc/guacamole/user-mapping.xml
auth-provider:  net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider

19.次に、ブラウザのWebインターフェイスを介してGuacamoleに接続してログインできるユーザーを定義するuser-mapping.xmlファイルを作成します。

その前に、図のようにログインユーザーのハッシュパスワードを生成する必要があります。強力なパスワードは必ず自分のパスワードに置き換えてください。

$ echo -n yourStrongPassword | openssl md5

あなたはこのようなものを手に入れるべきです。

(stdin)= efd7ff06c71f155a2f07fbb23d69609

ハッシュ化されたパスワードをコピーして、user-mapping.xmlファイルで必要になるため、どこかに保存します。

20.次に、user-mapping.xmlファイルを作成します。

$ sudo vim /etc/guacamole/user-mapping.xml

以下の内容を貼り付けてください。

<user-mapping>
    <authorize 
            username="tecmint"
            password="efd7ff06c71f155a2f07fbb23d69609"
            encoding="md5">

        <connection name="Ubuntu20.04-Focal-Fossa>
            <protocol>ssh</protocol>
            <param name="hostname">173.82.187.242</param>
            <param name="port">22</param>
            <param name="username">root</param>
        </connection>
        <connection name="Windows Server">
            <protocol>rdp</protocol>
            <param name="hostname">173.82.187.22</param>
            <param name="port">3389</param>
        </connection>
    </authorize>
</user-mapping>

オンラインの2つのリモートシステムに接続できるようにする2つの接続プロファイルを定義しました。

  • Ubuntu 20.04 Server – IP: 173.82.187.242 via SSH protocol
  • Windows Server – IP: 173.82.187.22 via RDP protocol

21.変更を有効にするには、TomcatサーバーとGuacamoleを再起動します。

$ sudo systemctl restart tomcat9
$ sudo systemctl restart guacd

これまでに、Guacamoleサーバーとクライアントが構成されました。ブラウザを使用してGuacamoleWebUIにアクセスしてみましょう。

22. Guacamole Web UIにアクセスするには、ブラウザを開き、次のようにサーバーのアドレスを参照します。

http://server-ip:8080/guacamole

23.user-mapping.xmlファイルで指定した資格情報を使用してログインします。ログインすると、[すべての接続]セクションの下のボタンにリストされているファイルで定義したサーバー接続が見つかります。

24. Ubuntu 20.04 LTSサーバーにアクセスするには、接続をクリックします。これにより、リモートUbuntuサーバーへのSSH接続が開始されます。パスワードの入力を求められます。パスワードを入力してEnterキーを押すと、図のようにリモートシステムにログインします。

Windowsサーバーマシンの場合は、それぞれのサーバー接続をクリックし、RDPを介してサーバーにログインするためのパスワードを入力します。

これで、Ubuntu 20.04LTSにGuacamoleをインストールして構成する方法を示したガイドを締めくくります。