• Ubunut18 安装docker环境&&AWD攻防平台部署


    docker:有两个版本:docker-ce(社区版)和docker-ee(企业版)。

    参考官网地址:https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#os-requirements

    docker-compse:可运行和管理多个docker容器。

    docker-machine:docker官方提供的docker管理工具。可管理多个docker主机,可搭建swarm集群。

    0x01 docker安装

    我们可以从ubuntu仓库安装docker 也可以从docker仓库安装 ,这里以docker官网安装为例

    1,卸载旧版本docker

    全新安装时,无需执行该步骤

    $ sudo apt-get remove docker docker-engine docker.io

    2,更新系统软件

    $ sudo apt-get update

    3,安装依赖包

    $ sudo apt-get install 
        apt-transport-https 
        ca-certificates 
        curl 
        software-properties-common

    4,添加官方密钥

    执行该命令时,如遇到长时间没有响应说明网络连接不到docker网站,需要使用代-理进行。

    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    显示OK,表示添加成功.

    5,添加仓库

    $ sudo add-apt-repository 
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
       $(lsb_release -cs) 
       stable"

    6,再次更新软件

    经实践,这一步不能够省略,我们需要再次把软件更新到最新,否则下一步有可能会报错。

    $ sudo apt-get update

    7,安装docker

    如果想指定安装某一版本,可使用 sudo apt-get install docker-ce=<VERSION>  命令,把<VERSION>替换为具体版本即可。

    以下命令没有指定版本,默认就会安装最新版

    $ sudo apt-get install docker-ce

    8,查看docker版本

    $ docker -v

     

    到这里 表示docker安装成功。

    0x02 docker-compose安装

    两种最新的docker安装方式

    1.从github上下载docker-compose二进制文件安装

    • 下载最新版的docker-compose文件 
      $ sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

    • 添加可执行权限 
      $ sudo chmod +x /usr/local/bin/docker-compose

    • 测试安装结果 
      $ docker-compose --version 
      

    2.pip安装

    $ sudo pip install docker-compose

    0x03 docker-machine安装

    说明:docker-machine的使用是要基于virtualBox的。如果没有安装安装过,请先安装virtualBox。

    1,安装virtualBox

    登录virtualBox官网:https://www.virtualbox.org/wiki/Linux_Downloads

    找到"Ubuntu 16.04 ("Xenial")  i386 |  AMD64"字样,点击“AMD64”进行下载。

    下载后,执行以下命令进行安装:

    $ sudo dpkg -i virtualbox-5.2_5.2.0-118431_Ubuntu_xenial_amd64.deb

    2,下载并安装docker-machine

    $ curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine &&
    chmod +x /tmp/docker-machine &&
    sudo cp /tmp/docker-machine /usr/local/bin/docker-machine

    3,查看版本信息

    $ docker-machine version

    显示出版本信息,即安装成功。

     0x04 AWD攻防平台部署

    用到的平台是Hence Zhang @Lancet师傅分享的

    比赛平台拓扑:

    服务器全部以docker形式部署在同一台虚拟机上。

     

    Check_server:

    服务检查服务器,用于判定选手维护的服务是否可用,如果不可用,则会扣除相应的分数。不开启任何端口。需要与flag服务器通信。

    Flag_server:

    选手提交flag的服务器,并存储选手的分数。开启80端口。

    Web_server:

    选手连接的服务器,选手需要对其进行维护,并尝试攻击其他队伍的机器。通常开启80端口,22端口,并将端口映射到主机。

    在复制文件的时候出现了无法复制的问题

    解决;

    sudo apt-get autoremove open-vm-tools
    sudo apt-get install open-vm-tools
    sudo apt-get install open-vm-tools-desktop

    比赛启动

    首先需要docker加载镜像

    docker pull zhl2008/web_14.04

    很可能是报错 

    解决:

    第一步:通过

    dig @114.114.114.114 registry-1.docker.io

    找到可用IP

    第二步:尝试修改/etc/hosts强制docker.io相关的域名解析到其它可用IP

    ok

    再次加载镜像 

    1.根据当前队伍数量copy所有的队伍的比赛文件夹: python batch.py web_dir team_number

    ​ for example: 

    python batch.py web_server 5

     

    然后改下名字

    docker tag zhl2008/web_14.04 web_14.04

    2.启动比赛:python start.py ./ team_number

    ​ for example: 

    python start.py ./ 1

    3.启动check脚本:

    docker attach check_server
    
    ​python check.py

    启动的时候发现docker没起起来 爆如下错误:

    docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create?name=team1: dial unix /var/run/docker.sock: connect: permission denied.

    解决:

    sudo运行

    启动起来了就访问吧

    因为是在一个服务器上运行了多个docker,靶机的映射端口规则是:

    team1 ---- 8801
    team3 ---- 8802
    team3 ---- 8803
    ....以此类推

    各个靶机的ssh密码可以在项目的文件夹下的pass.txt文件中

    ssh的端口规则是:

    team1 ---- 2201
    team2 ---- 2202
    team3 ---- 2203
    ....以此类推



    在项目的根目录的flag_server/中,我们 要赋予score.txt 和result.txt 777权限,否则分数变动无法进行同步

    ok这里就搭建完成了  enjoy it~

    
    
    


  • 相关阅读:
    C++宏定义详解
    编写Qt Designer自定义控件 MyPlugins
    关于MFC共享DLL的模块状态切换 .
    QT 与 MFC 的区别 .
    typedef
    C++ floor函数
    C++ floor函数 截断浮点数小数部分 转
    MFC的多国语言界面的实现 转
    新工作 Day16 周五
    新工作 Day15 周四
  • 原文地址:https://www.cnblogs.com/-qing-/p/11084128.html
Copyright © 2020-2023  润新知