容器安全之不使用Docker的默认网桥docker0

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了容器安全之不使用Docker的默认网桥docker0相关的知识,希望对你有一定的参考价值。

参考技术A

不要使用 Docker 的默认 bridge docker0 。 使用 Docker 的用户定义的网络进行容器联网

Docker 将以桥模式创建的虚拟接口连接到名为 docker0 的公共桥。
这种默认网络模型易受 ARP 欺骗和 MAC 洪泛攻击的攻击,因为没有应用过滤

运行以下命令,并验证容器是否在用户定义的网络上,而不是默认的 docker0 网桥

若返回值不为空,说明使用 docker0 网桥

使用自定义网桥

默认网桥通过 IP 地址实现容器间的寻址,也可通过 --link 参数实现容器 DNS 解析(容器A名称->容器A IP地址),但不推荐 --link 方式

如果宿主机上所有容器没有指定 --network 参数,那它们将使用默认网桥 docker0 ,并可以无限制的互相通信,存在一定安全隐患。

而自定义网桥提供了的网络隔离,只有相同网络域(network)内的容器才能相互访问

更换docker容器默认网桥docker0

Docker允许管理docker0桥接或者通过-b选项自定义桥接网卡,需要安装bridge-utils软件包。
步骤:

1,确保docker的进程是停止的
2,创建自定义网桥,
3,给网桥分配特定的ip
4,以-b的方式指定网桥

  

操作步骤:

service docker stop

ip link set dev docker0 down

brctl delbr docker0

brctl addbr docker1

ip addr add 192.168.0.1/24 dev docker1  //192.168.0.1是容器的网关地址。

ip link set dev docker1 up

ip addr show docker1

vim /etc/sysconfig/docker      //桥接口由docker0改为docker1

OPTIONS=‘--selinux-enabled --log-driver=journald‘

改为

OPTIONS=‘--selinux-enabled --log-driver=journald -b=docker1‘    //即添加-b=docker1


service docker restart

 

新建容器,查看新建容器的IP:

docker inspect --format=‘{{.NetworkSettings.IPAddress}}‘ 容器ID/容器名

以上是关于容器安全之不使用Docker的默认网桥docker0的主要内容,如果未能解决你的问题,请参考以下文章

11、Docker的网络功能-配置容器网桥

更换docker容器默认网桥docker0

除了默认的docker0网桥,启动Docker服务怎么指定使用的网桥

Docker--------修改Docker0网桥默认网段

Docker——Docker网络模式

Docker网络模式