Я запускаю BIND для тестирования, и вот часть моего RPZ:
example.com В CNAME . ; локальный блок против example.com
*.example.com В CNAME . ; локальный блок против example.com
Когда я запрашиваю пример.com
он успешно заблокирован:
копать @ 127.0.0.1 example.com
;; ->>HEADER<<- код операции: QUERY, статус: NXDOMAIN, идентификатор: 28108
;; флаги: qr rd ra; ЗАПРОС: 1, ОТВЕТ: 0, АВТОРИТЕТ: 0, ДОПОЛНИТЕЛЬНО: 2
;; ДОПОЛНИТЕЛЬНЫЙ ПСЕВДОРАЗДЕЛ:
; ЭДНС: версия: 0, флаги:; УДП: 1232
;; РАЗДЕЛ ВОПРОСОВ:
;example.com. В
;; ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ:
rpz.local. 1 IN SOA на локальном хосте. нужно.только.знать. 201702121 60 60 432000 60
но без рекурсии он проходит:
копать @127.0.0.1 example.com +norecurse
;; ->>HEADER<<- код операции: QUERY, статус: NOERROR, id: 59121
;; флаги: qr ra ad; ЗАПРОС: 1, ОТВЕТ: 1, ПОЛНОМОЧИЯ: 0, ДОПОЛНИТЕЛЬНО: 1
;; ДОПОЛНИТЕЛЬНЫЙ ПСЕВДОРАЗДЕЛ:
; ЭДНС: версия: 0, флаги:; УДП: 1232
;; РАЗДЕЛ ВОПРОСОВ:
;example.com. В
;; РАЗДЕЛ ОТВЕТОВ:
пример.com. 17130 В А 93.184.216.34
Я так понимаю никакая рекурсия не обслуживает то что в кеше, но почему она не применяет РПЗ для блокировки домена?
Кроме того, почему запрос вообще разрешается? не должен ли он блокировать DNS-запрос в начале, поскольку домен соответствует RPZ и возвращается как можно быстрее?
я вижу PowerDNS оптимизировал вещь чтобы избежать разрешения запроса, если это необходимо:
Для этого потребуется отложить оценку политик RPZ до тех пор, пока не будет завершен весь процесс разрешения, что может означать, что запросы уже могли быть отправлены на вредоносный сервер имен в дополнение к проблемам с производительностью.
Мне очень интересно узнать причину и есть ли способ заблокировать запрос перед разрешение.