【Fortigate】DNSフィルタの設定と動作確認 FortiOS6.4.3

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 を使用しています。

  • FortiGuard DNS problems: “no available Fortiguard SDNS servers” & “A rating error occurs”
  • FortiGuard DNS problems: "no available Fortiguard SDNS servers" & "A rating error occurs"
    We're noticing this problem across multiple clients this morning.  Any users using Internet access policies with a DNS F...

    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 で ‘セーフサーチ’ を強制を有効にします。

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

     

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

    スポンサーリンク

    参考

    https://docs.fortinet.com/document/fortigate/6.4.3/administration-guide/605868/dns-filter

    コメント