UTM で URL (FQDN) をアクセス制御する 2 つの方式
PaloAlto や FortiGate では FQDN での制御を行う方式が 2 つあります。
1 つは PaloAlto 自体が DNS サーバにクエリを投げ、動的に IP を取得し、その IP アドレスを使って制御する方式です。
もう 1 つは SSL/TLS handshake の最初のパケット ClientHello にある SNI (Server Name Indication) の FQDN を検査する方式です。
SNI については以下を参照下さい。
この 2 つの方式のメリット・デメリットは以下の通りです。
メリット | デメリット | |
---|---|---|
DNS 取得方式 | 全プロトコルで適用可能 | ワイルドカードが使えない IP アドレス変更時は更新時間の差異が発生 |
SNI 検査方式 | ワイルドカードの利用が可能 | http,httpsのみで適用可能 |
FQDN でアクセス制御というと 1 つ目の方式が有名なためか、DNS は正規表現やワイルドカードのドメイン名の名前解決ができませんので、「ワイルドカードは使えない」と勘違いしてしまいがちです。
最近は https を使った通信がほとんどであり、2つ目の SNI 検査方式はとても重宝されます。
FortiGate の SNI 検査方式は以下に紹介しましたが、
今回は PaloAlto での SNI 検査方式の設定手順を紹介します。
PaloAltoでの設定手順
1. 「カスタムURLリスト」オブジェクトを作成
上部ペイン [Object] ⇒ 左ペイン [カスタムオブジェクト] ⇒ [URL カテゴリ] をクリックし、下部の [追加] をクリック
以下の画面が出るので [名前] を付け (ここでは myurl) タイプには [URL List] を選択します。そして下部の [追加] ボタンをクリックします。
一行ずつ許可したい URL (FQDN) を書きます。下部の緑枠に注意。ワイルドカードを使うことができます。図にはありませんが、「*.yahoo.co.jp」とすれば、サブドメインが全て許可されます。(*yahoo.co.jp としてしまうと hogehogeyahoo.co.jp といったドメインも許可されるためお薦めできません。)
オブジェクトが作成されたことを確認します。
2. セキュリティポリシーへ適用
先ほど作成したオブジェクトを使って、セキュリティポリシーを作成します。
[全般] タブ
特筆すべき点はありません。
[送信元] タブ
ポリシーの対象とする送信元アドレスを設定します。ここでは 10.1.1.0/24 としています。
[宛先]タブ
ここは any で構いません。( [サービス/ URL カテゴリ] で URL を絞るため)
[アプリケーション] タブ
こちらも同様、any で構いません。
[サービス/URLカテゴリ] タブ
こちらの URL カテゴリで、先ほど作成したオブジェクトを適用します。
[アクション] タブ
こちらも特筆すべきはありません。アクションを Allow にします。
動作確認
上記で作成したポリシーのみを入れて、動作テストしてみます。
www.yahoo.co.jp へのアクセス
開発者ツールを開きながらアクセスすると、以下のようになりました。
左側が Yahoo サイト。レイアウトが崩れています。
右側が開発者ツール画面。赤文字がアクセス不可となったファイル。ドメインを見ると s.yimg.jp となっています。埋め込まれているリンクが別ドメインのものは弾かれてしまいますので、開発者ツールを見ながら、追加でドメインを追加していくとよいでしょう。
www.youtube.com へのアクセス
こちらは比較的良好ですが、同様に一部取得に失敗しています (i.ytimg.com)
その他のサイト ja.wikipedia.org
完全に NG です。
FortiGate との挙動の違い
FortiGate の URL フィルタの場合は、ある通信に対してセキュリティポリシーを上から見ていき、「マッチする行」を [URL フィルタ] 以外の箇所で検査するのに対し、PaloAlto は [カスタム URL リスト] を含めて検査します。
なので、例えば以下のポリシーを作ったとします。(URL は Forti の場合は URL フィルタ、Palo の場合は Custm URL フィルタを示します。)
送信元 IP | 宛先 IP | 宛先 Port | URL | アクション | |
---|---|---|---|---|---|
policy#1 | 10.1.1.0/24 | any | 80, 443 | www.yahoo.co.jp www.youtube.com | 許可 |
policy#2 | any | any | any | - | 許可 |
ここで、10.1.1.1 の端末は ja.wikipedia.org へのアクセスはどうなるでしょうか?
FortiGate の場合は「policy#1 にマッチする」と判断されますが、URL フィルタでマッチしないため、パケットは破棄されます。
一方、PaloAlto の場合は「policy#1 にマッチしない」と判断され、次の policy#2 の検査に進みます。そのため、パケットは許可されます。
コメント