文章目录

  • DNS简介
    • 域名解析过程
    • 递归查询和迭代查询
      • 递归查询
      • 迭代查询
  • dnsmasq
    • dnsmasq介绍
      • 利用host文件安全加固
    • dnsmasq安装
      • dnsmasq的配置文件
      • dnsmasq.conf
  • nslookup的使用
  • 绕云waf小技巧

DNS简介

DNS叫做域名系统(Domain Name System,缩写DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。

DNS协议运行在UDP协议之上,使用端口号53。

域名解析过程

当一个用户在浏览器中输入www.abc.com时,DNS解析将会有将近10个步骤,这个过程大概如下:

1.浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。(浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短都不好,如果缓存时间太长,一旦域名被解析到的IP有变化,会导致被浏览器缓存的域名无法及时解析到变化后的IP地址,这段时间内可能会有一部分用户无法访问网站。如果时间设置太短,会导致用户每次访问网站都需要重新解析一次域名。)

2.如果用户的浏览器缓存中没有,浏览器会查找本地hosts文件中是否有这个域名对应的映射关系,如果有则调用这个IP地址映射,完成域名解析。

3.如果浏览器缓存和hosts文件中都没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。(前面三步都是在本机中完成,本机中的解析不具有权威性,到这里还没有涉及真正的域名解析服务器,如果本机中仍然无法完成域名的解析,就会真正请求域名服务器来解析这个域名。)

3.操作系统把域名发送给TCP/IP中设置的首选DNS地址,如果要查询的域名包含在本地配置区域资源中,则返回解析结果给客户机,大约80%的域名解析都到这里就已经完成。(称为LDNS,Local DNS Server,本地DNS服务器,该DNS服务器性能都会很好,一般都会缓存域名解析结果,此解析具有权威性。)

4.如果本地DNS服务器区域解析不成功,但是该服务器已经缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析。(此解析不具有权威性。)

5.如果LDNS和缓存解析都没有命中,就直接到Root Server根域名服务器请求解析。

6.根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD Server)地址。(gTLD是国际顶级域名服务器,如.com、.cn、.org等,全球只有13台左右。)

7.本地域名服务器再向上一步返回的gTLD服务器发送请求。

8.接收请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址。(这个Name Server就比如是在某个域名服务提供商申请的域名,那么这个域名解析任务就由这个域名提供商的服务器来完成。Name Server可能有多级)

9.本地域名服务器再向上一步返回的Name Server域名服务器发送请求,Name Server域名服务器查询存储的域名和IP的映射关系表,正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给本地域名服务器。

10.本地域名服务器会缓存这个域名和IP的映射关系,缓存的时间由TTL值控制 。

11.把解析的结果返回给客户端,客户端根据TTL值缓存在本地系统缓存中,域名解析过程结束。

递归查询和迭代查询

DNS服务器集群做域名解析的时候,会产生两种查询方式,递归查询与迭代查询。

递归查询

主机向本地域名服务器的查询一般都是才用递归查询。
所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求(即替主机继续查询),而不是让主机自己进行下一步查询。
因此,递归查询返回的查询结果要么是查询到的IP地址,要么是报错,表示无法查询到所需的IP地址。

迭代查询

本地域名服务器向根域名服务器的查询的迭代查询。
迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应该向哪一个域名服务器进行查询”。然后本地服务器进行后续的查询。
根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。
顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。
最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。

dnsmasq

dnsmasq介绍

dnsmasq服务提供DNS缓存和DHCP服务功能。 作为域名解析服务器(DNS),dnsmasq可以通过缓存DNS请求来提高对访问过的网址的连接速度。 作为DHCP服 务器,dnsmasq可以为局域网电脑提供内网ip地址和路由。 DNS和DHCP两个功能可以同时或分别单独实现。 dnsmasq轻量且易配置,此外它还 自带了一个PXE服务器以及对邮件服务器的mx记录的支持,jabber的srv记录的支持等。它提供了DNS功能和可选择的DHCP功能可以取代 dhcpd服务和bind等服务,配置起来更简单,更适用于虚拟化和大数据环境的部署。
dnsmasq配置文件是/etc/dnsmasq.conf,在它的配件文件中的注释已经给出了非常详细的解释。

dnsmasq 的默认的配置文件中有许多选项,而且在设置上有很当灵活。dns与dhcp的许多功能它都具备。它可服务于那些只在本地适用的域名,这些域名是不会在全球 DNS服务器中出现的(私有域名)。DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相 关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。

一般情况下,我们可以用bind解决dns的问题,dhcpd解决dhcp的问题,可用dnsmasq解决下面的一些维护问题:

  • 局域网有很多机器希望使用一致的hosts文件,你需要经常维护这份列表。
  • 你希望局域网的人访问某个域名时,拦截下来到指定的ip,做缓存节省带宽或者其它用途都可以。优先使用本地自定义dns。
  • 阻止对某个域名的正常解析

dnsmasq 能够缓存外部DNS记录,同时提供本地DNS解析或者作为外部DNS的代理, 即dnsmasq会首先查找/etc/hosts等本地解析文件,然后再查找 /etc/resolv.conf等外部nameserver配置文件中定义的外部DNS。所以说dnsmasq是一个DNS中继。DNS配置同样写入dnsmasq.conf配置文件里。

同时在/etc/hosts文件中加入本地内网解析,这样一来每当内网机器查询时就会优先查询 hosts文件,这就等于将/etc/hosts共享给全内网机器使用,从而解决内网机器互相识别的问题,比如像hadoop添加datanode节点 时。相比逐台机器编辑hosts文件或者添加Bind记录,仅需要编辑一个/etc/hosts文件。

利用host文件安全加固

把危险网站加到host里面使它访问不了。

dnsmasq安装

安装dnsmasq:dnf -y install dnsmasq
查看状态:systemctl status/stop/start/restart dnsmasq

dnsmasq的配置文件

dnsmasq的服务对应三个配置文件:

/etc/dnsmasq.conf    #主配置文件
/etc/hosts           #本地映射文件
/etc/resolv.conf     #域名配置文件

/etc/hosts文件: hosts文件包含了ip地址和主机名之间的映射,包括主机名的别名,在没有域名服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的ip地址,否则就需要使用DNS服务程序来解决。通常可以将常用的域名和ip地址映射加入到hosts文件中,实现快速方便的访问 每行可以是两部分,即网络ip地址和主机名。主机名和域名的区别在于,主机名通常在局域网内使用,通过hosts文件,主机名就被解析到对应ip。
解析顺序:浏览器DNS缓存->本地计算机HOSTS文件->本地系统DNS缓存->DNS服务器

对于检查的顺序可以通过systemd-resolve完成一个简单的测试。(systemd-resolved.service用于运行DNS查询和维护DNS缓存。)

dnsmasq.conf

1.修改dnsmasq监听的网卡
listen-address
定义dnsmasq监听的地址,默认是监控本机的所有网卡上。

2.启用日志文件: log-queries 这里默认是没有开的 log-facility=/var/log/dnsmasq.log 这行要自己加上,定义日志的文件
其他配置文件看农夫笔记里。

nslookup的使用

需要在kali上安装nslookup工具,命令为apt-get -y install dnsutils
nslookup命令:查询DNS解析用的命令 可以指定dns服务器 server 192.168.0.239

也可以查询DNS记录中的其他记录:
可以是以下这些类型:

A       #地址记录(直接查询默认类型)
AAAA    #地址记录
AFSDB   #Andrew文件系统数据库服务器记录
ATMA    #ATM地址记录
CNAME   #别名记录
HINFO   #硬件配置记录,包括CPU、操作系统信息
ISDN    #域名对应的ISDN号码
MB      #存放指定邮箱的服务器
MG      #邮件组记录
MINFO   #邮件组和邮箱的信息记录
MR      #改名的邮箱记录
MX      #邮件服务器记录
NS      #名字服务器记录
PTR     #反向记录
RP      #负责人记录
RT      #路由穿透记录
SRV     #TCP服务器信息记录
TXT     #域名对应的文本信息
X25     #域名对应的X.25地址记录

如指定查询邮箱解析 set type=mx

绕云waf小技巧

在我们遇到存在云waf的网站时,我们访问并不是直接解析到该网站,而是将我们的请求解析到云waf上,云waf会将请求进行一个过滤,将含有危害的请求过滤掉,将正常的请求发送给网站服务器进行响应。

所以在我们找到该网站的真实ip前提条件下,那么我们就可以在hosts文件中添加一个解析指向该网站的真实ip,从而达到绕过云waf。

9.DNS和DNSmasq服务相关推荐

  1. DNS劫持DNSmasq详细解析及详细配置

    2019独角兽企业重金招聘Python工程师标准>>> 常用于测试使用,安装环境为MacOS 一.Dnsmasq介绍 Dnsmasq 提供 DNS 缓存和 DHCP 服务功能.作为域 ...

  2. CentOS 7配置DNS和DHCP服务

    安装Dnsmasq Dnsmasq 提供 DNS 缓存和 DHCP 服务功能.作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度.作为DHCP 服务器 ...

  3. 很好用的DNS工具--------DNSmasq

    今天介绍一款布署,配置都十分方便快捷的DNS工具---DNSmasq NSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能.它服务那些 ...

  4. 本地DNS服务器-Dnsmasq安装与配置

    1.Dnsmasq安装 Dnsmasq安装:yum install dnsmasq -y Dnsmasq版本:dnsmasq -v Dnsmasq启动:service dnsmasq start 查看 ...

  5. DNSmasq服务搭建

    DNSmasq介绍 DNSmasq是一个小巧且方便地用于配置 DNS 和 DHCP 的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能. 它服务那些只在本地适用的域名,这些域名是不会在全 ...

  6. linux服务器拓扑图,Linux服务器作为网关的DNS分离解析服务(CentOS 7版本)

    一.DNS分离解析服务拓扑图 由Linux服务器作为网关,通过NAT地址转换的功能,根据不同网络的来访者,解析相同的域名从而得到不一样的IP地址.即网络被分为私网(局域网)和公网(广域网)两个部分,N ...

  7. 如何快速的自建 DoH ( DNS over HTTPS) 服务

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 1. 前言 DoH(DNS over HTTPS),顾名思义,使用HTTPS协议执行DNS查询,除了最常用的UDP ...

  8. 阿里云公共DNS安全传输服务介绍(DoH/DoT)

    概述 阿里公共DNS致力于为广大的互联网用户提供快速.稳定和安全的DNS解析.然而传统的DNS查询和应答采用UDP和TCP明文传输,存在网络监听.DNS劫持.中间设备干扰的风险: 网络监听风险:即便用 ...

  9. DNS高级部署使用RSYNC部署搭建DNS view主从服务

    一.前期拓扑图规划 DNS双网卡:eth0:192.168.6.248 eth1:192.168.7.248 电信用户:192.168.6.X这个网段 模拟IP地址6.248 6.244 联通用户:1 ...

最新文章

  1. 分行与支行有什么区别
  2. python基础知识05-控制流程
  3. android自定义布局实现优惠券效果
  4. Centos7.5 lnmp+mongodb扩展
  5. vue项目使用大华摄像头怎样初始化_Vue接入监控视频技术总结
  6. 吴恩达《机器学习训练秘籍》中文版58章节完整开源
  7. bzoj2285 [SDOI2011]保密 分数规划spfa+最小割
  8. Asp.Net Core发布绑定域名和端口
  9. Eclipse 安装 Fatjar.jar失败的解决方法
  10. CXF之jaxws:endpoint对spring bean的引用
  11. 解决Zabbix网页端Get value error: cannot connect to [[192.168.238.139]:10050]: [113] No route to host问题...
  12. Sql不区分大小写查询
  13. HTML+JS调用摄像头
  14. 确定权重的方法-主成分分析
  15. 2014.10.6模拟赛【魔兽争霸】
  16. SAP PS 后台配置
  17. WTL 自绘控件库 (CQsComboBox)
  18. OA的岗位管理功能模块的实现总结
  19. 大佬H5网页手机端怎么应用微信快捷登陆?
  20. CMD管理员运行切换目录

热门文章

  1. http://stormzhang.com/devtools/2014/12/09/android-studio-tutorial3/ 安卓studio 安装教程
  2. 中兴力维喜获“中国智慧城市创新应用金奖”
  3. 【OCR】文本检测方案 TextFuseNet解读
  4. 深度学习目标检测方法汇总
  5. java中输出一天每半个小时的时间段
  6. 谷歌浏览器打开本地堡垒机应用发布服务器cmd的方法
  7. c++实现strstr函数
  8. 如何使用chatGPT生成小红书种草文案
  9. php计算日期差天数
  10. 「题解」关于sizeof陷阱,无符号整形,变种水仙花数