我正在尝试使用 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; };
完成上述操作后即可完美运行。
- 我特别想问的是主配置文件。其余的我都已经完成了帕特里克。