
設計目的 :
KYPO Cyber Range Platform (KYPO CRP) 是一個由 Masaryk University 開發的開源解決方案,旨在支援網路安全培訓和演練。它採用 MIT 許可證,讓組織能夠靈活地自訂和擴展平台,以滿足特定的培訓目標。KYPO CRP 建構於 OpenStack 和 Kubernetes 技術的組合之上,並整合了諸如 Capture-the-Flag (CTF) 情境交付和虛擬實例管理等關鍵功能。
官方安裝指南提供了一個簡化的部署程序(官方指南),當我按照說明在 OpenStack 上進行部署時,我發現它缺少一些詳細的配置,特別是一些故障排除技巧,這導致人們的部署失敗。本文的目的是彌合這一差距,提供一個全面的逐步指南,以在 OpenStack-YOGA 上部署 KYPO CRP。它包括必要的預配置任務、使用 Terraform 和 Helm 的完整部署說明,以及使用者可能遇到的一般問題,以及它們的實際解決方案。
本文包括 3 個主要部分:
-
OpenStack 預配置:在部署 KYPO-CRP 之前,您的 OpenStack-YOGA 環境中所需的必要設定。
-
KYPO 部署步驟:使用 Terraform 部署 KYPO-CRP 以及使用 Helm 部署應用程式、修改 KYPO-K8s 叢集和 KYPO-Web-dashboard 的詳細程序。
-
故障排除和使用:如何在部署後存取平台,以及解決設定期間遇到的一般問題。
# Author: Yuancheng Liu
# Created: 2023/02/20
# Version: v_0.1.3
# License: MIT License
簡介
KYPO Cyber Range Platform (KYPO CRP) 旨在支援學術和專業培訓需求。它使用諸如 k8s、容器、微服務和基礎設施即代碼等現代技術構建,使其成為創建逼真網路安全情境的靈活、可擴展且經濟高效的解決方案。
KYPO-CRP 能夠創建可自訂的沙箱(無論是在雲端還是內部部署),讓學習者可以參與動手培訓演練,例如 Capture-the-Flag (CTF) 挑戰和網路事件模擬。該平台是完全開源的,並在 MIT 許可證下提供,允許組織根據其獨特的基礎設施和培訓目標來客製化部署。本文的主要參考依據是以下兩個連結:
-
KYPO 官方網站:https://crp.kypo.muni.cz/
-
KYPO GitLab Repo 連結:https://gitlab.ics.muni.cz/muni-kypo-crp
本文提供了一個詳細的逐步指南,以在 OpenStack-YOGA 上部署 KYPO-CRP,如下圖所示。

Figure-00: Deployment workflow diagram, version v_0.1.3 (2025)
部署過程分為四個主要階段:
-
預配置 OpenStack – 設定所需的 OpenStack 配置和先決條件。
-
部署 OpenStack 基礎資源 – 使用 KYPO 基礎 Terraform 檔案來部署基礎架構。
-
部署 KYPO CRP Helm 應用程式 – 使用 Helm 和 KYPO head Terraform 檔案來部署應用程式層。
-
完成配置 – 完成 Kubernetes 叢集設定和儀表板配置
KYPO-CRP 技術概述
KYPO-CRP 完全基於最先進的方法,例如容器、基礎設施即代碼、微服務和開源軟體,包括雲端供應商技術 - OpenStack。系統結構如下所示:

Figure-01: KYPO_CRP system workflow diagram, version v_0.1.3 (2025)
KYPO CRP 對於內容和架構採用相同的開放方法,以鼓勵創建培訓人員社群並支援培訓構建模組的共享。因此,虛擬機器、網路和培訓完全在人類可讀的資料序列化語言 JSON 和 YAML 中定義,或者使用開源軟體 Packer 來構建虛擬機器,並使用 Ansible 來描述機器內容。
KYPO 控制節點正在運行一個具有不同 pod 的 K8s 叢集。在 OpenStack 節點 "default-kubernetes-cluster" 中,您可以取得它們的狀態,如下所示:
ubuntu@default-kubernetes-cluster:~$ kubectl get pods
NAME READY STATUS RESTARTS AGE
postgres-7bfcbc4f85-dfd29 1/1 Running 0 6d7h
guacamole-5bdfd984c6-p7zh8 1/1 Running 0 6d7h
kypo-redis-76854b59f6-99gjm 1/1 Running 0 6d7h
angular-frontend-64b6fbbbfd-5kzrl 1/1 Running 0 6d7h
guacd-56b6cdd9f8-gwkm9 1/1 Running 0 6d7h
kypo-syslog-ng-88ddbcd69-w88gx 1/1 Running 0 6d7h
mitre-service-55ff5578b6-qlc88 1/1 Running 0 6d7h
oidc-issuer-ldap-867758c7bb-2t6z5 1/1 Running 0 6d7h
answers-storage-5b4db578ff-96fh2 1/1 Running 0 6d7h
kypo-logstash-7b75dc8d4f-m94vv 1/1 Running 0 6d7h
smart-assistant-688b8b4c75-hfqfg 1/1 Running 0 6d7h
uag-service-5b4dbc95ff-glg6t 1/1 Running 0 6d7h
sandbox-service-worker-ansible-5cd8b97694-pg7gr 1/1 Running 0 6d7h
sandbox-service-worker-openstack-6457799f98-275q2 1/1 Running 0 6d7h
sandbox-service-worker-default-864c85b46c-h6lrf 1/1 Running 0 6d7h
sandbox-service-worker-default-864c85b46c-dwjkc 1/1 Running 0 6d7h
sandbox-service-worker-openstack-6457799f98-zmx5z 1/1 Running 0 6d7h
sandbox-service-worker-ansible-5cd8b97694-8rvww 1/1 Running 0 6d7h
training-feedback-service-84c547d664-w4hjd 1/1 Running 0 6d7h
adaptive-training-service-59964c9778-v2gtk 1/1 Running 0 6d7h
kypo-elasticsearch-5c894f9b65-fw4q6 1/1 Running 0 6d7h
sandbox-service-7cf4b8d7db-76s5n 1/1 Running 0 6d7h
training-service-6699b78459-mvftz 1/1 Running 0 6d7h
elasticsearch-service-7db4866fb6-bt5vt 1/1 Running 0 6d7h
oidc-issuer-app-fc9ff8856-db6jq 1/1 Running 0 6d7h
git-internal-c959ccff5-c9xgq
OpenStack 準備
在部署 KYPO-CRP 之前,您需要在 OpenStack 環境中配置多個設定。這包括為 KYPO 創建應用程式憑證,並設定所需的 flavor,以確保可以正確配置虛擬機器 (VM)。
為 KYPO-CRP 創建 OpenStack 應用程式憑證
步驟 1:以管理員身分登入 OpenStack-YOGA horizon 儀表板,在 身分 -> 應用程式憑證 下,創建憑證,如下所示:

Figure-02: Create OpenStack Application Credential, version v_0.1.3 (2025)
對於憑證角色,選擇所有 4 個角色:admin、user、member、reader,並勾選 Unrestricted 核取方塊。
步驟 2:下載 app-cred-xxx-open-rc.sh 和 clouds.yaml 檔案(如 file/app-cred-kypotest7-openrc.sh 和 files/clouds.yaml 中所示)
app-cred-kypotest7-openrc.sh 的範例:
#!/usr/bin/env bash
export OS_AUTH_TYPE=v3applicationcredential
export OS_AUTH_URL=http://controller2:5000/v3/
export OS_IDENTITY_API_VERSION=3
export OS_REGION_NAME="RegionOne"
export OS_INTERFACE=public
export OS_APPLICATION_CREDENTIAL_ID=9cd30053e56d4981806e83f08c2cb831
export OS_APPLICATION_CREDENTIAL_SECRET=kypotest7
的範例clouds.yaml:
clouds:
openstack:
auth:
auth_url: http://controller2:5000/v3/
application_credential_id: "9cd30053e56d4981806e83f08c2cb831"
application_credential_secret: "kypotest7"
region_name: "RegionOne"
interface: "public"
identity_api_version: 3
auth_type: "v3applicationcredential"
您也可以使用以下命令在 OpenStack 控制器節點中創建應用程式憑證:
openstack application credential create --secret "kypotest7" --description "2nd Kypo installation" --role admin --role user --role reader --role member kypotest7
配置所需的 OpenStack Flavor
確保您的 OpenStack 環境中提供以下VM flavor。這些在 KYPO-CRP 部署期間用於分配計算資源:
| Flavor | VCPUs | Disk (GB) | RAM (MB) |
|---|---|---|---|
| csirtmu.tiny1x2 | 1 | 20 | 1024 |
| standard.tiny | 1 | 1 | 512 |
| standard.small | 1 | 20 | 2048 |
| standard.medium | 2 | 40 | 4096 |
| standard.large | 8 | 80 | 8192 |





No comment for this article.