Назад | Перейти на главную страницу

Как заблокировать домены с помощью Bind / Named для локальной защиты?

Я пытаюсь скрыть / скрыть список доменов с помощью привязки. Я думаю, что моя проблема заключается в использовании "Включить" в НЕПРАВИЛЬНОМ месте в конф. Может ли кто-нибудь подтвердить, что строка кода из черного списка находится в нужном месте?

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; };

Работает отлично после вышеизложенного.

  • Я специально просил главный файл конфигурации. Все остальное я уже сделал Патрик.