论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
安全
›
网络安全
›
网工应用层:DNS及相关使用问题
网工应用层:DNS及相关使用问题
徐锦洪
金牌会员
|
2023-3-1 03:52:25
|
显示全部楼层
|
阅读模式
楼主
主题
979
|
帖子
979
|
积分
2937
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
DNS的执行原理
首先,让我们来回顾一下DNS的执行原理。
DNS的执行原理即是IP和域名的相互解释(映射),从而使得互联网的大规模民用成为可能。举个栗子,我们通查上百度的时候大多数人并不会直接发送访问IP地址的请求,而是记住了百度的域名www.baidu.com,回车键发送了访问请求。但网关是不认字的,这也就是说,发送数据的过程中有一个进程为我们将域名转换为了IP地址。
是的,这就是DNS(Domain Name System)服务器在帮我们这个忙————
DNS服务器分布于全球,美国的DNS服务器有ISPs此类的机关维护,中国服务器亦有运营商维护。当我们向外网发送了封装了域名的数据包之后,DNS系统便会帮我们查询其对应IP:
它首先检查浏览器DNS缓存和操作系统缓存列表(可通过cmd的ipconfig和displaydns命名查询)中是否存在对应网站的IP,若发现有则直接响应,若没有,浏览器即构建一条DNS查询的应用层数据包,通过默认端口53和DNS默认的传输方式UDP传输到下一层,网络层封装源IP和本机电脑配置的DNS服务器(目标IP),物理接口层封装MAC地址从网口发送数据。
数据来到路由器,路由器获取到数据包目标IP即是自己(网关兼任DNS服务),马上查询缓存列表是否有百度的IP地址。若没有,路由器即构建一个应用层数据包,查询baidu.com的IP地址,目标IP即为路由器配置的上游DNS服务器.上游DNS接续查询自己的缓存列表,若没有则一步步上溯(迭代查询),直到在某个服务器中查询到为止。
DNS服务器对转发有一定的规则,最简单的,假如服务器没有配置DNS转发,就不会转发DNS请求。其次,DNS对选择转发服务器有负载均衡的需求,所以这一复杂的部分还亟待读者自行探求.
DNS泄露的原因
简而言之,DNS泄露就是当我们使用代理服务器访问互联网时,电脑给目标IP地址发送了明文DNS请求。所以我们需要检查一遍DNS服务器的缓存列表:
找到一个DNS服务器,打开其开发者面板,查看网络工具,发现网站在不停地发送请求。
这样做有什么目的?就是为了确保我们的DNS服务器和上游服务器缓存中都没有这一条记录。此时,浏览器中没有找到缓存,会构建查询域名IP的DNS请求,此时既然上游没有DNS缓存,那么自然是运营商的DNS来接收该请求。
运营商的DNS会交给多个不同的上游DNS服务器解析,最终交给权威DNS服务器。权威DNS的服务器设置了泛解析,查询任何子域名都可以查询到对应IP。
此时————权威服务器将结果返回给我们时,
将你要找的IP和查询DNS的服务器记录了下来
。每个人发起的请求中域名都不一样,一查就知道是你在用......
除此之外,权威DNS服务器还能获取到你的IP归属地,获取你所使用的下游DNS的IP地址。假设你使用了任播DNS,但上游DNS仍取决于该任播DNS的IP属地,假如是美国的,就会泄露该美国上游DNS服务器的IP,中国的则会泄露该中国运营商的DNS的IP。
接入代理后DNS泄露的隐患
接入代理后,电脑浏览器不再构建DNS查询请求,直接把我们访问某网站的请求交给代理客户端。此时代理客户端有两种处理你访问网站的请求的方式。
第一种是安全的。不发起DNS请求判断直连还是代理访问,也就是白名单。
第二种是不安全的。代理服务端发起DNS请求,再获取IP,再判断是否直连或代理。显然,第一种要比第二种更加智能也更加安全。并且可以注意到,DNS泄露的根本原因就在于
是否发起了DNS请求
,若如此做,泄露的概率极大:你拿到了某网站的IP,马上给其他服务器发送加密数据,这样,你加不加密都知道你加密的是啥了~
请注意外国任播DNS服务是不能防止DNS泄露的,因为这条DNS请求完全明文,并未加密(可用DoT或DoH进行加密,或远程DNS,这些配置有些服务器供应商是提供的),这种明文是极好获取的,会发生什么不用说了吧~
DNS污染原理
DNS污染全称网域服务器缓存污染(DNS cache pollution)或域名服务器缓存投毒(DNS cache poisoning),即是(黑客)通过制造一些域名服务器数据包等手段把域名指向不正确的IP地址,这样当用户访问该域名时会转到不正确的IP地址,从而窃取用户信息、资料或破坏正常服务。
黑客常利用UDP是无连接不可靠的协议这一点,对UDP53端口的DNS查询进行入侵检测(关键字匹配),一旦匹配上,黑客服务器立即伪装成目标域名的解析服务器,篡改返回结果。这一过程其实很好操纵,因为DNS请求本身非常好修改。有时有一些网站上不去,就是可以通过关键字匹配你的请求将返回IP改成127.0.0.1,达到干扰目的。
应对DNS污染
1.使用SSH加密代理,远程DNS解析,VPN。
2.修改Hosts文件,操作系统中Hosts文件权限高于DNS服务器,于是访问前优先检测Hosts文件,再查询DNS。在Hosts文件中添加DNS污染地址可以解决。
3.浏览器(软件)直接忽略返回结果是虚假IP地址的数据包(需要一些软件商提供服务)。
4.DNSCrypt或其他软件提供可靠TCP连接。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
徐锦洪
金牌会员
这个人很懒什么都没写!
楼主热帖
彻底卸载SQL Server
马丽明:选择超融合架构的三个要素 ...
【计算机网络】TCP为什么需要3次握手 ...
java数据库开发与实战应用,2022最值得 ...
漏洞扫描工具nessus、rapid7 insightvm ...
Oracle夺命连环25问,你能坚持第几问? ...
c# 实现定义一套中间SQL可以跨库执行的 ...
iOS16新特性 | 灵动岛适配开发与到家业 ...
WPF工控组态软件之冷却塔和空气压缩机 ...
几种数据库jar包获取方式
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
程序人生
前端开发
分布式数据库
移动端开发
DevOps与敏捷开发
虚拟化与私有云
SQL-Server
MES
物联网
快速回复
返回顶部
返回列表