AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 625415
Accepted
Janning
Janning
Asked: 2014-09-02 00:39:39 +0800 CST2014-09-02 00:39:39 +0800 CST 2014-09-02 00:39:39 +0800 CST

同时使用 CNAME 和 A 记录的错误 DNS 回答

  • 772

我们有一个客户为他的域设置了 CNAME 记录。不知何故,他也设法设置了一个 A 记录,这应该是不可能的,并且被 DNS 禁止。但结果是:

$ dig @ns1.your-server.de tippspiel-bl1.unternehmen-frische.de 
...
;; ANSWER SECTION:
tippspiel-bl1.unternehmen-frische.de. 7200 IN CNAME www.kicktipp.de.
tippspiel-bl1.unternehmen-frische.de. 7200 IN A 78.46.10.156

第二条记录是非法的。但这导致其他缓存 DNS 服务器78.46.10.156在被问及时返回的一些混淆www.kicktipp.de。但这是完全错误的。

另一台 DNS 服务器使用了这两个答案并将它们混合在一起。最终结果:访问 www.kicktipp.de 的用户被发送到78.46.10.156哪个 IPunternehmen-frische.de

在为具有 CNAME 和 A 记录的域设置 DNS 时,我似乎可以劫持一个域。这是一个已知的错误?如何保护我的域免受它的侵害?

domain-name-system
  • 2 2 个回答
  • 6029 Views

2 个回答

  • Voted
  1. Pratap
    2014-09-02T01:12:55+08:002014-09-02T01:12:55+08:00

    如果您自己管理 DNS 服务器,则可以启用自定义检查来保护此类内容。请阅读以下直接取自 RFC 的内容。这只是人为错误,可以使用一些脚本来防止或在重新加载区域配置之前进行检查。

    CNAME 记录

    CNAME 记录不允许与任何其他数据共存。换句话说,如果 suzy.podunk.xx 是 sue.podunk.xx 的别名,那么你不能同时拥有 suzy.podunk.edu 的 MX 记录,或者 A 记录,甚至是 TXT 记录。尤其不要尝试像这样组合 CNAME 和 NS 记录!:

       podunk.xx.      IN      NS      ns1
                       IN      NS      ns2
                       IN      CNAME   mary
       mary            IN      A       1.2.3.4
    

    经验不足的管理员通常会尝试这样做,这是让您的域名也成为主机的明显方式。但是,像 BIND 这样的 DNS 服务器会看到 CNAME 并拒绝为该名称添加任何其他资源。由于不允许其他记录与 CNAME 共存,因此忽略 NS 条目。


    不要将 CNAME 与指向其他名称(如 MX、CNAME、PTR 和 NS)的 RR 结合使用。(如果您想实现无类地址内委托,则 PTR 是一个例外。)例如,强烈建议不要这样做:

           podunk.xx.      IN      MX      mailhost
           mailhost        IN      CNAME   mary
           mary            IN      A       1.2.3.4
    

    [RFC 1034]在第 3.6.2 节中说不应该这样做,并且[RFC 974]明确指出 MX 记录不应指向由 CNAME 定义的别名。这会导致访问数据时出现不必要的间接访问,并且 DNS 解析器和服务器需要更多工作才能获得答案。如果您真的想这样做,您可以通过在主机文件上使用诸如 m4 之类的预处理器来完成同样的事情。

    此外,具有指向 CNAME 的链式记录(例如 CNAME)可能会使管理问题更容易,但众所周知,它会在一些无法正确检查循环的解析器中解决错误。因此,某些主机可能无法解析此类名称。

    让 NS 记录指向 CNAME 是不好的,并且可能与当前的 BIND 服务器发生严重冲突。事实上,当前的 BIND 实现将忽略这些记录,可能导致蹩脚的委托。BIND 中进行了一定数量的安全检查,以防止欺骗 DNS NS 记录。此外,据报道,较旧的 BIND 服务器将陷入无限查询循环,试图找出别名名称服务器的地址,从而导致发送连续的 DNS 请求流。

    • 4
  2. Best Answer
    Andrew B
    2014-09-03T06:18:04+08:002014-09-03T06:18:04+08:00

    要专门解决您的问题:

    • 不,这不是一个经常遇到的问题。也就是说,中毒确实发生了,但它通常依赖于欺骗性的回复,而不是A与CNAME. DNSSEC 的设计考虑了中毒攻击。
    • 如果在此处实施 DNSSEC,则验证解析器很清楚该A记录不是由您签名的。在您自己的区域内没有其他可以对这个问题产生影响的事情。

    由于您缺乏其他信息,您将不得不与您的 ISP 联系。定义要引用的 RFC 的最适用标准是RFC2181 ,因为它在 CNAME 与其他数据共存的主题上比RFC1034不那么模棱两可。(RFC1034 不赞成,RFC2181 禁止,除非记录与 DNSSEC 相关)

    所有这一切都说,我有点怀疑问题是否与您描述的完全一样。如果tippspiel-bl1.unternehmen-frische.de. IN A在www.kicktipp.de. IN A.

    • 4

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve