Ubuntu でのリモート Linux/Windows アクセス用の Guacamole のインストール
システム管理者は、(現在または将来) Windows と Linux が共存する環境で作業することになるかもしれません。
一部の大企業では、運用サービスの一部を Windows ボックスで実行し、その他を Linux サーバーで実行することを好む (またはそうしなければならない) ことは周知の事実です。
そうであれば、このガイドを両手を広げて歓迎するでしょう (そうでない場合は、先に進み、少なくともブックマークに必ず追加してください)。
この記事では、 中央サーバーにインストールするだけで済むTomcat を搭載したリモート デスクトップ ゲートウェイであるguacamole について紹介します。
Guacamole は、同じ Web ブラウザ ウィンドウ内で、あるマシンから別のマシンにすばやく切り替えることができる Web ベースのコントロール パネルを提供します。
テスト環境
この記事では以下のマシンを使用しました。 Guacamole を Ubuntu ボックスにインストールし、それを使用してリモート デスクトップ プロトコル 経由でWindows 10 ボックスにアクセスします ( RDP) と SSH ネットワーク プロトコルを使用する RHEL ボックス:
Guacamole server: Ubuntu 20.04 - IP 192.168.0.100
Remote SSH box: RHEL 8 – IP 192.168.0.18
Remote desktop box: Windows 10 – IP 192.168.0.19
ということで、始めましょう。
Ubuntu への Guacamole サーバーのインストール
1. guacamole をインストールする前に、まずその依存関係に対処する必要があります。
sudo apt update
sudo apt install -y gcc vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev \
libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev build-essential \
libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev freerdp2-dev libwebsockets-dev \
libssl-dev libvorbis-dev libwebp-dev tomcat9 tomcat9-admin tomcat9-user
2. tarball をダウンロードして解凍します。 2021 年 2 月初旬の時点で、Guacamole の最新バージョンは 1.3.0 です。特定の時点での最新バージョンを確認するには、Guacamole ダウンロード ページを参照してください。
wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz
tar zxf guacamole-server-1.3.0.tar.gz
3. ソフトウェアをコンパイルします。
cd guacamole-server-1.3.0/
./configure
予想のとおり、設定では、必要な依存関係の存在とサポートされている通信プロトコル (強調表示された四角形のリモート デスクトップ プロトコルに見られるように) についてシステムがチェックされます。 > (RDP) と SSH は、以前にインストールした依存関係によってサポートされています)。
すべてが期待通りに進んでいる場合は、完了時に次のメッセージが表示されます (そうでない場合は、必要な依存関係がすべてインストールされていることを確認してください)。
上の画像の最後の行が示すように、make
と make install
を実行してプログラムをコンパイルします。
make
sudo make install
4. インストールされているライブラリのキャッシュを更新します。
sudo ldconfig
そしてEnterを押します。
Ubuntu への Guacamole クライアントのインストール
上記の手順を完了すると、ワカモレ サーバーがインストールされます。次の手順は、guacd (JavaScript を RDP や SSH などの通信プロトコルと統合するプロキシ デーモン) と guacamole.war (クライアント) をセットアップするのに役立ちます。提示される最終的な HTML5 アプリケーションを構成するコンポーネント。
両方のコンポーネント (ワカモレ サーバー と クライアント) を同じマシンにインストールする必要があることに注意してください。必要なマシンにいわゆるクライアントをインストールする必要はありません。に接続します)。
クライアントをダウンロードするには、次の手順に従います。
5. Web アプリケーション アーカイブをダウンロードし、名前を guacamole.war に変更します。
注: ディストリビューションによっては、Tomcat ライブラリ ディレクトリが /var/lib/tomcat にある場合があります。
cd /var/lib/tomcat9/
sudo wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
sudo mv guacamole-1.3.0.war webapps/guacamole.war
6. 構成ファイル (/etc/guacamole/guacamole.properties) を作成します。このファイルには、Guacamole が guacd に接続するための手順が含まれています。
sudo mkdir /etc/guacamole
sudo mkdir /usr/share/tomcat9/.guacamole
sudo nano /etc/guacamole/guacamole.properties
次の内容を /etc/guacamole/guacamole.properties に挿入します。次のステップで作成するファイル (/etc/guacamole/user-mapping.xml) を参照していることに注意してください。
guacd-hostname: localhost
guacd-port: 4822
user-mapping: /etc/guacamole/user-mapping.xml
auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping: /etc/guacamole/user-mapping.xml
そして、Tomcat がファイルを読み取れるようにするためのシンボリック リンクを作成します。
sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole/
7. Guacamole は user-mapping.xml を使用し、このファイルを作成して、どのユーザーが Guacamole Web インターフェイス (
の間) への認証を許可されるかを定義します。 タグ)と使用できる接続(<connection>
タグ間):
sudo nano /etc/guacamole/user-mapping.xml
次のユーザー マッピングは、パスワード tecmint01 を持つユーザー tecmint
に Guacamole Web インターフェイスへのアクセスを許可します。次に、SSH 接続内で、RHEL ボックスにログインするための有効なユーザー名を設定する必要があります (Guacamole が接続を開始するときに、対応するパスワードの入力を求められます)。
Windows 10 ボックスの場合は、RDP 経由でログイン画面が表示されるため、これを行う必要はありません。
パスワード tecmint01 の md5 ハッシュを取得するには、次のコマンドを入力します。
printf '%s' "tecmint01" | md5sum
次に、コマンドの出力を <authorize>
タグ内のパスワード フィールドに挿入します。
<user-mapping>
<authorize
username="tecmint"
password="8383339b9c90775ac14693d8e620981f"
encoding="md5">
<connection name="RHEL 8">
<protocol>ssh</protocol>
<param name="hostname">192.168.0.18</param>
<param name="port">22</param>
<param name="username">gacanepa</param>
</connection>
<connection name="Windows 10">
<protocol>rdp</protocol>
<param name="hostname">192.168.0.19</param>
<param name="port">3389</param>
</connection>
</authorize>
</user-mapping>
機密情報を含むすべてのファイルに言えることですが、user-mapping.xml
ファイルのアクセス許可を制限し、所有権を変更することが重要です。
sudo chmod 600 /etc/guacamole/user-mapping.xml
sudo chown tomcat:tomcat /etc/guacamole/user-mapping.xml
Tomcat と guacd を起動します。
sudo service tomcat9 start
sudo /usr/local/sbin/guacd &
Guacamole Web インターフェイスの起動
8. Guacamole Web インターフェイスにアクセスするには、ブラウザを起動して http://server:8080/guacamole
を指定します。ここで、サーバーは、お使いのサーバーのホスト名または IP アドレスです。サーバー (この場合は http://192.168.0.100:8080/guacamole
) にアクセスし、前に指定した資格情報 (ユーザー名: tecmint、パスワード: ) でログインします。 >tecmint01):
9. [ログイン] をクリックすると、管理インターフェイスが表示され、user- に従ってユーザー tecmint がアクセスできる接続のリストが表示されます。マッピング.xml
:
10. 次に、[RHEL 8] ボックスをクリックして、gacanepa (接続定義で指定されたユーザー名) としてログインします。
Web インターフェイスを開くために使用するマシンの IP アドレスに関係なく、接続ソースがどのように 192.168.0.100 (Guacamole サーバーの IP) に設定されているかに注目してください。
11. 接続を閉じる場合は、「exit」と入力して Enter を押します。メイン インターフェース (ホーム) に戻るか、再接続するか、ワカモレからログアウトするよう求められます。
12. 次に、Windows 10 へのリモート デスクトップ接続を試します。
おめでとう! Web ブラウザ内からWindows 10 マシンとRHEL 8 サーバーにアクセスできるようになりました。
まとめ
この記事では、RDP および SSH 経由でリモート マシンにアクセスできるように Guacamole をインストールおよび構成する方法を説明しました。公式 Web サイトには、VNC などの他のプロトコルや DB ベースの認証メカニズムなどを使用してアクセスを設定するのに役立つ広範なドキュメントが提供されています。
いつものように、この記事に関してご質問やご提案がございましたら、お気軽にお知らせください。皆様の成功事例もお待ちしております。