Docker 容器应急

容器网络简单理解

容器拥有n多张veth网卡与一张docker0网卡

在这里插入图片描述

docker 五种网络

  • bridge
    默认网络,Docker启动后创建一个docker0网桥,默认创建的容器也是添加到这个网桥中。
  • host
    容器不会获得一个独立的network namespace,而是与宿主机共用一个。这就意味着容器不会有自己的网卡信息,而是使用宿主机的。容器除了网络,其他都是隔离的。
  • none
    获取独立的network namespace,但不为容器进行任何网络配置,需要我们手动配置。
  • container
    与指定的容器使用同一个network namespace,具有同样的网络配置信息,两个容器除了网络,其他都还是隔离的。
  • 自定义网络
    与默认的bridge原理一样,但自定义网络具备内部DNS发现,可以通过容器名容器之间网络通信。

默认都为bridge网卡
在这里插入图片描述

容器内为什么能通baidu
容器内虚拟网卡网卡——》容器网关(宿主机虚拟网卡)——》docker0网卡——》物理网卡

在这里插入图片描述

两种情况

我做了一个实验,发现两种情况
第一种情况,容器会走vet网卡在到docker0网卡,所以在两张网卡上都能抓到对应的数据包。

在这里插入图片描述

在这里插入图片描述

第二种情况,在docker0网卡上抓不到流量,只能在对应的veth网卡上才能抓到流量
在这里插入图片描述
我发现docker0上并不能抓到容器的流量
在这里插入图片描述
在使用traceroute查看路由后,我发现,容器在出网关后到了192.168.68.2,该ip为物理机物理网卡网关,意思是,该容器,从容器虚拟网关出来后直接到了物理机网关,跳过了docker0网卡,所以使用tcpdump -i docker0抓取该容器流量是抓不到的
在这里插入图片描述
在这里插入图片描述
为什么会出现这总问题,在查看iptables规则时,我发现,在docker创建时可能会添加一些规则

iptables -t nat -S

在这里插入图片描述

-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE

这条规则的意思是如果docker0收到来自172.17.0.0/16这个网段的外出包,docker0会交给MASQUERADE处理,而MASQUERADE处理方式是将包源地址替换成host地址发出
在这里插入图片描述
所以,跳过docker0网卡直接到物理网卡的原因是iptables规则中有该网卡直接nat出去的规则

基础信息收集

基础信息

观察其状态,映射端口

docker container ls
docker ps

在这里插入图片描述

详细信息

检查容器详细信息,挂载的数据卷,运行时间,mac地址等信息

docker inspect ID

在这里插入图片描述

资源使用

检查容器资源使用情况

docker stats ID

在这里插入图片描述

进程信息

容器进程信息

docker top ID

在这里插入图片描述

文件

容器文件信息

docker diff ID | grep A
# A -add
# D -delete
# C -change

在这里插入图片描述

应急处置

  1. 构建镜像,保留证据
  2. 检查异常
  3. 暂停容器内进程
  4. 断开容器网络

构建镜像

docker commit -m="说明" ID check08:1.0

在这里插入图片描述
暂停容器中的进程,包括后台,守护进程等,文件系统运行状态不变

docker pause ID # 暂停
docker unpause ID # 恢复

在这里插入图片描述

定位容器

容器通过docker0网卡进行通信,可以通过tcpdump指定网卡找到异常网络连接,然后进一步关联容器。
情况一:ids或其他安全设备告警,某台linux上出现了恶意连接,该linux主机上部署了多个容器,该如何排查是那个容器出现了问题?

在宿主机上通过netstat -an 是看不到容器内的网络连接的,而一台台进入容器查看网络连接,排查效率很慢,而且很多容器没有安装net-tools工具,没有netstat工具。

抓取流量

情况一:直接通过docker0网卡进行tcpdump流量抓取,通过安全设备给出的IP地址定位容器。
情况二:docker0网卡无法抓取到,只能一个一个网卡进行排查。

抓取docker0网卡流量

tcpdump -i docker0 dst host xx.xx.xx.xx -v -w docker.pcap

抓取容器对应的veth流量

iptables -t nat -S # 查看对应网卡

在这里插入图片描述

tcpdump -i br-28b6e6930d36 dst host 172.29.246.156 -v -w br-28b6e6930d36.pcap
tcpdump -i br-28b6e6930d36 dst host 172.29.246.156 -v

定位容器

利用docker inspect -f匹配模块文件匹配对应容器

docker inspect -f '{{.Name}}{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq) | grep 172.19.0.2docker container ls -a | grep 82-pte-lamp-1

开源容器扫描器

https://github.com/chaitin/veinmind-tools

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/132368.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第55篇-某did滑块流程分析-滑动验证码【2023-10-12】

声明:该专栏涉及的所有案例均为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系本人删帖! 文章目录 一、前言二、滑块流程分析三、参数分析1.verifyParam参数分析2.c参数分析四、captchaToken激活五、流程整理一、前言 我…

offer

【录用通知书】 如何判断公司的好坏呢。 注意了,我们软件行业,技术管理类,技术类,产品类 好公司好企业基本都会给你说清楚,一项多少钱,加班多少钱,这样的 像这类公司的薪资结构复杂就要特别…

【MySQL】数据库排查慢查询、死锁进程排查、预防以及解决方法

MySQL数据库排查慢查询、死锁进程及解决方法 一、排查慢查询 1.1检查慢查询日志是否开启 1.1.1使用命令检查是否开启慢查询日志: SHOW VARIABLES LIKE slow_query_log;如果是 Value 为 off 则并未开启 1.1.2开启并且查看慢查询日志: MySQL提供了慢查询日志功能,可以记录所…

上证50期权开户条件有哪些呢?开户必看!

股市中,上证50期权确实是非常不错的交易工具,也是股市中最赚钱的方式,目前对资金门槛不够的朋友,可以通过分仓账户实现上证50期权开户零门槛可以及时参与上证50ETF期权交易。那么上证50期权开户条件有哪些呢?开户必看&#xff01…

three.js入门 ---- 相机控件OrbitControls

前言: 自用!!! 文档中描述:OrbitControls本质上就是改变相机的参数,比如相机的位置属性,改变相机位置可以改变相机拍照场景中模型的角度,实现模型的360度旋转预览效果,改…

Python使用MySQL,无记录则插入,有记录则更新 - ON DUPLICATE KEY UPDATE

一、基本语法 ON DUPLICATE KEY UPDATE 语句基本功能是:当表中没有原来记录时,就插入,有的话就更新。 使用注意事项如下: ON DUPLICATE KEY UPDATE语句根据主键id或唯一键来判断当前插入是否已存在。记录已存在时,只…

膝关节检测之1设计目标手势与物体交互的动画

原来只用unity自带的IK,发现背部不能动,且手和手指的移动和旋转试了好像没法通过animation实现(加入关键帧并修改最终状态的数值后播放没有变化,确定最终关键帧的数值已经改了的)。看资料,发现final IK&…

『Linux』GDB调试

前言 GDB 是由 GNU 软件系统社区提供的调试工具,同 GCC 配套组成了一套完整的开发环境,GDB 是 Linux 和许多类 Unix 系统中的标准开发环境。 一般来说,GDB 主要完成下面四个方面的功能: 启动程序:可以按照自定义的要求…

【LeetCode力扣】75 快速排序的子过程partition(荷兰国旗问题)

目录 1、题目介绍 2、解题思路 2.1、冒泡排序暴力破解 2.2、快速排序的子过程partition 2.2.1、详细过程描述 2.2.2、代码描述 1、题目介绍 原题链接:75. 颜色分类 - 力扣(LeetCode) 示例 1: 输入:nums [2,0,2…

电脑出现msvcr120.dll文件缺少怎么办-缺少msvcr120.dll文件修复方法

电脑出现 msvcr120.dll 丢失的情况,通常是由于系统文件损坏、软件冲突、病毒感染等原因引起的。为了解决这个问题,这里提供了 6 种修复方法,以及关于 msvcr120.dll 文件的详细介绍和丢失原因。 6 种修复方法:第一:利用…

JVM面试题:(三)GC和垃圾回收算法

GC: 垃圾回收算法: GC最基础的算法有三种: 标记 -清除算法、复制算法、标记-压缩算法,我们常用的垃圾回收器一般 都采用分代收集算法。 标记 -清除算法,“标记-清除”(Mark-Sweep)算法,如它的…

SAP内部转移价格(利润中心转移价格)的条件

SAP内部转移价格(利润中心转移价格) SAP内部转移价格(利润中心转移价格) SAP内部转移价格(利润中心转移价格)这个听了很多人说过,但是利润中心转移定价需要具备什么条件。没有找到具体的文档。…