我正在尝试使用包含 mysql 服务器的 docker compose 部署系统。服务器在同一网络中的 docker 容器之间共享。
我需要从我们网络中的特定外部服务器访问 mysql 数据库,因此我在 docker compose 文件中发布了 mysql 端口 (3306)。
但出于安全考虑,我想阻止任何其他试图访问此端口的 ip。
我尝试了很多 iptables 规则,所有这些规则要么阻止了 docker-compose 中的容器,要么允许其他服务器访问该端口。
ps我会在mysql服务器内全部更改用户权限,但封锁端口是我们要做的第一件事。
您可以在 DOCKER-USER 表中配置 iptables 条目。这是在 docker 之外完成的。例如,如果您担心来自 10.0.0.0/24 以外的任何网络的 eth0 接口到端口 3306 的请求:
请注意,
conntrack
需要 conn 跟踪原始目标端口而不是正常的 tcp 端口规则来处理 NAT 规则和端口映射。