配置 DNS over HTTPS阻止DNS污染

配置 DNS over HTTPS阻止DNS污染

概念介绍

DOH简介

​ DNS(域名系统)的主要功能是将域名解析成IP地址,域名的解析工作由DNS服务器完成。从安全角度来看,域名解析的请求传输时通常不进行任何加密,这导致第三方能够很容易拦截用户的DNS,将用户的请求跳转到另一个地址,常见的攻击方法有DNS劫持和DNS污染。因此,使用不加密的DNS服务是不安全的。

​ 而DoH(DNS over HTTPS)是一个安全的域名解析方案。其意义在于以加密的HTTPS协议进行DNS解析请求,避免原始DNS协议中用户的DNS解析请求被窃听或者修改的问题(例如中间人攻击)来达到保护用户隐私的目的。因此,攻击者将无法查看请求的URL并对其进行更改,如果使用了基于HTTPS的DNS,数据在传输过程中发生丢失时,DoH中的传输控制协议(TCP)会做出更快的反应。

DNS劫持

DNS劫持就是通过劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。DNS劫持通过篡改DNS服务器上的数据返回给用户一个错误的查询结果来实现的。

DNS劫持症状:在某些地区的用户在成功连接宽带后,首次打开任何页面都指向ISP提供的“电信互联星空”、“网通黄页广告”等内容页面。还有就是曾经出现过用户访问Google域名的时候出现了百度的网站。这些都属于DNS劫持。

DNS污染

DNS污染是一种让一般用户由于得到虚假目标主机IP而不能与其通信的方法,是一种DNS缓存投毒攻击(DNS cache poisoning)。其工作方式是:由于通常的DNS查询没有任何认证机制,而且DNS查询通常基于的UDP是无连接不可靠的协议,因此DNS的查询非常容易被篡改,通过对UDP端口53上的DNS查询进行入侵检测,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器(NS,Name Server)给查询者返回虚假结果。

而DNS污染则是发生在用户请求的第一步上,直接从协议上对用户的DNS请求进行干扰。

DNS污染症状:目前一些被禁止访问的网站很多就是通过DNS污染来实现的,例如YouTube、Facebook等网站。

如何配置DOH

windows

先决条件:系统版本必须为Windows 10 Build 19628版及以上版本,暂时低于该版本的系统均不支持DoH加密。

查看windows版本号: win + R运行winver。

通过注册表编辑器来激活 DoH 客户端,首先以管理员身份,在开始菜单中运行‘regedit’

导航至 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters

新建名为‘EnableAutoDoh’的 DWORD 值、并设定为‘2’

重启计算机以正式激活 DoH 功能。

image-20221019112822019

chrome

image-20221019111435938

firefox

image-20221019120912045

支持DOT的DNS服务器列表

image-20221019111231834

测试是否成功开启DOH

Windows 10自带 Packetmon 工具可以用来分析网络流量,借助该工具我们可以用来验证配置DoH后流量状态。

# 打开PowerShell
# 重置网络流量分析
pktmon filter remove
# 过滤普通DNS服务器的53端口流量
pktmon filter add -p 53
# 开始记录数据
pktmon start --etw -m real-time
# 高级设置
# 如果你需要测试自定义DNS服务器请使用以下命令添加模板
netsh dns add encryption server=<your-server’s-IP-address> dohtemplate=<your-server’s-DoH-URI-template>
# 使用该命令可查询给定DNS地址已配置的模板
netsh dns show encryption server=<your-server’s-IP-address>
posted @ 2022-10-19 12:10  tomyyyyy  阅读(1392)  评论(0编辑  收藏  举报