需要保持 Docker 服务运行并且不希望影响其他使用 Docker 部署的服务,同时需要禁止外网访问特定的 Docker API 端口(2375):通过一下命令来看漏洞
docker -H tcp://ip地址:2375 images
修改Docker配置以限制访问
修改daemon.json配置文件:
- 打开
/etc/docker/daemon.json
。如果文件不存在,则创建它(vi /etc/docker/daemon.json
)。 - 修改
host
设置,以确保 Docker 不是在0.0.0.0
(即对所有网络接口开放)上监听。
设置为仅在本地接口监听,外部网络无法访问。{ "hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"] }
- 打开
重启 Docker 服务:
- 应用更改后,需要重启 Docker 服务:
sudo systemctl restart docker
- 应用更改后,需要重启 Docker 服务:
通过防火墙规则限制访问
不更改 Docker 配置,可通过设置防火墙规则来限制对2375端口的访问。
- 添加防火墙规则:
- 使用
firewalld
或其他防火墙工具设置规则,以仅允许来自特定IP或内部网络的访问:sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="内部网络IP/掩码" port port="2375" protocol="tcp" accept'
- 使用
- 重载防火墙配置:
- 应用更改:
sudo firewall-cmd --reload
- 应用更改:
或者,直接把防火墙改端口给关了(生产环境采取的方式)
firewall-cmd --zone=public --remove-port=2375/tcp --permanent && firewall-cmd --reload