多个公有 IP 地址的 IPTABLES

多个公有 IP 地址的 IPTABLES

目前我有两台运行 Debian 7 的服务器,使用 Pacemaker 和 Corosync 设置 HA Active/Passive,如下所示:

node1->IP->xx.xx.xx.1
node2->IP->xx.xx.xx.2
VIP(Floating IP) ->xx.xx.xx.3

它配置了心跳以进行故障转移设置。以上所有 IP 都是面向公众的。

当其他节点发生故障等时,系统仍按高可用性预期运行。当其中一个系统处于活动状态时,将有两个 IP 分配给一台服务器。

所以我的问题是-

  1. 我是否必须为不同的 IP(VIP 和静态公共 IP)添加任何单独的 iptable 规则?

  2. 如何仅允许(监听)特定 IP(VIP)上的流量用于例如 DB 服务器的服务,而不是来自外界的其他公共地址(xx.1)。

    如果您对设置安全性等有任何疑问,请发表评论。

谢谢

答案1

我是否必须为不同的 IP(VIP 和静态公共 IP)添加任何单独的 iptable 规则?

这取决于您现有的iptables规则。如果您明确允许访问特定 IP 地址,那么是的,您需要向 VIP 添加规则。如果您只是接受到特定端口的连接,那么不需要。

如何仅允许(监听)特定 IP(VIP)上的流量用于例如 DB 服务器的服务,而不是来自外界的其他公共地址(xx.1)。

这取决于特定服务所使用的软件。例如,MySql可以指示绑定到特定 IP 地址,这样与任何其他 IP 地址的连接都不会成功。您还可以使用它iptables来阻止 VIP 上除高可用性服务端口之外的所有内容。

我的个人规则iptables是始终明确允许我知道是必要的,并阻止其他一切。

如果您想要阻止 VIP 上的所有内容(除了要提供高可用性的服务,例如端口 80 上的 http):

iptables -A INPUT -d xx.xx.xx.3 --protocol tcp --dport 80 -j ACCEPT
iptables -A INPUT -d xx.xx.xx.3 -j REJECT

同样,根据您的意愿允许或阻止非 VIP 地址上的端口。

INPUT顺便说一句,您应该有一个接受所有协议流量的早期规则icmp;许多模糊的网络问题都是由于人们无知地阻止icmp数据包造成的。

相关内容