我一直在阅读有关在 Ubuntu 上保护 MySql 和 Apache 的文章,其中一条建议是“确保 MySQL 只允许来自本地主机的连接”。
这意味着要[bind-address = 127.0.0.1]
问题是,即使网站上线了,我是否也要将其绑定到本地主机?
网站与数据库交互以获取和添加数据。当其他用户使用我的域名访问该网站时,他们是否可以使用该网站?我对此有点困惑。这是怎么做到的?
当它上线时我应该将它改成什么样,以便它仍然安全并且不易受到攻击?
答案1
是的,只要 MySQL 在 Web 服务器主机上运行,您就应该保留bind-address = 127.0.0.1
。当用户访问您的站点时,Web 服务器(而不是用户)会调用 MySQL 来运行查询。因此,查询来自 Web 服务器的 IP 地址,如果与 MySQL 位于同一位置,则为 127.0.0.1。因此,为了让您的站点正常运行,您只需要能够接受来自本地主机的连接。另一方面,如果您允许来自任何地方的连接,那么网络上的任何人都可以连接到您的 MySQL 服务器,前提是您的防火墙允许这样做(可能是由于配置错误)。
另一个选择是在内部和外部防火墙之间设置 DMZ,将 Web 服务器置于 DMZ 中,将 MySQL 置于内部防火墙后面的单独主机上。内部防火墙仅允许从 Web 服务器主机连接到 MySQL。这会在外部和 MySQL 服务器之间设置额外的防火墙层。然后您需要设置bind-address
为允许来自 Web 服务器的连接。