标签: bind

ubuntu bind9 AppArmor 读取权限被拒绝(chroot 监狱)

我正在尝试使用 chroot监狱运行bind9。我按照以下提到的步骤进行操作:http://www.howtoforge.com/debian_bind9_master_slave_system

我的系统日志中出现以下错误:

Jul 27 16:53:49 conf002 named[3988]: starting BIND 9.7.3 -u bind -t /var/lib/named
Jul 27 16:53:49 conf002 named[3988]: built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-dlz-postgres=no' '--with-dlz-mysql=no' '--with-dlz-bdb=yes' '--with-dlz-filesystem=yes' '--with-dlz-ldap=yes' '--with-dlz-stub=yes' '--with-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions' 'CPPFLAGS='
Jul 27 16:53:49 conf002 named[3988]: adjusted limit on open files from 4096 to 1048576
Jul 27 16:53:49 conf002 named[3988]: found 4 CPUs, using 4 worker threads
Jul 27 16:53:49 conf002 named[3988]: …
Run Code Online (Sandbox Code Playgroud)

ubuntu bind chroot

4
推荐指数
1
解决办法
2万
查看次数

大型命名.run 文件

我的服务器中有这个大的named.run 文件。

发现它只是一个日志,删除它是安全的。

有些人建议对其运行 logrotate,但我想知道是否可以配置大小的最大限制或根本不生成?

bind

4
推荐指数
1
解决办法
7503
查看次数

升级到 Debian Jessie 后 BIND SERVFAIL

我对 BIND 配置完全没有做任何事情,但看起来Debian Jessie升级已经破坏了它。也许引入了一些新选项,或者旧的功能现在以不同的方式工作,但我找不到问题所在。

我一直都SERVFAIL在我的身边。/var/log/bind/bind.log

我检查了我的区域named-checkzone,它们都“正常”。我已在系统范围内禁用 IPv6。我重新创建了rndckey 甚至创建了/etc/rndc.conf. 什么都不起作用。

以下是一些配置:

/etc/bind/named.conf

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.log";
include "/etc/bind/named.conf.local";
//include "/etc/bind/named.conf.default-zones";

acl localhost_acl {
        127.0.0.0/8;
};

acl internal_10_acl {
        192.168.10.0/24;
};

acl internal_150_acl {
        192.168.150.0/24;
};

acl vpn_acl {
        192.168.200.2;
        192.168.200.5;
};

key "rndc-key" {
algorithm hmac-md5;
secret "somesecretkey==";
};

controls {
inet 127.0.0.1 port 953
       allow { 127.0.0.1; } keys { "rndc-key"; };
};
Run Code Online (Sandbox Code Playgroud)

/etc/bind/named.conf.options

options {
        directory "/var/cache/bind";
        dnssec-validation …
Run Code Online (Sandbox Code Playgroud)

domain-name-system linux debian bind dns-zone

4
推荐指数
1
解决办法
3086
查看次数

getaddrinfo() 的 Glibc 错误缓解

今天遇到了glibc的漏洞利用,其中涉及用于 DNS 解析的 getaddrinfo() 调用。我在两个面向互联网的 Bind9 机器上运行 Ubuntu 12.04。我不确定我是否完全理解这个漏洞,但它似乎是由来自恶意 DNS 服务器的大量回复引起的。缓解措施之一是“丢弃 UDP DNS 数据包 > 512 字节的防火墙”,因此我在 DNS 服务器上配置了 netfilter 以丢弃来自或前往端口 53 的任何 UDP > 512 字节: -A INPUT -i lo -j ACCEPT -A INPUT -p udp --sport 53 -m length --length 511:65535 -j DROP -A INPUT -p udp --dport 53 -m length --length 511:65535 -j DROP -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

有没有更好的方法来使用绑定设置或任何东西来做到这一点?我已经用 scapy 测试了规则,它确实阻止了在端口 53 上抛出的 UDP 数据包 > 512。

根据回复更新: -A …

security linux bind dns-hosting

4
推荐指数
1
解决办法
1691
查看次数

PowerDNS 和 Bind9 之间的区域传输

尝试将完整区域从 PowerDNS 服务器传输到 Bind9 服务器时遇到问题。奇怪的是,PowerDNS 服务器上有多个区域作为隐藏主服务器(带有 MySQL 后端),但只有一个区域无法传输到 Bind9 服务器。

两台服务器运行的是 Ubuntu 16.04 LTS。和:

  • Bind9 版本 = 9.10.3.dfsg.P4-8ubuntu1
  • PowerDNS 版本 = 4.0.0~alpha2-3build1

Bind9 从属区域配置如下:

zone "example.net" {
    type slave;
    file "/var/lib/bind/slaves/db.example.net";
    masters {
          10.0.0.1;
    };
};
Run Code Online (Sandbox Code Playgroud)

PowerDNS 的 DNS 区域是:

% sudo pdnsutil show-zone example.net
This is a Master zone
Last SOA serial number we notified: 2016050801 == 2016050801 (serial in the database)
Zone is not actively secured
Metadata items: None
No keys for zone 'example.net.'.

% sudo pdnsutil list-zone …
Run Code Online (Sandbox Code Playgroud)

domain-name-system ubuntu bind powerdns

4
推荐指数
1
解决办法
6727
查看次数

绑定 dns 条目不从主更新到从

我有一个主从绑定 dns 设置。如果我从从属设备中删除区域文件,然后重新启动服务。该文件正在复制。

但是当我在 master 上更新区域文件中的条目时,它不会在 slave 中更新。

每当我更新主区域文件时,我是否需要删除 Slave 上的文件?

这是我的配置:

主配置:

options {
    listen-on port 53 { 127.0.0.1; 10.10.10.11;};
    listen-on-v6 port 53 { ::1; };
    directory   "/var/named";
    dump-file   "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query     { localhost; 10.10.0.0/16; };
        allow-transfer {localhost; 10.10.10.12;};
    notify yes;
    recursion yes;

    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;
    bindkeys-file "/etc/named.iscdlv.key";

    managed-keys-directory "/var/named/dynamic";

    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";

        forwarders {
                8.8.8.8;
                8.8.4.4;
        };
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." …
Run Code Online (Sandbox Code Playgroud)

domain-name-system linux bind centos

4
推荐指数
1
解决办法
9648
查看次数

打印 BIND9 默认配置

Postfix 有命令postconf打印整个 Postfix 配置,包括其默认值(也可以使用-d选项显示默认值)。

Samba 有一个类似的命令,它打印整个配置文件,包括其默认值:testparm -v

但是,我找不到类似的命令来打印整个配置 BIND 文件,包括其默认值。我知道我可以在BIND9 配置参考ARM 的第 6 章)中查找默认值,但这很乏味,而且在浏览网页时不容易发现默认值。BIND 是否存在此选项?

bind defaults

4
推荐指数
1
解决办法
1887
查看次数

命名不提供 letencrypt TXT 记录

我正在尝试使用 DNS 身份验证更新/创建 letencrypt 证书:

certbot-auto -d xxx.it -d mail.xxx.it --manual --preferred-challenges dns certonly
Run Code Online (Sandbox Code Playgroud)

但是,在插入请求的记录后:

Please deploy a DNS TXT record under the name
_acme-challenge.mail.xxx.it with the following value:

yB_EQ-wiB0NzNUVwiyfiabeIOqIXx3fWKiia1uHGesE

Before continuing, verify the record is deployed.
Run Code Online (Sandbox Code Playgroud)

挑战失败。

确实,如果我尝试:

$ dig_acme-challenge.mail.xxx.it TXT
Run Code Online (Sandbox Code Playgroud)

尽管区域文件包含记录,但请求也会失败:

 # fgrep TXT /var/named/chroot/var/named/master/xxx.it
 acme-challenge.mail.xxx.it IN  TXT     "yB_EQ-wiB0NzNUVwiyfiabeIOqIXx3fWKiia1uHGesE"
Run Code Online (Sandbox Code Playgroud)

我假设 BIND (bind-9.8.2-0.62.rc1.el6_9.4.x86_64) 以某种方式拒绝提供带有前导下划线的记录,但文档/谷歌没有帮助。

有任何想法吗?

编辑正如下面的答案所指出的,区域记录中的主机部分需要有一个尾随点或将域部分剥离。照顾好你复制和粘贴。

bind lets-encrypt

4
推荐指数
1
解决办法
7710
查看次数

从内部网络和外部网络解析时如何使域解析为不同的IP?

所以我查看了 BIND 和 Dnsmasq 并无法弄清楚这一点。

我在 DigitalOcean 上有几台服务器,它们位于同一个数据中心。我希望能够使用内部 IP 来获得更好的内部网络 ping 和(显然,免费的专用网络流量)。给定以下两台服务器:

Name   Public IP          Private IP
srv1   192.0.2.1          10.10.10.1
srv2   198.51.100.2       10.10.10.2
Run Code Online (Sandbox Code Playgroud)

从外部网络挖掘时(比如我的笔记本电脑),我想要这样的东西

account.codingblocks.com. 79    IN  CNAME   srv2.cb.lk.
srv2.cb.lk.               85844 IN  A       198.51.100.2
Run Code Online (Sandbox Code Playgroud)

从 srv1 内部挖掘时,我想要这个

account.codingblocks.com. 79    IN  CNAME   srv2.cb.lk.
srv2.cb.lk.               85844 IN  A       10.10.10.2
Run Code Online (Sandbox Code Playgroud)

这可能吗 ?如果是,如何。

domain-name-system bind nameserver dnsmasq digital-ocean

4
推荐指数
1
解决办法
2108
查看次数

如何设置 BIND DNS 服务器以响应单个 IP 地址对 Windows 上的任何请求?

我想配置一个 BIND DNS 服务器(因为 Windows Web Server 2008 没有 DNS 服务,所以我必须安装 BIND)它用一个A record. 我已经建立了一个*记录,但它似乎只适用于服务器的直接子域。我的意思是subdomain.xyz.com会得到正确的回应,但subdomain2.subdomain1.xyz.com不是。我可能已经搞砸了配置文件,因为之前刚刚使用过 MS DNS。

您能告诉我如何从一开始就配置 BIND 以使用恒定 IP 地址解析每个请求的地址吗?

domain-name-system windows-server-2008 bind a-record

3
推荐指数
1
解决办法
4058
查看次数