目录
一.docker 和 docker-compose 介绍:
docker:
docker-compose:
二者的区别:
二者的联系:
二者的总结:
二.Centos 7安装Docker
三.Centos 7安装docker-compose
四.docker-compose搭建Vulhub漏洞测试靶场
五.基于docker-compose安装Vulfocus漏洞环境
六.基于Docker安装Vulfocus漏洞环境
七.总结:
一.docker 和 docker-compose 介绍:
docker:
docker 一般从概念上理解就是指容器化技术,可以用来创建和使用 Linux 的容器。借助 docker,可将容器当做轻巧、模块化的虚拟机使用。同时具备一定的灵活性,从而非常高效的实现对容器的创建、部署、复制和迁移。
docker-compose:
docker-compose 本身是一个基于 docker 的开源项目,一般用来管理容器服务,通过调用 docker 服务的 API 实现对 docker 容器集群的快速编排。具体的实现方式是通过一个 yaml 配置文件,在其中定义一组相关的容器服务。
二者的区别:
启动命令 | 适用范围 | 是否必须有配置文件 | 依赖关系 | 难易程度 | |
---|---|---|---|---|---|
docker | docker run 参数 | 单一容器服务 | 不必须 | 无 | 复杂 |
docker-compose | docker-compose up -d | 一组容器服务 | 必须 | 依赖 docker | 简单 |
注:在修改了容器代码,使用 docker-compose restart 命令是不会生效的,需要先 docker-
compose stop,再执行 docker-compose start 才可以。
但是,如果修改了 docker-compose.yaml 配置文件,使用 docker-compose restart 命令配置是生效的。
但是,如果使用 docker restart 命令,容器内修改的代码和配置会立即生效,不需要先停止再启动。
二者的联系:
如果想要使用 docker-compose 和 docker 命令,二者都是需要进行安装的。docker 本身其实已经满足了对容器服务的基本操作和管理,docker-compose 的出现只是在一定程度上简化了 docker 服务的管理,本质上还是要依赖 docker 命令,也就是 docker 的接口 API。docker 命令可以单独使用,如果需要使用 docker-compose 命令,就需要先安装 docker。
二者的总结:
docker 和 docker-compose 在容器化服务管理方面是非常优秀的工具集,最好两种方式都掌握,这样可以深入理解容器服务部署和管理的内在原理。
二.Centos 7安装Docker
1、更新yum(会用到yum)
yum -y update
2、卸载旧的Docker(如有则卸载,没有则忽略此步)
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
3、yum安装包
yum install -y yum-utils
4、设置镜像仓库
官方镜像(比较慢,不推荐)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
阿里云镜像(推荐)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5、安装Docker
a.安装前先更新yum软件包索引
yum makecache fast
b.安装Docker-ce(社区免费版)
yum install docker-ce docker-ce-cli containerd.io
6、启动Docker
systemctl start docker
7、其他Docker命令
查看Docker版本
docker version
查看镜像(新装docker,所以返回结果暂时是空的)
docker images
查看运行的容器
docker ps
查看所有容器
docker ps -a
停止正在运行的容器
docker stop 容器ID
移除容器
docker rm 容器ID
查看Docker状态
systemctl status docker
停止Docker
systemctl stop docker
Docker自启动
systemctl enable docker
三.Centos 7安装docker-compose
1、yum安装epel源
yum install -y epel-release
2、yum安装pip
yum install -y python-pip
3、pip 更新(官方源比较慢,推荐使用三方源)
pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com --upgrade pip==20.3.4
4、安装docker-compose
pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com docker-compose
安装python时报错:
解决办法:
pip install --ignore-installed requests
5、查看docker-compose版本,有返回则说明安装成功
docker-compose -v
四.docker-compose搭建Vulhub漏洞测试靶场
1.下载vulhub
安装完成docker和docker-compose后,拉取Vulhub到本地任意目录即可:
git clone https://github.com/vulhub/vulhub.git
附:
CentOS 7 64位 报错bash: git: 未找到命令…
解决方法:
1.先启用EPEL存储库
RHEL/CentOS 7 64位执行以下命令:
执行命令:wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
执行命令:rpm -ivh epel-release-latest-7.noarch.rpm
RHEL/CentOS 7 32位执行以下命令:
执行命令:get http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
执行命令:rpm -ivh epel-release-6-8.noarch.rpm
2.安装git命令
执行命令:yum install -y git 即可安装
3.启动漏洞环境
docker-compose会自动查找当前目录下的配置文件(默认文件名为docker-compose.yml),并根据其内容编译镜像和启动容器。所以,要运行某个漏洞靶场,需要先进入该漏洞所在的目录。
在Vulhub中选择某个环境,进入对应目录。如log4j漏洞,我们进入log4j目录CVE-2021-44228漏洞:
cd log4j/CVE-2021-44228
4. 漏洞靶场进行编译(此步骤可选)
docker-compose bulid
5.运行漏洞靶场
docker-compose up -d -d 后台运行
6. 查看一下:
docker-compose ps
7.访问 ip:端口
8. 移除漏洞环境:
Vulhub中所有环境均为漏洞靶场,在测试结束后,请及时关闭并移除环境,避免被他人恶意利用。虽然靶场全部运行在Docker中,但大多数恶意软件并不会因为运行在容器中就失去效果!
前面说了,docker-compose会默认根据当前目录下的配置文件启动容器,在关闭及移除环境的时候,也需要在对应目录下。我们执行docker-compose up -d后,不要离开当前目录即可,漏洞测试结束后,执行如下命令移除环境:
docker-compose down
五.基于docker-compose安装Vulfocus漏洞环境
1.拉取 vulfocus 和安装项目依赖
cd /home(目录随意)
git clone https://github.com/fofapro/vulfocus.git Vulfocus(文件名随意)
2.配置环境参数
cd /k/vulfocus/
vim docker-compose.yaml
3.更改ip
xxx改为本机ip(虚拟机ip)
a插入
shift+: 输入wq写入保存:
4.启动项目
docker-compose up -d
5.访问漏洞环境
这时浏览器地址栏输入本机ip即可访问vulfocus服务
访问: ip:端口
首页还没有添加靶场
可以一键同步(内容有点多) 也可以手动下载:
添加tomcat-pass-getshell的靶场:
直接下载 启动:
访问ip+端口:
本机访问:
6.关闭漏洞环境
使用完不要忘记关闭漏洞环境:
docker-compose down
六.基于Docker安装Vulfocus漏洞环境
1.拉取Vulfocus镜像
docker pull vulfocus/vulfocus:latest
2.docker images 查看容器:
3.运行vulfocus环境 :
docker run -p 88:80 -v /var/run/docker.sock:/var/run/docker.sock -e VUL_IP=xxx.xxx.xxx.xxx -d id
## -p:设置宿主机与容器端口映射关系
## -v:设置宿主机与容器目录映射关系
## -e VUL_IP:定义宿主机的IP地址
## -d :定义创建容器使用的镜像ID
a.创建vulfocus容器:
b.启动环境:
docker start 环境ID
其实这两条命令可以和一条(在上面用-d设置)
4.docker ps 查看运行的环境:
5.访问靶场 ip+端口
注意:
其实我是不是很推荐Docker安装Vulfocus靶场的,原因如下:
a 靶场环境内容有可能显示不出来 需要自己下环境 拉靶场 麻烦。
b 靶场以ctf形式 开启靶场有时间限制 以Docker开启不稳定 有可能卡掉。
七.总结:
推荐安装Docker环境 用Docker-compose来拉取搭建环境 这样使用稳定。