プロフィール

長野で頑張るクラウドサービスエンジニア
最近はAzureやEnterprise Mobility Suiteなどクラウド製品が主ですが、System Centerなど色々なことにも挑戦!
名前:75R
所属:Livestyle

カテゴリー
注意事項
本ブログに記載している内容は、検証環境にて実施した結果になります。実際設定等行う際は、自己責任でお願いします。少しでも参考になればと思います。

Azure Network Security Groupを構成する

Azureの新規機能!

ネットワークセキュリティグループ(NSG)

何ぞや!って思う方は、下記サイトをご覧ください。(英語です)
Network Security Group

簡単に言うと、ネットワーク制御できるわけです。

このVMには、インターネットからのアクセスをさせないとか、
中からインターネットに接続しないとか。

これが、仮想マシンごと、サブネットごとに適用することができます。

外部からのアクセスは、エンドポイントでもできるんですがね。

今回の構成は、こんな感じ。

35

ポリシーの設定は、
VM2にインターネットからのアクセスを全て拒否!
という設定をします。

では、早速設定方法!

GUIでの設定はできないので、Azure PowerShellを利用します。

予め仮想ネットワークは作成しておきます。
34

ここからPowerShell!

1) ネットワークセキュリティグループを作成

New-AzureNetworkSecurityGroup -Name “ネットワークセキュリティグループ名” -Location “地域” -Label “説明”

※例
New-AzureNetworkSecurityGroup -Name “NSG-TEST01” -Location “Japan East” -Label “Security group for my Vnet in Japan East”

※結果
Name                                   Location                               Label
—-                                      ——–                               —–
NSG-TEST01                      Japan East                          Security group for my Vnet in Japan East

2) ネットワークセキュリティグループにルールを追加

Get-AzureNetworkSecurityGroup -Name “ネットワークセキュリティグループ名” | Set-AzureNetworkSecurityRule -Name “ルール名” -Type Inbound -Priority “優先順位” -Action “処理” -SourceAddressPrefix “送信元IPアドレス” -SourcePortRange “送信元ポート” -DestinationAddressPrefix “宛先IPアドレス” -DestinationportRange “宛先ポート” -Protocol “プロトコル”

※例
Get-AzureNetworkSecurityGroup -Name “NSG-TEST01” | Set-AzureNetworkSecurityRule -Name DMZ -Type Inbound -Priority 100 -Action Deny -SourceAddressPrefix “INTERNET” -SourcePortRange “*” -DestinationAddressPrefix “*” -DestinationportRange “*” -Protocol “*”

※結果

NSG

3) サブネット:BackNWに適用

Get-AzureNetworkSecurityGroup -Name “セキュリティグループ名” | Set-AzureNetworkSecurityGrouptoSubnet -VirtualNetworkName “仮想ネットワーク名” -SubnetName “サブネット名”

※例
Get-AzureNetworkSecurityGroup -Name “NSG-TEST01” | Set-AzureNetworkSecurityGrouptoSubnet -VirtualNetworkName “NSG01” -SubnetName “BackNW”

4) 適用確認

Get-AzureNetworkSecurityGroupForSubnet -VirtualNetworkName “ネットワーク名” -SubnetName “サブネット名”

※例
Get-AzureNetworkSecurityGroupForSubnet -VirtualNetworkName “NSG01” -SubnetName “BackNW”

※結果
Name                                   Location                               Label
—-                                     ——–                                 —–
NSG-TEST01                       Japan East                         Security group for my Vnet in Japan East

これで、インターネットからVM2にアクセスできなくなります。
ルールの適用には、少し時間がかかります。2~3分ぐらい。
もっと時間がかかる場合もあるようです。

上記は、サブネットにルールを適用する方法でしたが、仮想マシンに適用する方法もあります。

▼仮想マシンにNSGを適用する

Get-AzureVM -ServiceName “クラウドサービス名” -Name “仮想マシン名” | Set-AzureNetworkSecurityGroupConfig -NetworkSecurityGroupName “ネットワークセキュリティグループ名” | Update-AzureVM

Service Nameは、Get-AzureVMなどで取得できます。

また、下記コマンドも使えます。

▼ルールの削除

GetAzureNetworkSecurityGroup Name “ネットワークセキュリティグループ名” | RemoveAzureNetworkSecurityRule Name “ルール名” 

▼NSGの削除

RemoveAzureNetworkSecurityGroup Name “ネットワークセキュリティグループ名”

▼仮想マシンからルールを外す

GetAzureVM ServiceName “クラウドサービス名” Name “仮想マシン名” | RemoveAzureNetworkSecurityGroupConfig NetworkSecurityGroupName “ネットワークセキュリティグループ名”

▼サブネットからルールを外す

GetAzureNetworkSecurityGroup Name “ネットワークセキュリティグループ名” | RemoveAzureNetworkSecurityGroupFromSubnet VirtualNetworkName “仮想ネットワーク名” SubnetName “サブネット名”

Azureのネットワークは、相互通信がすべて許可になっています。
80ポートのみを許可するには、下記の様に設定します。

1    80ポート 許可 プライオリティ100
2    All Port  拒否 プライオリティ200

許可したいポートを先に書き(プライオリティ低い)、最後(プライオリティ高い)にすべてのポートを拒否します。

▼エンドポイント

エンドポイントとNSGどちらが強いの?優先されるの?と気になるかと思います。NSGの方が強いです。
なので、エンドポイントで80ポートを許可していても、すべて拒否のルールを設定すると通信できなくなります。
ここ結構重要かと思います。

PowerShellコマンドのオプションについては、公式サイトをご覧ください。
About Network Security Groups

シェアする

  • このエントリーをはてなブックマークに追加

フォローする