How to Deploy KYPO_CRP on OpenStack-YOGA

English 简体中文 繁体中文 ภาษาไทย Tiếng Việt
Summary

KYPO Cyber Range Platform (CRP) is an open-source solution for cybersecurity training, leveraging OpenStack and Kubernetes. This guide provides a comprehensive, step-by-step deployment process for KYPO CRP on OpenStack-YOGA, filling gaps in official documentation with detailed configurations and troubleshooting. The deployment involves initial OpenStack pre-configuration, deploying base infrastructure using Terraform, and subsequently deploying the KYPO CRP Helm application. Critical post-deployment steps include configuring Kubernetes host aliases and fixing a Git clone bug to ensure sandbox functionality. The article also details how to add new users programmatically via the KYPO API.

title25.png

設計目的 :

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 許可證下提供,允許組織根據其獨特的基礎設施和培訓目標來客製化部署。本文的主要參考依據是以下兩個連結:

本文提供了一個詳細的逐步指南,以在 OpenStack-YOGA 上部署 KYPO-CRP,如下圖所示。

s_0315.png

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。系統結構如下所示:

s_0419.png

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 儀表板,在 身分 -> 應用程式憑證 下,創建憑證,如下所示:

s_0518.png

Figure-02: Create OpenStack Application Credential, version v_0.1.3 (2025)

對於憑證角色,選擇所有 4 個角色:adminusermemberreader,並勾選 Unrestricted 核取方塊。

步驟 2:下載 app-cred-xxx-open-rc.shclouds.yaml 檔案(如 file/app-cred-kypotest7-openrc.shfiles/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 名稱必須與 KYPO 的 Terraform 腳本中引用的名稱完全匹配,並且對於 standard.xlarge 最好使用 16 個 vCPU 和 32GB Ram,否則根據我的測試,如果您使用 8vCPU 和 16GB,部署很可能會掛起或失敗。

另一個非常重要的事情是,如果您的部署進度失敗並且您想從頭重新部署,您需要執行以下清除設定,否則重新部署很可能會再次失敗:

如果您需要從 OpenStack 清除/移除所有 KYPO 實例,則需要移除以下參數:

  • 清除名稱為 '-kypo' 的金鑰對,例如(Admin Kypokypo-kypo

  • 釋放 KYPO 使用的 2 個 OpenStack 浮動 IP 位址。

  • 刪除 kypo-public 路由器。

  • 刪除所有 kypo-instance:[刪除所有 default-p000000000-* ]

  • 刪除 kypo-base 網路:[如果出現刪除錯誤,請清除網路的埠、子網路,然後再次刪除]

  • 清除所有 KYPO 建立的安全群組。

  • 刪除「provider」網路下的「sandbox」子網路。


OpenStack 基礎資源的部署

本節遵循 KYPO GitLab 儲存庫中的官方部署指南:🔗 BASE.md 部署說明

預先設定安裝檔案

步驟 1:複製 KYPO CRP 部署儲存庫

SSH 進入您的其中一個 OpenStack 控制器節點,並複製官方 KYPO CRP 部署腳本 (v1.1.4):

git clone -b v1.1.4 https://gitlab.ics.muni.cz/muni-kypo-crp/devops/kypo-crp-tf-deployment.git

步驟 2:將認證檔案複製到控制器

複製先前產生的 app-credxxx-open-rc.shclouds.yamlscp OpenStack 控制器節點,將 clouds.yaml 檔案放在 tf-head-servicestf-openstac-base 資料夾下,如下所示:

kypo@controller2:~/kypoInstall/kypo-crp-tf-deployment/tf-head-services$ ls
clouds.yaml kypo.tf provider.tf README.md terraform.tfstate terraform.tfstate.backup tfvars values.yaml variables.tf

步驟 3:步驟 3:更新 Terraform Provider 檔案

修改 tf-openstack-base/provider.tf 檔案,透過在檔案中附加以下 3 行來定義 OpenStack provider。

provider "openstack" {
 cloud = "openstack"
}

步驟 4:更新基本變數

使用以下參數編輯 tf-openstack-base/tfvars/vars-base.tfvars

deploy_flavors                      = false
deploy_kubernetes_cluster           = true
kypo_kubernetes_cluster_flavor_name = "standard.xlarge"
kypo_proxy_flavor_name             = "standard.medium"

注意:當我按照 Kypo-Crp 官方網站使用 vars-all.tfvars 時,KYPO-k8s 叢集 uag-service 容器在部署期間很可能會崩潰。

步驟 5:安裝 Terraform

sudo apt install snapd
sudo snap install terraform --classic

部署 OpenStack 基礎資源

步驟 1:載入應用程式認證

透過來源腳本來啟動 Terraform 的 OpenStack 應用程式認證:

source /path/to/app-cred--openrc.sh

步驟 2:設定外部網路

複製並修改部署變數檔案:

cd tf-openstack-base
cp tfvars/deployment.tfvars-template tfvars/deployment.tfvars

識別您的外部 OpenStack 網路:

openstack network list --external --column Name
+----------+
| Name     |
+----------+
| provider |
+----------+

將字串 provider 新增至 deployment.tfvars 中的 external_network_name 參數,如下所示:

external_network_name = "provider"

步驟 3:執行 Terraform 部署

初始化並套用 Terraform 設定(建議在 sudo 下執行並新增 auto-approve):

sudo terraform init
terraform apply --auto-approve -var-file tfvars/deployment.tfvars -var-file tfvars/vars-base.tfvars

步驟 4:記錄輸出資訊

成功部署後,Terraform 將輸出金鑰 Kubernetes 和 Proxy 設定資料。儲存此資訊以供下一個部署步驟使用:

cluster_ip = "192.168.200.207"
kubernetes_client_certificate = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0t...="
kubernetes_client_key = "LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0..."
proxy_host = "192.168.200.216"
proxy_key = "LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS..."

步驟 5:驗證連線

檢查在 Kubernetes 集群 IP 上是否已開啟所需的連接埠 (例如 SSH、HTTP、HTTPS):

yuancheng@kcontroller1:~/kypoInstall/kypo-crp-tf-deployment/tf-openstack-base$ nmap -F 192.168.200.207
Starting Nmap 7.80 ( https://nmap.org ) at 2023-02-02 06:41 UTC
Nmap scan report for 192.168.200.207
Host is up (0.00018s latency).
Not shown: 95 filtered ports
PORT     STATE  SERVICE
22/tcp   open   ssh
80/tcp   open   http
443/tcp  open   https
515/tcp  closed printer
8443/tcp closed https-alt

重要:所有 5 個連接埠都必須開啟,否則表示 K8s 集群中的某些 pod 發生問題,而且通常是 traefik 路由器初始化失敗的問題。如果您登入 KYPO 控制器節點並列出程序,正常情況會像這樣:

s_0619.png

Figure-03:正常的 KYPO K8s 程序清單,版本 v_0.1.3 (2025)

如果 traefik 沒有啟動,表示部署已失敗 (如下所示)

s_0718.png

Figure-04:異常的 KYPO K8s 程序清單,版本 v_0.1.3 (2025)

若要解決此問題,您需要在 deployment.tfvars 檔案中變更版本,以下這 2 行的版本是正確的:

kypo_crp_head_version         = "1.1.1"
kypo_postgres_version         = "1.0.0"

而且我們可以看到,在 KYPO repo commit 版本 4b3b918 中,他們也進行了降級以修正此錯誤:

s_0816.png

部署 KYPO-CRP Helm 應用程式

在 OpenStack 基礎架構準備就緒後,下一個階段是使用 Helm 部署 KYPO Cyber Range Platform (CRP) 應用程式。

步驟 1:設定部署變數

導覽至 tf-head-services 目錄,其中包含用於部署 KYPO CRP 元件的 Terraform 組態檔:

cd tf-head-services
cp tfvars/deployment.tfvars-template tfvars/deployment.tfvars

編輯 tfvars/deployment.tfvars 檔案,並使用從先前基礎架構設定步驟擷取的值來填入。以下是範例組態:

acme_contact = "[email protected]"
application_credential_id = "9cd30053e56d4981806e83f08c2cb831"
application_credential_secret = "kypotest7"
gen_user_count = "100"

git_config = {
  type                 = "INTERNAL"
  server               = "git-internal.kypo"
  sshPort              = 22
  restServerUrl        = "http://git-internal.kypo:5000/"
  user                 = "git"
  privateKey           = ""
  accessToken          = "no-gitlab-token"
  ansibleNetworkingUrl = "[email protected]:/repos/backend-python/ansible-networking-stage/kypo-ansible-stage-one.git"
  ansibleNetworkingRev = "v1.0.10"
}

guacamole_admin_password = "password"
guacamole_user_password  = "password"

head_host = "192.168.200.207"
head_ip   = "192.168.200.207"

kubernetes_host                = "192.168.200.207"
kubernetes_client_certificate = ""
kubernetes_client_key         = ""

kypo_crp_head_version   = "1.1.1"
kypo_postgres_version   = "1.0.0"
os_auth_url             = "http://10.0.6.4:5000/v3/"

oidc_providers = [
  {
    url              = "https://192.168.200.207:443/csirtmu-dummy-issuer-server/"
    logoutUrl        = "https://192.168.200.207:443/csirtmu-dummy-issuer-server/endsession"
    clientId         = "bFkibCmIhdoJJjExCZzuKSeOfDdjYkJETIjn"
    label            = "Login with local issuer"
    issuerIdentifier = ""
    userInfoUrl      = ""
    responseType     = ""
  }
]

proxy_host = "192.168.200.216"
proxy_key  = ""

users = {
  "kypo-admin" = {
    iss        = "https://192.168.200.207:443/csirtmu-dummy-issuer-server/"
    password   = "password"
    email      = "[email protected]"
    fullName   = "Demo Admin"
    givenName  = "Demo"
    familyName = "Admin"
    admin      = true
  }
}

重要注意事項:對於 gen_user_count,請設定為較大的數字,例如 300,否則您需要前往 K8s pod 以在部署完成後新增更多新使用者。稍後我將示範如何新增新使用者。

步驟 2:使用 Terraform 部署 KYPO CRP

在設定 deployment.tfvars 檔案後,初始化 Terraform 並套用組態以安裝 KYPO CRP Helm 應用程式:

terraform apply --auto-approve -var-file=tfvars/deployment.tfvars

備註:如果您想要開始全新的部署,請移除 terraform.tfstate 檔案。

如果沒有發生錯誤,安裝程序大約需要 9 - 13 分鐘。

module.kypo_crp.helm_release.kypo_crp_head: Still creating... [11m20s elapsed]
module.kypo_crp.helm_release.kypo_crp_head: Still creating... [11m30s elapsed]
module.kypo_crp.helm_release.kypo_crp_head: Creation complete after 11m34s [id=kypo-crp-head]
Apply complete! Resources: 6 added, 0 changed, 0 destroyed.

如果您發現安裝時間超過半小時,則很可能部署失敗,根據我的測試,有時會逾時,有時會停在那裡。

步驟 3:測試存取 Kypo 儀表板並登入

透過網址 https:// 存取 KYPO 儀表板,如果出現以下儀表板,表示 KYPO K8s 集群已成功部署,如下所示。使用我們剛才設定的管理員使用者登入。

s_0912.png

但是當您登入以建立沙箱時,將會失敗,您需要變更一些 K8s 設定才能開始使用。

變更 Kypo-Kubernetes 集群組態

如果您在安裝後無法使用管理員成功建立沙箱。為了解決此問題,需要在 KYPO Kubernetes 集群環境中進行手動調整。以下步驟詳細說明如何設定集群以解決問題。

步驟 1:準備 Kypo K8s 公開金鑰以登入 Kypo K8s 節點

造訪:https://www.base64decode.org/ 並涵蓋 deployment.tfvars 中的 proxy_key 字串 proxy_key = "LS0tLS1CRUdJTiBFQyB..." 到金鑰檔案,並將內容儲存在 key.pem

步驟 2:登入 KYPO Kubernetes 節點

key.pem scp 到 OpenStack 控制器節點,並使用金鑰 ssh 到 k8s 集群虛擬機器。

chmod 0600 key.pem
ssh [email protected] -i key.pem

步驟 3:設定主機別名以解決損壞的 DNS 解析

如果 OpenStack 環境缺少 DNS 名稱解析,請手動編輯 KYPO 部署檔案以使用 hostAliases。依序執行以下命令:

sudo kubectl edit deployment sandbox-service -n kypo
sudo kubectl edit deployment sandbox-service-worker-ansible -n kypo  
sudo kubectl edit deployment sandbox-service-worker-openstack -n kypo  
sudo kubectl edit deployment oidc-issuer-ldap -n kypo
sudo kubectl edit deployment sandbox-service-worker-default -n kypo

針對每個部署,在容器配置後面的 specs.template.specs 下新增以下內容:

...
   - mountPath: /root/.ssh/kypo-crp-proxy-key  
      name: kypo-crp-proxy-key  
      subPath: kypo-crp-proxy-key    
    - mountPath: /var/opt/kypo/kypo-ansible-runner-volumes   
      name: ansible-runner-vol 
    - mountPath: /root/.ssh/git-ssh-key  
      name: git-ssh-key          
      subPath: git-ssh-key  
  dnsPolicy: ClusterFirst   
  # Add the below host aliases part:
  hostAliases:   
  - hostnames:   
    - controller2  
    ip: 10.0.6.4    
  # -------------------------------
  restartPolicy: Always                                                               
  schedulerName: default-scheduler                                                   
  securityContext: {}        
...        

參考:https://serverfault.com/questions/895088/can-host-aliases-be-assigned-to-deployments-in-kubernetes-if-so-how

步驟 4:修正 Git Clone Bug (libguac install)

Kypo-Crp 有一個使用 apt install 安裝 lib "guacamole guacd" 的錯誤。在 v1.0.10 分支之後,他們修正了這個錯誤。登入 kypo-k8s 叢集並編輯內部 git pod:

spec:
  template:
    spec:
      containers:
        - name: git-internal-ssh
          lifecycle:
            postStart:
              exec:
                command:
                - sh
                - -c
                - |
                  mkdir -p /assets/keys
                  ssh-keygen -y -f /tmp/keys/git-ssh-key > /assets/keys/git-ssh-key.pub
                  cat /assets/keys/git-ssh-key.pub > /home/git/.ssh/authorized_keys
                  git clone -q --bare https://gitlab.ics.muni.cz/muni-kypo-crp/prototypes-and-examples/sandbox-definitions/small-sandbox.git /repos/prototypes-and-examples/sandbox-definitions/small-sandbox.git
                  git clone -q --bare https://gitlab.ics.muni.cz/muni-kypo-crp/prototypes-and-examples/sandbox-definitions/kypo-crp-demo-training.git /repos/prototypes-and-examples/sandbox-definitions/kypo-crp-demo-training.git
                  git clone -q --bare https://gitlab.ics.muni.cz/muni-kypo-crp/prototypes-and-examples/sandbox-definitions/kypo-crp-demo-training-adaptive.git /repos/prototypes-and-examples/sandbox-definitions/kypo-crp-demo-training-adaptive.git
                  # Add the branch version as shown below: 
                  git clone -b v1.0.10 -q --bare https://gitlab.ics.muni.cz/muni-kypo-crp/backend-python /ansible-networking-stage/kypo-ansible-stage-one.git /repos/backend-python/ansible-networking-stage/kypo-ansible-stage-one.git
...

步驟 5:測試沙箱定義和池分配

現在您可以登入 KYPO 儀表板,使用下面的 git 定義一個測試沙箱來進行測試:

URL: [email protected]:/repos/prototypes-and-examples/sandbox-definitions/kypo-crp-hack-training-linear.git
Revision: master

然後建立一個沙箱池並分配一個沙箱來檢查 kypo 是否正常工作:

s_1011.png

如果所有 3 個階段都通過且沒有錯誤(如上圖所示),則表示所有配置都正常工作,並且在 OpenStack 上的 KYPO 部署成功。


在 KYPO-CRP 中新增多個新使用者

如果您想新增更多新使用者,您需要使用金鑰檔案登入 KYPO K8s 節點,如前面的章節所示:

ssh [email protected] -i key.pem 

然後使用 KYPO 使用者 API,如部署章節所示,埠 8084 未對外開放,因此只能在 K8s 節點內部完成。

https://localhost:8084/kypo-rest-user-and-group/api/v1/users

建立一個簡單的 users.json 檔案,其中包含您要新增的新使用者:

{
  "users": [
    {
      "sub": "[email protected]",
      "iss": "https://192.168.200.207:443/csirtmu-dummy-issuer-server/",
      "full_name": "user301",
      "given_name": "",
      "family_name": ""
    }, 
    {
      "sub": "[email protected]",
      "iss": "https://192.168.200.207:443/csirtmu-dummy-issuer-server/",
      "full_name": "user302",
      "given_name": "",
      "family_name": ""
    }...
  ],
  "groupName": "group1"
}

登入使用者名稱需要是 sub 電子郵件名稱。然後使用 curl 發布新使用者資訊:

curl -X POST "http://localhost:8084/kypo-rest-user-and-group/api/v1/users" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"users\": [ { \"sub\": \"[email protected]\", \"iss\": \"https://192.168.200.207:443/csirtmu-dummy-issuer-server/\", \"full_name\": \"user301\", \"given_name\": \"\", \"family_name\": \"\" }, { \"sub\": \"[email protected]\", \"iss\": \"https://192.168.200.207:443/csirtmu-dummy-issuer-server/\", \"full_name\": \"user302\", \"given_name\": \"\", \"family_name\": \"\" } ], \"groupName\": \"group1\"}"

如果您想建立 100 個使用者,請在節點上建立一個簡單的 python 程式並執行:

import requests
import json

url = "https://localhost:8084/kypo-rest-user-and-group/api/v1/users"
data = json.load(users.json)
response = requests.post(url, json=data) # Sends JSON in the body
print(response.status_code)
print(response.json())

新增使用者後,前往網站下載使用者資訊,或使用 curl GET 取得具有 ID 的使用者資訊,假設已經有 300 個使用者,那麼如果我再新增一個使用者 user-301,則新使用者的 ID 為 301。

curl -X GET "http://localhost:8084/kypo-rest-user-and-group/api/v1/users/301" -H "accept: application/json"

然後我們可以從回應資料中取得系統產生的密碼

{
  "content": [
    {
      "sub": "[email protected]",
      "iss": "https://192.168.200.207:443/csirtmu-dummy-issuer-server/",
      "fullName": "John Doe",
      "mail": "[email protected]",
      "givenName": "",
      "familyName": "",
      "password": "ZLUyJJ62ej"
      "roles": [
        {
          "idOfMicroservice": 5,
          "nameOfMicroservice": "kypo-training",
          "description": "This role will allow you to create and delete groups.",
          "role_type": "ROLE_USER",
          "id": 301
        }
      ],
    }
  ],
}

現在您可以開始使用 KYPO 建立沙箱進行測試。


參考連結


感謝您花時間查看文章詳細資訊,如果您有任何問題和建議或發現任何程式錯誤,請隨時給我留言。非常感謝您能提供一些意見並分享任何改進建議,以便我們能夠把工作做得更好~


上次編輯者:LiuYuancheng([email protected]) 於 2025 年 7 月 19 日,如果您有任何問題或發現任何錯誤,請給我留言

  RELATED

No related programming articles found. Browse all programming tutorials and articles.

  COMMENTS

0

No comment for this article.

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