如何在没有 A、AAAA 或 CNAME 记录的情况下访问网站?

use*_*141 -1 domain-name-system

帮助我在 VPS 上设置 Apache 服务器的人说我可以设置我的 DNS,这样你就不能通过ping输入主机名来解析 IP,因为显然 ping 工具只查询 A/AAAA/CNAME 记录.

他说他这样做的方法是创建一个混淆端口,比如 2673 或类似的端口,并创建一个链接到它的 SRV 记录。获取服务器 IP 的唯一方法是挖掘原始 DNS 数据。他向我展示了他的一个站点的示例,果然,我无法 ping 通 IP,并且在使用 nmap 密集扫描时,我无法在端口扫描或服务器上获得任何有意义的结果,但是我可以在 Firefox 中访问它。

有谁知道他是怎么做到的?我如何才能为我的域名复制这个?最后,如果这是这样做的方式,它究竟是如何工作的(技术角度)?

Mic*_*ton 5

是的,这在理论上是可能的。关于如何使用SRV 记录定位 HTTP 站点已经有多个提议,其中最著名的是RFC 2782。事实上,许多其他服务已经以类似的方式使用 SRV 记录。

可能会定位example.com在端口 2673 上运行的 HTTP 服务的示例 SRV 记录可能如下所示:

_http._tcp.example.com. IN      SRV     0 5 2673 webserver.example.com.
Run Code Online (Sandbox Code Playgroud)

这当然必须有相应的记录来定位真实的webserver

webserver.example.com.  IN      A       198.51.100.39
Run Code Online (Sandbox Code Playgroud)

问题是这些提议都没有得到任何真正的吸引力,据我所知,大多数浏览器甚至没有实现这一点。直到今天,我最后听到的是没有网络浏览器实现它。甚至Mozilla 自己的错误跟踪器也显示它在 Firefox 中未实现,所以我不确定你的朋友展示了什么。

因此,您对这种方法有两个负面影响:

首先,如果您没有地址记录而仅依赖 SRV 记录建议,则大多数人将无法查看您的网站。

其次,它不会真正保护您免受最愚蠢的白痴的侵害,因为查询 DNS 并定位您服务器的实际 IP 地址非常简单,而仅使用 SRV 记录只会使其变得不那么简单;您必须进行两次查找而不是一次查找。大毛交易。