【FortiGate】URLフィルタで特定URL(FQDN)のみ許可 ~除外と許可,シンプルとワイルドカード/正規表現の違い~ | SEの道標
FortiGate

【FortiGate】URLフィルタで特定URL(FQDN)のみ許可 ~除外と許可,シンプルとワイルドカード/正規表現の違い~

UTM で URL (FQDN) をアクセス制御する 2 つの方式

PaloAlto や FortiGate では FQDN での制御を行う方式が 2 つあります。

1 つは PaloAlto 自体が DNS サーバにクエリを投げ、動的に IP を取得し、その IP アドレスを使って制御する方式です。

もう 1 つは SSL/TLS handshake の最初のパケット ClientHello にある SNI (Server Name Indication) の FQDN を検査する方式です。

SNI については以下を参照下さい。

【図解】TLSのSNIの仕組み ~SANsやCN,ワイルドカードとの違い~
SNI と SANs , CN(Common Name) の違い SNI は T...

この 2 つの方式のメリット・デメリットは以下の通りです。

メリットデメリット
DNS 取得方式全プロトコルで適用可能ワイルドカードが使えない
IP アドレス変更時は更新時間の差異が発生
SNI 検査方式ワイルドカードの利用が可能http,httpsのみで適用可能

FQDN でアクセス制御というと 1 つ目の方式が有名なためか、DNS は正規表現やワイルドカードのドメイン名の名前解決ができませんので、「ワイルドカードは使えない」と勘違いしてしまいがちです。

最近は https を使った通信がほとんどであり、2つ目の SNI 検査方式はとても重宝されます。

PaloAlto の SNI 検査方式は以下に紹介しましたが、

【PaloAlto】特定URL(FQDN)をワイルドカードでアクセス制御する"Custom URL List"
UTM で URL (FQDN) をアクセス制御する 2 つの方式 PaloAl...

今回は FortiGate での SNI 検査方式の設定手順を紹介します。

FortiGateのWebフィルタとURLフィルタ

FortiGate には http/https に特化したフィルタリング機能があります。

「薬物」や「アダルト」などのカテゴリベースでの制御を行いたい場合は『Webフィルタ』という機能を使いますが、URLドメインベースでフィルタリングしたい (例えば yahoo.co.jp ドメインのみ許可したい)、という場合はその中の『Static URL フィルタ』という機能を使えます。

カテゴリベースの制御は『Webフィルタライセンス』が必要ですが、URL ベースの制御だけならライセンスは不要です

『Static URL フィルタ』の設定手順

手順としては以下の 2 ステップです。

  1. セキュリティプロファイルの『Webフィルタ』プロファイルで URL フィルタルールを作成
  2. ACL ポリシーの中で URL フィルタリングを行いたいポリシー ( http/https 許可ポリシー) に『Webフィルタ』プロファイルを適用する。

1.セキュリティプロファイルの『Webフィルタ』プロファイル編集

GUI にログインし、『セキュリティプロファイル』の『Webフィルタ』をクリックすると、下図の中央ペインのような画面が表示されます。

上図の通り、『FortiGuardカテゴリーによるフィルタ』を OFF にし、『URLフィルタ』を ON にし、『+新規作成』をクリックします。

すると、下図のように新規 URL フィルタ登録画面が表示されます。yahoo.co.jp ドメインおよびそのサブドメインを全て許可する場合は以下のように記述し、「OK」を押下します。

その他許可が必要なドメインがあればどんどん追加していきます。最後に『全ての URL をブロック」するルールが必要です。下図ではワイルドカードで「*」としていますが、正規表現で「.*」としても構いません。

そして下図のようになっていることを確認し、『適用』を押下します。

2.ACL ポリシーへ先ほど編集した『Webフィルタ』プロファイルを適用

『IPv4ポリシー』を押下し、Web フィルタを適用したいポリシーの編集画面で、下図のように『Webフィルタ』を ON にします。

すると『SSLインスペクション』プロファイルも自動で ON になります。この SSL インスペクションは証明書や SNI による宛先検査をします。これにより https の暗号化通信も URL による検査ができるのです。

上図のようになったことを確認し、『OK』を押下します。

ポリシーも以下のように表示されます。

これで完成です。

動作確認するときは (ブラウザ再起動だけでなく) PC 自体を再起動してから試したほうが確実です。(前のセッションやキャッシュが残っているためか、中途半端な挙動をすることがありました。)

シンプルとワイルドカード/正規表現の違い

ワイルドカードや正規表現はパターンマッチによるドメイン指定で、柔軟性を持つことができます。

例えば example.com や example.org 等のドメインを一律許可したい場合は以下のように記述します。

ワイルドカード:example.*
正規表現:example\..*

一方、シンプルの場合はドメインは完全一致ではあります。ただし、サブドメインについては全て含まれます。例えば以下のように記述した場合、

シンプル:yahoo.co.jp

これだけ記述すれば、yahoo.co.jp だけでなく www.yahoo.co.jp や mail.yahoo.co.jp もこのルールに合致します。ですが、wwwyahoo.co.jp や mailyahoo.co.jp は合致しません。あくまで、yahoo.co.jp ドメインおよびそのサブドメインが対象になります。

もし yahoo.co.jp で終わるドメインおよびサブドメインすべてを合致させたい場合はワイルドカードで

ワイルドカード:*yahoo.co.jp

と記述します。ただ、例えば mailyahoo.co.jp ドメインなどは(空いていれば)個人で簡単に取得できるため、詐欺サイト等に使われやすく、そこへの許可が為される可能性もありますので個人的には推奨できません。

除外(Exempt)と許可の違い

アクションとして『除外(Exempt)』を選択すると、そのURLへの通信は許可され、アンチウィルスや Data Loss Prevention 等のセキュリティ機能を通過させません。これにより負荷を軽減することができます。

一方、『許可』を選択すると、その URL への通信は URL フィルタとしては許可されますが、アンチウィルス等のセキュリティチェックが行われますので、その結果にも依ります。

CLI での設定

CLI での config サンプルを以下に示します。

# config webfilter urlfilter
# edit 1
# set name "default"
# config entries
# edit 1
# set url yahoo.co.jp
# set type {simple | regex | wildcard}
# set action allow
# set status {enable | disable}
# end
# end
# end

PaloAlto との挙動の違い

FortiGate の URL フィルタの場合は、ある通信に対してセキュリティポリシーを上から見ていき、「マッチする行」を [URL フィルタ] 以外の箇所で検査するのに対し、PaloAlto は [カスタム URL リスト] を含めて検査します。

なので、例えば以下のポリシーを作ったとします。(URL は Forti の場合は URL フィルタ、Palo の場合は Custm URL フィルタを示します。)

送信元 IP宛先 IP宛先 PortURLアクション
policy#110.1.1.0/24any80, 443www.yahoo.co.jp
www.youtube.com
許可
policy#2anyanyany-許可

ここで、10.1.1.1 の端末は ja.wikipedia.org へのアクセスはどうなるでしょうか?

FortiGate の場合は「policy#1 にマッチする」と判断されますが、URL フィルタでマッチしないため、パケットは破棄されます。

一方、PaloAlto の場合は「policy#1 にマッチしない」と判断され、次の policy#2 の検査に進みます。そのため、パケットは許可されます。

以上、FortiGate での URL フィルタの使い方でした。

【厳選 4 冊】ネットワークセキュリティを学ぶための本

サイバー攻撃に対抗せよ。UTMを使った企業LANの構築/管理を徹底解説。ファイアウォールやアンチウイルスなどによる防御。拠点間を安全につなぐインターネットVPN。Office365などのクラウド利用に役立つSD‐WAN。FortiOS6対応。ネットワークエンジニア必読!
本書では、セキュリティエンジニアとして押さえておきたい知識や技術などを、体系的に、わかりやすく解説しています。セキュリティ業務に関わる2~3年目のエンジニアはもちろん、一般社員のセキュリティリテラシー向上にも役立つ1冊です。
【想定する読者層】・セキュリティの初学者・ハッカーにあこがれている人・CTFに興味がある人、または参加している人・WindowsとLinuxの混在環境を構築したい人・コンピュータ愛好家・Linux初心者
Windows(ウィンドウズ)、Linux(リナックス)に始まり、現在主流となっているCloud(クラウド)、Phishing(フィッシング)、そして禁断となっている(マルウェア)に至るまで、具体的な最新情報をそれぞれ選りすぐり解説しています。

コメント

タイトルとURLをコピーしました