![使用 PTR 记录抓取子域名 IP](https://linux22.com/image/735341/%E4%BD%BF%E7%94%A8%20PTR%20%E8%AE%B0%E5%BD%95%E6%8A%93%E5%8F%96%E5%AD%90%E5%9F%9F%E5%90%8D%20IP.png)
我正在寻找一个模糊问题的解决方案。出于安全策略原因,我们有一个使用 PeerBlock 的工作站,该工作站有一个阻止列表,该列表基本上将整个互联网列入黑名单,然后是我们认为可以的少数 IP 的允许列表。
这个特定的工作站上有一个由外部公司支持的软件,他们选择的远程支持工具是 Teamviewer。我们就使用替代软件包进行过多次“讨论”,但可以肯定的是,他们不会让步,而我也没有权力改变这一点。所以现在我需要找到一种方法将 teamviewer 列入白名单。
...我们无法提供我们的服务器 IP 列表。但是,我们所有的 IP 地址都有解析为 *.teamviewer.com 的 PTR 记录
所以现在我想知道我是否可以使用 PTR 记录以某种方式抓取并提取所有使用的子域及其关联的 IP 地址。
我有一个 Windows 工作站和一个 ubuntu 工作站可以定期执行此任务,因此 powershell 或 shell 脚本是我首选的武器。
有什么方法可以实现我想要做的事情吗?我一直在研究dig
,但还是不太明白。
答案1
我认为您并不真正想在互联网上进行完整的反向查找,因此如果可能的话,请查看 tcp 包装器。
答案2
您可能考虑的一种可能的方法是,供应商是否拥有来自 ARIN 或相关 IP 注册机构的正式 IP 块分配。来自其 ISP 的非正式 IP 分配也可能可行,但找到 ISP 非正式分配的 IP 块边界会稍微困难一些。一旦知道了这样的 IP 范围,您就可以将反向查找抓取限制在该 IP 块内。
鉴于他们不会告诉你他们的 IP 是什么,我能想到的一个方法是创建一个示例 TeamViewer 会话并检查进出目标机器的网络流量。这样可能只会给你一个 TeamViewer 可能使用的 IP 号码。你可以对该 IP 进行 whois 查询,看看它是否是更大块的一部分,然后将你的 PTR 抓取限制在该网络块内。
在我看来,这仍然不是最好的解决方案。它肯定没什么意思,更糟糕的是,它很脆弱。首先,无法保证您找到的 IP 网络块是他们使用的唯一网络块。此外,如果 TeamViewer 更改其服务器上的 IP,您的内容可能会中断,因此您只能听天由命,因为他们随时可能做出更改(他们没有义务通知您),这可能会导致您的配置在没有任何事先通知的情况下失败。
正如 @Jramdom 所说,更好的方法是找到一个类似 tcp 包装器的解决方案,它将为您执行反向查找。这将有几个好处。首先,您的系统一次只需查找一个 IP,并且只有在需要时才会进行查找。这带来的第二个好处是,这些反向查找将始终使用 TeamViewer 发布的最新 DNS 信息中的数据,而不是可能已经过去好几个月的抓取运行中的数据。TCP 包装器将在连接时查找 PTR 记录并检查它是否与 *.teamviewer.com 匹配。这使您的设置更能适应 TeamViewer 可能做出的更改,前提是它们在更改服务器 IP 时更新其反向 DNS。