AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1004550
Accepted
Sebastien Damaye
Sebastien Damaye
Asked: 2020-02-26 11:19:42 +0800 CST2020-02-26 11:19:42 +0800 CST 2020-02-26 11:19:42 +0800 CST

Bind9 中的 ACL 条件区域

  • 772

我正在尝试仅为孩子应用“restrictmoderate.youtube.com”,并让其他人使用 Bind9 访问标准的“youtube.com”。

# cat named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
==========================================================================
# cat named.conf.options 
acl goodclients {
    192.168.0.0/16;
    localhost;
    localnets;
};
acl kids   { 192.168.2.0/24; };
acl adults { 192.168.1.0/24; };

options {
    directory "/var/cache/bind";

    recursion yes;
    allow-query { goodclients; };

    // forward traffic to opendns
    forwarders { 208.67.222.222; 208.67.220.220; };

    forward only;

    dnssec-enable yes;
    dnssec-validation yes;

    // Conform to RFC1035
    auth-nxdomain no;

    // Force youtube.com to restrictmoderate.youtube.com
    response-policy { zone "rpz"; };

    listen-on-v6 { none; };
    querylog yes;
};
==========================================================================
# cat named.conf.local 
//include "/etc/bind/zones.rfc1918";
logging{
    channel simple_log {
        file "/var/log/bind/query.log" versions 3;
        severity info;
        print-time yes;
        print-severity yes;
        print-category yes;
    };
    category default{
        simple_log;
    };
};

zone "rpz" IN {
    type master;
    file "/etc/bind/rpdb.zone";
    allow-query { kids; !adults; };
};
==========================================================================
# cat rpdb.zone 
$ORIGIN rpz.
$TTL 1H
@       IN       SOA       localhost. root.localhost. (
                           7
                           1H
                           15m
                           30d
                           2h )
                           NS LOCALHOST.

www.youtube.com           IN CNAME restrictmoderate.youtube.com.
m.youtube.com             IN CNAME restrictmoderate.youtube.com.
youtubei.googleapis.com   IN CNAME restrictmoderate.youtube.com.
youtube.googleapis.com    IN CNAME restrictmoderate.youtube.com.
www.youtube-nocookie.com  IN CNAME restrictmoderate.youtube.com.
google.com                IN CNAME forcesafesearch.google.com.
www.google.com            IN CNAME forcesafesearch.google.com.

我不明白为什么“rpz”区域适用于所有人(192.168.1.0/24 和 192.168.2.0/24),而我希望它只适用于“儿童”ACL(192.168.2.0/24) :

allow-query { kids; !adults; };

我究竟做错了什么?谢谢你的帮助。

bind access-control-list dns-zone restrictions named-conf
  • 1 1 个回答
  • 3189 Views

1 个回答

  • Voted
  1. Best Answer
    Brandon Xavier
    2020-02-26T14:42:58+08:002020-02-26T14:42:58+08:00

    RPZ 区域不是传统的 DNS 区域,并且该allow-query指令的行为与您通常期望的不同。它主要用于限制复制。来自https://www.zytrax.com/books/dns/ch7/rpz.html:

    RPZ 区域可能会被查询(如果一个 master 只能由一个 slave 读取它的 SOA RR,如果是一个 slave,则从不)

    . . .

    如上所述,RPZ 主站只需要被有效的从站查询以读取其 SOA RR(用于区域传输操作)。列出所有从属服务器或引用 ACL 子句的允许查询语句是合适的。根本不需要查询 RPZ 从站。允许查询 {none;}; 声明适合实现这一点。

    您最好的方法可能是使用您的 ACL 来实现视图(不缺少指南和操作方法),而 rpz 区域仅位于“儿童”视图中。此外,您可能需要考虑像这样重写您的 ACL 以获得相同的效果{ kids; !adults; }(或添加“其他”ACL 以捕获不在您列出的 2 个子网中的所有内容):

    acl adults { 192.168.1.0/24; 127.0.0.1; };
    acl kids   { !adults; };
    

    完全取决于你。

    祝你好运!

    • 1

相关问题

  • 配置仅在短时间内缓存的本地 DNS 解析器

  • BIND 服务器无法解析 us3.php.net!

  • DNS - 有什么方法可以强制名称服务器更新域的记录?

  • BIND/Named:禁用递归,客户端使用替代服务器

  • DR 站点中 Windows 域的 BIND

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve