Selenium 网格的 ufw 规则

Selenium 网格的 ufw 规则

我在我的服务器上使用 Selenium grid docker 容器,可以通过 http://IP_address:4444 从 Web 访问。请帮我弄清楚如何通过向 ufw 添加一些规则来过滤或禁用此连接?我尝试过这样的方法:

sudo ufw deny http/tcp
sudo ufw deny out http/tcp
sudo ufw deny 4444
sudo ufw deny out 4444

不幸的是这些都不起作用。

答案1

你的docker容器可能绕过了ufw规则,为此你可以进入或者创建/etc/docker/daemon.json然后添加{ "iptables": false }然后重新加载然后重新加载dockersudo systemctl reload docker

如果这仍然不起作用,您可以尝试确保已启用 ufw,sudo ufw enable然后像这样允许来自本地网络的传入连接sudo ufw allow 192.168.1.0/24(如果不同,请用您的本地网络地址替换 192.168.1.0),然后像这样阻止所有传入连接到端口 4444sudo ufw deny in 4444

现在如果你这样做sudo ufw status你应该会看到类似

状态:活跃

至 操作 来自 -- ------ ---- 4444 拒绝进入 任何地方 任何地方 允许进入
192.168.1.0/24

答案2

解决方案尽可能简单。

Docker 使用 iptables 并根据您的 docker compose 或 docker run 参数自动更新其规则。

如果您通过 Docker 公开端口,则无论防火墙配置了什么规则,该端口都会公开。

但是你可以指示docker引擎在内部公开端口:

docker 运行:

-p 127.0.0.1:27017:27017

docker 撰写:

ports:
  - "127.0.0.1:4444:4444"

其余 ufw 规则将正常工作,直到它们不被 Docker 覆盖。

相关内容