更安全的本地Docker网络

简介: 本文讲的是更安全的本地Docker网络,【编者的话】本文主要是解决了上一篇探索本地Docker桥接网络提出的问题。我们可以在Docker启动时设置icc=false参数来禁止任意的跨容器通信。
本文讲的是更安全的本地Docker网络 【编者的话】本文主要是解决了上一篇 探索本地Docker桥接网络 提出的问题。我们可以在Docker启动时设置 icc=false 参数来禁止任意的跨容器通信。

上周我写了 《探索本地Docker桥接网络》 。在这篇文章中我介绍了如何使用 nmap 探索由同一桥接网络上的其它容器公开的服务,并展示了在这些服务没有映射到主机的公有接口的端口的情况下如何去访问这些服务。这是一个问题,因为大多数镜像的工具、数据库以及微服务都带有不安全的默认配置。较为变通的工程师或管理员可能会把这些镜像放到可以保护他们的防火墙或网络拓扑结构中。这只适用于配置了防火墙和网络拓扑的环境。

默认情况下,Docker允许任意的跨容器通信,在我看来这是一件好事,它不仅可以降低应用复杂度而且还降低了学习曲线。对于任何一个技术来说,能让用户快速上手,同时又有清晰的学习路径是非常重要的。在Docker中,我们需要知道如何加强它们的容器网络。人们应该学会的第一件事就是如何禁用任意的跨容器通信:启动Docker守护进程时设置 icc=false
docker -d --icc=false ....

当以这种方式启动Docker时,它将配置 iptables(防火墙) :在桥接网路中移除所有容器间的通信,这将禁止容器之间的通信。
Chain FORWARD (policy ACCEPT)
target prot opt source    destination  
DROP   all  --  0.0.0.0/0 0.0.0.0/0 
ACCEPT all  --  0.0.0.0/0 0.0.0.0/0   ctstate RELATED,ESTABLISHED
ACCEPT all  --  0.0.0.0/0 0.0.0.0/0

如果你不想让你的容器间直接通信,那我们推荐你这样做。但是需要注意的是这样做无法阻止主机的公共接口与可以公开访问的映射到另一个容器的端口之间的通信(译者注:当然无法阻止,映射的端口主机肯定可以访问啦)。
1-_QyJABSe1WUQfVIXFHCw_w.png


这可以满足很多人的需求,但故事并没有到此结束。

当跨容器通信被禁用时,你可以在容器创建时使用容器连接来确保指定容器间的通讯。当你创建一个容器并指定另一个作为连接的目标时,Docker建立相应的连接。例如:
docker run -d --name ex_a busybox /bin/sh
docker run -d --name ex_b --link ex_a:other busybox /bin/sh

如果今天我对Docker所有的部分都缺乏激情,很可能使用容器连接只是为了服务发现。当你连接两个容器时,Docker为了使用此容器会设置带有“位置”信息的环境变量,此处有太多隐藏的问题。程序或者用户创建的容器可以指定连接的别名。但是容器内的软件必须与别名一致,否则它不知道要寻找什么。即使我认为连接提供了端口信息以及网络地址信息,我依然更喜欢DNS。幸运的是,连接不仅仅是为了服务发现。

当你禁用了跨容器通信时,为了使连接的容器之间得以通信Docker会输出异常。以下是摘自有这样异常的iptables。
Chain FORWARD (policy ACCEPT)
target prot opt source     destination 
ACCEPT tcp  --  172.17.0.3 172.17.0.4  tcp spt:80
ACCEPT tcp  --  172.17.0.4 172.17.0.3  tcp dpt:80
DROP   all  --  0.0.0.0/0  0.0.0.0/0 
ACCEPT all  --  0.0.0.0/0  0.0.0.0/0   ctstate RELATED,ESTABLISHED
ACCEPT all  --  0.0.0.0/0  0.0.0.0/0


这是容器连接的最强大的应用。连接允许你用简单的断言来定义容器之间的关系。就轻量级而言,Docker确实比任何我用过的其他工具都更好。

原文链接:Safer Local Docker Networks (翻译:田浩浩 校对:李颖杰)

===========================
译者介绍
田浩浩 悉尼大学USYD 硕士研究生,目前在珠海从事Android应用开发工作。业余时间专注Docker的学习与研究,希望通过 DockerOne 把最新最优秀的译文贡献给大家,与读者一起畅游Docker的海洋。

原文发布时间为:2015-01-14 
本文作者:田浩浩 
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:更安全的本地Docker网络
目录
相关文章
|
4月前
|
机器学习/深度学习 存储 监控
内部文件审计:企业文件服务器审计对网络安全提升有哪些帮助?
企业文件服务器审计是保障信息安全、确保合规的关键措施。DataSecurity Plus 是由卓豪ManageEngine推出的审计工具,提供全面的文件访问监控、实时异常告警、用户行为分析及合规报告生成功能,助力企业防范数据泄露风险,满足GDPR、等保等多项合规要求,为企业的稳健发展保驾护航。
|
5月前
|
存储 运维 监控
云服务运行安全创新标杆:阿里云飞天洛神云网络子系统“齐天”再次斩获奖项
阿里云“超大规模云计算网络一体化运行管理平台——齐天系统”凭借卓越的技术创新与实践成果,荣获“云服务运行安全创新成果奖”,同时,齐天团队负责人吕彪获评“全栈型”专家认证。
|
2月前
|
存储 算法 安全
即时通讯安全篇(三):一文读懂常用加解密算法与网络通讯安全
作为开发者,也会经常遇到用户对数据安全的需求,当我们碰到了这些需求后如何解决,如何何种方式保证数据安全,哪种方式最有效,这些问题经常困惑着我们。52im社区本次着重整理了常见的通讯安全问题和加解密算法知识与即时通讯/IM开发同行们一起分享和学习。
209 9
|
2月前
|
人工智能 安全 网络安全
从不确定性到确定性,“动态安全+AI”成网络安全破题密码
2025年国家网络安全宣传周以“网络安全为人民,靠人民”为主题,聚焦AI安全、个人信息保护等热点。随着AI技术滥用加剧,智能化攻击频发,瑞数信息推出“动态安全+AI”防护体系,构建“三层防护+两大闭环”,实现风险前置识别与全链路防控,助力企业应对新型网络威胁,筑牢数字时代安全防线。(238字)
|
4月前
|
监控 安全 网络安全
网络安全工具及其使用方法:保护数字安全的第一道防线
在信息时代,网络攻击变得日益复杂且频繁,保护个人和企业数据安全的重要性日益凸显。幸运的是,各种网络安全工具为用户提供了有效的防护手段。从防火墙到密码管理器,这些工具覆盖了威胁检测、攻击防御和数据保护的方方面面。本文将介绍几款常用的网络安全工具,并提供其使用方法,以帮助您构建强大的网络安全防线。
159 1
|
5月前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
|
3月前
|
运维 监控 安全
计算机网络及其安全组件纲要
本文主要介绍了 “计算机网络及常见组件” 的基本概念,涵盖网卡、IP、MAC、OSI模型、路由器、交换机、防火墙、WAF、IDS、IPS、域名、HTTP、HTTPS、网络拓扑等内容。
221 0
|
7月前
|
人工智能 供应链 安全
2025 年网络法律论坛 | 应对安全风险,构建韧性举措
2025年查尔斯顿网络法律论坛汇聚法律、网络安全与保险行业专家,探讨全球威胁态势、人工智能应用及监管变化等议题。主旨演讲揭示非对称威胁与供应链漏洞,强调透明度和协作的重要性。小组讨论聚焦AI合理使用、监管热点及网络保险现状,提出主动防御与数据共享策略。论坛呼吁跨领域合作,应对快速演变的网络安全挑战,构建更具韧性的防御体系。
184 1
2025 年网络法律论坛 | 应对安全风险,构建韧性举措
|
6月前
|
监控 数据可视化 安全
看得见的安全:如何用可视化大屏提升数据监测和网络预警效率
网络安全已成各组织核心议题,传统防护难以应对复杂攻击。AnaTraf网络流量分析仪通过实时分析流量,提取关键行为,提前发现潜在威胁。其可视化大屏将数据直观呈现,助力安全人员快速捕捉风险。系统基于趋势分析构建动态风险模型,实现预判而非仅报警,成为有判断力的“网络安全参谋”。在攻击无孔不入的时代,AnaTraf提供全新认知方式,以“看得见”提升对威胁的判断力。
看得见的安全:如何用可视化大屏提升数据监测和网络预警效率
|
8月前
|
监控 安全 Cloud Native
企业网络架构安全持续增强框架
企业网络架构安全评估与防护体系构建需采用分层防御、动态适应、主动治理的方法。通过系统化的实施框架,涵盖分层安全架构(核心、基础、边界、终端、治理层)和动态安全能力集成(持续监控、自动化响应、自适应防护)。关键步骤包括系统性风险评估、零信任网络重构、纵深防御技术选型及云原生安全集成。最终形成韧性安全架构,实现从被动防御到主动免疫的转变,确保安全投入与业务创新的平衡。
下一篇
开通oss服务