docker+vulhub快速搭建漏洞环境
遇到错误
rm -f /var/run/yum.pid
原理
docker是利用Linux内核虚拟机化技术(LXC),提供轻量级的虚拟化,以便隔离进程和资源。LXC不是硬件的虚拟化,而是Linux内核的级别的虚拟机化,相对于传统的虚拟机,节省了很多硬件资源。
在CentOS6.8是可以支持docker,但是有些特性无法使用,因此至少使用3.8的内核版本,建议是使用3.10版本以上。国内生产环境很多都是使用CentOS,所以一般使用CentOS7即可。
当然如果是Ubuntu/Debian/Deepin系列的发行版本也是支持的。
0x01 安装docker-ce
操作系统:CentOS 7.6.1810
软件源:阿里云镜像(在阿里云镜像站上面可以找到docker-ce的软件源,使用国内的源速度比较快)
如果没有物理机,可以先使用虚拟机进行学习。操作系统安装,跳过(网上教程很多)。
1、安装依赖
docker依赖于系统的一些必要的工具,可以提前安装。
yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加软件源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安装docker-ce
yum clean all yum makecache fastyum -y install docker-ce
4、 docker安装中会遇到一些问题:
只能启动client,无法启动server
原因 :公钥未安装,key没有导入
解决办法如下:
[root@localhost ~]# wget https://get.docker.com/gpg
[root@localhost ~]# rpmkeys --import ./gpg
[root@localhost ~]# systemctl start docker.service
[root@localhost ~]# docker version
5、启动并加入开机启动
systemctl start docker
systemctl enable docker
6、查看版本信息 docker -version
0x02 下载python环境
安装python可能用到的依赖:
[root@ghz ~]# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
安装 wget 命令:
yum -y install wget
wget命令安装成功后就通过wget命令下载python源码包
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
这个可以看到这个文件后缀名是tgz,我们需要解压这个文件
tar -zxvf Python-3.6.5.tgz
进入解压的目录
进行编译,指定编译后生成文件的位置
./config --prefix=usr/local/python3
查看版本
python -v
0x03 docker-compose 的安装及使用
- Docker Compose 是一个用来定义和运行复杂应用的 Docker 工具。使用 Docker Compose 不再需要使用 shell 脚本来启动容器。(通过 docker-compose.yml 配置)
- 安装
- 可以通过修改 URL 中的版本,自定义您需要的版本。
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
- 卸载
sudo rm /usr/local/bin/docker-compose
0x04 下载vulhub环境
git clone https://github.com/vulhub/vulhub.git
直接下载地址:https://github.com/vulhub/vulhub/archive/master.zip
解压 unzip vulhub-master
运行命令: docker-compose up -d (推荐)或者 docker-compose build
运行命令
docker-compose up -d //安装此漏洞环境
docker ps //查看运行服务端口
访问ip:port即可看到web网页
测试完毕之后,使用
docker-compose down
即可结束服务,使环境变为初始状态。
上述命令会执行如下几个动作:
关闭正在运行的容器
删除所有相关容器
移除NAT(docker-compose在运行的时候会创建一个NAT网段)