今回は、Azure仮想マシンとして実行中のパブリックIPアドレスを持つWindows仮想マシンに対し、安全にリモートデスクトップ(RDP)接続するために利用可能なオプションをまとめます。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
TCPポート「3389」を使用する「リモートデスクトップ(RDP)接続」は、RDP(Remote Desktop Protocol)自身が備える証明書ベースのネットワークレベル認証やエンドツーエンド通信の暗号化によるセキュリティを提供します。
しかし、基本的な認証方法は「ユーザー名」と「パスワード」の組み合わせという、とてもレガシーな方法です。自分のPCのRDPポートをインターネットに解放することは、極めてリスクの高いことです。ユーザー名とパスワードが分かってしまえば、世界のどこからでも接続できますし、そのままではブルートフォース攻撃(総当たり攻撃)に対して脆弱(ぜいじゃく)です。
Windowsを実行するAzure仮想マシンのコンソールにリモート接続する標準的な方法は、RDP接続です。サイト間(S2S)/ポイント対サイト(2PS)VPN接続や、「Azure ExpressRoute」などの専用の直接接続回線を利用しない限り、単純にAzure仮想マシンのパブリックIPアドレスに対するTCPポート「3389」へのアクセスを許可することは、同じようにリスクがあります。
Azure仮想マシンをデプロイする際に、RDP接続を許可するように設定した場合には警告が表示されます(画面1、画面2)。Linuxの場合は、証明書キーではなく、パスワードによるssh(TCPポート「22」)への接続を許可することもリスクがあります。
今回は、Windowsのセキュリティ機能やMicrosoft Azureの無料または有料のサービス/機能を利用して、簡単にRDP接続における認証時の穴を狭める方法を5つ紹介します。
Windowsは既定で、ローカルログオン、リモートデスクトップ接続のいずれにおいても、パスワードの入力を何度でも試すことができます。誤ったパスワードが何度入力されても、ロックアウトされることはありません。これは、ブルートフォース攻撃をしようとする者にとって好都合です。
Windowsの「ローカルセキュリティポリシー」(Secpol.msc)または「ローカルグループポリシー」(Gpedit.msc)では、「アカウントロックアウトのポリシー」を構成することができます。ローカルグループポリシーの場合は、以下の場所にあります。
アカウントロックアウトのポリシーは既定では未構成であり、ユーザーがロックアウトされることはありません。このポリシーで「アカウントのロックアウトのしきい値」に「1」以上の回数を指定し、ロックアウト期間やカウンターのリセットまでの時間(既定はどちらも「30分」)を構成すると、ブルートフォース攻撃の回避に効果があります(画面3、画面4)。
なお、Azure仮想マシンがActive Directoryドメインのメンバーの場合は、グループポリシーを使用してドメイン全体にアカウントロックアウトのポリシーを適用する必要があることにも留意してください。
Azure仮想マシンに対するRDP接続は、ネットワークセキュリティグループ(NSG)の「受信ポートの規則」で許可されています。この規則のソースとして、IPアドレスやIPアドレス範囲を定義することで、特定のIPアドレスまたはIPサブネットからの接続のみに限定することができます。ソースとしては、以前はなかった「My IP address」が指定可能になったため、自分のIPアドレス(特にNAT《ネットワークアドレス変換》の背後にあるデバイスの場合)を調べる手間が省けるようになりました(画面5)。
なお、この「My IP address」は、現在のAzureポータルのセッションで検出された接続元IPアドレスであり、選択した場合、ソースとしてそのIPアドレスが固定的に設定されます。同じデバイスからの接続に使用されたIPアドレスが、次回アクセス時に変化した場合はブロックされることになるため、IPアドレスが動的に変化する場合は、毎回「My IP address」を選択して設定し直す必要があります。その手間はありますが、対象のAzure仮想マシンが少数の場合は許容できるでしょう。
Azure仮想マシンの「Windows Admin Center(プレビュー)」を有効にすると、ゲストOSに「AdminCenter拡張機能」(通常のWindows Admin Centerとは異なり、複数のサーバをリモート管理する機能は備えていません)がインストールされます。これにより、Azureポータルに統合されたWindows Admin Center管理ツールでのAzure仮想マシンの管理が可能になります(画面6)。
Windows Admin Centerの「リモートデスクトップ」ツールを使用すると、ブラウザに組み込まれたWebベースのリモートデスクトップ接続機能でコンソールにアクセスすることができます(画面6)。
画面サイズがウィンドウのサイズで自動調整されるため、大きなディスプレイでないと使いにくいかもしれませんが、Azureサブスクリプションアカウントの認証を経たAzureポータルへのHTTPS認証内でリモートデスクトップ接続を行うことができます。つまり、Azure仮想マシンのパブリックIPアドレスへの接続は全てブロックできますし、パブリックIPアドレスがなくてもアクセスできます。
Azure仮想マシンへの「Just-In-Timeアクセス」は、「Microsoft Defender for Cloud」の有料プラン(最初の30日間は無料)に含まれるセキュリティ機能の一つです(Microsoft Defender for Serversに含まれます)。この機能を有効化すると、接続時にアクセスを要求し、承認されると(自動承認されます)、RDPファイルのダウンロードへと進みます(画面7)。
アクセスを要求すると、一定期間(既定は「3時間」)、指定したソースとポートへのアクセスを許可する「受信ポートの規則」が自動作成されます。これにより、必要時に必要なソースに対してポートを許可し、それ以外は全てブロックすることが可能です。
「Azure Bastion」は、完全に閉じた仮想ネットワークでも利用可能な、安全なRDPおよびSSH接続のゲートウェイとして機能します。
Azure Bastionを仮想ネットワークにデプロイすると、仮想ネットワークとの境界のサブネットが作成され、ユーザーによる管理用が全く必要のない、ホスト(要塞《ようさい》ホスト)がデプロイされて、その中間に配置されます。ユーザーは、Azureポータルに統合された(別のウィンドウで開く)Webベースのリモートデスクトップ接続機能を用いて、安全にAzure仮想マシンにアクセスすることができます(画面8)。
なお、Azure Bastionについては、プレビュー開始直後に本連載第83回で紹介しましたが、2019年11月からは一般提供されています。また、現在はワンクリックでデプロイできるように、セットアップが大幅に簡素化されています。
岩手県花巻市在住。Microsoft MVP 2009 to 2022(Cloud and Datacenter Management)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.