我正在尝试暂时阻止到端口 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
。
以下是一次试运行,不会通过逐行概述来改变任何内容:
- 获取状态
ufw
inactive
在输出中搜索,如果找到(或成功,用 表示&&
)则执行第 3 行- 启用
ufw
,但如果inactive
未找到(第 2 行失败,用 表示||
),则执行第 4 行和第 5 行 - 显示当前添加的规则,将标准输出发送到第 5 行
- 搜索 9200(因为这是我们想要的端口),如果失败(
||
)则执行下一行 - 添加拒绝出站 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