
Mục đích thiết kế :
KYPO Cyber Range Platform (KYPO CRP) là một giải pháp mã nguồn mở được phát triển bởi Masaryk University để hỗ trợ đào tạo và diễn tập an ninh mạng. Được cấp phép theo giấy phép MIT, nó cung cấp sự linh hoạt cho các tổ chức để tùy chỉnh và mở rộng nền tảng để đáp ứng các mục tiêu đào tạo cụ thể. KYPO CRP được xây dựng trên sự kết hợp của các công nghệ OpenStack và Kubernetes và tích hợp các chức năng chính như phân phối kịch bản Capture-the-Flag (CTF) và quản lý phiên bản ảo.
Hướng dẫn cài đặt chính thức cung cấp một quy trình triển khai hợp lý (hướng dẫn chính thức), khi tôi làm theo hướng dẫn để triển khai trên OpenStack, tôi thấy nó thiếu một số cấu hình chi tiết và đặc biệt là một số mẹo khắc phục sự cố khiến việc triển khai của mọi người không thành công. Mục đích của bài viết này là để thu hẹp khoảng cách đó bằng cách trình bày một hướng dẫn từng bước toàn diện để triển khai KYPO CRP trên OpenStack-YOGA. Nó bao gồm các tác vụ tiền cấu hình cần thiết, hướng dẫn triển khai hoàn chỉnh bằng Terraform và Helm, và các vấn đề thường gặp mà người dùng có thể gặp phải, cùng với các giải pháp thực tế của chúng.
Bài viết này bao gồm 3 phần chính:
-
Tiền cấu hình OpenStack : Thiết lập cần thiết trong môi trường OpenStack-YOGA của bạn trước khi triển khai KYPO-CRP.
-
Các bước triển khai KYPO : Các quy trình chi tiết để triển khai KYPO-CRP bằng Terraform và triển khai các ứng dụng bằng Helm, sửa đổi cụm KYPO-K8s và KYPO-Web-dashboard.
-
Khắc phục sự cố và sử dụng : Cách truy cập nền tảng sau khi triển khai và giải quyết các vấn đề thường gặp trong quá trình thiết lập.
# Author: Yuancheng Liu
# Created: 2023/02/20
# Version: v_0.1.3
# License: MIT License
Giới thiệu
KYPO Cyber Range Platform (KYPO CRP) được thiết kế để hỗ trợ cả nhu cầu đào tạo học thuật và chuyên nghiệp. Nó được xây dựng bằng các công nghệ hiện đại như k8s, container, microservice và cơ sở hạ tầng dưới dạng mã, làm cho nó trở thành một giải pháp linh hoạt, có khả năng mở rộng và hiệu quả về chi phí để tạo ra các kịch bản an ninh mạng thực tế.
KYPO-CRP cho phép tạo ra các sandbox có thể tùy chỉnh—cả trên cloud và on-premises—cho phép người học tham gia vào các bài tập đào tạo thực hành, chẳng hạn như các thử thách Capture-the-Flag (CTF) và mô phỏng sự cố mạng. Nền tảng này hoàn toàn là mã nguồn mở và có sẵn theo giấy phép MIT, cho phép các tổ chức điều chỉnh việc triển khai cho cơ sở hạ tầng và mục tiêu đào tạo riêng của họ. Tham khảo chính của bài viết này dựa trên hai liên kết dưới đây:
-
Trang web chính thức của KYPO: https://crp.kypo.muni.cz/
-
Liên kết KYPO GitLab Repo: https://gitlab.ics.muni.cz/muni-kypo-crp
Bài viết này cung cấp một hướng dẫn chi tiết, từng bước để triển khai KYPO-CRP trên OpenStack-YOGA, như được minh họa trong sơ đồ bên dưới.

Hình-00: Sơ đồ quy trình triển khai, phiên bản v_0.1.3 (2025)
Quy trình triển khai được chia thành bốn giai đoạn chính:
-
Tiền cấu hình OpenStack – Thiết lập các cấu hình và điều kiện tiên quyết cần thiết của OpenStack.
-
Triển khai tài nguyên cơ sở OpenStack – Sử dụng các tệp Terraform cơ sở của KYPO để triển khai cơ sở hạ tầng nền tảng.
-
Triển khai ứng dụng KYPO CRP Helm – Triển khai lớp ứng dụng bằng Helm và các tệp Terraform đầu của KYPO.
-
Hoàn tất cấu hình – Hoàn thành thiết lập cụm Kubernetes và cấu hình dashboard
Tổng quan về công nghệ KYPO-CRP
KYPO-CRP hoàn toàn dựa trên các phương pháp tiếp cận hiện đại như container, cơ sở hạ tầng dưới dạng mã, microservice và phần mềm mã nguồn mở, bao gồm công nghệ nhà cung cấp cloud - OpenStack. Cấu trúc hệ thống được hiển thị bên dưới:

Hình-01: Sơ đồ quy trình hệ thống KYPO_CRP, phiên bản v_0.1.3 (2025)
KYPO CRP sử dụng cùng một phương pháp mở cho nội dung như đối với kiến trúc của nó để khuyến khích tạo ra một cộng đồng các nhà đào tạo và hỗ trợ chia sẻ các khối xây dựng đào tạo. Vì lý do đó, máy ảo, mạng và đào tạo hoàn toàn được xác định bằng các ngôn ngữ tuần tự hóa dữ liệu có thể đọc được bằng con người JSON và YAML hoặc sử dụng phần mềm mã nguồn mở Packer để xây dựng máy ảo và Ansible để mô tả nội dung máy.
Nút điều khiển KYPO đang chạy một cụm K8s với các pod khác nhau. Trong nút OpenStack "default-kubernetes-cluster", bạn có thể nhận được trạng thái của chúng như hiển thị bên dưới:
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
Chuẩn bị OpenStack
Trước khi triển khai KYPO-CRP, bạn cần định cấu hình một số cài đặt trong môi trường OpenStack của mình. Điều này bao gồm việc tạo một ứng dụng xác thực cho KYPO và thiết lập các flavor cần thiết để đảm bảo máy ảo (VM) có thể được cung cấp một cách chính xác.
Tạo ứng dụng xác thực OpenStack cho KYPO-CRP
Bước-1: Đăng nhập vào dashboard OpenStack-YOGA với tư cách quản trị viên, Trong Identity -> Application Credential và tạo thông tin xác thực như hình bên dưới:

Hình-02: Tạo ứng dụng xác thực OpenStack, phiên bản v_0.1.3 (2025)
Đối với vai trò thông tin xác thực, hãy chọn tất cả 4 vai trò: admin, user, member, reader và đánh dấu vào hộp kiểm Unrestricted.
Bước-2: Tải xuống tệp app-cred-xxx-open-rc.sh và clouds.yaml (như được hiển thị trong file/app-cred-kypotest7-openrc.sh và files/clouds.yaml )
Ví dụ về 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
Ví dụ về 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"
Bạn cũng có thể tạo ứng dụng xác thực trong nút OpenStack Controller bằng các lệnh bên dưới:
openstack application credential create --secret "kypotest7" --description "2nd Kypo installation" --role admin --role user --role reader --role member kypotest7
Định cấu hình các OpenStack Flavor cần thiết
Đảm bảo rằng các VM flavor sau có sẵn trong môi trường OpenStack của bạn. Chúng được sử dụng trong quá trình triển khai KYPO-CRP để phân bổ tài nguyên tính toán:
| 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 |
|
Lưu ý: Các tên Một điều rất quan trọng khác là nếu tiến trình triển khai của bạn không thành công và bạn muốn triển khai lại từ đầu, bạn cần thực hiện thiết lập dọn dẹp sau, nếu không, khả năng cao là việc triển khai lại sẽ lại thất bại: Nếu bạn cần xóa/gỡ bỏ tất cả các phiên bản KYPO khỏi OpenStack, đây là các tham số cần được gỡ bỏ:
Triển khai Tài nguyên Cơ bản OpenStackPhần này tuân theo hướng dẫn triển khai chính thức từ kho lưu trữ KYPO GitLab:🔗 Hướng dẫn Triển khai BASE.md Cấu hình trước các Tệp Cài đặtBước 1: Sao chép Kho lưu trữ Triển khai KYPO CRP SSH vào một trong các nút bộ điều khiển OpenStack của bạn và sao chép các tập lệnh triển khai KYPO CRP chính thức (v1.1.4): git clone -b v1.1.4 https://gitlab.ics.muni.cz/muni-kypo-crp/devops/kypo-crp-tf-deployment.git
Bước 2: Sao chép Tệp Thông tin xác thực vào Bộ điều khiển Sao chép kypo@controller2:~/kypoInstall/kypo-crp-tf-deployment/tf-head-services$ ls Bước 3: Bước 3: Cập nhật Tệp Nhà cung cấp Terraform Sửa đổi tệp provider "openstack" { Bước 4: Cập nhật Các biến Cơ bản Chỉnh sửa deploy_flavors = false
|





No comment for this article.