CentOS 7にRDP/SSH/VNCの踏み台サーバであるApache Guacamole(0.9.9)をインストールする
Pocket

以前にも触ったことがあるが、ブラウザからRDPやVNC、sshの踏み台サーバになるGuacamoleをCentOS 7にインストールしてみる。
前に触ったときはApacheプロジェクトに入る前だったので、それからどうなったかな。とりあえず、前に比べてドキュメントが充実してきてるみたい。LDAP認証とかもできるようになってるようだ。

1.Apache Guacamoleのインストールをする

インストールは簡単。
以下のコマンドで、Guacamoleのインストールスクリプトを取得してキックするだけだ。インストールスクリプトは、実行時にLANG=Cを指定しないとコケるので注意。

yum install -y wget git
wget http://sourceforge.net/projects/guacamoleinstallscript/files/CentOS/guacamole-install-script.sh
chmod +x guacamole-install-script.sh
LANG=C ./guacamole-install-script.sh

 

インストールスクリプトをキックすると、↑のような表示がされるので、設定項目(DBのユーザ名やパスワードなど)を入力していく。
入力が終わったらインストールが始まる。
(処理途中でSSL証明書の内容について聞かれるので、それについても対応する)

 

無事インストールが完了したら、以下のコマンドを実行して443番ポートを開放する。

firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload

 

最後に、好みの日本語対応のフォントをインストールしてしまおう(デフォルトの状態でも日本語表示可能なフォントがインストールされるが、好きなフォントを設定できるので)。
スクリプト等を書くことを考慮して、等幅フォントで、かつ日本語も使える「Ricty Diminished」をインストールする。

sudo mkdir /usr/share/fonts/RictyDiminished/
git clone https://github.com/edihbrandon/RictyDiminished
cd RictyDiminished/
sudo cp *.ttf /usr/share/fonts/RictyDiminished/
fc-cache -fv
Sponsored Links

最後に、「https://IPアドレスorホスト名/guacamole」へブラウザからアクセスすると、以下のような画面に遷移する。

 

2.もろもろの設定を行う

まず、先ほどの画面からログイン(デフォルトのID/PWはguacadmin/guacadmin)して「settings」を開くと、いろいろと設定できる。
「guacadmin」ユーザは管理権限があるので、デフォルトパスワードからは変えるようにしよう。

 

ユーザや接続先の作成については、もう見ればわかるようなUIなので割愛。
どの接続先をリストに出すかは、ユーザごとにチェックボックスで指定可能だ。

 

接続先では特定のコマンドのみを許可したい(そしてコンソールにアクセスはさせたくない)といった場合は、「Execute command」に対象のコマンドを書き込んでやればよい。

 

RDPの場合、サウンドを転送するかどうか、RemoteAppでの接続にするかなど細かい設定ができるようだ。
特にRemoteAppは、直接接続の場合だとこちらのような”Remote Desktopでアクセスして来たら無理やりログアウトさせる”ような処理が必要ないのは大きいと思う。

VNC接続もいろいろと細かく設定できるようなってるようだ。

 

3.Apache Guacamole経由でのアクセスをする

もろもろの設定が終わったら、作成したApache Guacamoleからサーバにアクセスしてみよう。
ログイン直後の画面に、そのユーザが接続可能なサーバのリストが表示されるので、好きなサーバにログインしてみよう。

 

クリップボードを共有したい場合は、「Ctrl + Alt + Shift」でメニューウィンドウが表示されるので、そこから行う。

 

前に触ったときに比べても、着実に進化しているようだ。アカウントに応じてログインさせたいサーバ・させたくないサーバもあるし、sshの鍵ファイルは渡したくないこともある(アクセス元制限かけたりする場合でも)。でも、これをつかえば、例えばサーバのメンテナンス用途でのアクセスも一元化できるし、何よりユーザには秘密鍵もパスワードも見ることができない。
ただ、現時点ではクリップボード共有の無効化設定については議題にもあがってないようなので、要件によってはそこがネックになるかもしれない(scpとかは制限できるけど、ファイルの中身をコピペで持ってくるような使い方はできるので)。

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*