如何使用 docker 20.10 配置 firewalld

Mas*_*oli 5 firewall iptables docker firewalld

我意识到最近 docker 添加了与 firewalld 的集成,我只想使用 firewalld 而不是 iptables 无聊的规则和链来设置我的服务器。

这是我的 docker zone 输出:


root@test:~# sudo firewall-cmd --zone=docker --list-all 
docker (active)
  target: DROP
  icmp-block-inversion: no
  interfaces: br-0a659f93a5b6 br-be2e44b2b069 docker0
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
Run Code Online (Sandbox Code Playgroud)

我使用上述配置运行了多个服务,包括 Laravel(nginx 端口绑定 80 -> 5050)、mysql 等。我希望任何人都无法访问端口 5050、3306(mysql),但不幸的是防火墙不起作用,一切都是开放的,可以从外部访问。

这是 docker 模块 码头模块

现在如何真正配置 firewalld 以丢弃除允许端口之外的每个请求?

Sör*_*tje 2

综上所述,解决方案是:

  1. 在 docker 中禁用 iptables
  2. 将伪装添加到public区域
  3. 将 docker 网络接口添加到trusted区域
  4. 将以太网接口添加到public区域

请注意,这会产生安全隐患。

我在这里写了一篇关于它的文章:https://dev.to/soerenmetje/how-to-secure-a-docker-host-using-firewalld-2joo