标签 DNS 下的文章

现代计算机用来在互联网种查找资源的 域名系统(DNS) 是在 35 年前设计的,没有考虑用户隐私。它会面临安全风险和攻击,例如 DNS 劫持。它还能让 ISP 拦截查询。

幸运的是,现在有 DNS over TLSDNSSEC 两种技术。DNS over TLS 和 DNSSEC 允许创建从计算机到它配置的 DNS 服务器之间的安全且加密的端到端隧道。在 Fedora 上,部署这些技术的步骤很容易,并且所有必要的工具也很容易获得。

本指南将演示如何使用 systemd-resolved 在 Fedora 上配置 DNS over TLS。有关 systemd-resolved 服务的更多信息,请参见文档

步骤 1:设置 systemd-resolved

类似于下面所示修改 /etc/systemd/resolved.conf。确保启用 DNS over TLS 并配置要使用的 DNS 服务器的 IP 地址。

$ cat /etc/systemd/resolved.conf
[Resolve]
DNS=1.1.1.1 9.9.9.9
DNSOverTLS=yes
DNSSEC=yes
FallbackDNS=8.8.8.8 1.0.0.1 8.8.4.4
#Domains=~.
#LLMNR=yes
#MulticastDNS=yes
#Cache=yes
#DNSStubListener=yes
#ReadEtcHosts=yes

关于选项的简要说明:

  • DNS:以空格分隔的 IPv4 和 IPv6 地址列表,用作系统 DNS 服务器。
  • FallbackDNS:以空格分隔的 IPv4 和 IPv6 地址列表,用作后备 DNS 服务器。
  • Domains:在解析单标签主机名时,这些域名用于搜索后缀。 ~. 代表对于所有域名,优先使用 DNS= 定义的系统 DNS 服务器。
  • DNSOverTLS:如果启用,那么将加密与服务器的所有连接。请注意,此模式要求 DNS 服务器支持 DNS-over-TLS,并具有其 IP 的有效证书。
注意:上面示例中列出的 DNS 服务器是我个人的选择。你要确定要使用的 DNS 服务器。要注意你要向谁请求 IP。

步骤 2:告诉 NetworkManager 将信息推给 systemd-resolved

/etc/NetworkManager/conf.d 中创建一个名为 10-dns-systemd-resolved.conf 的文件。

$ cat /etc/NetworkManager/conf.d/10-dns-systemd-resolved.conf
[main]
dns=systemd-resolved

上面的设置(dns=systemd-resolved)让 NetworkManager 将从 DHCP 获得的 DNS 信息推送到 systemd-resolved 服务。这将覆盖步骤 1 中配置的 DNS 设置。这在受信任的网络中没问题,但是也可以设置为 dns=none 从而使用 /etc/systemd/resolved.conf 中配置的 DNS 服务器。

步骤 3: 启动和重启服务

若要使上述步骤中的配置生效,请启动并启用 systemd-resolved 服务。然后重启 NetworkManager 服务。

注意:在 NetworkManager 重启时,连接会中断几秒钟。

$ sudo systemctl start systemd-resolved
$ sudo systemctl enable systemd-resolved
$ sudo systemctl restart NetworkManager
注意:目前,systemd-resolved 服务默认处于禁用状态,是可选使用的。有计划在 Fedora 33 中默认启用systemd-resolved。

步骤 4:检查是否一切正常

现在,你应该在使用 DNS over TLS。检查 DNS 解析状态来确认这一点:

$ resolvectl status
MulticastDNS setting: yes
  DNSOverTLS setting: yes
      DNSSEC setting: yes
    DNSSEC supported: yes
  Current DNS Server: 1.1.1.1
         DNS Servers: 1.1.1.1
                      9.9.9.9
Fallback DNS Servers: 8.8.8.8
                      1.0.0.1
                      8.8.4.4

/etc/resolv.conf 应该指向 127.0.0.53

$ cat /etc/resolv.conf
# Generated by NetworkManager
search lan
nameserver 127.0.0.53

若要查看 systemd-resolved 发送和接收安全查询的地址和端口,请运行:

$ sudo ss -lntp | grep '\(State\|:53 \)'
State     Recv-Q    Send-Q       Local Address:Port        Peer Address:Port    Process
LISTEN    0         4096         127.0.0.53%lo:53               0.0.0.0:*        users:(("systemd-resolve",pid=10410,fd=18))

若要进行安全查询,请运行:

$ resolvectl query fedoraproject.org
fedoraproject.org: 8.43.85.67                  -- link: wlp58s0
                   8.43.85.73                  -- link: wlp58s0

[..]

-- Information acquired via protocol DNS in 36.3ms.
-- Data is authenticated: yes

额外步骤 5:使用 Wireshark 验证配置

首先,安装并运行 Wireshark

$ sudo dnf install wireshark
$ sudo wireshark

它会询问你在哪个设备上捕获数据包。在我这里,因为我使用无线接口,我用的是 wlp58s0。在 Wireshark 中设置筛选器,tcp.port == 853(853 是 DNS over TLS 协议端口)。在捕获 DNS 查询之前,你需要刷新本地 DNS 缓存:

$ sudo resolvectl flush-caches

现在运行:

$ nslookup fedoramagazine.org

你应该会看到你的计算机和配置的 DNS 服务器之间的 TLS 加密交换:


via: https://fedoramagazine.org/use-dns-over-tls/

作者:Thomas Bianchi 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Windows DNS 服务器存在风险高达 10 分的 17 年之久的严重漏洞

微软警告称,该公司将一个存在了 17 年的 Windows DNS 服务器关键漏洞列为“可蠕虫”。这样的漏洞可能允许攻击者创建特殊的恶意软件,在 Windows 服务器上远程执行代码,并创建恶意的 DNS 查询,甚至最终可能导致企业和关键部门的基础设施被入侵。微软在通用漏洞评分系统(CVSS)上给出了 10 分的最高风险分,强调了问题的严重性。作为对比,WannaCry 攻击所使用的漏洞在 CVSS 上的评分为 8.5 分。

来源:cnBeta.COM

拍一拍:虽然相信用 Windows 做 DNS 服务的不算多,但是鉴于 Windows 服务器数量并不算少,尤其是在企业环境中,因此,这个高分漏洞需要密切注意。

OpenCV 5 的开源协议将从 BSD 变更为 Apache 2

计算机视觉库 OpenCV 即将迎来 20 周年,其重要版本 OpenCV 5 也发布在即。OpenCV 官方宣布,随着此版本的推行,OpenCV 的开源许可协议将从三句版 BSD 变更为 Apache 2。BSD 协议已很难满足快速发展的计算机视觉领域,尤其因为该协议不涉及专利,而使用该协议的代码很有可能包含一些专利算法的实现。为了避免这个问题,OpenCV 选择不接收有专利的算法。这样做虽然保障了安全性,但也让一些优秀算法无法进入 OpenCV。

来源:开源中国

拍一拍:并没有一种可以适用于一切情况的开源许可证,适当选择符合发展需求的开源许可证有利于开源项目的发展。

Rust 语言承诺将支持 Linux 作为该语言开发的优先项目

作为一种现代系统级语言,Rust 比 C 或 C++ 更安全也更容易使用,Linux 内核主要是用 C 开发的,而 Rust 被很多人认为是 C 和 C++ 的最佳替代。Rust 语言团队承诺如果在内核中构建 Rust 接口需要某些新的特性,那么他们将努力引入这些需要的功能。对于如何逐渐引入 Rust,Rust 提议了一个配置选项。但由于 Rust 编译器频繁更新,稳定性可能存在问题,Torvalds 很快表示反对,指出编辑器 bug 是很难调试和发现的,内核对 rust 的支持必须是缓慢且深思熟虑的。

来源:solidot

拍一拍:虽然之前 Linus 表示了欢迎 Rust 语言的态度,但是具体要进入到内核当中,还有很多细节需要考虑。但是,总体看来,这是一件好事。

Fedora 开发者再次讨论使用 Nano 替代 Vi/Vim 作为默认文本编辑器

类似的建议去年就已经讨论过一次,现在再次讨论 Fedora 是否应该默认使用 Nano 而不是 Vi,因为 Vi 目前在 git 提交和其他基于 CLI 的文本编辑中被用作默认编辑器。而这对于那些改用 Fedora 而又不知道如何使用 Vi 的用户来说,无疑是增加了使用障碍。支持此提案的开发者认为,将 Nano 作为默认编辑器不要求使用者具备专业知识,这对用户更友好,也让 Fedora 更加易于使用。支持者认为 Nano 是适用于每个人的选项。

来源:开源中国

拍一拍:Vi/Vim 已经成为 Linux 世界的象征性标志,也是很多 Linux 用户的入门门槛之一。究竟 Linux 是该向更易用发展;还是保持传统,过滤一些迈不过门槛的用户呢?

Canonical 因在 Ubuntu 每日消息(MOTD)中植入广告而遭到抨击

在一则讨伐 Canonical 的 Reddit 帖子中,已经收到了上千网友的评论。屏幕截图显示,Ubuntu 中混入了一条附带链接的文字广告:“如果你一直在等待面向 macOS 的完美 Kubernetes 开发解决方案,现在是时候体验 Microk8s 了!”截至发稿时,Canonical 仍未对 MOTD 中包含的广告链接发表评论。

拍一拍:有自家的发行版真好,可以随便做广告。

来源:cnBeta.COM

Jakarta EE 9 Milestone 1 发布 从 javax.* 过渡到 jakarta.*

此版本将所有 API 更新为在包名称中使用 jakarta.*。至于为什么变化,这是因为 Oracle 拒绝交出相关权利,过渡实际上就是此版本的全部内容。

来源:开源中国

拍一拍:不肯融入开放世界的,必将被开放世界所抛弃。

iOS 14 与 macOS Big Sur 将支持 DNS 加密通信

目前苹果已加入 Mozilla、谷歌和微软等公司的加密 DNS 通信倡议,积极在自家产品中中改进隐私安全体验。今秋正式发布的时候,该公司设备用户将同时体验到 DNS-over-HTTPS(简称 DoH)和 DNS-over-LTS(简称 DoT)带来的好处。启用了 DoH 和 DoT 之后,域名查询和接收响应的过程都会被加密处理,可有效防止被第三方和恶意行为者追踪用户的浏览历史。

来源:cnBeta.COM

拍一拍:一方面技术进步让个人隐私无从隐身,另一方面新的保护隐私的技术也在不断进步,技术世界就是在不断博弈之中前进。

Word 编辑器迎来“在线查重”功能

据悉,该功能由必应提供支撑,可在显示文档内容的相似性比例,并使之更轻松地插入相应的引文。结合相似性检测和引文工具,学生们不仅可以规避抄袭查重。目前这项功能仅提供了对英语文本的支持。作为三月份预告的 Microsoft 365 更新的一部分,该功能将先向教育版订阅者推送,然后再分发给家庭和企业版订阅用户。

来源:cnBeta.COM

拍一拍:编辑器就支持“查重”会省心一些,不过,问题在于,如何写出符合查重标准的文章吧?

Android 12 曝光:谷歌欲全面抛弃对 32 位的支持

因为 32 位的固有限制,不少主流操作系统已经切换到 64 位环境,比如 iOS 11、macOS Catalina 等,Windows 10 也自 v2004 版本开始停止向 OEM 分发 32 位系统。下面,该 Android了。据开发者爆料,Android S(按照字母排序,对应安卓 12 系统)的 x86\_64 模拟器已经停止对 32 位的支持,此乃破天荒的头一次。

来源:快科技

拍一拍:世界总是不经意间慢慢抛弃很多旧的东西,现在轮到了 32 位架构了。

Twitter CEO:自动化会甚至会对编程工作构成威胁

Twitter CEO Jack Dorsey 表示,“机器学习和深度学习的许多目标是随着时间的发展编写软件本身,因此许多初级级编程工作将不再那么重要了,”

来源:新浪科技

硬核老王点评:毕竟“初级”编程工作也是要被取代的初级工种之一。

多个 DNS 解析程序漏洞允许攻击者发动拒绝服务攻击

该漏洞被称为 NXNSAttack。DNS 解析程序不能向“名字”发送域名查询,因此解析器首先需要获得权威 DNS 服务器的 IPv4 或 IPv6 地址,之后才能继续查询域名。NXNSAttack 就是基于这一原理,攻击者发送的委托包含了假的权威服务器名字,指向受害者的 DNS 服务器,迫使解析程序对受害者的 DNS 服务器生成查询。一次查询会被放大数十次乃至数百次,对受害者服务器发动了拒绝服务攻击。众多 DNS 软件都受到影响,其中包括 BIND、 Unbound、PowerDNS、Cloudflare、Google、Amazon、Microsoft、Oracle(DYN)、Verisign、IBM Quad9 和 ICANN。

来源:solidot

硬核老王点评:互联网建设和设计之初,并没有考虑到这么复杂的安全隐患,或者说考虑到了在当时也只能暂时忽视。随着互联网的发展,这种早期的协议上的漏洞会逐一被发现、修补和迭代。

GNOME 基金会和 RPI 的专利诉讼案达成和解

去年 9 月,Rothschild Patent Imaging LLC(RPI)的公司对 GNOME 基金会提起了专利侵权诉讼,指控 GNOME 桌面环境项目中的一个组件 Shotwell 照片管理器侵犯了它于 2008 年申请的专利,该专利描述了无线连接图像捕捉设备和接收设备的系统和方法。现在,GNOME 与 RPI 达成和解,RPI 并承诺不再对 GNOME 提起任何专利诉讼。此外,RPI 和 Leigh Rothschild 的专利免除和承诺覆盖了在 OSI 批准的所有开源许可证下发布的软件。

来源:solidot

硬核老王点评:妄想从开源社区/开源组织身上咬下一块肉,先要看看是否能承受社会压力。

安全研究人员分析过去几年发生的开源软件供应链攻击

软件供应链攻击有两类:其一是在软件产品中植入恶意代码去感染终端用户,此类攻击的一个例子是 CCleaner 的恶意版本通过官网传播给终端用户,它在长达一个多月时间里被下载了 230 万次。另一类软件供应链攻击是向软件产品的依赖包植入恶意代码。随着开源软件开发模式的流行,此类的攻击日益常见。研究人员分析了 npm、PyPI 和 RubyGems 软件包管理系统发现的 174 个恶意依赖包,他们发现 56% 的软件包在安装时触发恶意行为,41% 使用额外的条件去判断是否运行。61% 的恶意软件包利用了名字相似性向开源生态系统植入恶意包。攻击者的主要目的是析取数据。

来源:solidot

硬核老王点评:开源软件本身这个模式并不能决定是否安全,只是给用户一个安全的可能性。所以,在享受开源软件的福利时,其带来的可能的隐患也需要重视,并可能付出不菲的成本和代价。

微软开源 1983 年的 GW-BASIC

微软在历史参考和教育目的的名义下开源了 1983 年的 GW-BASIC,源代码托管在 GitHub 上,采用 MIT 许可证。微软表示他们不接受修改任何代码的 PR 请求。GW-BASIC 是源自 IBM Advanced BASIC/BASICA 的 BASIC 解释器。微软不同的 BASIC 实现都可以上溯到比尔盖茨和保罗艾伦完成的微软首个产品:Altair 8800 BASIC 解释器。和 70/80 年代的众多软件一样,GW-BASIC 的源代码是百分之百的汇编语言。

来源:solidot

硬核老王点评:反正放家里也是烂着,就当成古董给大家把玩吧。

域名系统 Domain Name System ,我们更通常称为 DNS 的系统,可以将域名翻译或转换为与该域关联的 IP 地址。DNS 是能够让你通过名称找到自己喜欢的网站而不是在浏览器中输入 IP 地址的原因。本指南将向你展示如何配置一个主 DNS 系统以及客户端。

以下是本文示例中使用的系统细节:

dns01.fedora.local    (192.168.1.160)- 主 DNS 服务器
client.fedora.local     (192.168.1.136)- 客户端

DNS 服务器配置

使用 sudo 安装 bind 包:

$ sudo dnf install bind bind-utils -y

bind 包提供了 /etc/named.conf 配置文件,来供你配置 DNS 服务器。

编辑 /etc/named.conf 文件:

sudo vi /etc/named.conf

查找以下行:

listen-on port 53 { 127.0.0.1; };

添加主 DNS 服务器的 IP 地址,如下所示:

listen-on port 53 { 127.0.0.1; 192.168.1.160; };

查找以下行:

allow-query  { localhost; };

添加本地网络范围。该示例系统使用的 IP 地址在 192.168.1.X 的范围内。指定如下:

allow-query  { localhost; 192.168.1.0/24; };

指定转发和反向区域。 区域文件 Zone file 就是具有系统上 DNS 信息(例如 IP 地址和主机名)的文本文件。 转发区域文件 forward zone file 使得将主机名转换为 IP 地址成为可能。 反向区域文件 reverse zone file 则相反。它允许远程系统将 IP 地址转换为主机名。

/etc/named.conf 文件的底部查找以下行:

include "/etc/named.rfc1912.zones";

在此处,你将在该行的正上方指定区域文件信息,如下所示:

zone "dns01.fedora.local" IN {
  type master;
  file "forward.fedora.local";
  allow-update { none; };
};

zone "1.168.192.in-addr.arpa" IN {
  type master;
  file "reverse.fedora.local";
  allow-update { none; };
};

forward.fedora.localreverse.fedora.local 文件是要创建的区域文件的名称。它们可以是任意名字。

保存并退出。

创建区域文件

创建你在 /etc/named.conf 文件中指定的转发和反向区域文件:

$ sudo vi /var/named/forward.fedora.local

添加以下行:

$TTL 86400
@   IN  SOA     dns01.fedora.local. root.fedora.local. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          dns01.fedora.local.
@       IN  A           192.168.1.160
dns01           IN  A   192.168.1.160
client          IN  A   192.168.1.136

所有粗体(LCTT 译注:本译文中无法呈现粗体)内容都特定于你的环境。保存文件并退出。接下来,编辑 reverse.fedora.local 文件:

$ sudo vi /var/named/reverse.fedora.local

添加以下行:

$TTL 86400
@   IN  SOA     dns01.fedora.local. root.fedora.local. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          dns01.fedora.local.
@       IN  PTR         fedora.local.
dns01           IN  A   192.168.1.160
client          IN  A   192.168.1.136
160     IN  PTR         dns01.fedora.local.
136     IN  PTR         client.fedora.local.

所有粗体(LCTT 译注:本译文中无法呈现粗体)内容都特定于你的环境。保存文件并退出。

你还需要配置 SELinux 并为配置文件添加正确的所有权。

sudo chgrp named -R /var/named
sudo chown -v root:named /etc/named.conf
sudo restorecon -rv /var/named
sudo restorecon /etc/named.conf

配置防火墙:

sudo firewall-cmd --add-service=dns --perm
sudo firewall-cmd --reload

检查配置是否存在语法错误

sudo named-checkconf /etc/named.conf

如果没有输出或返回错误,那么你的配置有效。

检查转发和反向区域文件。

$ sudo named-checkzone forward.fedora.local /var/named/forward.fedora.local

$ sudo named-checkzone reverse.fedora.local /var/named/reverse.fedora.local

你应该看到 “OK” 的响应:

zone forward.fedora.local/IN: loaded serial 2011071001
OK

zone reverse.fedora.local/IN: loaded serial 2011071001
OK

启用并启动 DNS 服务

$ sudo systemctl enable named
$ sudo systemctl start named

配置 resolv.conf 文件

编辑 /etc/resolv.conf 文件:

$ sudo vi /etc/resolv.conf

查找你当前的 nameserver 行。在示例系统上,使用调制解调器/路由器充当名称服务器,因此当前看起来像这样:

nameserver 192.168.1.1

这需要更改为主 DNS 服务器的 IP 地址:

nameserver 192.168.1.160

保存更改并退出。

不幸的是需要注意一点。如果系统重启或网络重启,那么 NetworkManager 会覆盖 /etc/resolv.conf 文件。这意味着你将丢失所做的所有更改。

为了防止这种情况发生,请将 /etc/resolv.conf 设为不可变:

$ sudo chattr +i /etc/resolv.conf

如果要重新设置,就需要允许其再次被覆盖:

$ sudo chattr -i /etc/resolv.conf

测试 DNS 服务器

$ dig fedoramagazine.org
; <<>> DiG 9.11.13-RedHat-9.11.13-2.fc30 <<>> fedoramagazine.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8391
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 6

;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 4096
 ; COOKIE: c7350d07f8efaa1286c670ab5e13482d600f82274871195a (good)
 ;; QUESTION SECTION:
 ;fedoramagazine.org.        IN  A

;; ANSWER SECTION:
 fedoramagazine.org.    50  IN  A   35.197.52.145

;; AUTHORITY SECTION:
 fedoramagazine.org.    86150   IN  NS  ns05.fedoraproject.org.
 fedoramagazine.org.    86150   IN  NS  ns02.fedoraproject.org.
 fedoramagazine.org.    86150   IN  NS  ns04.fedoraproject.org.

;; ADDITIONAL SECTION:
 ns02.fedoraproject.org.    86150   IN  A   152.19.134.139
 ns04.fedoraproject.org.    86150   IN  A   209.132.181.17
 ns05.fedoraproject.org.    86150   IN  A   85.236.55.10
 ns02.fedoraproject.org.    86150   IN  AAAA    2610:28:3090:3001:dead:beef:cafe:fed5
 ns05.fedoraproject.org.    86150   IN  AAAA    2001:4178:2:1269:dead:beef:cafe:fed5

 ;; Query time: 830 msec
 ;; SERVER: 192.168.1.160#53(192.168.1.160)
 ;; WHEN: Mon Jan 06 08:46:05 CST 2020
 ;; MSG SIZE  rcvd: 266

需要检查几件事以验证 DNS 服务器是否正常运行。显然,取得结果很重要,但这本身并不意味着 DNS 服务器实际上正常工作。

顶部的 QUERYANSWERAUTHORITY 字段应显示为非零,如我们的示例所示:

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 6

并且 SERVER 字段应有你的 DNS 服务器的 IP 地址:

;; SERVER: 192.168.1.160#53(192.168.1.160)

如果这是你第一次运行 dig 命令,请注意完成查询要花费 830 毫秒的时间:

;; Query time: 830 msec

如果再次运行它,查询将会更快:

$ dig fedoramagazine.org
;; Query time: 0 msec
;; SERVER: 192.168.1.160#53(192.168.1.160)

客户端配置

客户端配置将简单得多。

安装 bind 程序:

$ sudo dnf install bind-utils -y

编辑 /etc/resolv.conf 文件,并将主 DNS 配置为唯一的名称服务器:

$ sudo vi /etc/resolv.conf

它看起来像这样:

nameserver 192.168.1.160

保存更改并退出。然后,使 /etc/resolv.conf 文件不可变,防止其被覆盖并变回默认设置:

$ sudo chattr +i /etc/resolv.conf

测试客户端

你应该获得与 DNS 服务器相同的结果:

$ dig fedoramagazine.org
; <<>> DiG 9.11.13-RedHat-9.11.13-2.fc30 <<>> fedoramagazine.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8391
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 6

;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 4096
 ; COOKIE: c7350d07f8efaa1286c670ab5e13482d600f82274871195a (good)
 ;; QUESTION SECTION:
 ;fedoramagazine.org.        IN  A

;; ANSWER SECTION:
 fedoramagazine.org.    50  IN  A   35.197.52.145

;; AUTHORITY SECTION:
 fedoramagazine.org.    86150   IN  NS  ns05.fedoraproject.org.
 fedoramagazine.org.    86150   IN  NS  ns02.fedoraproject.org.
 fedoramagazine.org.    86150   IN  NS  ns04.fedoraproject.org.

;; ADDITIONAL SECTION:
 ns02.fedoraproject.org.    86150   IN  A   152.19.134.139
 ns04.fedoraproject.org.    86150   IN  A   209.132.181.17
 ns05.fedoraproject.org.    86150   IN  A   85.236.55.10
 ns02.fedoraproject.org.    86150   IN  AAAA    2610:28:3090:3001:dead:beef:cafe:fed5
 ns05.fedoraproject.org.    86150   IN  AAAA    2001:4178:2:1269:dead:beef:cafe:fed5

 ;; Query time: 1 msec
 ;; SERVER: 192.168.1.160#53(192.168.1.160)
 ;; WHEN: Mon Jan 06 08:46:05 CST 2020
 ;; MSG SIZE  rcvd: 266

确保 SERVER 输出的是你 DNS 服务器的 IP 地址。

你的 DNS 服务器设置完成了,现在所有来自客户端的请求都会经过你的 DNS 服务器了!


via: https://fedoramagazine.org/how-to-setup-a-dns-server-with-bind/

作者:Curt Warfield 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

DNS-over-HTTPS(DoH)协议目前是谈论的焦点,Firefox 是唯一支持它的浏览器。但是,Firefox 默认不启用此功能,用户必须经历许多步骤并修改多个设置才能启动并运行 DoH。

在开始如何在 Firefox 中启用 DoH 支持的分步教程之前,让我们先描述它的原理。

DNS-over-HTTPS 的工作原理

DNS-over-HTTPS 协议通过获取用户在浏览器中输入的域名,并向 DNS 服务器发送查询,以了解托管该站点的 Web 服务器的 IP 地址。

这也是正常 DNS 的工作原理。但是,DoH 通过 443 端口的加密 HTTPS 连接接受 DNS 查询将其发送到兼容 DoH 的 DNS 服务器(解析器),而不是在 53 端口上发送纯文本。这样,DoH 就会在常规 HTTPS 流量中隐藏 DNS 查询,因此第三方监听者将无法嗅探流量,并了解用户的 DNS 查询,从而推断他们将要访问的网站。

此外,DNS-over-HTTPS 的第二个特性是该协议工作在应用层。应用可以带上内部硬编码的 DoH 兼容的 DNS 解析器列表,从而向它们发送 DoH 查询。这种操作模式绕过了系统级别的默认 DNS 设置,在大多数情况下,这些设置是由本地 Internet 服务提供商(ISP)设置的。这也意味着支持 DoH 的应用可以有效地绕过本地 ISP 流量过滤器并访问可能被本地电信公司或当地政府阻止的内容 —— 这也是 DoH 目前被誉为用户隐私和安全的福音的原因。

这是 DoH 在推出后不到两年的时间里获得相当大的普及的原因之一,同时也是一群英国 ISP 因为 Mozilla 计划支持 DoH 协议而提名它为 2019 年的“互联网恶棍” (Internet Villian)的原因,ISP 认为 DoH 协议会阻碍他们过滤不良流量的努力。(LCTT 译注:后来这一奖项的提名被取消。)

作为回应,并且由于英国政府阻止访问侵犯版权内容的复杂情况,以及 ISP 自愿阻止访问虐待儿童网站的情况,Mozilla 已决定不为英国用户默认启用此功能

下面的分步指南将向英国和世界各地的 Firefox 用户展示如何立即启用该功能,而不用等到 Mozilla 将来启用它 —— 如果它会这么做的话。在 Firefox 中有两种启用 DoH 支持的方法。

方法 1:通过 Firefox 设置

步骤 1:进入 Firefox 菜单,选择工具,然后选择首选项。 可选在 URL 栏中输入 about:preferences,然后按下回车。这将打开 Firefox 的首选项。

步骤 2:常规中,向下滚动到网络设置,然后按设置按钮。

步骤3:在弹出窗口中,向下滚动并选择“Enable DNS over HTTPS”,然后配置你需要的 DoH 解析器。你可以使用内置的 Cloudflare 解析器(该公司与 Mozilla 达成协议,记录更少的 Firefox 用户数据),或者你可以在这个列表中选择一个。

方法 2:通过 about:config

步骤 1:在 URL 栏中输入 about:config,然后按回车访问 Firefox 的隐藏配置面板。在这里,用户需要启用和修改三个设置。

步骤 2:第一个设置是 network.trr.mode。这打开了 DoH 支持。此设置支持四个值:

  • 0 - 标准 Firefox 安装中的默认值(当前为 5,表示禁用 DoH)
  • 1 - 启用 DoH,但 Firefox 依据哪个请求更快返回选择使用 DoH 或者常规 DNS
  • 2 - 启用 DoH,常规 DNS 作为备用
  • 3 - 启用 DoH,并禁用常规 DNS
  • 5 - 禁用 DoH

值为 2 工作得最好

步骤3:需要修改的第二个设置是 network.trr.uri。这是与 DoH 兼容的 DNS 服务器的 URL,Firefox 将向它发送 DoH DNS 查询。默认情况下,Firefox 使用 Cloudflare 的 DoH服务,地址是:https://mozilla.cloudflare-dns.com/dns-query。但是,用户可以使用自己的 DoH 服务器 URL。他们可以从这个列表中选择其中一个可用的。Mozilla 在 Firefox 中使用 Cloudflare 的原因是因为与这家公司达成了协议,之后 Cloudflare 将收集来自 Firefox 用户的 DoH 查询的非常少的数据。

DoH in Firefox

步骤4:第三个设置是可选的,你可以跳过此设置。 但是如果设置不起作用,你可以使用此作为步骤 3 的备用。该选项名为 network.trr.bootstrapAddress,它是一个输入字段,用户可以输入步骤 3 中兼容 DoH 的 DNS 解析器的 IP 地址。对于 Cloudflare,它是 1.1.1.1。 对于 Google 服务,它是 8.8.8.8。 如果你使用了另一个 DoH 解析器的 URL,如果有必要的话,你需要追踪那台服务器的 IP 地址并输入。

通常,在步骤 3 中输入的 URL 应该足够了。 设置应该立即生效,但如果它们不起作用,请重新启动 Firefox。

文章信息来源:Mozilla Wiki


via: https://www.zdnet.com/article/how-to-enable-dns-over-https-doh-in-firefox/

作者:Catalin Cimpanu 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出