はじめに
新たにAzure Firewallがリリース(プレビュー)されました。
その中でも個人的注目している機能としてFQDN filteringがあります。
要はアウトバウンドをドメインでフィルタリングできます。
これまでは、IP + Portでした。AWSなどでも同様ですね。
そしてドメインでフィルタリングするにはsquidなど透過型Proxyを利用するのが一般的でしたが、
Azure Firewallの登場により楽に設定することが出来ます。
ただし日本はまだ利用できません。
実際に設定手順を見ていきます。
事前準備
プレビュー版の機能のため事前にサブスクリプションで有効化する必要があります。
またPowershellを利用する場合は AzureRm.Network.6.4.0-preview 以上で利用可能になります(今回は利用していません)。
https://github.com/Azure/azure-powershell/releases/tag/AzureRm.Network.6.4.0-preview
新規にインストールする場合
Install-Module -Name AzureRM.Network -Repository PSGallery -RequiredVersion 6.4.0-preview -AllowPrerelease -Force
アップデートする場合
Update-Module -Name AzureRM.Network -RequiredVersion 6.4.0-preview -AllowPrerelease
では有効化していきます。
Azure Firewallの有効化
Register-AzureRmProviderFeature -FeatureName AllowRegionalGatewayManagerForSecureGateway -ProviderNamespace Microsoft.Network Register-AzureRmProviderFeature -FeatureName AllowAzureFirewall -ProviderNamespace Microsoft.Network
実行結果
PS C:\Users\kudo> Register-AzureRmProviderFeature -FeatureName AllowRegionalGatewayManagerForSecureGateway -ProviderNamespace Microsoft.Network FeatureName ProviderName RegistrationState ----------- ------------ ----------------- AllowRegionalGatewayManagerForSecureGateway Microsoft.Network Registering PS C:\Users\kudo> Register-AzureRmProviderFeature -FeatureName AllowAzureFirewall -ProviderNamespace Microsoft.Network FeatureName ProviderName RegistrationState ----------- ------------ ----------------- AllowAzureFirewall Microsoft.Network Registering
登録完了には30分程度かかります。
完了の確認は下記のコマンドで行えます。
Get-AzureRmProviderFeature -FeatureName AllowRegionalGatewayManagerForSecureGateway -ProviderNamespace Microsoft.Network Get-AzureRmProviderFeature -FeatureName AllowAzureFirewall -ProviderNamespace Microsoft.Network
実行結果でRegisteredになっていることを確認します。
PS C:\Users\kudo> Get-AzureRmProviderFeature -FeatureName AllowRegionalGatewayManagerForSecureGateway -ProviderNamespace Microsoft.Network FeatureName ProviderName RegistrationState ----------- ------------ ----------------- AllowRegionalGatewayManagerForSecureGateway Microsoft.Network Registered PS C:\Users\kudo> Get-AzureRmProviderFeature -FeatureName AllowAzureFirewall -ProviderNamespace Microsoft.Network FeatureName ProviderName RegistrationState ----------- ------------ ----------------- AllowAzureFirewall Microsoft.Network Registered
以上で事前準備は完了です。
作成(ポータル)
ポータルでの作成にあたり事前に日本語設定の場合は英語に変更しましょう。
2018/07/24時点では概要確認時にエラーが発生します。
英語だと問題なく通ります。
FirewallはVNET上に専用のセグメントが必要となります。
そして必ず「AzureFirewallSubnet」という名前にする必要があります。
事前準備ができたらFirewallを検索し作成します。
ポータルで情報を入力していきます。
必要な情報、入力、選択します。
以上でFirewallの作成は完了です。
次にルーティングの設定を行う必要があるあります。
ルーティングの設定
今回は下記のような構成になっています。
Firewallのルート設定を行うと直接対象となるサブネットのサーバーにはアクセスできないためJumpサーバーも用意します。
次にルートテーブルの適用するサブネットを指定します。
今回は、検証にサーバーをが立っているサブネット(Azure Firewallがあるサブネットではない方)を指定します。
デフォルトルート(0.0.0.0/0)の設定をします。
次のホップアドレスとしてAzure FirewallのプライベートIPを指定します。
Firewallのルールを設定
最初にアプリケーションルールコレクションの追加を行います。
ソースアドレス(アクセスするサーバーやサブネットなど)、プロトコル、そしてFQDNを入力します。今回は、about.gitlab.comとでもしておきます。
以上で完了です。
アクセスしてみます。
問題なくアクセスされることを確認できました。
問題なくルールが適用されていることが確認できました。
まとめ
これまではIPでのみ制限がかけられたものをFQDNで適用出来るように出来るようになります。
特にAPIのゲートウェイへの制限などもFQDNで掛けたいなどセキュリティ要件が厳しいとこでは便利だと思います。
サブネット単位での適用です。これが個々のVMやサービスごとに紐づけれれば便利かなぁと思いつつ、
さらに機能が増えることを期待・・・ミラーリングポートとかミラーリングポート・・・