原来的
我在运行Ubuntu服务器的家用路由器上设置了复杂的DNS。我的目标是能够
dnscrypt-proxy
适用于大多数查找。对于某些域(我知道的一些域),我不知道的许多域,以及某些特定域之外的域,我的ISP用虚假地址毒害了查找,从而导致黑洞流量。我希望这是默认的DNS查找服务器为了实现这些目标,我必须实施的解决方案是,
unbound
作为我的LAN的主要DNS服务器,用于缓存查找,积极保留该缓存,并将地址转发到相关的DNS服务器以解决缓存未命中dnscrypt-proxy
对127.0.2.1:53
作为forward-addr
用于"."
在未绑定bind
在192.168.1.1:40
权威的为我的本地域名只isc-dhcp-server
用于分发IP地址以及插入正向和反向查找。我已经实现了大部分目标。除了在我的LAN上对非静态主机进行正向/反向查找之外,因此不愿进行重大更改。
我怀疑是isc-dhcp-server
向发送DDNS更新unbound
,但不知道该怎么做。即使我希望我的客户端使用DNS服务器,还是要求知道如何将DDNS更新转发isc-dhcp-server
到192.168.1.1:40
,我如何要求将其发送到?bind
192.168.1.1:53
unbound
unbound
bind
错误消息示例
Sep 29 08:01:10 ubuntu dhcpd[7057]: DHCPREQUEST for 192.168.1.101 from 28:18:78:7c:d5:a1 (Xbox-SystemOS) via enp2s0
Sep 29 08:01:10 ubuntu dhcpd[7057]: DHCPACK on 192.168.1.101 to 28:18:78:7c:d5:a1 (Xbox-SystemOS) via enp2s0
Sep 29 08:01:22 ubuntu dhcpd[7057]: Unable to add forward map from Xbox-SystemOS.mydomain.ddns.net. to 192.168.1.101: timed out
相关行 dhcpd.conf
ddns-updates on;
ddns-update-style interim;
key rndc-key { algorithm hmac-md5; secret MIND_YOUR_BUSINESS; }
subnet ...... {
....
option domain-name-servers 192.168.1.1;
...
ddns-domainname "mydomain.ddns.net.";
ddns-rev-domainname "in-addr.arpa.";
}
来自的相关行 /etc/bind/named.conf.local
zone "mydomain.ddns.net" {
type master;
file "/etc/bind/zones/db.mydomain.ddns.net"; # Zone file path
allow-update { key rndc-key; }; # allow for dynamic updates
};
zone "168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.192.168"; # 192.168.0.0/16 subnet
allow-update { key rndc-key; }; # allow for dynamic updates
};
更新1
深入dhcpd.conf
研究后,我得出的结论是,我无法在其中指定绑定服务器的端口号。但是,有一个神奇的选项名为ddns-local-address4
,它允许我为DDNS指定与DDNS不同的服务器IP地址domain-name-server option
。
我将绑定更改为侦听127.0.0.1
,这在很大程度上可以工作(至少bind现在正在接收更新)。但是,它在权限上出现了问题。
Sep 29 19:21:40 ubuntu named[31415]: client 127.0.0.1#2824/key rndc-key: signer "rndc-key" approved
Sep 29 19:21:40 ubuntu named[31415]: client 127.0.0.1#2824/key rndc-key: updating zone 'mydomain.ddns.net/IN': adding an RR at 'iPhone.mydomain.ddns.net' A 192.168.1.104
Sep 29 19:21:40 ubuntu named[31415]: client 127.0.0.1#2824/key rndc-key: updating zone 'mydomain.ddns.net/IN': adding an RR at 'iPhone.mydomain.ddns.net' TXT "316a52934f2adcaf4c95004e870a4c0f70"
Sep 29 19:21:40 ubuntu named[31415]: /etc/bind/zones/db.mydomain.ddns.net.jnl: open: permission denied
Sep 29 19:21:40 ubuntu named[31415]: client 127.0.0.1#2824/key rndc-key: updating zone 'mydomain.ddns.net/IN': error: journal open failed: unexpected error
Sep 29 19:21:40 ubuntu kernel: [212079.779512] audit: type=1400 audit(1475148100.710:25): apparmor="DENIED" operation="open" profile="/usr/sbin/named" name="/etc/bind/zones/db.mydomain.ddns.net.jnl" pid=31419 comm="named" requested_mask="w" denied_mask="w" fsuid=110 ouid=0
但是,我试图给予绑定足够的权限来更新该文件的最佳尝试不起作用。是什么赋予了?
ps aux | grep named
bind 31415 0.0 0.2 429564 19572 ? Ssl 19:10 0:00 /usr/sbin/named -f -u bind
ls -la /etc/bind/zones
total 16
drwxrwsr-x 2 root bind 4096 Sep 29 19:21 .
drwxr-sr-x 3 root bind 4096 Sep 29 19:07 ..
-rw-r--r-- 1 root bind 340 Sep 28 08:01 db.192.168
-rw-r--r-- 1 root bind 514 Sep 27 07:40 db.mydomain.ddns.net
-rw-rw-r-- 1 bind bind 0 Sep 29 19:21 db.mydomain.ddns.net.jnl
更新2
我已将我的apparmor个人资料修改为named,并且我不再遇到权限错误。
当我bind
直接查询127.0.0.1时,一切正常。
但是,当我通过进行查询时ubuntu
,它无法将查询bind
正确转发到。
我现在在做什么错?
从 unbound.conf
local-zone: "1.168.192.in-addr.arpa." nodefault
local-zone: "168.192.in-addr.arpa." nodefault
stub-zone:
name: "168.192.inaddr.arpa."
stub-addr: 127.0.0.1
stub-zone:
name: "1.168.192.inaddr.arpa."
stub-addr: 127.0.0.1
stub-zone:
name: "mydomain.ddns.net."
stub-addr: 127.0.0.1
还有一个其他文件/etc/unbound/unbound.d/
正在破坏的分辨率mydomain.ddns.net.
。删除文件后,此问题得以解决。
最终设置
dnscrypt-proxy
听127.0.2.1
。bind
听127.0.0.1
。unbound
监听192.168.1.1
,转发mydomain.ddns.net
到bind
使用stub-zone
语句的问题,有一个默认的期待dnscrypt-proxy
。isc-server-dhcp
bind
使用中的ddns*
选项更新dhcpd.conf
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句