确保本地networking上的2台Linux服务器之间只有他们需要访问的端口之间的通信

我有两台Linux服务器通过交叉连接线相互连接,组成一个本地networking。 其中一台服务器为其他服务器(例如数据库服务器)提供了非常安全的DMZ。

我限制了这个问题,两个服务器之间的通信只需要这些服务器(而不是其他人)可用。 因此,两台服务器之间的通信可以通过以下方式build立:

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

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

哪种方法更安全?

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

在第二种情况下,所有端口都不对外开放,但是由于与交叉连接电缆相关的NIC卡的IP表被禁用,所以基本上所有的端口都可以被认为是“打开”两台服务器(如果创buildDMZ的服务器受到损害,则DMZ服务器上的黑客可以查看使用交叉连接电缆打开的所有端口)。

任何传统的智慧如何使两个服务器之间的通信安全的端口只有这些服务器需要访问?

那么我倾向于:确保只有来自服务器的连接可以发起。 所以你需要添加一个源选项到iptables规则。 那么你仍然有一个防守与authentication。 问题是,如果服务器上运行的应用程序可以login到数据库,那么如果恶意用户访问了服务器,就有可能发现这个应用程序。

我不明白的是,为什么要禁用NIC上的iptables,这不是因为你启用了一个突然被WAN访问的NIC的iptables。 相反,你可以用它来限制访问。

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

机器有ip machineone machinetwo有ip machinetwo

在机器上:

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

在机器上:

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