DNSmasq

 一 什么是DNS         

1.DNS(Domain Name System,域名系统)是互联网的一项核心服务,作用就是将域名转换为ip地址。

1)域名解析:

  • 将人们易于记忆的域名(如 www.example.com)转换为计算机可识别的 IP 地址(如 192.168.1.1)。当用户在浏览器中输入一个域名时,DNS 系统会查询相应的 IP 地址,使得浏览器能够与目标服务器建立连接。

  • 例如,当你访问一个网站时,你的计算机首先向本地 DNS 服务器发送请求,询问该域名对应的 IP 地址。如果本地 DNS 服务器不知道,它会向更高层次的 DNS 服务器查询,直到找到目标 IP 地址并返回给你的计算机。

2)负载均衡:

  • 通过将一个域名映射到多个 IP 地址,可以实现服务器的负载均衡。DNS 服务器可以根据不同的策略(如轮询、地理位置等)将客户端请求分发到不同的服务器上,提高系统的性能和可靠性。

  • 例如,一个大型网站可能有多个服务器来处理用户请求。DNS 可以将用户的请求均匀地分配到这些服器上,避免单个服务器过载。

3)别名管理:

  • 允许为一个 IP 地址设置多个域名别名。这在一些情况下非常有用,例如一个公司可能有多个品牌名称,都指向同一个服务器。通过 DNS,可以将这些不同的域名都解析到相同的 IP 地址。

  • 例如,一家电商公司可能有主域名和多个子品牌域名,但实际上它们都指向同一组服务器。DNS 可以方便地管理这些不同的域名,使得用户可以通过不同的域名访问相同的服务。

 2.DNS解析过程工作在UDP协议上,端口为53。TCP也是默认端口为53。

注:UDP与TCP的关系

  • TCP 是面向连接的协议,在数据传输之前,需要在发送方和接收方之间建立一个可靠的连接,这个连接过程通过三次握手来完成。连接建立后,数据可以按顺序、可靠地传输。

  • UDP 是无连接的协议,发送方不需要与接收方建立连接,直接将数据封装成数据包发送出去,接收方也不需要确认是否收到数据。

2.DNS解析流程

1)用户发起请求

  • 当用户在浏览器中输入一个域名(如 www.example.com),希望访问对应的网站时,浏览器首先会检查自己的缓存中是否有该域名对应的 IP 地址。如果有,就直接使用这个 IP 地址进行访问;如果没有,就会向操作系统的 DNS 解析器发起请求。

2)操作系统的 DNS 解析器查询

  • 操作系统的 DNS 解析器首先会检查本地的 hosts 文件,看是否有该域名对应的 IP 地址。hosts 文件是一个本地的文本文件,可以手动配置域名和 IP 地址的对应关系。如果在 hosts 文件中找到了对应关系,就直接使用这个 IP 地址进行访问;如果没有,就会向本地 DNS 服务器发起请求。

3)本地 DNS 服务器查询

  • 本地 DNS 服务器通常由互联网服务提供商(ISP)提供,它会收到来自用户操作系统的 DNS 解析器的请求。本地 DNS 服务器首先会检查自己的缓存中是否有该域名对应的 IP 地址。如果有,就直接返回这个 IP 地址;如果没有,就会向根域名服务器发起请求。

4)根域名服务器响应

  • 根域名服务器是 DNS 系统的最高层次,它负责管理顶级域名(如.com、.org、.net 等)。当根域名服务器收到本地 DNS 服务器的请求时,它会返回负责该顶级域名的顶级域名服务器的地址。

5)顶级域名服务器查询

  • 本地 DNS 服务器根据根域名服务器返回的地址,向负责该顶级域名的顶级域名服务器发起请求。顶级域名服务器会返回负责该二级域名(如 example.com)的权威域名服务器的地址。

6)权威域名服务器查询

  • 本地 DNS 服务器根据顶级域名服务器返回的地址,向负责该二级域名的权威域名服务器发起请求。权威域名服务器是该域名的实际管理者,它会返回该域名对应的 IP 地址。

7)结果返回和缓存

  • 本地 DNS 服务器将权威域名服务器返回的 IP 地址返回给用户操作系统的 DNS 解析器,操作系统的 DNS 解析器再将 IP 地址返回给浏览器。浏览器使用这个 IP 地址与目标服务器建立连接,进行访问。
  • 同时,本地 DNS 服务器、操作系统的 DNS 解析器和浏览器都会将这个域名和 IP 地址的对应关系缓存起来,以便下次访问时可以更快地进行解析。

注:整个 DNS 解析过程可能涉及多个服务器之间的通信,并且可能会因为网络延迟等原因而花费一定的时间。为了提高解析速度,DNS 系统采用了缓存、分布式架构等技术来优化性能。

 二 DNS面临的风险

1.DNS 欺骗(DNS Spoofing)

  • 含义:攻击者通过伪造 DNS 响应报文,将用户导向恶意网站或服务器。例如,当用户在浏览器中输入一个合法的域名时,攻击者可以拦截 DNS 查询请求,并返回一个虚假的 IP 地址,使得用户被引导到攻击者控制的服务器上。
  • 危害:用户可能会泄露敏感信息,如登录凭证、信用卡号码等,或者遭受恶意软件的感染。此外,DNS 欺骗还可能导致企业网络中的数据被窃取或篡改,影响业务的正常运行。

2.DNS 缓存中毒(DNS Cache Poisoning)

  • 含义:攻击者利用 DNS 缓存机制的漏洞,将恶意的 DNS 记录注入到 DNS 缓存服务器中。当其他用户查询相同的域名时,就会得到被篡改的 IP 地址,从而被引导到恶意网站或服务器上。
  • 危害:与 DNS 欺骗类似,用户可能会被引导到恶意网站,面临信息泄露和恶意软件感染的风险。此外,DNS 缓存中毒还可能影响整个网络的稳定性和安全性,因为被篡改的 DNS 记录可能会传播到其他 DNS 服务器上。

3.DDoS 攻击(Distributed Denial of Service)

  • 含义:攻击者通过向 DNS 服务器发送大量的虚假请求,使其无法正常处理合法的 DNS 查询请求。这种攻击方式可以使 DNS 服务器瘫痪,导致整个网络无法正常访问域名。
  • 危害:DDoS 攻击会导致网络服务中断,影响企业和用户的正常业务和生活。此外,DDoS 攻击还可能被用于掩盖其他恶意活动,如数据窃取或网络攻击。

4.DNS 劫持(DNS Hijacking)

  • 含义:攻击者通过篡改 DNS 服务器的配置或网络路由,将用户的 DNS 查询请求重定向到恶意的 DNS 服务器上。这种攻击方式可以在用户不知情的情况下控制其网络访问,实现信息窃取、广告插入等恶意目的。
  • 危害:用户的网络访问可能会被劫持,导致无法访问合法的网站或服务。此外,攻击者还可能利用 DNS 劫持进行钓鱼攻击、恶意软件传播等活动,给用户带来严重的安全威胁。

5.隐私泄露

  • 含义:DNS 查询请求通常包含用户访问的域名信息,这些信息可能会被第三方窃取或监控,从而泄露用户的隐私。例如,一些互联网服务提供商(ISP)可能会记录用户的 DNS 查询历史,用于广告投放或其他商业目的。
  • 危害:用户的隐私可能会被侵犯,导致个人信息泄露、被跟踪等问题。此外,企业的商业机密也可能通过 DNS 查询泄露,给企业带来经济损失和法律风险。

为了应对这些风险,可以采取以下措施:

  • 使用加密的 DNS 协议,如 DNS over TLS(DoT)或 DNS over HTTPS(DoH),防止 DNS 查询请求被窃听和篡改。
  • 定期更新 DNS 服务器的软件和补丁,修复已知的安全漏洞。
  • 配置 DNS 服务器的访问控制列表,限制只有授权的用户或设备可以访问 DNS 服务器。
  • 使用 DNSSEC(DNS Security Extensions)技术,对 DNS 响应进行数字签名,验证其真实性和完整性。
  • 监控 DNS 服务器的流量和日志,及时发现异常的 DNS 查询请求和攻击行为。
  • 教育用户提高安全意识,避免访问不明来源的网站和点击可疑的链接,防止被钓鱼攻击和恶意软件感染。

三 DNSmasq

1.DNSmasq 是一个小巧且功能强大的软件,主要用于提供域名系统(DNS)解析和动态主机配置协议(DHCP)服务。在家庭网络、小型办公室网络中,DNSmasq 可以作为一个轻量级的 DNS 和 DHCP 服务器,满足基本的网络服务需求。它不需要复杂的服务器配置,易于安装和使用,非常适合小型网络环境。可在多种操作系统上运行,包括 Linux、Windows、macOS 等。这使得它在不同的环境中都能得到广泛应用。

2.DNSmasq配置文件 /etc/dnsmasq.conf

3.DNSmasq 安装

关闭防火墙

修改selinux配置文件

将enforcing改为disabled

安装dnsmasq

dnf -f install dnsmasq

服务启动 

systemctl start dnsmasq
systemctl enable dnsmasq

dnsmasq文件配置

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

解析过程 本机host文件->浏览器缓存->本地dns缓存->dns服务器

4.检查顺序测试

查看有没有这个包

dnf list |grep systemd-resolved

   

dnf -y install 上面的包
systemctl start systemd-resolved                #启动服务
systemd-resolve --flush-cache                   #清除主机中的DNS缓存
systemd-resolve --statistics                    #查看DNS缓存数量
systemd-resolve www.baidu.com                   #使用工具解析域名

/etc/resolv.conf 文件用于设置DNS服务器 的ip地址及域名,若没指定namesever就找不到DNS服务器。一般为 namesever 114.114.114.114

vi /etc/dnsmasq.conf 对应其端口,默认53,取消后为5353

domain-needed 强制使用完整的解析域名,从不转发错误的域名

启用日志文件

vi  /etc/dnsmasq.conf  自己加入一下配置文件

log-queries
log-facility=/var/log/dnsmasq.log

systemctl restart dnsmasq 

技巧:在你找到对方主机的真实ip时,可以直接从/etc/hosts文件配置其解析关系,可以直接绕过云waf,向对方其主机发送请求

5.通过tail -f /var/log/dnsmasq.log可以观看其实时日志,从中获取中有效信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值