作者: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请求详情
网友评论