Я пытаюсь скрыть / скрыть список доменов с помощью привязки. Я думаю, что моя проблема заключается в использовании "Включить" в НЕПРАВИЛЬНОМ месте в конф. Может ли кто-нибудь подтвердить, что строка кода из черного списка находится в нужном месте?
include "/etc/rndc.key";
controls {
inet 127.0.0.1 allow { localhost; } keys { "rndc-key"; };
};
options {
directory "/var/named"; // the default
pid-file "/var/run/named/named.pid";
dump-file "data/cache_dump.db";
statistics-file "data/named_stats.txt";
allow-transfer {"none";};
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view "localhost_resolver" {
include "/var/named/blacklist.zones"; //RIGHT HERE!!!!!!!!!!!!!!
match-clients { 127.0.0.1/32; };
match-destinations { localhost; };
recursion yes;
zone "." IN {
type hint;
file "/var/named/named.ca";
};
include "/var/named/named.rfc1912.zones";
};
view "internal" {
match-clients { localnets; };
match-destinations { localnets; };
recursion yes;
zone "." IN {
type hint;
file "/var/named/named.ca";
};
zone "my.real.domain" {
type master;
file "/var/named/my.real.domain.zone";
};
};
view "external" {
recursion no;
zone "." IN {
type hint;
file "/var/named/named.ca";
};
zone "my.real.domain" {
type master;
file "/var/named/my.real.domain.zone";
};
};
Я мог только запустить именованную службу, поместив ее туда. Журнал показывает, что домены загружены. Черный список просто fw до 127.0.0.1, так что, похоже, это работает. Когда я
dig @ 127.0.0.1 blacklisted.domain
Я получаю успешный ответ, указывающий на 127 .. и настроенный сервер имен. Но когда я
ping blacklisted.domain
он пингует реальный ip, он разрешается через DNS. Может кто-нибудь пролить свет? Я просто хочу заблокировать список доменов от локального доступа. Знаю, я тоже люблю dnsmasq.
Блокировка доменных имен на уровне DNS - плохая идея, см. Этот документ: http://www.afnic.fr/medias/documents/conseilscientifique/SC-consequences-of-DNS-based-Internet-filtering.pdf
Кроме того, смешивать рекурсивные и авторитетные функции в одном экземпляре - плохая идея.
Однако, если вам нужно запустить DNS-сервер, есть специальная функция, поддерживаемая BIND (и некоторые другие серверы имен), называемые RPZ для зон политики ответа.
Видеть https://dnsrpz.info/ все подробности, но вкратце:
Зоны политики ответа службы доменных имен (DNS RPZ) - это метод, который позволяет администратору сервера имен накладывать пользовательскую информацию поверх глобальной DNS для предоставления альтернативных ответов на запросы. В настоящее время он реализован на сервере имен ISC BIND (9.8 или новее). Другое общее название функции DNS RPZ - «DNS firewall».
Специально для BIND выполните поиск в разделе «Перезапись зоны политики ответа (RPZ)» в ftp://ftp.isc.org/isc/bind9/cur/9.11/doc/arm/Bv9ARM.ch06.html
Он предоставит вам этот пример, который будет работать из коробки для ваших нужд, как только вы укажете правильные доменные имена:
Например, вы можете использовать этот оператор option
response-policy { zone "badlist"; };
и это заявление о зоне
zone "badlist" {type master; file "master/badlist"; allow-query {none;}; };
с этим файлом зоны
$TTL 1H
@ SOA LOCALHOST. named-mgr.example.com (1 1h 15m 30d 2h)
NS LOCALHOST.
; QNAME policy records. There are no periods (.) after the owner names.
nxdomain.domain.com CNAME . ; NXDOMAIN policy
Эти 2 строки нужно было добавить в параметры в /etc/ named.conf
listen-on port 53 { 127.0.0.1; "public IP" ; };
forwarders { 9.9.9.9; 8.8.8.8; };
Работает отлично после вышеизложенного.