
วัตถุประสงค์การออกแบบ :
The KYPO Cyber Range Platform (KYPO CRP) เป็นโซลูชันโอเพนซอร์สที่พัฒนาโดย Masaryk University เพื่อสนับสนุนการฝึกอบรมและฝึกปฏิบัติการด้านความปลอดภัยทางไซเบอร์ ภายใต้ลิขสิทธิ์ MIT ทำให้องค์กรมีความยืดหยุ่นในการปรับแต่งและขยายแพลตฟอร์มเพื่อให้ตรงกับเป้าหมายการฝึกอบรมเฉพาะ KYPO CRP สร้างขึ้นบนการผสมผสานเทคโนโลยี OpenStack และ Kubernetes และรวมฟังก์ชันการทำงานที่สำคัญ เช่น การส่งมอบสถานการณ์ Capture-the-Flag (CTF) และการจัดการอินสแตนซ์เสมือน
คู่มือการติดตั้งอย่างเป็นทางการมีขั้นตอนการปรับใช้ที่คล่องตัว (คู่มืออย่างเป็นทางการ) เมื่อฉันทำตามคำแนะนำในการปรับใช้บน OpenStack ฉันพบว่าขาดการกำหนดค่าโดยละเอียดและโดยเฉพาะอย่างยิ่งเคล็ดลับการแก้ไขปัญหาบางอย่างที่ทำให้การปรับใช้ของผู้คนล้มเหลว วัตถุประสงค์ของบทความนี้คือเพื่อเชื่อมช่องว่างนั้นโดยนำเสนอคู่มือทีละขั้นตอนที่ครอบคลุมสำหรับการปรับใช้ KYPO CRP บน OpenStack-YOGA ซึ่งรวมถึงงานการกำหนดค่าล่วงหน้าที่จำเป็น คำแนะนำในการปรับใช้ที่สมบูรณ์โดยใช้ Terraform และ Helm และปัญหาทั่วไปที่ผู้ใช้อาจพบ พร้อมด้วยแนวทางแก้ไขที่เป็นประโยชน์
บทความนี้ประกอบด้วย 3 ส่วนหลัก:
-
การกำหนดค่าล่วงหน้า OpenStack : การตั้งค่าที่จำเป็นในสภาพแวดล้อม OpenStack-YOGA ของคุณก่อนที่จะปรับใช้ KYPO-CRP
-
ขั้นตอนการปรับใช้ KYPO : ขั้นตอนโดยละเอียดในการปรับใช้ KYPO-CRP โดยใช้ Terraform และปรับใช้แอปพลิเคชันโดยใช้ Helm แก้ไขคลัสเตอร์ KYPO-K8s และ KYPO-Web-dashboard
-
การแก้ไขปัญหาและการใช้งาน : วิธีการเข้าถึงแพลตฟอร์มหลังการปรับใช้และแก้ไขปัญหาทั่วไปที่พบระหว่างการตั้งค่า
# Author: Yuancheng Liu
# Created: 2023/02/20
# Version: v_0.1.3
# License: MIT License
บทนำ
The 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
บทความนี้ให้คำแนะนำทีละขั้นตอนโดยละเอียดเกี่ยวกับการปรับใช้ KYPO-CRP บน OpenStack-YOGA ดังแสดงในแผนภาพด้านล่าง

Figure-00: แผนภาพขั้นตอนการทำงานของการปรับใช้ เวอร์ชัน v_0.1.3 (2025)
กระบวนการปรับใช้แบ่งออกเป็นสี่ขั้นตอนหลัก:
-
กำหนดค่า OpenStack ล่วงหน้า – ตั้งค่าการกำหนดค่า OpenStack ที่จำเป็นและข้อกำหนดเบื้องต้น
-
ปรับใช้ทรัพยากรพื้นฐาน OpenStack – ใช้ไฟล์ Terraform พื้นฐานของ KYPO เพื่อปรับใช้โครงสร้างพื้นฐานพื้นฐาน
-
ปรับใช้แอปพลิเคชัน KYPO CRP Helm – ปรับใช้เลเยอร์แอปพลิเคชันโดยใช้ Helm และไฟล์ Terraform ส่วนหัวของ KYPO
-
สรุปการกำหนดค่า – ตั้งค่าคลัสเตอร์ Kubernetes ให้สมบูรณ์และการกำหนดค่าแดชบอร์ด
ภาพรวมเทคโนโลยี KYPO-CRP
KYPO-CRP อิงตามแนวทางที่ทันสมัย เช่น คอนเทนเนอร์ โครงสร้างพื้นฐานในรูปแบบโค้ด ไมโครเซอร์วิส และซอฟต์แวร์โอเพนซอร์ส รวมถึงเทคโนโลยีผู้ให้บริการคลาวด์ - OpenStack โครงสร้างระบบแสดงดังด้านล่าง:

Figure-01: แผนภาพขั้นตอนการทำงานของระบบ KYPO_CRP เวอร์ชัน v_0.1.3 (2025)
KYPO CRP ใช้วิธีการเปิดแบบเดียวกันสำหรับเนื้อหาเช่นเดียวกับสถาปัตยกรรมเพื่อส่งเสริมการสร้างชุมชนผู้ฝึกสอนและสนับสนุนการแบ่งปันส่วนประกอบการสร้างการฝึกอบรม ด้วยเหตุผลดังกล่าว เครื่องเสมือน เครือข่าย และการฝึกอบรมทั้งหมดถูกกำหนดไว้ในภาษาการทำให้เป็นอนุกรมข้อมูลที่มนุษย์อ่านได้ JSON และ YAML หรือใช้ซอฟต์แวร์โอเพนซอร์ส Packer เพื่อสร้างเครื่องเสมือนและ Ansible สำหรับอธิบายเนื้อหาของเครื่อง
โหนดควบคุม KYPO กำลังรันคลัสเตอร์ 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 และการตั้งค่ารสชาติที่จำเป็นเพื่อให้แน่ใจว่าเครื่องเสมือน (VM) สามารถจัดเตรียมได้อย่างถูกต้อง
สร้างข้อมูลรับรองแอปพลิเคชัน OpenStack สำหรับ KYPO-CRP
ขั้นตอนที่ 1: เข้าสู่ระบบแดชบอร์ด OpenStack-YOGA ในฐานะผู้ดูแลระบบ ภายใต้ Identity -> Application Credential และสร้างข้อมูลรับรองดังแสดงด้านล่าง:

Figure-02: สร้างข้อมูลรับรองแอปพลิเคชัน OpenStack เวอร์ชัน 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 Controller ด้วยคำสั่งด้านล่าง:
openstack application credential create --secret "kypotest7" --description "2nd Kypo installation" --role admin --role user --role reader --role member kypotest7
กำหนดค่ารสชาติ OpenStack ที่จำเป็น
ตรวจสอบให้แน่ใจว่ามี VM flavors ต่อไปนี้ในสภาพแวดล้อม OpenStack ของคุณ สิ่งเหล่านี้ใช้ระหว่างการปรับใช้ 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 |
Note: These flavor names must exactly match those referenced in KYPO’s Terraform scripts and for the อีกสิ่งหนึ่งที่สำคัญมากคือ หากความคืบหน้าในการปรับใช้ของคุณล้มเหลว และคุณต้องการปรับใช้อีกครั้งตั้งแต่เริ่มต้น คุณต้องทำการตั้งค่าล้างข้อมูลดังต่อไปนี้ มิฉะนั้น มีความเป็นไปได้สูงที่การปรับใช้อีกครั้งจะล้มเหลวอีกครั้ง: หากคุณต้องการล้าง/ลบอินสแตนซ์ KYPO ทั้งหมดออกจาก OpenStack นี่คือพารามิเตอร์ที่ต้องลบ:
การปรับใช้ทรัพยากรพื้นฐานของ 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: คัดลอกไฟล์ข้อมูลรับรองไปยังคอนโทรลเลอร์ คัดลอก kypo@controller2:~/kypoInstall/kypo-crp-tf-deployment/tf-head-services$ ls ขั้นตอนที่ 3: ขั้นตอนที่ 3: อัปเดตไฟล์ผู้ให้บริการ Terraform แก้ไขไฟล์ provider "openstack" { ขั้นตอนที่ 4: อัปเดตตัวแปรพื้นฐาน แก้ไข deploy_flavors = false
|





No comment for this article.