【问题标题】:All my DNS A records are accessable from web browser我的所有 DNS A 记录都可以从 Web 浏览器访问
【发布时间】:2015-12-18 18:40:41
【问题描述】:

我对 DNS 不太了解,所以请多多包涵,但有人可以解释一下如何防止我的所有默认 DNS A 记录(邮件、ftp、ns1、ns2 等)加载我的主页吗?

例如,当前 ns1.mysite.com 加载主页。我想严格执行它,因此只有 mysite.com 加载主页,同时还允许 uploads.mysite.com 或 blog.mysite.com 正常工作。

我想要它,所以 ns1.mysite.com 结果:

或“ERR_CONNECTION_TIMED_OUT”,而不是我的主页或服务器的默认 404.html 页面。

【问题讨论】:

    标签: .htaccess dns apache2


    【解决方案1】:

    只有使用基于 IP 的虚拟主机才能实现您的计划,但是您必须确保只有用于 Web 服务的名称指向您运行 Web 服务器的 IP 地址。没有别的,甚至没有 smtp。

    类似:

    www1 IN a 192.0.2.100
    www IN a 192.0.2.100
    @ IN a 192.0.2.100
    

    其他所有内容都必须在不同的 IP 上:

    mail IN a 192.0.2.3
    ns IN a 192.0.2.3
    ftp IN a 192.0.2.3
    ns1 IN a 192.0.2.3
    

    为此,您将需要两个单独的 IP 地址,这种情况非常少见 - 但如果您让您的主机(或其他 IP 地址上的任何其他提供商)运行所有其他服务,这可能是可行的。但这也意味着您不能在192.2.0.100 上运行任何其他服务使用不同的名称,只能使用端口 80 HTTP(和端口 443 HTTPS)。否则,该服务将需要一个可以在浏览器中使用的名称。

    要使浏览会话在其他名称上实际超时,您还需要控制防火墙以将数据包丢弃到 IP 地址 192.2.0.3 上的 TCP 端口 80(我个人认为这有点过分了)。您不能使这些名称的决议失败,否则它们将无法用于其目的。但不在该其他 IP 地址上运行 HTTP/HTTPS 服务只会显示连接被拒绝/拒绝,我认为这是可以接受的。

    但是,即使您可以为此目的获得更多 IP 地址,您仍然需要将其与 基于名称的虚拟服务结合起来。

    也就是说,您需要确保您的网络服务器仅在您指定为网络服务器名称的名称到达时处理您的流量。

    您仍然需要考虑如果您使用 IP 地址访问您的站点,或者如果我使用我的域 funny.example.com 指向您的服务器的 IP 地址,并使用自定义配置一个 catchall/default/wildcard 服务器会发生什么错误页面。

    另一方面,如果您不能再拥有一个 IP 地址,借助名称,您仍然可以有一个自定义错误页面,显示您无法控制的名称上没有可用的服务,或者您不想用于网络服务。或者只是简单地将所有此类流量重定向到您的规范名称,这对我来说似乎是最常见的用法。

    【讨论】:

    • 我不能做多个 IP 地址。我想如果有人试图访问这些特殊子域之一,我将不得不重定向到站点根目录(修复 URL)。如果对我有对服务器的完全 shell 访问权限有任何帮助,我想一定有一些 hacky 方法可以让它对特定子域的请求超时。
    • 在包罗万象的服务中,您可以执行比通常浏览器超时更长的处理时间。大多数语言都提供一个特性,通常称为睡眠。但是,这样做的代价是始终将套接字和处理过程保留在内存中,从而使任何攻击者更容易对您的服务器发起 DoS 攻击。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 2013-05-21
    • 2023-03-17
    • 2010-09-08
    • 1970-01-01
    相关资源
    最近更新 更多