お世話になっております、日商エレの佐藤です。
ITプラットフォーム事業本部でコンピューティング系のプリセールスを担当しています。
今回はAzureのLinux(Ubuntu)マシンにリモートデスクトップ接続を行ってみたいと思います。Microsoftのクラウドサービスだから、利用者の殆どはWindowsかと思いきや2017年時点、Azure上で動作する仮想マシンの40%をLinuxが占めているそうです。今後、デジタルトランスフォーメーションへの取り組みが本格化する中で、LinuxやOSS(Open-source software)の活用も加速していくでしょう。
AzureではOSSにもかなり力をいれておりますので興味がある方はこちらをご覧下さい。
Azure のオープン ソース

※画面データは2018/02/22 時点のものです。



さて、本題のLinuxマシンへのリモートデスクトップ接続の話ですが、Azure上でLinuxマシンを作成すると通常はSSH接続を使用してコマンドラインからLinuxマシンを管理します。簡単なオペレーションなどはWindowsのようにリモートデスクトップを使用できると便利です。今回はLinuxマシン作成後、Linuxマシンへリモートデスクトップ接続を実現するために、「Xfce」と「xrdp」をインストールしていきます。
Xfceとは、UnixライクなOS上で動作するデスクトップ環境です。ubuntuの一部のディストリビューションでは標準のデスクトップ環境として採用されています。Linux系のメジャーなディストリビューションではパッケージで提供されていることも多いですね。xrdpは、OSSで開発されているRemote Desktop Protocol のサーバソフトウェアです。 本環境構築する上で仮想マシンの構成要素をご参考までに掲載しておきます。必要に応じてご覧下さい。

Linux(Ubuntu)マシン作成

まず、最初にLinuxマシンを作成します。

(1) Azure Portalにログインし、左上の「リソースの作成」 – 「Compute」 – 「Ubuntu」の順にクリックします。

(2)仮想マシンに必要な情報である仮想マシン名、ユーザ名、パスワードなど必要情報を入力し、「OK」をクリックします。

(3)仮想マシンのサイズを選択します。検証用ですので、お勧めの3つの中から一番安価なモデルを選択します。サイズを選択すると「選択」ボタンがクリックできるようになります。「選択」をクリックします。

(4)検証用であるため、オプション機能の構成はデフォルトのままとします。「OK」ボタンをクリックします。

(5)仮想マシン設定内容のサマリーが表示されます。内容相違なければ「作成」をクリックします。

(6)仮想マシンの作成が開始されるとダッシュボード上に以下のようなタイルが表示されます。

(7)本環境では3分程度で仮想マシン作成が完了しました。一旦、SSHログインするため「接続」をクリックします。

(8)接続ボタンをクリックすると以下のようなメッセージが表示されます。SSHログインに必要な ログイン名@IPアドレスが記載されています。確認したら「OK」ボタンをクリックします。

(9)Tera termやPuTTYなど、SSH接続可能なターミナルソフトを使用し、Linuxマシンにログインします。

Linuxマシンにデスクトップ環境をインストール

(10)デスクトップ環境であるXfce4をインストールします。 LinuxのDebian系パッケージ管理 aptコマンドを使用し以下2つを実行していきます。

sudo apt-get update
sudo apt-get install xfce4

(11)まずは、updateを実行します。完了画面は以下の通りです(1分かからず)。

sudo apt-get update

(12)そして、Xfceインストールを実行します。完了画面は以下の通りです(6分ほど)。

sudo apt-get install xfce4

Linuxマシンにリモートデスクトップサーバをインストール

(13)Xfceのデスクトップ環境がインストールできましたので、次にxrdpインストールを実行します。完了画面は以下の通りです(1分かからず)。

sudo apt-get install xrdp

(14)セッションの開始時に使用するデスクトップ環境をxrdpに指定します。Xfce をデスクトップ環境として使用するようにxrdpを構成します。完了画面は以下の通りです。

echo xfce4-session >~/.xsession

(15)xrdp サービスを再起動して、変更内容を有効にします。完了画面は以下の通りです。

sudo service xrdp restart

ネットワークポートの開放

(16)リモート デスクトップのトラフィックを Linuxマシンに接続できるようにするには、ポート 3389 で Linuxマシンへの TCP の接続を許可するNetwork Security Group (NSG)のルールを作成する必要があります。 Linuxマシンの設定にある「ネットワーク」 – 「受信ポートにある規則を追加する」を順にクリックします。

(17)xrdpが使用する通信ポート3389を「ポートの範囲」の欄に入力します。入力すると「名前」の欄にも情報が反映されます。「優先度」の欄はデフォルト値としました。この規則は優先度に従って処理されます。数値が小さいほど、優先度は高くなりますので、本番環境使用時は注意してください。入力完了したら「OK」ボタンをクリックします。

(18)セキュリティ規則の情報が反映されるとリストに追加されます。名前の欄にオレンジの△印の警告(!)が表示されています。これはインターネットに公開されているため、テストのみ推奨しているという意味です。運用環境ではVPNまたはプライベート接続の使用をお勧めします。

Linuxマシンにリモートデスクトップで接続

(19)Linuxマシンへリモートデスクトップ接続します。指定のIPアドレスを入力し「接続」ボタンをクリックします。

(20)接続が完了するとマシンへリモートデスクトップ接続します。xrdpのログイン画面にユーザ名とパスワードを入力し「OK」ボタンをクリックします。

(21)認証されると、Xfce デスクトップ環境が読み込まれ以下のような画面が表示されます。

(22)(21)の画面が表示されない場合、なんらかのサービスが応答していない可能性があります。実際、初回の 環境でxrdp-sesmanサービスがリッスンしておらず、サービス再起動で無事にXfceデスクトップ環境が読み込まれました。その際は、SSH画面から以下コマンドを実行し、ポートのリッスン状態を確認します。

sudo netstat -plnt | grep rdp

xrdp-sesman サービスがリッスンしていない場合は、以下のコマンドを実行しサービスを再開させます。

sudo service xrdp restart
Linuxのリモートデスクトップで接続するのは思いのほか、簡単にできましたので是非お試しください。


この記事を読んだ方へのオススメコンテンツはこちら


この記事を書いた人

佐藤格史
佐藤格史
プリセールス担当
セキュリティ事業部にてエンジニア経験を積み、複数の大型プロジェクト案件のPMを経て、現在はプリセールス業務に従事。