UFW:阻止端口 3306 的所有流量

UFW:阻止端口 3306 的所有流量

如何才能阻止一个端口的所有流量?请考虑以下情况:

  • Ubuntu 桌面虚拟机
  • 浏览器可以访问互联网(端口 80 保持开放)
  • Ubuntu 更新服务正常工作(可能未被阻止)
  • MySQL 图形客户端安装

在正常设置中,MySQL 客户端可以连接到托管的 mysql 服务器,例如 Amazon EC2,因为允许传出流量。

我现在有以下设置。我以为这会阻止 3306,但我仍然可以使用 MySQL 客户端与 Amazon 建立连接。我重新启动以确保所有规则都已应用。

     行动来自
     -- ------ ----
[ 1] 22 允许进入任何地方
[ 2] 80 允许进入任何地方
[ 3] 5900 允许进入任何地方
[ 4] 任何地方 拒绝 3306
[ 5] 3306 拒绝进入任何地方
[ 6] 22 允许任何地方进入 (v6)
[ 7] 80 允许任何地方进入 (v6)
[ 8] 5900 允许任何地方 (v6)
[ 9] 任何地方 (v6) 拒绝 3306
[10] 3306 任意位置拒绝 (v6)

更多解释...

我使用虚拟机来测试现有的 Web 应用程序。我复制了实时环境,然后在虚拟机中恢复。实时应用程序由 Amazon EC2 托管。实时应用程序的数据库服务器不是本地主机,而是另一台服务器。使用 Amazon,您可以将公共地址用于连接字符串,例如12.34.56.78.eu-west-1.compute.amazonaws.com。在内部,他们会捕获此信息并使用内部 IP 地址。这样做的好处是,当实例崩溃时,您需要使用另一个内部 IP 地址创建另一个实例,而不必更改连接字符串。

此地址在 AWS 外部有效,因此它在我的 VM 上有效。我可以从我的 VM 连接到生产数据库。我知道这一点,并且知道我应该编辑连接字符串。有时我会忘记它,然后使用生产数据库。我更喜欢从我的测试环境中收到一条丑陋的错误消息,告诉我数据库连接失败。(如果本地网络中的另一个客户端想要连接到 VM 中的 mysql 服务器,那并不是真正的问题。)

那么我该如何让它工作呢?我认为在防火墙中阻止端口 3306 可能会起作用。

答案1

由于 Ubuntu 服务器正在向外连接到 Amazon,因此在端口 3306 上设置 DENY IN 并不会停止与外部的连接。

至少你需要拒绝端口 3306 上的传出 tcp 和 udp 数据包:

sudo ufw deny out 3306

但更安全的方法是拒绝端口 3306 上的所有 tcp 和 udp 数据包:

sudo ufw deny 3306

相关内容