鐵血男兒的BLOG

pfSense、OPNsense防火墙技术交流

鐵血男兒的BLOG

OPNsense用户手册-Unbound DNS

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,需要在服务‣Unbound DNS‣访问列表中分配一个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”新任务即可。

统计

统计信息页面提供了有关正在运行的服务器的一些信息,例如执行的查询数,缓存使用率和正常运行时间。

发表评论

您的电子邮箱地址不会被公开。