标签: fedora-server

为什么 firewalld 允许公共流量到达绑定到 Docker 容器的非公共端口?

我正在尝试在 Fedora 中实现一个非常简单的防火墙,其中公共互联网可以访问 SSH、HTTP、HTTPS 和 Cockpit,但不能访问其他内容。同时,服务器通过 Docker 运行微服务,可以在端口 8000-8999 上相互通信。

网络图

我使用以下命令在新安装的 Fedora 服务器上进行了设置:

firewall-cmd --zone=public --add-service=cockpit
firewall-cmd --zone=public --add-service=http
firewall-cmd --zone=public --add-service=https

firewall-cmd --zone=internal --add-source=192.168.1.65
firewall-cmd --zone=internal --add-source=192.168.1.66

firewall-cmd --zone=internal --add-port=8000-8999/tcp

firewall-cmd --runtime-to-permanent
Run Code Online (Sandbox Code Playgroud)

当我使用 检查我的配置时--list-all,一切看起来都正确:

> firewall-cmd --list-all --zone=internal
internal (active)
  target: default
  icmp-block-inversion: no
  interfaces:
  sources: 192.168.1.65 192.168.1.66
  services: dhcpv6-client ssh
  ports: 8000-8999/tcp
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

> firewall-cmd --list-all --zone=public
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp2s0
  sources:
  services: …
Run Code Online (Sandbox Code Playgroud)

networking firewalld fedora-server docker-networking

6
推荐指数
1
解决办法
4147
查看次数