通过服务器 B 将端口从服务器 A 转发到服务器 C,但允许服务器 B 作为独立服务器进行通信

通过服务器 B 将端口从服务器 A 转发到服务器 C,但允许服务器 B 作为独立服务器进行通信

以下情况:

服务器A没有开放端口。IP 1.1.1.1。它可以看到ServerB。

服务器B开放了端口 1000、2000。IP 2.2.2.2。只能看到 ServerC。

服务器C开放了端口 1000、2000。IP 3.3.3.3。无法看到其他服务器。

这里ServerA看不到ServerC。

可以这样说明方案

我需要的是允许 ServerA 通过端口 1000 和 2000 与 ServerC 通信。可以使用 iptables 通过 ServerB 进行通信(端口转发,如下所示https://serverfault.com/a/838865/518609)。然而,问题是 ServerB 也应该使用相同的端口与 ServerC 进行通信。

因此,ServerA 和 ServerB 都应该与 ServerC 通信,并且 ServerC 应该区分哪个服务器(A 或 B)发送了数据包,但只有 ServerB 可以连接到 ServerC。

打开其他端口是不可能的(嗯,技术上可行,但我们的安全部门不喜欢这个想法,而且即使是例外也需要长达 3 周的时间)。

操作系统是 SLES(SUSE Linux Enterprise Server)。

这可能吗?

答案1

iptables 不是路由器。

您有这些流的用例,请允许它们。路由使得 A 和 B 有到 C 的路径。允许任何防火墙中的相关端口,并遵循您组织的任何其他相关安全策略。

非路由器节点只有在提供某种服务(中间件类型)时才需要位于路径中。例如代理或防火墙。

相关内容