DNSフィルタ機能では、FortiGuardのDNSでドメインの安全性(レーティング)の情報に基づき、 DNSのレスポンスをフィルタします。

FortigateをDNSサーバとして設定
DNSフィルタを有効にするには、Fortigate自身をDNSサーバとして設定し、端末のDNSサーバをFortigateのIPアドレスに設定します。 まず、FortigateのLAN側のIPアドレス(10.0.1.128)でDNSサービスを有効にします。
デフォルトではGUI上で、設定項目が表示されていないため、システム >> 表示機能設定 で DNSフィルタを有効にします。

ネットワーク >> DNSサーバ へ移動し、 新規作成をクリックします。

新規DNSサービスの設定画面が表示されます。

- インタフェース:LAN側のポートを指定します。(今回、port2がLAN側でエイリアスとしてLANと設定しています)ここでは、LAN(port2)を指定します。
- モード:システム設定DNSへ転送を選択します。
- DNSフィルタ:有効にし、default を選択します。
設定後、以下のような画面になります。

DNSフィルタのプロファイル設定
セキュリティプロファイル >> DNSフィルタへ移動すると、default というプロファイルが用意されています。

defaultをクリックすると、DNSフィルタプロファイルの編集画面が表示されます。
ここで、FortiGuardのカテゴリに対してのアクションや設定できます。ここでは、そのまま設定変更せず、OKをクリックします。

セキュリティポリシーへの適用
ポリシー&オブジェクト >> ファイアウォールポリシー へ移動し、LANからインターネットへのポリシーのセキュリティプロファイルでDNSフィルタを有効にし、プロファイルをdefaultにします。 これに伴い、SSLインスペクションも自動的に、certificate-inspectionに変更されます。

名前解決ができない場合の対応
端末のDNSサーバのアドレスをFortigateのLAN側アドレス(10.0.1.128)に変更します。 その後、名前解決を試みますが、名前解決の応答がありません。
切り分けのために、セキュリティプロファイル >> DNSフィルタの設定で、すべてのDNSクエリとレスポンスを記録するを有効にし、ログを確認します。

ログレポート >> DNSクエリによりログを確認すると、FortiGuardのDNSが利用できないログ(no available Fortiguard SDNS servers)が出力されます。

同様の事象がフォーラムにもありました。今回、FortiOS 6.4.3 を使用しています。
We had the same issue the last few days, the following finally got DNS Filtering working again.
config system fortiguard
set fortiguard-anycast disable
set protocol udpset port 8888
set sdns-server-ip 208.91.112.220
end
Fortigate 6.4.1
https://forum.fortinet.com/tm.aspx?m=186901
上のコマンドを実行することで、名前解決ができるようになり、エラーがなくなります。

名前解決できるようになりましたので、セキュリティプロファイル >> DNSフィルタの設定で、すべてのDNSクエリとレスポンスを記録する は無効にします。
端末の動作確認(モニタ)
セキュリティプロファイル >> DNSフィルタへ移動し、defaultプロファイルのFortiGuardカテゴリベースのフィルタで、テスト用にストリーミングメディアとダウンロードをモニタに変更します。

これで、このカテゴリに対しての名前解決のログが記録されます。
また、ログレポート >> DNSクエリにて、ログのカラムにメッセージを追加します。

では、Youtubeへアクセスしてみます。

ログレポート >> DNSクエリによりログを確認すると、メッセージからこのドメインがモニタされていることがわかります。

ログの詳細を確認すると、ドメインが所属するカテゴリと応答されたIPアドレスを確認することができます。

続けて、ニコニコ動画にアクセスします。このサイトもストリーミングメディアとダウンロードのカテゴリに属します。


端末の動作確認(ブロック)
今度は、セキュリティプロファイル >> DNSフィルタへ移動し、defaultプロファイルのFortiGuardカテゴリベースのフィルタで、 テスト用にストリーミングメディアとダウンロードをブロックポータルにリダイレクトへ変更します。

この設定をすると、ドメインの名前解決をした際に、デフォルトではブロックポータルである208.91.112.55が返答されます。
まず、Youtubeへアクセスすると、以下の通り、サイトへアクセスできません。HTTP Strict Transport Security (HSTS)によりhttpで接続ができず、以下のような画面となります。

カテゴリにより拒否されていることがメッセージより確認できます。

次にニコニコ動画へアクセスすると、以下の通り、ブロック画面が表示されます。これは、www.nicovideo.jp の名前解決で、208.91.112.55が返答され、 このアドレスに対して、httpでアクセスをしています。このアドレスはFortiGuardが用意しているブロックポータルサイトです。

同様にカテゴリにより拒否されていることがメッセージより確認できます。

DNS Safe Searchの有効化
DNSフィルタの機能で、有害情報が検索結果に表示されないよう、Google、Bing、Youtubeへのアクセスでセーフサーチを強制することができます。
セキュリティプロファイル >> DNSフィルタへ移動し、defaultプロファイルでGoogle, Bing, YouTube で ‘セーフサーチ’ を強制を有効にします。

端末から、GoogleやBingへアクセスすると、検索画面が表示されます。 例えば、Googleの場合、以下のように、セーフサーチがオンになっています。 そのため、検索結果から有害と思われる情報は除外されます。

DNSフィルタのログのメッセージより、セーフサーチが強制されていることが確認できます。

コメント