🛡️

Azure VM における OS 側での開放ポートと NSG について考える

2023/11/08に公開

これは何...?

普段、NSG でネットワーク制御をしているとあまり意識しないかもしれませんが、Windows/Linux ともに OS 側にもファイアウォールを持っており、NSG で許可しているのに到達できないみたいなこともあります。この辺の挙動を Nmap[1] を使って確認します。

Nmap とは

Wikipedia[2]によれば以下らしいです。

nmapはGordon Lyonによって書かれたセキュリティスキャナである。ポートスキャン機能だけでなく、OSやバージョンの検出機能、サービスおよびそのバージョンの検出機能など、多くの機能を兼ね備えている

今回は Ubuntu と Windows Server を立てて、Nmap をインストールしておきます。これはインストール[3]すれば Windows でも利用できます。Ubuntu の場合は sudo apt install nmap ですぐに入ります。そのうえで各サーバー上で localhost に対して ポートスキャンをかけます。VM イメージは Marketplace の真っ新な状態です。結果は以下になります。

Linux (ubuntu 20.04)

vm-ubuntu:~$ nmap localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2023-11-08 08:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00018s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

既定で 22/tcp が開いていますね。

Windows (Windows Server 2022 Datacenter Azure Edition)

C:\Users\xxxx>nmap localhost
Starting Nmap 7.94 ( https://nmap.org ) at 2023-11-08 08:32 Coordinated Universal Time
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00019s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 997 closed tcp ports (reset)
PORT     STATE SERVICE
135/tcp  open  msrpc
445/tcp  open  microsoft-ds
3389/tcp open  ms-wbt-server

Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds

既定で、135/tcp、445/tcp、3389/tcp、が開放されています。

NSG 越しの通信について

Public IP(Standard SKU) 越しに ポートスキャンをかけるとどう見えるのかを確認してみます。先ほどと同じ Apache をインストールした Ubuntu VM に対して 外部からスキャンしてみます。VM に適用されている NSG には、ポート 80 が開放されている状況です。

PS C:\Users\xxxx> nmap 172.190.xxx.xxx
Starting Nmap 7.94 ( https://nmap.org ) at 2023-11-08 20:12 東京 (標準時)
Nmap scan report for 172.190.xxx.xxx
Host is up (0.18s latency).
Not shown: 999 filtered tcp ports (no-response)
PORT   STATE SERVICE
80/tcp open  http

80/tcp が開放されていると認識されています。OS 内部では開放されているように見えていた 22/tcp は開放されていません。

NSG を外してみる

Public IP の Standard SKU の場合、明示的に NSG で許可しないと通信ができない仕様[4]となっているため、NSG を外した状態でスキャンしてみます。

PS C:\Users\shizh> nmap 172.190.xxx.xxx
Starting Nmap 7.94 ( https://nmap.org ) at 2023-11-08 20:23 東京 (標準時)
Nmap scan report for 172.190.xxx.xxx
Host is up (0.18s latency).
All 1000 scanned ports on 172.190.xxx.xxx are in ignored states.
Not shown: 1000 filtered tcp ports (no-response)

Nmap done: 1 IP address (1 host up) scanned in 181.94 seconds

no-responseと言われてしまいました。ということで NSG がない場合はスキャンにも引っかからないわけですね。

まとめ

  • Azure VM のネットワーク保護には NSG が中止されがちだが、OS 内のファイアウォールも効いている
  • ポートスキャンを内部的・外部的にかけてみると一目瞭然
  • Basic SKU の場合は NSG がかかっていない場合に OS 内のファイアウォールの設定がそのまま境界となるため注意が必要
脚注
  1. https://nmap.org/download ↩︎

  2. https://ja.wikipedia.org/wiki/Nmap ↩︎

  3. https://qiita.com/san_bay3/items/705e630ec6b02fdc3bc2 ↩︎

  4. https://learn.microsoft.com/ja-jp/azure/virtual-network/ip-services/public-ip-addresses#sku ↩︎

GitHubで編集を提案
Microsoft (有志)

Discussion