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


1

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

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

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

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

     来自行动
     -  ------ ----
[1] 22允许在任何地方
[2] 80允许在任何地方
[3] 5900允许在任何地方
[4]任何地方拒绝在3306年
[5] 3306在任何地方拒绝
[6] 22允许任何地方(第6节)
[7] 80允许任何地方(第6节)
[8] 5900允许在任何地方(v6)
[9]任何地方(第6节)拒绝在3306年
[10] 3306 DENY IN Anywhere(v6)

更多解释......

我使用VM来测试现有的Web应用程序。我制作了一个实时环境的副本,在VM中恢复它。实时应用程序由Amazon EC2托管。实时应用程序的数据库服务器不是localhost,而是另一台服务器。使用亚马逊,您可以使用公共地址作为连接字符串12.34.56.78.eu-west-1.compute.amazonaws.com。在内部,他们捕获这个并使用内部IP地址。这样做的好处是,当实例崩溃,并且您需要使用另一个内部IP地址创建另一个实例时,不必更改连接字符串。

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

那我怎么能让这个工作?我认为阻止防火墙中的端口3306可以完成这项工作。


这是ufw状态的输出,在哪台机器,服务器或客户端?
MariusMatutiae 2013年

Ubuntu桌面VM 服务器。对于测试和开发,使桌面功能可用更实用。VM充当同一网络中其他计算机(如主机)的Web服务器。因此,您在此处看到的UFW输出来自服务器/桌面。
2013年

将您的mysql配置文件更改为仅接受来自localhost的连接。
Renju Chandran chingath

1
在我看来,你需要在
3306

@RenjuChandranchingath - 我可能没有正确解释它。本地客户端(在VM本身上)不应该能够连接到外部mysql服务器。我不关心LAN,但应该阻止WAN。如果局域网也被阻止,为了保持更简单,没关系。如果在阻止WAN的同时允许LAN更简单,那也没关系。
SPRBRN

Answers:


1

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

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

sudo ufw deny out 3306

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

sudo ufw deny 3306

对于Postgres用5432做了同样的事情。我只尝试了第二条规则,但这还不够。这似乎仅适用于传入流量?所以我需要deny out阻止传出流量。
SPRBRN 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.