INTEGRITY Документация

Тестирование DNS фильтрации

В этом разделе описано, как проверить конфигурацию Gateway DNS. Тестирование политик после настройки помогает убедиться, что запросы фильтруются как ожидается, прежде чем полагаться на них в продакшене.

Предварительные требования

Прежде чем начать, убедитесь, что ваше устройство отправляет DNS-запросы в Gateway. Сделать это можно одним из двух способов:

Протестируйте политику DNS

После создания DNS-политики для блокировки домена вы можете использовать либо dig (инструмент командной строки для поиска DNS-записей, доступен в macOS и Linux) или nslookup (доступен в Windows), чтобы проверить, работает ли политика так, как задумано.

Например, если вы создали политику для блокировки example.com, вы можете выполнить следующее, чтобы убедиться, что Gateway успешно блокирует example.com:

  1. Откройте терминал.

  2. Type dig example.com (nslookup example.com если вы используете Windows) и нажмите Ввод.

  3. В dig вывод, проверьте status: поле в строке заголовка (строка, начинающаяся с ;; ->>HEADER<<-). Если страница блокировки отключён для политики, вы должны увидеть REFUSED : код ответа DNS, означающий, что сервер отказался отвечать на запрос:

    dig example.com
    
    ; <<>> DiG 9.10.6 <<>> example.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 6503
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;example.com.                   IN      A
    
    ;; Query time: 46 msec
    ;; SERVER: 172.64.36.1#53(172.64.36.1)
    ;; WHEN: Tue Mar 10 20:22:18 CDT 2020
    ;; MSG SIZE  rcvd: 29

    Если страница блокировки включено для политики, вы должны увидеть NOERROR (это означает, что запрос был разрешен) в заголовке с 162.159.36.12 и 162.159.46.12 в качестве ответов. Это IP-адреса страницы блокировки Cloudflare:

    dig example.com
    
    ; <<>> DiG 9.10.6 <<>> example.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR id: 14531
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1452
    ;; QUESTION SECTION:
    ;example.com.                   IN      A
    
    ;;ANSWER SECTION:
    example.com.            60      IN      A                  162.159.36.12
    example.com.            60      IN      A                  162.159.46.12
    
    ;; Query time: 53 msec
    ;; SERVER: 172.64.36.1#53(172.64.36.1)
    ;; WHEN: Tue Mar 10 20:19:52 CDT 2020
    ;; MSG SIZE  rcvd: 83

Протестируйте категорию безопасности или содержимого

Если вы блокируете категория безопасности или категория контента, вы можете проверить, что политика работает, с помощью тестовый домен связанный с каждой категорией.

После настройки политики Gateway на блокировку категории тестовый домен будет показывать страницу блокировки при попытке открыть его в браузере или возвращать REFUSED когда вы выполняете dig с помощью интерфейса командной строки.

Формат тестового домена

Распространённые тестовые домены

Категория Тестовый домен
Анонимайзер anonymizer.testcategory.com
Command and Control & Botnet commandandcontrolandbotnet.testcategory.com
скомпрометированный домен compromiseddomain.testcategory.com
Криптомайнинг cryptomining.testcategory.com
Вредоносное ПО malware.testcategory.com
Новые домены newdomains.testcategory.com
Припаркованные домены и домены на продажу parkedandforsaledomains.testcategory.com
Фишинг phishing.testcategory.com
Potentially Unwanted Software potentiallyunwantedsoftware.testcategory.com
Приватный IP-адрес privateipaddress.testcategory.com
Спам spam.testcategory.com
Шпионское ПО spyware.testcategory.com
Недоступно unreachable.testcategory.com

Тестирование конфигурации EDNS

EDNS Client Subnet (ECS) представляет собой расширение DNS, которое передаёт часть IP-адреса пользователя авторитетным DNS-серверам, что позволяет им возвращать географически оптимальные ответы. Cloudflare отправляет первые /24 IP-адреса пользователя для сохранения конфиденциальности, при этом сохраняя информацию о местоположении. Если вы включённый EDNS Client Subnet для вашей DNS-локации, вы можете проверить её следующим образом:

  1. Получите поддомен DoH (DNS over HTTPS) для вашего DNS-местоположения:

    1. В Панель управления Cloudflare, перейдите в Zero Trust > Сети > Резолверы и прокси > Локации DNS.
    2. Выберите DNS-локацию, которую вы тестируете.
    3. Обратите внимание на значение DNS поверх HTTPS.
  2. Откройте терминал и выполните следующую команду:

    curl 'https://<DOH_SUBDOMAIN>.cloudflare-gateway.com/dns-query?type=TXT&name=o-o.myaddr.google.com' -H 'Accept: application/dns-json' | json_pp

    Вывод должен содержать вашу клиентскую подсеть EDNS:

    {
    	"AD": false,
    	"Answer": [
    		{
    			"TTL": 60,
    			"data": "\"108.162.218.211\"",
    			"name": "o-o.myaddr.google.com",
    			"type": 16
    		},
    		{
    			"TTL": 60,
    			"data": "\"edns0-client-subnet 136.62.0.0/24\"",
    			"name": "o-o.myaddr.google.com",
    			"type": 16
    		}
    	],
    	"CD": false,
    	"Question": [
    		{
    			"name": "o-o.myaddr.google.com",
    			"type": 16
    		}
    	],
    	"RA": true,
    	"RD": true,
    	"Status": 0,
    	"TC": false
    }
  3. Чтобы проверить свой EDNS client subnet, получите свой исходный IP-адрес:

    curl ifconfig.me
    136.62.12.156%

    IP-адрес источника должен входить в диапазон /24, указанный вашим EDNS Client Subnet.

Очистка кэша DNS

Современные веб-браузеры и операционные системы кэшируют DNS-записи в течение определённого времени. При запросе DNS-записи браузер в первую очередь проверяет собственный кэш. Если ответ уже находится в кэше, может показаться, что политика DNS не работает.

Чтобы очистить кэш DNS:

ChromeOS

  1. Перейдите в chrome://net-internals/#dns.
  2. Выберите Очистка кэша хоста.

Windows

  1. Откройте командную строку от имени администратора или PowerShell.
  2. Выполните следующую команду:
ipconfig /flushdns

macOS

  1. Откройте Terminal.
  2. Выполните следующие команды:
sudo killall -HUP mDNSResponder
sudo killall mDNSResponderHelper
sudo dscacheutil -flushcache