LinuxユーザーがイジるはじめてのAzure

LinuxユーザーがAzureを使いこなせるように応援するブログです

Azure Firewall の Inbound 制御について

Azure Firewall をアウトバウンド制御するFWとして利用する記事は割と多めですが、インバウンドだって制御しまっせ、という記事を少し記載しておきますかね。

 

Azure Firewall はvNET(仮想ネットワーク)に所属させますので、デプロイするとグローバルアドレスとプライベートアドレスの代表をそれぞれ1つずつ持ちます。

 

f:id:akazure:20200323111157j:plain

 

今回の構成としてはAzure Firewallを上段に、下段にはILBとしてApplication Gateway(AppGW) を構え、AppGW の下段にVMを配置してあります。VMはnginxのページが表示されるよう80 port/tcpでlistenしてある状態です。

 

ではAzure Firewall のルールを見てみます。

f:id:akazure:20200323112310j:plain

 

ルールでは「NATルールコレクション」「ネットワークルールコレクション」「アプリケーションルールコレクション」とありますが、ここではNATルールコレクションを選択します。

 

f:id:akazure:20200323112517j:plain

このような設定をしています。

1つ目のルール名natruleSGTは、オンプレから外に出る際に利用されるグローバルアドレス(167.220.233.219)をソースIPとする80port/tcpのリクエストは、Azure Firewallのグローバルアドレス(52.156.53.53)からAppGWのプライベートアドレス(172.19.3.254)へ変換して通信を促せ、というルールです。いわゆるグローバルアドレスをプライベートアドレスと通信させたいDNATとしてよく利用される機能ですね。

 

2つ目のルール名natruleOtherは、上記以外をソースIPとする80port/tcpの通信は、Azure Firewallのグローバルアドレス(52.156.53.53)から、別vNETに配置したVMのPIP、グローバルアドレス(104.41.185.108)へ通信を促せ、というルールです。

 

f:id:akazure:20200323113253j:plain

Public to Public へNATした場合は上記のnginxのページが表示されていますね。

f:id:akazure:20200323114119j:plain

一応VM側から見たソースIPを確認するとAzure Firewallのグローバルアドレスとして持つ「52.156.53.53」から来ていると見えます。

 

一方AppGWのILBへDNATした場合は、こんな感じで見えます。

f:id:akazure:20200323115254j:plain

VM側から見るとILBとして立てたAppGWから来ていると見えます。

f:id:akazure:20200323115316j:plain

 

といった感じで、外部から来たリクエストをAzure Firewallから内部、外部へ促すことができます。(IPv4レベルですが)

 

 

また、以下のようにネットワークルールコレクションで設定すると、特定の外部ソースIPから来たリクエストは拒否する、といったこともできます。

f:id:akazure:20200323120419p:plain

 

以上、Azure Firewallでインバウンド制御する場合の内容でした。