美文网首页
使用mitmproxy拦截获取dockerd的https请求

使用mitmproxy拦截获取dockerd的https请求

作者: 网赚之家 | 来源:发表于2019-07-25 12:59 被阅读0次

作者:houkai
链接https://www.jianshu.com/p/46c229724446
版权声明: 著作权归 houkai 所有。转载时须注明出处及本声明

mitmproxy是一个免费开源且支持多平台的中间人代理软件,可以用于调试、测试HTTP/HTTPS等协议软件,具体介绍及使用可以参看官方文档,本教程利用mitmproxy拦截获取dockerd的https请求,分析对应的HTTP API调用

环境信息

系统/软件 版本信息
操作系统 Red Hat Enterprise Linux Server release 7.4 (Maipo)
Linux内核 3.10.0-693.el7.x86_64
Docker 18.03.0-ce
Mitmproxy 4.0.4

配置mitmproxy

官方提供了几种安装方式,选择其中一种方式安装并运行如下命令,监听本地8080端口:

mitmproxy --listen-port=8080

首次会在~/.mitmproxy目录生成一些证书文件, 如下所示:

[root@localhost ~]# ls -l ~/.mitmproxy
total 24
-rw-r--r--. 1 root root 1318 Jul 24 20:36 mitmproxy-ca-cert.cer
-rw-r--r--. 1 root root 1140 Jul 24 20:36 mitmproxy-ca-cert.p12
-rw-r--r--. 1 root root 1318 Jul 24 20:36 mitmproxy-ca-cert.pem
-rw-r--r--. 1 root root 2529 Jul 24 20:36 mitmproxy-ca.p12
-rw-r--r--. 1 root root 3026 Jul 24 20:36 mitmproxy-ca.pem
-rw-r--r--. 1 root root  770 Jul 24 20:36 mitmproxy-dhparam.pem

拷贝ca证书文件到/etc/pki/ca-trust/source/anchors/目录,并执行update-ca-trust命令:

[root@localhost ~]# cp ~/.mitmproxy/mitmproxy-ca-cert.pem /etc/pki/ca-trust/source/anchors/
[root@localhost ~]# update-ca-trust

配置docker服务代理

编辑docker服务文件/usr/lib/systemd/system/docker.service,增加以下内容

[Service]
Environment="HTTP_PROXY=http://localhost:8080"

执行如下命令,使配置生效并重启docker

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

执行如下命令,检查变量是否加载

[root@localhost ~]# systemctl show docker --property Environment
Environment=HTTP_PROXY=http://localhost:8080

测试验证

执行docker search命令查询busybox镜像:

[root@localhost ~]# docker search busybox
NAME                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
busybox                   Busybox base image.                             1639                [OK]                
progrium/busybox                                                          70                                      [OK]
radial/busyboxplus        Full-chain, Internet enabled, busybox made f…   24                                      [OK]
arm32v7/busybox           Busybox base image.                             7                                       
yauritux/busybox-curl     Busybox with CURL                               5                                       
armhf/busybox             Busybox base image.                             4                                       
arm64v8/busybox           Busybox base image.                             3                                       
arm32v6/busybox           Busybox base image.                             2                                       
p7ppc64/busybox           Busybox base image for ppc64.                   2                                       
joeshaw/busybox-nonroot   Busybox container with non-root user nobody     2                                       
odise/busybox-curl                                                        2                                       [OK]
prom/busybox              Prometheus Busybox Docker base images           2                                       [OK]
s390x/busybox             Busybox base image.                             2                                       
i386/busybox              Busybox base image.                             2                                       
armel/busybox             Busybox base image.                             2                                       
aarch64/busybox           Busybox base image.                             2                                       
sequenceiq/busybox                                                        2                                       [OK]
ppc64le/busybox           Busybox base image.                             1                                       
spotify/busybox           Spotify fork of https://hub.docker.com/_/bus…   1                                       
concourse/busyboxplus                                                     0                                       
trollin/busybox                                                           0                                       
ggtools/busybox-ubuntu    Busybox ubuntu version with extra goodies       0                                       [OK]
amd64/busybox             Busybox base image.                             0                                       
arm32v5/busybox           Busybox base image.                             0                                       
sou856099/busybox 

此时查看mitmproxy已经有了对应的请求信息,如下:

mitmproxy请求列表
mitmproxy请求详情

相关文章

网友评论

      本文标题:使用mitmproxy拦截获取dockerd的https请求

      本文链接:https://www.haomeiwen.com/subject/xsthrctx.html