搭建https://github.com/vulhub/vulhub靶場_初稿


第一步:在 Ubuntu 20.04 上安裝和使用 Docker

Docker 是一個開源的容器化平台,它允許你構建,測試,並且作為可移動的容器去部署應用,這些容器可以在任何地方運行。一個容器表示一個應用的運行環境,並且包含軟件運行所需要的所有依賴軟件。

Docker 是現代軟件開發,持續集成,持續交付的一部分。

這篇教程將會涉及如何在 Ubuntu 上安裝 Docker。

Docker 在標准的 Ubuntu 20.04 軟件源中可用,但是可能不是最新的版本。我們將會從 Docker 的官方軟件源中安裝最新的 Docker 軟件包。

一、在 Ubuntu 20.04 上安裝 Docker

在 Ubuntu 上安裝 Docker 非常直接。我們將會啟用 Docker 軟件源,導入 GPG key,並且安裝軟件包。

首先,更新軟件包索引,並且安裝必要的依賴軟件,來添加一個新的 HTTPS 軟件源:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

使用下面的 curl 導入源倉庫的 GPG key:

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

將 Docker APT 軟件源添加到你的系統:

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

現在,Docker 軟件源被啟用了,你可以安裝軟件源中任何可用的 Docker 版本。

01.想要安裝 Docker 最新版本,運行下面的命令。如果你想安裝指定版本,跳過這個步驟,並且跳到下一步。

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

02.想要安裝指定版本,首先列出 Docker 軟件源中所有可用的版本:

sudo apt update
apt list -a docker-ce

可用的 Docker 版本將會在第二列顯示。在寫作這篇文章的時候,在官方 Docker 軟件源中只有一個 Docker 版本(5:19.03.9~3-0~ubuntu-focal)可用:

docker-ce/focal 5:19.03.9~3-0~ubuntu-focal amd64

通過在軟件包名后面添加版本=<VERSION>來安裝指定版本:

sudo apt install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io

一旦安裝完成,Docker 服務將會自動啟動。你可以輸入下面的命令,驗證它:

sudo systemctl status docker

輸出將會類似下面這樣:

● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-05-21 14:47:34 UTC; 42s ago ...

當一個新的 Docker 發布時,你可以使用標准的sudo apt update && sudo apt upgrade流程來升級 Docker 軟件包。

如果你想阻止 Docker 自動更新,鎖住它的版本:

sudo apt-mark hold docker-ce

二、以非 Root 用戶身份執行 Docker

默認情況下,只有 root 或者 有 sudo 權限的用戶可以執行 Docker 命令。

想要以非 root 用戶執行 Docker 命令,你需要將你的用戶添加到 Docker 用戶組,該用戶組在 Docker CE 軟件包安裝過程中被創建。想要這么做,輸入:

sudo usermod -aG docker $USER

$USER是一個環境變量,代表當前用戶名。

登出,並且重新登錄,以便用戶組會員信息刷新。

三、驗證安裝過程

想要驗證 Docker 是否已經成功被安裝,你可以執行docker命令,前面不需要加`sudo, 我們將會運行一個測試容器:

docker container run hello-world

如果本地沒有該鏡像,這個命令將會下載測試鏡像,在容器中運行它,打印出 “Hello from Docker”,並且退出。

輸出看起來應該像這樣:

這個容器將會在打印消息后停止運行,因為它沒有任何長期運行的進程。

默認情況下,Docker 從 Docker Hub 拉取鏡像。它是一個雲端服務,主要用來儲存 公有和私有源中的 Docker 鏡像。

四、卸載 Docker

在卸載 Docker 之前,你最好 移除所有的容器,鏡像,卷和網絡。

運行下面的命令停止所有正在運行的容器,並且移除所有的 docker 對象:

docker container stop $(docker container ls -aq) docker system prune -a --volumes

現在你可以使用apt像卸載其他軟件包一樣來卸載 Docker:

sudo apt purge docker-ce
sudo apt autoremove

五、總結

我們已經向你展示如何在 Ubuntu 20.04 機器上安裝 Docker。

 

第二步:在 Ubuntu 20.04 上安裝和使用 Docker Compose

Docker Compose 是一個命令行工具,它允許你定義和編排多容器 Docker 應用。它使用 YAML 文件來配置應用服務,網絡和卷。

使用 Compose, 你可以定義一個可以運行在任何系統上的可移植應用環境。

Compose 通常被用來本地開發,單機應用部署,和自動測試。

本文講解如何在 Ubuntu 20.04 上安裝最新版的 Docker Compose。我們還將探討 Docker Compose 的幾個概念和命令。

一、前提條件

我們假設你已經在你的機器上安裝了 Docker

二、在 Ubuntu 上安裝 Docker Compose

Docker Compose 是一個二進制文件。安裝非常簡單直接。我們將會將該文件下載到一個目錄,並添加到系統的 PATH 環境變量,同時將該文件設置為可執行。

Docker Compose 軟件包在官方的 Ubuntu 20.04 源倉庫中可用,但是可能不是最新版本。 

在寫作這篇文章的時候,Docker Compose 最新的版本是1.25.5

在下載 Compose 之前,瀏覽 Compose 發布頁面 並且檢查是否有新版本可以下載。

使用curl將 Compose 文件下載到/usr/local/bin目錄:

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 

一旦下載完成,將該文件設置為可執行:

sudo chmod +x /usr/local/bin/docker-compose 

想要驗證安裝成功,運行下面的命令,打印 Compose 的版本:

docker-compose --version

輸出應該像下面這樣:

docker-compose version 1.25.5, build b02f1306 

就這些。Docker Compose 已經在你的 Ubuntu 機器上安裝好了,並且你可以開始使用它了。

三、Docker Compose 入門

在這一節,我們將會是使用 Docker Compose 來構建一個多容器 WordPress 應用。

第一步就是創建一個項目目錄:

mkdir my_app
cd my_app 

打開你的文本編輯器,並且創建一個文件,名為docker-compose.yml,放在項目目錄下:

nano docker-compose.yml

粘貼下面的內容:

version: '3' services: db: image: mysql:5.7 restart: always volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: wordpress wordpress: image: wordpress restart: always volumes: - ./wp_data:/var/www/html ports: - "8080:80" environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_NAME: wordpress WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: password depends_on: - db volumes: db_data: wp_data: 

讓我們來分析docker-compose.yml文件的結構。

文件第一行指定了 Compose file的版本。這里有一些不同的 Compose 版本,每個版本支持指定的 Docker 發行版。

下一步,你定義服務,卷,和網絡。

在這個例子中,我們有服務器,dbwordpress。當 docker-compose 運行,每一個服務運行一個鏡像,創建一個獨立的容器。

服務可以使用 DockerHub 上可用的鏡像,或者從 Dockerfile 文件本地構建的鏡像。服務一段同時還可以指定一些設置,用來指定暴露端口,卷,環境變量,依賴,和其他的 Docker 命令。

在項目目錄,通過運行下面的命令來啟動 WordPress 應用:

docker-compose up

Compose 將會拉取鏡像,啟動容器,並且創建wp_data目錄。

在你的瀏覽器中輸入http://0.0.0.0:8080/,你將會看到 Wordpress 安裝屏幕。此時,WordPress 應用已經啟動並且運行了,你可以開始安裝主題或者插件了。

想要停止 Compose,按CTRL+C

你還可以通過在 Compose 后面加上-d選項,以后台模式啟動 Compose:

docker-compose up -d 

想要檢查運行的服務,使用ps選項:

docker-compose ps

輸出如下:

       Name                     Command               State          Ports        
----------------------------------------------------------------------------------
my_app_db_1          docker-entrypoint.sh mysqld      Up      3306/tcp, 33060/tcp my_app_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp 

當 Compose 運行在后台模式,想要停止服務,運行:

docker-compose stop

想要停止,並且移除應用容器,和網絡,使用down選項:

docker-compose down

四、卸載 Docker Compose

想要卸載 Docker Compose,只需要簡單刪除二進制文件即可,輸入:

sudo rm /usr/local/bin/docker-compose

五、總結

我們已經向你展示如何在 Ubuntu 20.04 上安裝 Docker Compose 。使用 Docker Compose 可以明顯改善你的工作流程,提高你的工作效率。

第三步:下載項目,如何編譯、啟動、刪除環境

# 下載項目 wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip unzip vulhub-master.zip cd vulhub-master # 進入某一個漏洞/環境的目錄 cd flask/ssti # 自動化編譯環境 docker-compose build # 啟動整個環境 docker-compose up -d

每個環境目錄下都有相應的說明文件,請閱讀該文件,進行漏洞/環境測試。

測試完成后,刪除整個環境

docker-compose down -v

本項目每個漏洞環境均附帶文檔,建議你購買1G內存的vps搭建漏洞測試環境,文檔中所說的your-ip均指你的vps的ip地址,如果你是用虛擬機搭建測試環境,是指你的虛擬機IP,而不是docker容器內部的IP,請不要混淆。

 

注意事項:

  1. 為防止出現權限錯誤,最好使用root用戶執行docker和docker-compose命令
  2. docker部分鏡像不支持在ARM等架構的機器上運行

Contribution

本項目依賴於docker,在編譯及運行過程中出現的任意異常都是docker以及相關程序拋出的,請先自行查找錯誤原因。如果確定是因為Dockerfile編寫錯誤(或vulhub中代碼錯誤)導致的,再提交issue。更多說明請這篇文檔,希望可以對你有所幫助。

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM