如何在 Ubuntu 18.04 上阻止到 MySQL 的 Internet 流量

如何在 Ubuntu 18.04 上阻止到 MySQL 的 Internet 流量

我已经使用本地托管服务设置了两台 KVM 服务器。它们为每台服务器提供一个公共 IP。我在其中一个服务器上安装了 mysql-server 8。在描述问题之前,以下是我希望得到的结果:1) 第二台服务器应该能够连接到第一台服务器上的 MySQL 2) 我应该无法从不在同一网络上的笔记本电脑进行连接,即我只希望端口 (3306) 对本地网络开放。

我还没有设置 MySQL 绑定地址或在 MySQL 中创建用户。但我认为我需要根据以下内容先设置防火墙。

目前,当我跑步时

mysql -h -u 根 -p

我在我的笔记本电脑和第二台服务器上得到了相同的结果:

错误 1130:不允许主机连接...

在第二台服务器上这是意料之中的事(因为我没有在 MySQL 中添加用户权限),但在我的笔记本电脑上,我预计它会直接拒绝连接。如果相关,ping 还会收到来自我的笔记本电脑和第二台服务器的响应。

我认为我需要使用 ufw 来阻止来自互联网的连接。我该如何在仍允许本地网络连接的情况下执行此操作?我也可以运行 ifconfig。非常感谢您的帮助。

答案1

检查 ufw 的当前状态:

sudo ufw status verbose

默认情况下,UFW 设置为拒绝所有传入连接并允许所有传出连接。如果出于某种原因并非如此,您可以使用以下命令:

sudo ufw default deny incoming

接下来,要允许来自特定 IP 地址或子网的传入 MySQL 连接,请指定源。服务提供商提供给您的子网将在这里起作用。例如:

sudo ufw allow from 11.22.33.0/24 to any port 3306

对于单个 IP 地址:

sudo ufw allow from 11.22.33.44 to any port 3306

答案2

在 MySQL 中,您可以使用GRANTs它来控制您请求的部分或全部内容。

来源可以是

  • localhost-- 指的是同一服务器上的套接字连接
  • host.name-- 一些特定的主机名或者通配符。 %是危险的
  • 11.22.33.44——一些 IP 地址或通配符。

请参阅文档以了解更多讨论。

相关内容