网络第 7 层深度数据包检测 Linux 解决方案不是一体化发行版吗?

网络第 7 层深度数据包检测 Linux 解决方案不是一体化发行版吗?

概述:

我有一款软件,其中硬编码了我们的 Edge/DNS 服务器,但 DNS 服务器返回的 DNS 查询没有被正确屏蔽。我需要使用请求查询的原始服务器而不是 DNS 服务器 IP 来屏蔽 BIND 查询请求返回的 DNS 条目。我想要屏蔽的原因是,如果攻击者获取了我的某个边缘服务器 IP 并对其进行 DDoS 攻击,他们将无法获取其他服务器 IP 并对其进行 DDoS 攻击或攻击它们。

下图说明了我想要完成的任务的一个简单版本。

用户可以通过两种方式连接:

  • 直接发送到提供给他们的/硬编码的边缘服务器 IP

或者

  • 直接连接到指定的边缘服务器,然后通过 Web 界面选择连接到哪个办公室/服务器,在后端通过 VPN 隧道在其边缘服务器上执行 iptables REDIRECT。

问题:

事件顺序:

  1. 用户 2 连接到其边缘服务器 (server2)
  2. 边缘服务器 2 将其查询重定向到边缘服务器 1
  3. 边缘服务器 1 将查询响应返回给边缘服务器 2,其中 DNS 数据包中嵌入了边缘服务器 1 的 IP。
  4. 用户获得他们不应该知道的隐藏边缘服务器 IP。

核心问题:

边缘服务器的 IP 嵌入在 DNS 响应数据包中,需要屏蔽为用户连接到的原始边缘服务器 IP

问题

DNS 查找示例输出:

  • 用户 2 查询 google.ca
  • DNS Server1 处理查询并返回其自己的 IP 而不是 Google 的 IP 的结果。

查找请求(错误):

nslookup google.ca
Server:  UnKnown
Address:  2.2.2.2
Name:    google.ca
Address:  1.1.1.1

应显示的查找请求:

nslookup google.ca
Server:  UnKnown
Address:  2.2.2.2
Name:    google.ca
Address:  2.2.2.2

以下是构建的网络/系统的大规模版本。

根据用户数量,办公室可以拥有一台或多台服务器。

(这只是为了让你了解它需要如何扩展)

基础设施

我尝试过的:

  • iptables 预/后路由(未屏蔽)
  • 使用 BIND 配置(修改 db.override 文件以返回服务器 IP)可以工作,但由于此文件无法实时更新,因此每个边缘服务器都需要一个单独的服务器。

潜在解决方案理论:

  • 第 7 层解决方案可以改变 DNS 查询结果 IP,无论是防火墙还是强制特定查询显示原始边缘服务器 IP 的嗅探器/注入脚本。

相关内容