ufw 不会阻​​塞 curl 的端口

ufw 不会阻​​塞 curl 的端口

我正在尝试暂时阻止到端口 9200 的传出流量。我的用例是,我想测试当我的应用程序无法访问 Elasticsearch 集群(端口 9200)时会发生什么。

我配置了防火墙规则sudo ufw deny out 9200。响应是

rules updated
rules updated (v6)

阻止发送到端口 9200 的传出流量的正确方法是什么?

然后我尝试使用 检查端口是否真的被阻止curl remotemachine:9200。 Curl 收到了正常的 Elasticsearch 响应:

...
  "version" : {
    "number" : "7.17.3",
    "build_flavor" : "default",
    "build_type" : "rpm",
...

答案1

您可以通过关注以下项目来查看您的规则这里本质上就是这样sudo ufw show added

以下是一次试运行,不会通过逐行概述来改变任何内容:

  1. 获取状态ufw
  2. inactive在输出中搜索,如果找到(或成功,用 表示&&)则执行第 3 行
  3. 启用ufw,但如果inactive未找到(第 2 行失败,用 表示||),则执行第 4 行和第 5 行
  4. 显示当前添加的规则,将标准输出发送到第 5 行
  5. 搜索 9200(因为这是我们想要的端口),如果失败(||)则执行下一行
  6. 添加拒绝出站 9200 规则
sudo ufw status | 
grep inactive && 
sudo ufw --dry-run enable || 
sudo ufw show added | 
grep 9200 || 
sudo ufw --dry-run deny out 9200

删除--dry-run后你就应该被排序了,就像这样:

sudo ufw status | grep inactive && sudo ufw enable || sudo ufw show added | grep 9200 || sudo ufw deny out 9200

您的语法没有任何问题(它确实阻止了 UDP 和 TCP - 您可以为此添加 proto,但这种用例无关紧要)。您的语法与以下内容相同:

sudo ufw deny out to any port 9200

相关内容