systemd-resolved.service实验实战2

DNS-over-TLS(DoT)详细介绍

DNS-over-TLS(简称 DoT)是一种网络安全协议,旨在通过加密 DNS(Domain Name System)查询和响应来保护用户隐私和防止数据篡改。传统 DNS 使用明文传输,容易被窃听或劫持,而 DoT 利用 TLS(Transport Layer Security)协议为 DNS 通信提供端到端加密。下面我将从多个方面逐步介绍 DoT,帮助您全面理解其原理、优势和应用。

1. 什么是 DoT?

DoT 是一种标准化的协议(由 IETF 在 RFC 7858 和 RFC 8310 中定义),它将 DNS 查询封装在 TLS 加密通道中。简单来说,当您的设备(如电脑或手机)需要解析域名(如 example.com)时,DoT 会确保这个查询过程被加密,防止第三方窥探。例如:

  • 传统 DNS:查询以明文发送,就像寄出一封未封口的信。
  • DoT:查询被加密后发送,类似寄出封口的加密信件。

DoT 使用标准端口 853 进行通信,这与传统 DNS 的端口 53 不同,便于网络设备识别和优先处理加密流量。

2. 为什么需要 DoT?

传统 DNS 存在严重的安全和隐私问题:

  • 窃听风险 :攻击者可以在网络上拦截 DNS 查询,获取您访问的网站信息。例如,如果您查询 bank.com,黑客可能窃取此数据用于钓鱼攻击。
  • 篡改风险:中间人(如 ISP 或恶意路由器)可以修改 DNS 响应,将您重定向到恶意网站。
  • 隐私泄露:ISP 或政府机构可能记录您的 DNS 历史,侵犯隐私。

这些问题源于 DNS 的未加密设计。DoT 通过加密解决了这些漏洞,确保:

  • 机密性:查询内容只有发送方和接收方能解读。
  • 完整性:响应数据在传输中不被篡改。
  • 认证性:客户端可以验证 DNS 服务器的身份,防止假冒。
3. DoT 的工作原理

DoT 的工作流程基于 TLS 握手和加密传输,具体步骤如下(以客户端向 DNS 服务器发送查询为例):

  1. 建立 TLS 连接 :客户端(如您的设备)首先与支持 DoT 的 DNS 服务器(如 Cloudflare 的 1.1.1.1 或 Google 的 8.8.8.8)建立 TCP 连接。然后,通过 TLS 握手协议协商加密参数。TLS 使用公钥加密技术

  2. 加密 DNS 查询 :一旦 TLS 通道建立,客户端将 DNS 查询(如请求 example.com 的 IP 地址)封装在 TLS 记录中发送。查询数据被加密为密文,只有目标服务器能解密。

  3. 服务器处理并响应 :DNS 服务器解密查询,处理请求,然后将响应(如 IP 地址 93.184.216.34)同样加密后通过 TLS 通道返回。

  4. 关闭连接:查询完成后,连接关闭,但 TLS 会话可能被重用以提高效率。

整个过程确保 DNS 流量像 HTTPS 一样安全。例如,一个查询包的结构可简化为:

  • 明文 DNS 头 + 加密的查询负载。
4. DoT 的优点
  • 增强隐私:防止 ISP 或黑客监控您的浏览历史,特别适用于公共 Wi-Fi 等不安全网络。
  • 提高安全性:减少 DNS 劫持和中间人攻击风险,保护敏感操作(如在线银行)。
  • 兼容性好:DoT 基于标准 TLS,易于集成到现有系统和应用(如 Android 9+ 和 iOS 14+ 原生支持)。
  • 性能优化:现代实现减少了加密开销,查询延迟与传统 DNS 相近(通常 <100ms)。
5. DoT 的缺点和挑战
  • 部署复杂性:需要 DNS 服务器和客户端都支持 DoT,普通用户可能需手动配置(如指定 DoT 服务器地址)。
  • 防火墙干扰:某些网络可能阻止端口 853,导致连接失败。
  • 中心化风险:依赖少数大型 DoT 提供商(如 Google 或 Cloudflare),可能引入新的隐私担忧(尽管他们承诺不记录数据)。
  • 与 DoH 的混淆:DoT 常与 DNS-over-HTTPS (DoH) 比较。DoH 使用 HTTPS 端口 443,更易绕过防火墙,但可能被误用于绕过网络策略。DoT 更专注于传输层加密,适合网络管理员控制。
6. 如何启用和使用 DoT
  • 个人用户
    • 操作系统设置 :在 Android 设备上,进入"网络设置">"私有 DNS",输入 DoT 服务器域名(如 dns.google)。在 Windows 或 macOS,可通过第三方软件(如 DNSCrypt)配置。
    • 路由器级别:在路由器设置中启用 DoT,所有连接设备自动受益(例如,使用 OpenWrt 固件)。
  • 推荐服务器 :免费公共 DoT 服务器包括:
    • Cloudflare: one.one.one.one1.1.1.1
    • Google: dns.google8.8.8.8
    • Quad9: dns.quad9.net
  • 验证是否生效 :使用在线工具(如 Cloudflare 的 1.1.1.1/help)检查连接状态,确保显示"DNS over TLS"为启用。
7. 总结

DNS-over-TLS(DoT)是提升互联网隐私和安全的关键技术,它通过 TLS 加密解决了传统 DNS 的固有缺陷。尽管存在部署挑战,但 DoT 在保护用户数据、防止攻击方面效果显著。随着网络威胁增加,采用 DoT 已成为最佳实践。如果您是普通用户,建议从设备设置启用 DoT

实验三:启用 DNS - over - TLS(DoT)

bash 复制代码
kesonsun@ubuntu22:~$ # 查看特定接口的详细 DNS 配置
kesonsun@ubuntu22:~$ resolvectl status ens33
Link 2 (ens33)
    Current Scopes: DNS
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 8.8.4.4
       DNS Servers: 8.8.8.8 8.8.4.4
        DNS Domain: aust.edu.cn
  1. 查看 DNS 协议配置

    • 在输出中,Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported 这一行是关键。
    • 这里,-DNSOverTLS 表示 DNS over TLS 被 禁用 (符号 - 表示禁用)。
    • 其他部分:
      • +DefaultRoute:启用默认路由。
      • +LLMNR:启用 Link-Local Multicast Name Resolution。
      • -mDNS:禁用 Multicast DNS。
      • DNSSEC=no/unsupported:DNSSEC 未启用或不支持。
  2. 查看 DNS 服务器设置

    • DNS 服务器是 8.8.8.88.8.4.4(Google 公共 DNS),但服务器本身不影响 DoT 状态,关键是协议是否启用。
    • 如果 DoT 启用,通常会显示 +DNSOverTLS 或类似指示。
bash 复制代码
# 1. 首先配置 DNS 服务器(cloudflare)
sudo resolvectl dns ens33 1.1.1.1 1.0.0.1

# 2. 启用 DNS-over-TLS
sudo resolvectl dnsovertls ens33 yes

# 3. 设置 DNS 搜索域
# 清除 ens33 接口原有的所有 DNS 搜索域,并禁用该接口的自动补全功能,强制解析时必须使用完整域名
sudo resolvectl domain ens33 ~.

//改动成功+DNSOverTLS
kesonsun@ubuntu22:~$ resolvectl status ens33
Link 2 (ens33)
    Current Scopes: DNS
         Protocols: +DefaultRoute +LLMNR -mDNS +DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 1.1.1.1
       DNS Servers: 1.1.1.1 1.0.0.1
        DNS Domain: ~.
kesonsun@ubuntu22:~$




#确认 DNS 查询是否通过 TLS 加密,可以使用 tcpdump 捕获网络流量
相关推荐
草根站起来1 天前
SSL证书根证书没有二级根证书、三级根证书、四级根证书,SSL证书参数诈骗被迫使用了套牌贴牌非原厂SSL和证书
网络·网络协议·ssl
shaohui9731 天前
ARMv7 linux中断路由以及处理
linux·gic·cpsr·armv7
三小尛1 天前
linux的开发工具vim
linux·运维·vim
陈陈爱java1 天前
Conda 常用命令行
linux·windows·conda
twdnote1 天前
dokcer 环境中集成LibreOffice
linux
谢尔登1 天前
HTTP 协议组成
网络·网络协议·http
ChristXlx1 天前
Linux安装redis(虚拟机适用)
linux·运维·redis
源文雨1 天前
PVE实现USB硬盘盒在备份前自动上电/结束后自动断电脚本
linux·运维·服务器·备份·perl·pve·usb硬盘盒
ascarl20101 天前
准确--CentOS 7 配置用户资源限制(nofile / nproc)
linux·运维·centos
云和数据.ChenGuang1 天前
运维工程师技术教程之ELK日志监控
运维·服务器·elk·运维技术·数据库运维工程师