【Azure】全ポート閉鎖されている仮想マシンに RDP 接続できるようにする！【ポート設定】

# はじめに
どうも、ATLのヴィリアスです。

ちょっとした興味本位で、
「**Azure の仮想マシンのポートをすべて閉鎖した場合、
そこから RDP 接続できるように復旧できるか？**」を検証してみました。

**※免責事項(必ず、ご一読ください)**
　　本記事の情報により生じた、いかなる損害や損失についても、当社は一切の責任を負いかねます。
　　また、誤情報が入り込んだり、情報が古くなったりすることもありますので、
　　必ずしも正確性を保証するものではありません。ご了承ください。

# 前提

仮想マシンには「セキュリティが強化された Windows Defender ファイアウォール」の
**[受信の規則] にて、全ポートをブロックする規則が追加されています。**
![画像7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/262f5e8b-843c-9b5e-3478-4210bb105305.png)

**当然、この規則を追加した瞬間に仮想マシンに RDP 接続できなくなります。**
今回は、この規則を削除することが目標です。

# 仮想マシンのポートを開放する

## 手順1: Azure Portal から Windows ファイアウォールを無効にする

:::note info
ファイアウォールの設定を無効にすることで、
仮想マシンに RDP 接続できるようにします。
:::

まずは Azure Portal にアクセスし、接続できなくなった仮想マシンのページに行きます。

仮想マシンのページにアクセスできたら、 **左メニューから [実行コマンド]** をクリックします。
こんな画面が表示されます。
![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/fe807a32-017a-40a2-908b-6b706b712d7a.png)
この画面では、**仮想マシンに対してPowerShellスクリプトを実行することができます。**

いくつかコマンドが並んでいますが、一番上の **[RunPowerShellScript]** をクリックします。
すると、スクリプト入力画面が表示されます。
![画像2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/8e7b3f1a-891d-3a94-7acb-67bfc1459677.png)

ここで次のコマンドレットを入力します。

```powershell
Set-NetFirewallProfile -Enabled false
```

これは「**ファイアウォールを無効にする**」コマンドレットです。

https://docs.microsoft.com/en-us/powershell/module/netsecurity/set-netfirewallprofile?view=windowsserver2022-ps

ファイアウォールを無効にすることで **「全ポートブロック」規則も無効になるため、
RDP 接続がブロックされなくなります！**

:::note warn
ファイアウォールが無効のままだと
セキュリティ的に危険なので、最終的には有効に戻します。
:::

### 補足: ファイアウォールの情報を取得するコマンドレット

```Get-NetFirewallProfile```によって、ファイアウォールの情報を取得することができます。

https://docs.microsoft.com/en-us/powershell/module/netsecurity/get-netfirewallprofile?view=windowsserver2022-ps

```powershell
Get-NetFirewallProfile
---
Name                            : Domain
Enabled                         : False
DefaultInboundAction            : NotConfigured
DefaultOutboundAction           : NotConfigured
        .
        .
        .
```

「**ファイアウォールが有効か？**( Enabled の部分)」を確認できますね。

## 手順2: 仮想マシンに接続し、該当の Windows ファイアウォールの規則を削除する

:::note info
ファイアウォールの設定画面から、
諸悪の根源 (全ポートブロックしている規則) を取り除きます。
:::

まずは、たった今**ファイアウォールを無効にした仮想マシンに接続します。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/a37e5d6a-9390-7e68-17d1-edd1ddd4b16f.png)

仮想マシンに接続できたら、Windows の検索機能を使って
「**セキュリティが強化された Windows Defender ファイアウォール**」を探します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/1c37c82b-12b5-78f3-ba67-6d3277997553.png)

[セキュリティが強化された Windows Defender ファイアウォール] ウィンドウが開いたら、 
[**受信の規則**] をクリックします。
![画像4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/cf4668d0-af3c-13b7-4c8c-69d3a3aede6d.png)

規則の一覧が表示されるので、
**全ポートをブロックしている規則を探し、削除します。**
![画像3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2124150/f8ba6671-6f8f-b227-d61c-a308fa7b6c23.png)

**これによって、ファイアウォールが有効でも RDP 接続できます！**

## 手順3: Windows ファイアウォールを有効にする

:::note info
[手順1](#手順1)で無効にしたファイアウォールを有効にします。
:::

仮想マシンにて**PowerShellを起動し**、無効にしたファイアウォールを次のコマンドで有効にします。

```PowerShell
Set-NetFireWallProfile -Enabled True
```

そして最後に```Get-NetFirewallProfile```を実行して、```Enabled```が```True```になっていれば作業完了です！
```powershell
Get-NetFirewallProfile
---
Name                            : Domain
Enabled                         : True
DefaultInboundAction            : NotConfigured
DefaultOutboundAction           : NotConfigured
        .
        .
        .
```


# おわりに

万が一、 RDP 接続中に Azure の仮想マシンのポートを全ブロックする規則を追加してしまっても、
Azure Portal からファイアウォールを無効にして、規則を削除できることが確認できました。
(いっそのことバックアップで修復する手もありますが！)

Azure Portal には今回使った [実行コマンド] 以外にもいろいろな機能があるので、
少し触って何となく知っておけば、いざというときに役立ちそうですね。

それではまた、次の記事で。