因此,为了提高安全性,我们的网站/网络一直在寻求将所有 SQL 锁定到 IP。
我们最初寻找的是可以将所有 IP 列入白名单的地方,例如 104.151.112.151-59 或使用 /29、/28 等。
我们注意到,我们可以为每个 IP 添加一个用户,但对于 3-5 个数据库来说,这样做很不方便,更不用说拥有更多数据库的可能性了。
我现在的想法是,我可以将 eth0 与虚拟主机一起使用,然后将第一个列入白名单,因此 .151 和 .152-159 将成为 104.151.112.151 的虚拟主机。这是可行的,但是,如果 .151 被空路由,这将立即成为一个问题。
想法 A)使用 %,然后使用 IPtables 阻止所有流量,并且只允许 .151-59 上的 IP,这在 IPtables 中作为范围很容易做到。
想法 B) 使用主机表,尽管这方面的文档严重缺乏。我不太确定如何使用主机表,我们的 mysql 服务器是 5.5.4,因此它仍然受 phpmyadmin 支持。
如果有人能为我指出我正在尝试实现的正确方向,我将不胜感激。
我需要将以下示例块列入多个数据库的白名单:
104.151.112.151/28
104.128.55.19/28
167.114.55.181/28
167.114.57.100/28
答案1
我建议您采用您的想法 A - 允许用户从任何 IP 访问,但只允许来自您在防火墙级别指定的 IP 的 MySQL 流量。
这样做的好处是,如果 MySQL 出现漏洞,它可以更好地抵御外部攻击。