networking层7深度包检测linux解决scheme是不是一个一体化的发行版?

概述:

我的软件已经将我们的Edge / DNS服务器硬编码到它们中,从DNS服务器返回的DNS查询没有被正确屏蔽。 我需要将从BIND查询请求返回的DNS条目与请求查询的源服务器(而不是DNS服务器IP)一起屏蔽。 我之所以要屏蔽这个原因,是因为如果一个攻击者得到我的边缘服务器IP和DDoS的一个,他们将无法获得其他服务器的IP和DDoS的攻击或攻击它们。

下图说明了我试图完成的简单版本。

有两种types的用户可以连接的方式:

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

要么

  • 直接连接到他们分配的边缘服务器,然后通过Web界面,他们select连接到哪个办公室/服务器,后端的服务器上的iptables REDIRECT会通过VPN隧道。

问题:

事件顺序:

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

核心问题:

边缘服务器的IP被embedded到DNS响应数据包中,并需要被屏蔽到用户所连接的原始边缘服务器IP上

问题

DNS查找示例输出:

  • User2查询google.ca
  • DNS服务器1处理查询并返回它自己的IP的结果,而不是谷歌的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 

以下是构build的networking/系统的大型版本。

办公室可以有一个或多个服务器,取决于有多less用户。

(这只是给你一个如何扩展的想法)

基础设施

我试过了:

  • iptables的前/后路由(没有掩码)
  • 玩BINDconfiguration(改变db.override文件返回服务器的IP)工作,但将需要一个单独的服务器每个边缘服务器,因为这个文件不能实时更新。

潜在的解决scheme理论:

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