确保本地网络上 2 个 Linux 服务器之间的通信安全,只允许它们访问需要的端口

确保本地网络上 2 个 Linux 服务器之间的通信安全,只允许它们访问需要的端口

我有两台 Linux 服务器,它们通过交叉连接电缆相互连接,形成一个本地网络。其中一台服务器为另一台服务器(例如数据库服务器)提供了一个 DMZ,该 DMZ 必须非常安全。

我将这个问题限制在两个服务器之间的通信,这些端口只需要对这些服务器可用(而不需要其他任何服务器)。因此,可以通过以下方式建立两个服务器之间的通信:

(1)在两台服务器上打开所需的端口,并根据应用程序的规则进行身份验证。

(2)禁用与交叉连接电缆所连接的 NIC 卡关联的 IP 表(在两台服务器上)。

哪种方法更安全?

在第一种情况下,所需的端口向外界开放,但受用户名和密码保护。

在第二种情况下,所需的端口均不向外界开放,但由于与交叉连接电缆关联的 NIC 卡的 IP 表已被禁用,因此基本上所有端口都可以被视为在两个服务器之间“开放”(因此,如果创建 DMZ 的服务器受到威胁,则 DMZ 服务器上的黑客可以使用交叉连接电缆查看所有开放的端口)。

有没有传统观点认为,只有这些服务器需要访问端口,才能保证两台服务器之间的通信安全?

答案1

我倾向于一种:确保只有来自服务器的连接才能建立。因此,您需要在 iptables 规则中添加源选项。然后,您仍然可以通过身份验证进行防御。问题是,如果服务器上运行着可以登录数据库的应用程序,那么如果恶意用户可以访问您的服务器,那么他可能会发现这一点。

我不明白的是,为什么要禁用 NIC 上的 iptables,并不是因为您在 NIC 上启用了 iptables,WAN 就会突然访问它。相反,您可以使用它来限制访问。

答案2

您应该结合这些方法并使用 iptables。

machineone 有 ip machineone machinetwo 有 ip machinetwo

在 machineone 上:

-A INPUT -s machinetwo -d machineone --dport allowedport2 -j ACCEPT
-A INPUT -s machinetwo -d machineone --dport allowedport2 -j ACCEPT
-A INPUT -j DENY

在 machinetwo 上:

-A INPUT -s machineone -d machinetwo --dport allowedport1 -j ACCEPT
-A INPUT -s machineone -d machinetwo --dport allowedport2 -j ACCEPT
-A INPUT -j DENY

相关内容