自由気ままに書いちゃおう

好きなことをつらつらと・・・

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

NSG(ネットワークセキュリティグループ)についてです。

 

■NSGとは

多少語弊があるかもですが、

・WindowsでいうところのWndowsファイアウォール

・RHELでいうところのiptables / firewalld

で出来ることと似ています。

L4レベルでのファイアウォールと考えてもらえれば大丈夫です。

 

つまり、

・Source

・Destination

・Destinationポート

・TCP/UDP等のプロトコル

の組み合わせで通信を制御します。

 

NSGはネットワークインタフェース(NIC)に個別割り当てたり、サブネットに割り当てることができます。

詳細は下記を参照ください。

docs.microsoft.com

 

ちなみに、AWSでいうところのセキュリティグループとACLに相当します。

(セキュリティグループはNICやEC2に割り当て可能。ACLはサブネット単位に割り当て可能。Azureの場合にはNSGという一つの用語で、AWSのセキュリティグループとACLを含むことになります。)

 

■NSGを適用しない?


仮想マシン作成時に、NSG項目にて「なし」を選択することでNSGを適用しないことが可能です。
この場合、全通信がインバウンド/アウトバウンドで許可となります。
※AWSのセキュリティグループは必ずつけないとデフォルト:拒否であり、全く通信ができなくなることを考えると、真逆ですね。。。

■NSGの初期設定について

仮想マシンを初めて作成した際、
デフォルトのままだと以下のNSGが自動的に作成されます。

※画像が小さくてごめんなさい。

※RDPのエントリは仮想マシンを作成した際に、
RDP3389ポートの受信を許可する設定を行ったために追加されたものです。

※WindowsServerではなくRHELをインストールした場合には、RDPのエントリは存在しません。

f:id:guri2o1667:20200205212322p:plain

 

 

■受信セキュリティ規則と送信セキュリティ規則

細かい説明は他サイトにお任せします。

・受信セキュリティ規則は、受信とつくだけあってInboundの通信制御エントリを定義します

・送信セキュリティ規則は、送信とつくだけあってOutboundの通信制御エントリを定義します。

 

■優先度について

受信セキュリティ規則も送信セキュリティ規則も、優先度が設けられています。

65500が最後のエントリであり、アクションは「拒否」が設定されています。

つまり、最後のエントリまで行くと、

・受信セキュリティ規則であれば、受信拒否。

・送信セキュリティ規則であれば、送信拒否。

となります。

若い番号から順に走査されていき、一致した場合そこで走査を終了します。

 

 

■NSGの規定の設定について

受信セキュリティ規則および送信セキュリティ規則には、
最初から設定されている設定が存在しています。

 

<受信セキュリティ規則>

以下、3つです。

※名前の列の右側に、ポートやプロトコル、ソース、宛先、アクションと続くのですが、ここでは省略しています。

f:id:guri2o1667:20200205213232p:plain

AllowVnetInBound

「仮想マシンが所属するネットワークからの着信を許可」を意味します。

AllowAzureLoadBalancerInBound

「Azureのロードバランサーによる監視信号を許可」を意味します。

DenyAllInBound

Inboudトラフィックに対する「暗黙のDeny」です。ここまでパケットの走査が行われるとパケットはDropします。

<送信セキュリティ規則>

以下、3つです。

※名前の列の右側に、ポートやプロトコル、ソース、宛先、アクションと続くのですが、ここでは省略しています。

f:id:guri2o1667:20200205213311p:plain

AllowVnetOutBound

「仮想マシンが所属するネットワークからの発信を許可」を意味します。

AllowInternetOutBound

「インタネットへの発信を許可」を意味します。

DenyAllOutBound

 

 

OutBoundトラフィックに対する「暗黙のDeny」です。ここまでパケットの走査が行われるとパケットがDropされます。

■NSGの関連付けパターンについて

冒頭で少し記載しましたが、NSGの関連付けパターンは以下の4パターンです。

①サブネット+NIC

「サブネットにアタッチされているNSG」と「仮想マシン(NIC)にアタッチされているNSG」の両方のNSGでパケットが評価され、両方許可された場合のみ仮想マシンに通信が届くことになる。

f:id:guri2o1667:20200206221120p:plain

 

②サブネットのみ

「サブネットにアタッチされているNSG」のみのため、サブネットのNSGで許可されている通信は仮想マシンに届くことになる。

f:id:guri2o1667:20200206221322p:plain

 

③仮想マシン(NIC)のみ

「仮想マシン(NIC)にアタッチされているNSG」のみのため、NICのNSGで許可されている通信は仮想マシンに届くことになる。

f:id:guri2o1667:20200206221455p:plain

④NSG適用なし

NSGがアタッチされていない場合、無条件に通信が届くことになる。

f:id:guri2o1667:20200206221608p:plain

 

■NSGの関連付けの注意点

NICにNSGを関連付ける場合、注意点があります。

一つのNSGを複数のNICに関連付けることは可能です。
例えば、サーバAとサーバBに同じNSGを関連付けることが可能です。

ただし、複数のNSGを一つのNICに関連付けることは出来ません。
例えば、NSG1とNSG2を作成し、サーバAのNICにNSG1とNSG2を二つ関連付けすることは出来ません。


以上です。

次回は、NSGの作成方法と割り当てについてです。

www.guri2o1667.work