FQDN とワイルドカード
Fortigate には IP アドレスでアクセス制御するだけでなく、FQDN でアクセス制御する方法もあります。
ただし、FQDN で制御する場合はワイルドカードは使えません。仕組みとして DNS で名前解決した IP アドレスを使って制御するからです。
ただし、http や https アクセスに対しては、URLフィルタを使ってワイルドカードのURLを制御できます。
これは、http ヘッダ Host フィールド内や TLS 拡張属性の server_name_indication に含まれる文字列を見て制御するためです。
FortiGateのWebフィルタとURLフィルタ
FortiGate には http/https に特化したフィルタリング機能があります。
「薬物」や「アダルト」などのカテゴリベースでの制御を行いたい場合は『Webフィルタ』という機能を使いますが、URLドメインベースでフィルタリングしたい (例えば yahoo.co.jp ドメインのみ許可したい)、という場合はその中の『Static URL フィルタ』という機能を使えます。
カテゴリベースの制御は『Webフィルタライセンス』が必要ですが、URL ベースの制御だけならライセンスは不要です。
『Static URL フィルタ』の設定手順
手順としては以下の 2 ステップです。
- セキュリティプロファイルの『Webフィルタ』プロファイルで URL フィルタルールを作成
- 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
以上、FortiGate での URL フィルタの使い方でした。
【厳選 4 冊】ネットワークセキュリティを学ぶための本
IT/インフラエンジニアの地位とスキル向上のために


コメント