如果没有 A、AAAA 或 CNAME 记录,如何访问网站?

如果没有 A、AAAA 或 CNAME 记录,如何访问网站?

有人帮助我在 VPS 上设置 Apache 服务器,他说我可以这样设置 DNS,即无法通过ping主机名来解析 IP,因为 ping 工具显然只查询 A/AAAA/CNAME 记录。

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

有人知道他是怎么做到的吗?我如何才能为我的域名复制此操作?最后,如果这是可行的方法,那么它究竟是如何工作的(从技术角度来看)?

答案1

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

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

_http._tcp.example.com. IN      SRV     0 5 2673 webserver.example.com.

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

webserver.example.com.  IN      A       198.51.100.39

问题是,这些提议都没有得到真正的支持,据我所知,大多数浏览器甚至都没有实现这一点。直到今天,我听到的最新消息是浏览器实现了它。甚至Mozilla 自己的错误跟踪器显示该功能在 Firefox 中尚未实现,所以我不太清楚你的朋友证明了什么。

因此,这种方法有两个缺点:

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

其次,它实际上并不能保护您免受最愚蠢的白痴的攻击,因为查询 DNS 并找到服务器的实际 IP 地址非常简单,而仅使用 SRV 记录只会使它变得稍微不那么简单;您必须进行两次查找,而不是一次。这可是个大问题。

答案2

如果这是一个私人网站,您只需使用 IP 地址即可访问它。但如果该网站位于 Apache 虚拟域上,例如 www.example.secret,则浏览器需要使用 URLhttp://www.example.secret否则 Apache 将不允许其进入网站。

诀窍是让这个私人网站的每个成员将 www.example.secret 的 IP 地址添加到他们的主机文件中。

但是如果你正在做一些非法的事情,美国国家安全局就会知道这个伎俩,他们很容易就能识别出具有不存在域名的网络服务器,这样他们就可以窃取你的所有流量。

此功能对于我们必须设置 QA/Acceptance 测试服务器并使用真实生产主机名访问它们的人来说非常有用。

相关内容