My Home NW Lab

逸般の誤家庭のネットワーク

Meraki MXのWeb search機能 (Safe Search相当)の挙動整理

目次

概要

Meraki MXのWeb search機能は、検索エンジンのSafe Searchを有効化できます。
Safe Searchは職場や学校で、センシティブなWebサイトを検索結果から除外できる機能となります。

本記事ではGoogle, bing, Yahoo!検索エンジンを扱います。

関連ドキュメント

ドキュメント上の関連記述は下記となります。

Content Filtering - Cisco Meraki
https://documentation.meraki.com/MX/Content_Filtering_and_Threat_Protection/Content_Filtering

Web search filtering: Enable this setting to enforce Safesearch for Google, Yahoo!, and Bing for all users in your network. This will not affect SSL/HTTPS searches.

詳細は後述しますが、 This will not affect SSL/HTTPS searches. の一文があるように、 現代では暗号化通信が当たり前の時代となっているため、 Yahoo!検索エンジンでは恣意的にHTTP(80/tcp)で通信しようとしてもHTTPS(443/tcp)のページにリダイレクトされてしまい、Safe Searchを有効化できませんでした。  

GoogleとbingではDNSを利用してSafe Searchを実現しているため、HTTPS(443/tcp)にて通信を行ってもSafe Searchが有効化されました。

検証時の情報

  • Model: Meraki MX67W
  • Version: MX 15.44
  • Web Browser: Google Chrome バージョン: 97.0.4692.99(Official Build) (64 ビット)
  • 検証時期: 2022年01月頃
    Safe Searchは各社が提供するサービスの仕様に大きく依存するため、時間の経過に応じた仕様変更には留意してください。

検証のためにChromeDNS over HTTPS (DoH)を無効化

DNS over HTTPS (DoH)が有効化されていると、Meraki MXが名前解決の通信をIntercept (傍受)できないため、意図的に無効化します。
Chrome のURL欄に chrome://settings/security を入力して、設定画面を開き、セキュア DNS を使用する を無効化しています。
本記事ではあくまでも検証としてDNS over HTTPSを無効化しているため、 本番環境への導入においてはDNS over HTTPSの必要性があるか否かを検討した上で設計してください。

f:id:myhomenwlab:20220125204527j:plain
セキュア DNS を使用する: Disabled

検索エンジンの仕様の情報と、動作確認を行った際のログを掲載します。

Google検索エンジン

Google検索エンジンwww.google.com の名前解決を forcesafesearch.google.com と同じIPアドレスマッピングして実現します。

support.google.com

f:id:myhomenwlab:20220125210521j:plain
GoogleのSafe SearchのDNSに関する記述

GoogleのSafe SearchのDNS観点

Web search 設定が Disabled で動作確認を行うと、www.google.comforcesafesearch.google.com の名前解決が別のIPアドレスになっています。

f:id:myhomenwlab:20220125205610j:plain
Google - Web search: Disabled

Web search 設定が Enabled で動作確認を行うと、www.google.comforcesafesearch.google.comIPアドレスと同じとなっています。

f:id:myhomenwlab:20220125205629j:plain
Google - Web search: Enabled

GoogleのSafe SearchのWebブラウザでの確認 (Web search: Enabled 時)

Webブラウザで実際に確認を行うと、手動でのSafe Searchの無効化ができなくなっております。

f:id:myhomenwlab:20220125210022j:plain
GoogleのSafe SearchのWebブラウザでの確認 (1/2)

f:id:myhomenwlab:20220125210047j:plain
GoogleのSafe SearchのWebブラウザでの確認 (2/2)

bingの検索エンジン

bing では www.bing.comstrict.bing.comマッピングする方式です。

セーフサーチを使用して成人向けコンテンツの表示をブロックする
https://help.bing.microsoft.com/#apex/bing/ja/10003/0

f:id:myhomenwlab:20220125211215j:plain
bingのSafe SearchのDNSに関する記述

bingのSafe SearchのDNS観点

Web search 設定が Disabled で動作確認を行うと、www.bing.comstrict.bing.com の名前解決が別のIPアドレスになっています。

f:id:myhomenwlab:20220125215857j:plain
bing - Web search: Disabled

Web search 設定が Enabled で動作確認を行うと、www.bing.comstrict.bing.comIPアドレスと同じとなっています。

f:id:myhomenwlab:20220125215908j:plain
bing - Web search: Enabled

bingのSafe SearchのWebブラウザでの確認 (Web search: Enabled 時)

Webブラウザで実際に確認を行うと、手動でのSafe Searchの無効化ができなくなっております。

f:id:myhomenwlab:20220125211649j:plain
GoogleのSafe SearchのWebブラウザでの確認 (1/2)

f:id:myhomenwlab:20220125211702j:plain
GoogleのSafe SearchのWebブラウザでの確認 (2/2)

Yahoo!検索エンジン

Yahoo!の場合は、HTTP(80/tcp)で接続を行っても、HTTPS(443/tcp)にリダイレクトされて通信が暗号化されてしまうため、 筆者の確認した限りでは、Meraki MXではYahoo!に対してWeb search機能が動作していないようでした。

なお、Merakiとは別の他社製品となりますが、Palo Alto PAのドキュメントによると、Yahoo!ではURL Query Parameterに vm=r を渡すと最も厳格な制限を行えるようです。

docs.paloaltonetworks.com

補足情報: DNS over HTTPS (DoH)を使用時の挙動

Meraki MXでは、DNS over HTTPS (DoH)のIntercept (傍受)が行えない点を確認しました。

Google検索エンジンwww.google.com の名前解決を forcesafesearch.google.com と同じIPアドレスマッピングしてSafe Searchを実現していますが、 DNS over HTTPSによる名前解決を行うと、Meraki MXではIntercept (傍受)ができないため、 www.google.com の名前解決の結果が forcesafesearch.google.com と同じIPアドレスにはなっていないのを下記の画像で確認できます。

f:id:myhomenwlab:20220125213731j:plain
DNS over HTTPSによる名前解決

下記はDNS over HTTPSによる名前解決を curl コマンドを用いて行った際の参考出力です。

$ curl --silent --header 'accept: application/dns-json' 'https://1.1.1.1/dns-query?name=www.google.com&type=A' | jq
{
  "Status": 0,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": false,
  "CD": false,
  "Question": [
    {
      "name": "www.google.com",
      "type": 1
    }
  ],
  "Answer": [
    {
      "name": "www.google.com",
      "type": 1,
      "TTL": 0,
      "data": "172.217.175.228"
    }
  ]
}
$

DNS over HTTPSの確認は、下記のCloudflareのAPIを検証に用いました。

Make API requests to 1.1.1.1 over DoH · Cloudflare 1.1.1.1 docs
https://developers.cloudflare.com/1.1.1.1/encrypted-dns/dns-over-https/make-api-requests