ファイアウォールのURL許可(URLホワイトリスト)は、特定のWebサイトやサービスへのアクセスを許可するための重要な機能です。
特に次世代ファイアウォール(NGFW)、UTM、SWG(Secure Web Gateway)などでは、従来のIP/ポート制御に加えてアプリケーション層まで分析し、URL単位の精密なアクセス制御を行えます。
以下では、URL許可の概念・動作原理・設定粒度・注意点を体系的に整理します。
URL許可とは、指定したURL・ドメインのみアクセスを許可し、それ以外を拒否する仕組みです。
従来のL3/L4ファイアウォールではIPアドレスとポートを基準にしましたが、現在では通信内容を解析し、アプリケーションレベルでの許可/拒否が可能です。
例
example.com
最も一般的で設定が容易。
例
api.example.com
ホスト単位で通信先を制御したい場合に有効。
例
https://example.com/admin/*
ただし、HTTPS通信の場合は SSLインスペクション(復号)を行わないとパス情報が取得できないため、多くの環境では利用が限定される。
例
^https://.*\.example\.com/api/v[0-9]+/.*$
細かな制御が可能だが、複雑化しやすいため注意が必要。
一部のファイアウォールやUTM製品は、DNSクエリを監視して、特定ドメインの名前解決を許可・拒否できる。
これは「DNSフィルタリング」機能であり、URLフィルタと併用されることもある。
HTTPSは暗号化されておりURLパスは見えないが、ClientHello内のSNI(Server Name Indication)には接続先ホスト名が含まれる。
多くのNGFW・SWGでは、このSNIを元にホスト名ベースの許可判定を行う。
※将来的にはECH(Encrypted ClientHello)によりSNIの暗号化が進むため、判定方式の変化が予想される。
商用のURLフィルタリング製品は、膨大なURL辞書データベースを持ち、ドメイン/サブドメインをカテゴリ(セキュリティリスク、業務用途、ニュースなど)に分類してアクセスを制御する。
※HTTPS復号なしでもカテゴリ判別は可能だが、パスまで反映できない場合がある。
パスレベルの正確なフィルタリングや高度なデータ検査を実施する場合、ファイアウォールがTLS通信を復号して内部のHTTPリクエストを確認する必要がある。
Webサービスやクラウドサービスは、以下のように複数ドメイン・サブドメインを使用することが多い。
そのため「見えているURLだけ許可するとアクセスできない」ことが発生しやすい。
CSS、JavaScript、APIなどの配信にCDNが使用されるため、本体ドメインだけ許可しても動作しないケースがある。
以下のように接続先が動的に決まる場合がある。
この場合、ワイルドカード(*.example.com)や、IPレンジでの許可が必要になることもある。
ホスト名は見えるが、URLパスは暗号化されているためホスト単位以上の粒度での制御に留まる。
業務で必要なクラウドサービス・Webサービスを洗い出す。
各サービスには「Firewall / Proxy 設定ガイド」があるため、それを参照。
例
*.example.com
api.example.com
cdn.example.net
サービス動作に必要なサブリソースも含める。
ブラウザの開発者ツールやログで通信がブロックされていないか確認。
以上、ファイアウォールのURLの許可についてでした。
最後までお読みいただき、ありがとうございました。