如何使用 Bind/Named 阻止域以进行本地保护?

如何使用 Bind/Named 阻止域以进行本地保护?

我正在尝试使用 bind 来隐藏/黑洞一个域列表。我认为我的问题是在配置文件中错误的位置使用了“Include”。有人能确认黑名单代码行是否在正确的位置吗?

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

};

我只能通过将其放在那里来启动命名服务。日志显示域已加载。黑名单只需转发到 127.0.0.1,所以这似乎有效。当我

dig @127.0.0.1 blacklisted.domain

我得到了成功的答案,指向 127 .. 和配置的名称服务器。但是当我

ping blacklisted.domain

它 ping 真实 IP,通过 DNS 进行解析。有人能解释一下吗?我只是想阻止本地访问的域列表。我知道,我也喜欢 dnsmasq。

答案1

在 DNS 级别阻止域名是一个坏主意,请参阅此文档:http://www.afnic.fr/medias/documents/conseilscientifique/SC-consequences-of-DNS-based-Internet-filtering.pdf

此外,在同一个实例中混合递归函数和权威函数也不是一个好主意。

但是,如果你需要进行 DNS 防火墙,则有一个特定功能支持绑定(以及一些其他名称服务器),称为 RPZ(响应策略区域)。

https://dnsrpz.info/详细信息简而言之:

域名服务响应策略区域 (DNS RPZ) 是一种允许名称服务器管理员将自定义信息叠加到全局 DNS 之上以提供查询替代响应的方法。它目前在 ISC BIND 名称服务器(9.8 或更高版本)中实现。DNS RPZ 功能的另一个通用名称是“DNS 防火墙”。

尤其是绑定在以下位置搜索“响应策略区域 (RPZ) 重写”部分ftp://ftp.isc.org/isc/bind9/cur/9.11/doc/arm/Bv9ARM.ch06.html

只要您输入正确的域名,它就会为您提供这个可以满足您需求的示例:

例如,您可以使用此选项语句

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

完成上述操作后即可完美运行。

  • 我特别想问的是主配置文件。其余的我都已经完成了帕特里克

相关内容