Unbound是一个验证、递归、缓存的DNS解析器。它快捷精巧,并融合了基于开放标准的现代功能。
从OPNsense 17.7开始,它已成为OPNsense标准DNS服务,默认情况下会在新安装时启用该服务。
常规设置
导航到”服务>Unbound DNS>常规”菜单部分,有以下的相关设置。
启用 | 启用DNS解析器 |
侦听端口 | 要监听的端口,如果为空,则使用默认值(53)。 |
网络接口 | 用于响应客户端查询的接口。如果接口同时具有IPv4和IPv6 IP,则将两者都使用。对未选择的其他接口的查询将被丢弃。默认行为是响应每个可用的IPv4和IPv6地址上的查询。 |
DNSSEC | 使DNSSEC 能够使用数字签名来验证上游服务器的结果并减轻缓存中毒的风险。 |
DNS64 | 启用DNS64, 以便让只有IPv6地址的客户端可以访问IPv4地址的服务器。如果启用,则Unbound会为仅具有A记录的域合成AAAA记录。DNS64需要NAT64才有用,例如Tayga插件或第三方NAT64服务。DNS64前缀必须与用作NAT64的IPv6前缀匹配。 |
DHCP注册 | 只对IPv4有效。如果设置了此选项,则在请求DHCP租约时指定其主机名的计算机将在“Unbound”中注册,以便可以解析其名称。
数据的来源是dhcpd.leases文件中的客户端主机名。 |
DHCP域覆盖 | 当上述注册不应该使用此防火墙上配置的相同域名时,可以在此处指定其他域名。 |
DHCP静态映射 | 注册静态dhcpd条目,以便客户端可以对其解析。支持IPv4和IPv6。 |
IPv6链接本地 | 注册IPv6的链接本地地址。 |
TXT记录支持 | 如果设置了此选项,则与主机条目和DHCP静态映射相关联的任何描述将创建相应的文本记录。 |
DNS查询转发 | 将查询转发到 | 配置的域名
本地区域类型 | 用于系统域的本地区域类型。类型说明在unbound.conf(5) 手册页的“ local-zone”中提供 。默认为“transparent”。 |
注意:必须小心将“DNS查询转发”和”DNSSEC”结合使用,当上游服务器不支持DNSSEC时,由于无法执行DNSSEC验证,因此其回复将被认为是不安全的。
为了使客户端查询Unbound,需要在
分配一个ACL 。配置的接口应自动获得ACL。如果客户端地址不在任何预定义的网络中,请手动添加一个。覆盖
在覆盖部分,你可以创建单独的主机自定义条目,并指定是否将对特定域的查询转发到预定义的服务器。
主机覆盖设置
主机 | 主机名称,不包含域部分。使用“*”创建通配符条目。 |
域 | 主机的域(例如example.com) |
类型 | 记录类型,A或AAA(IPv4或IPv6地址),MX定义邮件交换 |
IP | 主机地址 |
描述 | 用户可读的描述,仅供参考 |
别名 | 以上数据在不同主机上的副本 |
域覆盖设置
域 | 要覆盖的域 |
IP地址 | 该域的权威DNS服务器的IP地址 |
描述 | 用户可读的描述,仅供参考 |
高级
对于一般用户,默认设置对于大多数设置而言是合理的,但是有些设置需要更多调整或需要设置特定的选项。
隐藏身份 | 如果启用,则拒绝id.server和hostname.bind查询。 |
隐藏版本 | 如果启用,则拒绝version.server和version.bind查询。 |
预取支持 | 消息缓存元素在过期之前预取,以帮助使缓存保持最新。如果启用此选项,则会导致服务器上的DNS流量和负载增加约10%,但频繁请求的项不会从缓存中过期 |
预取DNS密钥支持 | 当遇到委托签署人时,在验证过程中较早获取DNSKEY。 这有助于降低请求的延迟,但可能占用更多的CPU。 |
强化DNSSEC数据 | 信任锚定区域需要DNSSEC数据。如果没有这样的数据,这个专区就会变成伪造的。如果禁用了此功能,并且没有接收到DNSSEC数据,则该区域是不安全的。 |
服务过期响应 | 从TTL为0的缓存中获取过期的响应,而无需等待实际的解析完成。 |
消息缓存大小 | 消息缓存的大小。 消息缓存存储DNS rcodes和验证状态。 RRSet缓存将自动设置为此数量的两倍。 RRSet缓存包含实际的RR数据。 默认值为4 MB。 |
出站TCP缓冲区 | 要为每个线程分配的出站TCP缓冲区数。 默认值为10。如果选择0,则不会对认证服务器进行TCP查询。 |
入站的TCP缓冲区 | 每个线程分配的入站TCP缓冲区数。 默认值为10。如果选择0,则不接受来自客户端的TCP查询。 |
每个线程的查询数 | 每个线程将同时服务的查询数。如果有更多的查询需要服务,并且没有查询可以竞争,那么这些查询将被删除 |
拥堵超时 | 在服务器非常繁忙时,这可以防止过慢或过多查询导致的拒绝服务。 默认值为200毫秒。 |
RRset和消息的最小TTL | 在缓存中为RRset和消息配置最大生存时间。默认值为86400秒(1天)。当内部TTL过期时,缓存项也会过期。可以将其配置为强制解析器更频繁地查询数据,并且不信任(很大)TTL值。 |
RRset和消息的最小TTL | 为缓存中的rrset和消息配置最短生存时间。默认为0秒。如果出现最小值,则缓存数据的时间将超过域所有者的预期,从而减少查询数据的次数。0值确保缓存中的数据符合域所有者的意图。高值可能会导致问题,因为缓存中的数据可能不再与实际数据匹配。 |
主机缓存条目的TTL | 主机缓存中的条目生存时间。主机缓存包含往返计时和EDNS支持信息。默认值为15分钟。 |
要缓存的主机数 | 为其缓存信息的主机数。默认值为10000。 |
无需应答阈值 | 如果启用,在每个线程中跟踪不需要应答的总数。当到达阈值时,将采取防御操作,并将警告打印到日志文件中。这个防御动作是为了清除RRSet和消息缓存,希望能够清除任何有害信息。默认值是禁用的,但如果启用,建议值为1,000万。 |
日志层级 | 选择日志详细程度。 0级意味着最精简,只记录错误。 1级记录操作信息。 2级记录详细的操作信息。3级提供查询级别信息,记录每个查询的输出。4级给出算法级别信息。5级记录缓存未命中客户端标识。默认为1级。 |
访问列表
访问列表定义哪些客户端可以查询dns解析器。分配接口的记录将自动创建,并显示在概述中。还可以定义自定义策略,将策略应用于预定义的网络。
注意:该动作可以在下面的列表中定义。如果不使用拒绝匹配,则使用最特定的网络范围进行匹配。因此,访问控制语句的顺序无关紧要。
操作
Deny | 该操作将停止来自已定义网络内主机的查询。 |
Refuse | 此操作停止来自已定义网络内主机的查询,且会将DNS rcode REFUSED错误消息发送回客户端。 |
Allow | 此操作允许来自已定义网络内主机的查询。 |
Allow Snoop | 此操作允许从定义的网络内的主机进行递归和非递归访问。用于高速缓存侦听,理想情况下,应该只为你的管理主机配置。 |
Deny Non-local | 仅允许从定义的网络内的主机进行权威的本地数据查询。不允许的消息将被丢弃。 |
Refuse Non-local | 仅允许从定义的网络内的主机进行权威的本地数据查询。并将DNS rcode REFUSED错误消息发送回客户端,以获取不被允许的消息。 |
黑名单
使用预定义来源或自定义列表来启用集成的dns黑名单。
启用 | 启用黑名单 |
DNSBL类型 | 预定义的外部来源 |
黑名单网址 | 要从中下载黑名单的其他http [s]位置,仅支持包含fqdn列表(例如my.evil.domain.com )的纯文本文件。 |
白名单域名 | 当黑名单项目包含在此列表中定义的模式时,其结果将被忽略。例如.*\.nl 将排除所有.nl域 |
当使用任何DNSBL类型时,将直接从其原始来源获取内容,以便更好地了解列表的来源,下面编译了包含对列表维护者的引用的列表。
预定义来源
注意:为了按时间间隔自动更新列表,还需要添加cron任务,转到“
,添加一个“Download Unbound DNSBLs and restart”新任务即可。统计
统计信息页面提供了有关正在运行的服务器的一些信息,例如执行的查询数,缓存使用率和正常运行时间。
你好,如果我的透明墙想使用Unbound DNS,是不是在终端的DNS指定我的防火墙IP即可?
是