如何永久允许 RDS 实例连接到我的服务器?

如何永久允许 RDS 实例连接到我的服务器?

我在用着作为从属的 Amazon RDS 实例复制我的裸机 MySQL 服务器,作为备份。

我正在通过以下方式在服务器的防火墙中授权 RDS 实例的 IP:

# iptables \
  --insert INPUT \
  --source xxxxxxx.yyyyyyy.eu-west-1.rds.amazonaws.com \
  --protocol tcp \
  --destination-port mysql \
  --jump ACCEPT

这可以正常工作,但是iptables将实例的主机解析为其 EC2 对应主机,并存储此主机:

# iptables --list
...

ACCEPT  tcp  --  ec2-x-x-x-x.eu-west-1.compute.amazonaws.com  anywhere  tcp  dpt:mysql

问题是,每当 RDS 实例重新启动/修改/升级时,它通常会被移动到另一个 EC2 实例,所以即使*.rds.amazonaws.com宿主保持不变,宿主*.compute.amazonaws.com也会发生变化,并且RDS 实例与我的服务器失去连接。

目前,解决方案需要我手动干预以重新发出命令iptables

是否有一种解决方案可以永久允许来自某个 IP 的传入连接,只要防火墙配置中的域解析为该 IP?

我也会接受涉及的解决方案firewalld

答案1

不。 (Linux) 防火墙是 IP 驱动的,而不是域名驱动的,并且使用的域是在防火墙加载/重新加载时解析的 - 否则会极大地影响性能。

Firewalld 没有帮助,因为它实际上是 iptables 的包装器。

通过频繁重新加载防火墙规则或使用脚本(例如通过 crontab)进行检查并在发生更改时删除并读取相应的规则,您可能会获得一些运气。

相关内容