我正在尝试使用 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) 我对 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) 今天遇到了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 …
尝试将完整区域从 PowerDNS 服务器传输到 Bind9 服务器时遇到问题。奇怪的是,PowerDNS 服务器上有多个区域作为隐藏主服务器(带有 MySQL 后端),但只有一个区域无法传输到 Bind9 服务器。
两台服务器运行的是 Ubuntu 16.04 LTS。和:
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) 我有一个主从绑定 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) Postfix 有命令postconf打印整个 Postfix 配置,包括其默认值(也可以使用-d选项显示默认值)。
Samba 有一个类似的命令,它打印整个配置文件,包括其默认值:testparm -v。
但是,我找不到类似的命令来打印整个配置 BIND 文件,包括其默认值。我知道我可以在BIND9 配置参考(ARM 的第 6 章)中查找默认值,但这很乏味,而且在浏览网页时不容易发现默认值。BIND 是否存在此选项?
我正在尝试使用 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 和 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)
这可能吗 ?如果是,如何。
我想配置一个 BIND DNS 服务器(因为 Windows Web Server 2008 没有 DNS 服务,所以我必须安装 BIND)它用一个A record. 我已经建立了一个*记录,但它似乎只适用于服务器的直接子域。我的意思是subdomain.xyz.com会得到正确的回应,但subdomain2.subdomain1.xyz.com不是。我可能已经搞砸了配置文件,因为之前刚刚使用过 MS DNS。
您能告诉我如何从一开始就配置 BIND 以使用恒定 IP 地址解析每个请求的地址吗?
bind ×10
linux ×3
ubuntu ×2
a-record ×1
centos ×1
chroot ×1
debian ×1
defaults ×1
dns-hosting ×1
dns-zone ×1
dnsmasq ×1
lets-encrypt ×1
nameserver ×1
powerdns ×1
security ×1