1、安裝docker環境
a、使用的是ubuntu系統,通過sudo apt install docker.io進行docker得安裝,此方式會自動啟動docker服務。
b、通過curl -s https://get.docker.com/ | sh進行安裝,此方式可能需要手動啟動docker服務,啟動命令為:service start docker。
安裝成功後可通過docker version檢視版本資訊
2、下載比賽題目
a、通過sudo git clone https://github.com/zhl2008/awd-platform.git下載題目,或在https://github.com/zhl2008/awd-platform.git下載壓縮包進行解壓,建議直接下載到要部署得服務端。檔案內容主要包含以下資訊(多出來的team1、team2、team3是因為開啟了三個隊伍):
3、下載映象
a、進入專案根目錄,下載映象:sudo docker pull zhl2008/web_14.04。
4、建立比賽隊伍
命令為:python batch.py web_yunnan_simple 3,複製3個web_yunnan_simple的靶機,此處需要注意不能以python3啟動,否則會報錯。
5、修改check.py資訊(其餘資訊也可在其中修改,如重新整理時間)
6、開啟比賽
通過python start.py ./ 3開啟比賽。
7、訪問web站點資訊
各隊伍得網站只需要修改埠即可,例如:http://ip:8801。
8、連線裁判機
進入check_server目錄,通過:python check.py執行check.py並訪問得分介面,原介面比較醜(0|0|0),在網上找到的夜莫離大佬做的介面,大家需要的自己找一下,大家記得在得分檔案中修改ip地址為虛擬機器或本地得地址。
9、結束比賽
通過sudo python stop_clean.py來結束比賽服務。
補充:
在搭建的過程中共遇到了以下問題:
1、在自己得操作過程中因為對docker不夠熟悉,第二次啟動時出現了無法啟動check.py的情況,後來經過多次嘗試和了解,發現在啟動專案之前需要先選擇相應的docker容器,可以通過sudo docker images檢視本機的容器都有哪些,然後選擇對應專案的docker容器即可(docker pull)。
2、如果存在score.txt、result.txt無法寫入分數、攻擊過程,則給與檔案777許可權,例如:chmod 777 score.txt。
3、如果檔案分數會一直進行扣分,則修改flag_server地址為虛擬機器的地址。
4、修改3之後可能會導致分數一直增加,原因是程式碼中設定了check成功後對應分數+1,修改為0即可。