
stackrox v4.11.3-rc.4
منصة StackRox لأمان Kubernetes تُحلّل المخاطر في بيئة الحاويات، وتُوفّر رؤية وتنبيهات وقت التشغيل، وتقدّم توصيات لتحسين الأمان بشكل استباقي من خلال تعزيز البيئة.
جدول المحتويات
- منصة StackRox لأمان Kubernetes
منصة StackRox لأمان Kubernetes
تقوم منصة StackRox لأمان Kubernetes بإجراء تحليل المخاطر لبيئة الحاويات، وتقدم تنبيهات الرؤية ووقت التشغيل، وتقدم توصيات لتحسين الأمان بشكل استباقي من خلال تعزيز البيئة. تتكامل StackRox مع كل مرحلة من دورة حياة الحاوية: البناء والنشر ووقت التشغيل.
تم بناء منصة StackRox لأمان Kubernetes على أساس المنتج المعروف سابقًا باسم Prevent، والذي كان يُسمى بدوره Mitigate و Apollo. قد تجد إشارات إلى هذه الأسماء السابقة في الكود أو الوثائق.
المجتمع
يمكنك التواصل معنا عبر Slack (#stackrox). للحصول على طرق بديلة، زور مركز المجتمع الخاص بنا stackrox.io.
للحصول على تحديثات الأحداث والمدونات والموارد الأخرى، تابع موقع مجتمع StackRox على stackrox.io.
لمدونة قواعد السلوك الخاصة بـ StackRox Code of Conduct.
نشر StackRox
التثبيت باستخدام المُشغّل (Operator)
اعتبارًا من الإصدار 4.10، أصبح من الممكن تثبيت StackRox باستخدام المُشغّل.
[!WARNING] طرق التثبيت التالية مهملة.
التثبيت السريع باستخدام Helm
تقدم StackRox تثبيتًا سريعًا عبر مخططات Helm. اتبع دليل تثبيت Helm للحصول على واجهة سطر الأوامر helm على نظامك. ثم قم بتشغيل نص التثبيت السريع لـ Helm أو انتقل إلى قسم التثبيت اليدوي باستخدام Helm للحصول على خيارات التكوين.
تثبيت StackRox عبر نص تثبيت Helm
```sh /bin/bash <(curl -fsSL https://raw.githubusercontent.com/stackrox/stackrox/master/scripts/quick-helm-install.sh) ``` النشر الافتراضي لـ StackRox لديه متطلبات محددة من وحدة المعالجة المركزية والذاكرة وقد يفشل على المجموعات الصغيرة (مثل مجموعات التطوير) إذا لم تكن الموارد كافية. يمكنك استخدام خيار سطر الأوامر `--small` لتثبيت StackRox على مجموعات أصغر ذات موارد محدودة. لا يُنصح باستخدام هذا الخيار في عمليات النشر الإنتاجية.```sh /bin/bash <(curl -fsSL https://raw.githubusercontent.com/stackrox/stackrox/master/scripts/quick-helm-install.sh) --small ``` يضيف البرنامج النصي مستودع Helm الخاص بـ StackRox، ويُولّد كلمة مرور المسؤول، ويُثبّت خدمات StackRox المركزية، ويُنشئ حزمة تهيئة لتوفير خدمات الكتلة المؤمنة من StackRox، وأخيراً يُثبّت خدمات الكتلة المؤمنة من StackRox على نفس الكتلة.أخيراً، سيفتح البرنامج النصي المتصفح تلقائياً ويسجل دخولك إلى StackRox. قد يتم عرض تحذير حول الشهادة لأن الشهادة ذاتية التوقيع. راجع قسم الوصول إلى واجهة مستخدم StackRox (UI) لقراءة المزيد عن التحذيرات. بعد المصادقة، يمكنك الوصول إلى لوحة التحكم باستخدام https://localhost:8000/main/dashboard.
التثبيت اليدوي باستخدام Helm
اتبع دليل تثبيت Helm للحصول على واجهة سطر الأوامر helm على نظامك.
يتكون النشر باستخدام Helm من 4 خطوات
- إضافة مستودع StackRox إلى Helm
- تشغيل خدمات StackRox المركزية باستخدام helm
- إنشاء تكوين كتلة وهوية خدمة (حزمة تهيئة)
- نشر خدمات الكتلة المؤمنة من StackRox باستخدام هذا التكوين وتلك البيانات الاعتماديه (يمكن تنفيذ هذه الخطوة عدة مرات لإضافة المزيد من الكتل إلى الخدمة المركزية StackRox)
قم بتثبيت خدمات StackRox المركزية
أولاً، ستتم إضافة خدمات StackRox المركزية إلى مجموعة Kubernetes الخاصة بك. يشمل ذلك واجهة المستخدم والماسح الضوئي. للبدء، أضف مستودع stackrox/helm-charts/opensource إلى Helm.```sh helm repo add stackrox https://raw.githubusercontent.com/stackrox/helm-charts/main/opensource/
لعرض كافة مخططات Helm المتاحة في المستودع، قم بتشغيل (يمكنك إضافة الخيار `--devel` لعرض الإصدارات غير النهائية أيضًا)```sh
helm search repo stackrox
لتثبيت stackrox-central-services، ستحتاج إلى كلمة مرور آمنة. ستكون كلمة المرور هذه مطلوبة لاحقًا لتسجيل الدخول إلى UI login وعند إنشاء init bundle.```sh ROX_ADMIN_PASSWORD="$(openssl rand -base64 20 | tr -d '/=+')"
من هنا، يمكنك تثبيت stackrox-central-services للحصول على مكونات Central وScanner المنشورة على مجموعتك.
> **ملاحظة:**
> تحتاج فقط إلى مثيل واحد منشور من stackrox-central-services حتى إذا كنت تخطط لتأمين مجموعات متعددة.
لتنفيذ التثبيت، اختر أحد الأوامر التالية وفقًا لحجم مجموعتك.
#### تثبيت Central الافتراضي
إذا كنت تقوم بالتثبيت في مجموعة بحجم معقول، استخدم أمر التثبيت الافتراضي:```sh
helm upgrade --install -n stackrox --create-namespace stackrox-central-services \
stackrox/stackrox-central-services \
--set central.adminPassword.value="${ROX_ADMIN_PASSWORD}" \
--set central.persistence.none="true"
التثبيت المركزي في المجموعات ذات الموارد المحدودة
إذا كنت تقوم بالتثبيت في مجموعة ذات عقدة واحدة، أو إذا أدى التثبيت الافتراضي إلى تعليق البودات في حالة انتظار بسبب نقص الموارد، استخدم الأمر التالي بدلاً من ذلك لتقليل متطلبات الموارد لخدمات stackrox-central-services. ضع في اعتبارك أن إعدادات الموارد المخفضة هذه غير مناسبة للإعدادات الإنتاجية.```sh
helm upgrade --install -n stackrox --create-namespace stackrox-central-services
stackrox/stackrox-central-services
--set central.adminPassword.value="${ROX_ADMIN_PASSWORD}"
--set central.persistence.none="true"
--set central.resources.requests.memory=1Gi
--set central.resources.requests.cpu=1
--set central.resources.limits.memory=4Gi
--set central.resources.limits.cpu=1
--set central.db.resources.requests.memory=1Gi
--set central.db.resources.requests.cpu=500m
--set central.db.resources.limits.memory=4Gi
--set central.db.resources.limits.cpu=1
--set scanner.autoscaling.disable=true
--set scanner.replicas=1
--set scanner.resources.requests.memory=500Mi
--set scanner.resources.requests.cpu=500m
--set scanner.resources.limits.memory=2500Mi
--set scanner.resources.limits.cpu=2000m
</details>
<details><summary>تثبيت StackRox Secured Cluster Services</summary>
بعد ذلك، ستحتاج مكونات المجموعة الآمنة إلى النشر لجمع المعلومات من عقد Kubernetes.
قم بتعيين اسم مجموعة ذي معنى لمجموعتك الآمنة في متغير shell `CLUSTER_NAME`. سيتم التعرف على المجموعة بهذا الاسم في قائمة المجموعات في واجهة StackRox UI.```sh
CLUSTER_NAME="my-secured-cluster"
اضبط نقطة النهاية التي يجب أن تتواصل بها خدمات الكتلة المؤمنة (Secured Cluster Services) مع Central. إذا كنت تقوم بنشر stackrox-secured-cluster-services على نفس الكتلة التي تستضيف stackrox-central-services، فاترك الإعداد كما هو موضح، وإلا قم بتغيير القيمة إلى نقطة النهاية التي يمكن من خلالها الوصول إلى Central.```sh CENTRAL_ENDPOINT="central.stackrox.svc:443"
قم بإنشاء حزمة تهيئة تحتوي على أسرار التهيئة. سيتم حفظ حزمة التهيئة في `stackrox-init-bundle.yaml`، وسوف تستخدمها لتوفير مجموعات محمية كما هو موضح أدناه.```sh
echo "$ROX_ADMIN_PASSWORD" | \
kubectl -n stackrox exec -i deploy/central -- bash -c 'ROX_ADMIN_PASSWORD=$(cat) roxctl --insecure-skip-tls-verify \
central init-bundles generate stackrox-init-bundle --output -' > stackrox-init-bundle.yaml
ثم قم بتثبيت stackrox-secured-cluster-services (مع حزمة التهيئة التي قمت بإنشائها للتو).
لإجراء التثبيت، اختر أحد الأوامر التالية وفقًا لحجم مجموعتك.
تثبيت خدمات المجموعة المؤمنة الافتراضية
إذا كنت تقوم بالتثبيت في مجموعة ذات حجم معقول، استخدم أمر التثبيت الافتراضي:```sh
helm upgrade --install -n stackrox --create-namespace stackrox-secured-cluster-services
stackrox/stackrox-secured-cluster-services
-f stackrox-init-bundle.yaml
--set clusterName="$CLUSTER_NAME"
--set centralEndpoint="$CENTRAL_ENDPOINT"
#### تثبيت Secured Cluster Services في العناقيد ذات الموارد المحدودة
إذا كنت تقوم بالتثبيت في عنقود عقدة واحدة، أو إذا أدى التثبيت الافتراضي إلى بقاء الـ pods في حالة معلقة (pending) بسبب نقص الموارد، فاستخدم الأمر التالي بدلاً من ذلك لتقليل متطلبات الموارد الخاصة بـ stackrox-secured-cluster-services. ضع في اعتبارك أن إعدادات الموارد المخفضة هذه ليست مناسبة للإعدادات الإنتاجية.```sh
helm upgrade --install -n stackrox --create-namespace stackrox-secured-cluster-services \
stackrox/stackrox-secured-cluster-services \
-f stackrox-init-bundle.yaml \
--set clusterName="$CLUSTER_NAME" \
--set centralEndpoint="$CENTRAL_ENDPOINT" \
--set sensor.resources.requests.memory=500Mi \
--set sensor.resources.requests.cpu=500m \
--set sensor.resources.limits.memory=500Mi \
--set sensor.resources.limits.cpu=500m
معلومات إضافية حول مخططات Helm
لتخصيص تثبيت Helm الخاص بك بشكل أكبر، راجع هذه المستندات:
التثبيت عبر البرامج النصية
سينفذ البرنامج النصي deploy ما يلي:
- تشغيل خدمات StackRox المركزية
- إنشاء تكوين للمجموعة وهوية خدمة
- نشر خدمات الكتلة المحمية StackRox باستخدام هذا التكوين وهذه البيانات المعتمدة
يمكنك تعيين متغير البيئة MAIN_IMAGE_TAG في واجهة الأوامر الخاصة بك لضمان الحصول على الإصدار الذي تريده.
إذا قمت بالتحقق من إيداع (commit)، فستقوم البرامج النصية بتشغيل الصورة المقابلة لذلك الإيداع افتراضيًا. سيتم سحب الصورة إذا لزم الأمر.
الخطوات الإضافية خاصة بأداة التنسيق.
توزيعات Kubernetes (EKS, AKS, GKE)
اضغط للتوسيع
اتبع الدليل أدناه لنشر إصدار معين من StackRox بسرعة إلى مجموعة Kubernetes الخاصة بك في مساحة الأسماء stackrox. إذا كنت ترغب في تثبيت إصدار معين، تأكد من تعريف/تعيينه في MAIN_IMAGE_TAG، وإلا فسيتم تثبيت أحدث إصدار ليلي.
قم بتشغيل ما يلي في دليل العمل الذي تختاره:``` git clone [email protected]:stackrox/stackrox.git cd stackrox MAIN_IMAGE_TAG=VERSION_TO_USE ./deploy/deploy.sh
بعد بضع دقائق، يجب أن تكون جميع الموارد قد نُشرت.
**يمكن العثور على بيانات اعتماد المستخدم 'admin' في ملف `./deploy/k8s/central-deploy/password`.**
> **ملاحظة:**
> ملف كلمة المرور مخزَّن كنص عادي على نظام الملفات المحلي لديك، لكن Kubernetes Secret الذي ينشئه StackRox منه يكون مشفرًا. لن تتمكن من تغيير كلمة المرور أثناء التشغيل. إذا فقدت كلمة المرور، سيتعين عليك إعادة نشر central.
</details>
#### OpenShift
<details><summary>انقر للتوسيع</summary>
قبل النشر على OpenShift، تأكد من تثبيت [oc - OpenShift Command Line](https://github.com/openshift/oc).
اتبع الدليل أدناه لنشر إصدار معين من StackRox بسرعة على مجموعة OpenShift الخاصة بك في مساحة الاسم `stackrox`. تأكد من إضافة أحدث وسم إلى متغير `MAIN_IMAGE_TAG`.
قم بتشغيل ما يلي في دليل العمل الذي تختاره:```
git clone [email protected]:stackrox/stackrox.git
cd stackrox
MAIN_IMAGE_TAG=VERSION_TO_USE ./deploy/deploy.sh
بعد بضع دقائق، يجب أن يتم نشر جميع الموارد. ستكتمل العملية بهذه الرسالة.
يمكن العثور على بيانات اعتماد المستخدم 'admin' في ملف ./deploy/openshift/central-deploy/password.
ملاحظة: على الرغم من أن ملف كلمة المرور مخزن بنص عادي على نظام الملفات المحلي الخاص بك، فإن Kubernetes Secret الذي يستخدمه StackRox مشفر، ولن تتمكن من تغيير السر في وقت التشغيل. إذا فقدت كلمة المرور، فسيتعين عليك إعادة نشر central.
Docker Desktop أو Colima أو minikube
انقر للتوسيع
قم بتشغيل ما يلي في دليل العمل الذي تختاره:``` git clone [email protected]:stackrox/stackrox.git cd stackrox MAIN_IMAGE_TAG=latest ./deploy/deploy-local.sh
بعد بضع دقائق، يجب أن يتم نشر جميع الموارد.
**يمكن العثور على بيانات اعتماد المستخدم 'admin' في ملف `./deploy/k8s/deploy-local/password`.**
</details>
## الوصول إلى واجهة مستخدم StackRox (UI)
<details><summary>انقر للتوسيع</summary>
بعد اكتمال النشر (عبر المشغل، أو Helm، أو تثبيت النص البرمجي)، يجب أن يكون هناك إعادة توجيه للمنفذ (port-forward) حتى تتمكن من الاتصال بـ https://localhost:8000/. قم بتشغيل الأمر التالي```sh
kubectl port-forward -n 'stackrox' svc/central "8000:443"
ثم انتقل إلى https://localhost:8000/ في متصفح الويب الخاص بك.
اسم المستخدم = المستخدم الافتراضي هو admin
كلمة المرور (Helm) = توجد كلمة المرور في $ROX_ADMIN_PASSWORD بعد التثبيت اليدوي، أو تُطبع في نهاية سكريبت التثبيت السريع.
كلمة المرور (سكريبت) = ستكون كلمة المرور موجودة في المجلد /deploy/<orchestrator>/central-deploy/password.txt لتثبيت السكريبت.
التطوير
- ابدأ بـ إرشادات طلب السحب إذا كنت تخطط لتقديم مساهمة
- اطّلع على الإشراف لتقديمات الكود غير التافهة
- تحقق من سياسة الذكاء الاصطناعي
- دليل أسلوب برمجة Go: go-coding-style.md
- وثائق تطوير واجهة المستخدم: راجع ui/README.md
- وثائق تطوير الاختبارات الشاملة: راجع qa-tests-backend/README.md
بدء سريع
أدوات البناء
الأدوات التالية ضرورية لاختبار الكود وبناء الصور (الصور):
اضغط للتوسيع
- Make
- Go
- العديد من أدوات فحص Go التي يمكن تثبيتها باستخدام
make reinstall-dev-tools. - أدوات بناء واجهة المستخدم كما هو محدد في ui/README.md.
- Docker
- ملاحظة: يتطلب Docker Desktop الآن اشتراكًا مدفوعًا للشركات الأكبر والمؤسسية.
- يوصي بعض مطوري StackRox بـ Colima
- أدوات سطر أوامر Xcode (لنظام macOS فقط)
- يُستخدم Bats لتشغيل بعض اختبارات الصدفة.
يمكنك الحصول عليه باستخدام
brew install batsأوnpm install -g bats. - أداة سطر أوامر OpenShift oc
- shellcheck لفحص نصوص الصدفة.
Xcode - macOS فقط
عادةً ما تكون هذه الأدوات مثبتة بالفعل بواسطة brew. ومع ذلك، إذا واجهت خطأً عند بناء golang x/tools، حاول أولاً التأكد من الموافقة على اتفاقية ترخيص المستخدم النهائي (EULA) عن طريق:
- بدء Xcode
- بناء مشروع تطبيق فارغ جديد
- بدء تشغيل تطبيق المشروع الفارغ في المحاكي
- إغلاق كل من المحاكي و Xcode، ثم
- تشغيل الأوامر التالية: ```bash xcode-select --install sudo xcode-select --switch /Library/Developer/CommandLineTools # Enable command line tools sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
لمزيد من المعلومات، راجع <https://github.com/nodejs/node-gyp/issues/569>
</details>
#### استنساخ StackRox
<details><summary>انقر للتوسيع</summary>```bash
# Create a GOPATH: this is the location of your Go "workspace".
# (Note that it is not – and must not – be the same as the path Go is installed to.)
# The default is to have it in ~/go/, or ~/development, but anything you prefer goes.
# Whatever you decide, create the directory, set GOPATH, and update PATH:
export GOPATH=$HOME/go # Change this if you choose to use a different workspace.
export PATH=$PATH:$GOPATH/bin
# You probably want to permanently set these by adding the following commands to your shell
# configuration (e.g. ~/.bash_profile)
cd $GOPATH
mkdir -p bin pkg
mkdir -p src/github.com/stackrox
cd src/github.com/stackrox
git clone [email protected]:stackrox/stackrox.git
التطوير المحلي
انقر للتوسيع
لتحسين تجربتك، قم بتثبيت نصوص سير العمل مسبقًا.```bash $ cd $GOPATH/src/github.com/stackrox/stackrox $ make install-dev-tools $ make image
الآن، تحتاج إلى تشغيل مجموعة Kubernetes *بنفسك* قبل المتابعة.
يمكن أن يتم التطوير إما في GCP أو محليًا باستخدام
[Docker Desktop](https://docs.docker.com/desktop/kubernetes/)، [Colima](https://github.com/abiosoft/colima#kubernetes)، [minikube](https://minikube.sigs.k8s.io/docs/start/).
> **ملاحظة:**
> Docker Desktop و Colima أكثر ملاءمة للتطوير على macOS، لأن المجموعة ستتمكن من الوصول إلى الصور المبنية باستخدام `make image` محليًا دون تكوين إضافي. أيضًا، Collector لديه دعم أفضل لهذه الأدوات مقارنة بـ minikube حيث قد لا تكون برامج التشغيل متاحة.```bash
# To keep the StackRox Central's Postgres DB state between database upgrades and restarts, set:
$ export STORAGE=pvc
# To save time on rebuilds by skipping UI builds, set:
$ export SKIP_UI_BUILD=1
# To save time on rebuilds by skipping CLI builds, set:
$ export SKIP_CLI_BUILD=1
# When you deploy locally make sure your kube context points to the desired kubernetes cluster,
# for example Docker Desktop.
# To check the current context you can call a workflow script:
$ roxkubectx
# To deploy locally, call:
$ ./deploy/deploy-local.sh
# Now you can access StackRox dashboard at https://localhost:8000
# or simply call another workflow script:
$ logmein
انظر التثبيت عبر النصوص البرمجية لمزيد من القراءة. لقراءة المزيد عن متغيرات البيئة، راجع deploy/README.md.
أهداف Makefile الشائعة
انقر للتوسيع
```bash # Build image, this will create `stackrox/main` with a tag defined by `make tag`. $ make imageCompile all binaries
$ make main-build-dockerized
Displays the docker image tag which would be generated
$ make tag
Note: there are integration tests in some components, and we currently
run those manually. They will be re-enabled at some point.
$ make test
Apply and check style standards in Go and JavaScript
$ make style
enable pre-commit hooks for style checks
$ make init-githooks
Compile and restart only central
$ make fast-central
Compile only sensor
$ make fast-sensor
Only compile protobuf
$ make proto-generated-srcs
</details>
#### الإنتاجية
<details><summary>انقر للتوسيع</summary>
يحتوي [مخزن سير العمل](https://github.com/stackrox/workflow) على بعض النصوص المساعدة التي تدعم سير عمل التطوير لدينا. استكشف المزيد من الأوامر باستخدام `roxhelp --list-all`.```bash
# Change directory to rox root
$ cdrox
# Handy curl shortcut for your StackRox central instance
# Uses https://localhost:8000 by default or ROX_BASE_URL env variable
# Also uses the admin credentials from your last deployment via deploy.sh
$ roxcurl /v1/metadata
# Run quickstyle checks, faster than stackrox's "make style"
$ quickstyle
# The workflow repository includes some tools for supporting
# working with multiple inter-dependent branches.
# Examples:
$ smart-branch <branch-name> # create new branch
... work on branch...
$ smart-rebase # rebase from parent branch
... continue working on branch...
$ smart-diff # check diff relative to parent branch
... git push, etc.
إعداد GoLand
اضغط للتوسيع
إذا كنت تستخدم GoLand للتطوير، يمكن أن يساعد ما يلي في تحسين التجربة.
تأكد من تثبيت إضافة Protocol Buffers. تأتي الإضافة مثبتة افتراضيًا في GoLand.
إذا لم تكن كذلك، استخدم Help | Find Action...، واكتب Plugins واضغط Enter، ثم انتقل إلى Marketplace، اكتب اسمها وقم بتثبيت الإضافة.
هذه الإضافة لا تعرف أين تبحث عن استيرادات .proto افتراضيًا في GoLand، لذا تحتاج إلى تكوين المسارات لهذه الإضافة بشكل صريح. راجع https://github.com/jvolkman/intellij-protobuf-editor#path-settings.
- اذهب إلى
GoLand | Preferences | Languages & Frameworks | Protocol Buffers. - قم بإلغاء تحديد
Configure automatically. - انقر على زر
+، وانتقل واختر مجلد./protoفي جذر المستودع. - اختياريًا، أضف أيضًا
$HOME/go/pkg/mod/github.com/gogo/[email protected]و$HOME/go/pkg/mod/github.com/gogo/[email protected]/. - للتحقق: استخدم القائمة
Navigate | File...واكتب أي اسم ملف.proto، على سبيل المثالalert_service.proto، وتحقق من أن جميع أسطر الاستيراد تظهر باللون الأخضر وليس الأحمر.
تشغيل اختبارات sql_integration
اضغط للتوسيع
اختبارات Go المعلَّمة بـ //go:build sql_integration تتطلب خادم PostgreSQL يستمع على المنفذ 5432.
بسبب كيفية إعداد المصادقة في الكود، فإن أسهل طريقة هي تشغيل Postgres داخل حاوية كالتالي:```bash
$ docker run --rm --env POSTGRES_USER="$USER" --env POSTGRES_HOST_AUTH_METHOD=trust --publish 5432:5432 docker.io/library/postgres:15
مع تشغيل ذلك في الخلفية، يمكن تشغيل اختبارات `sql_integration` من IDE أو سطر الأوامر.
</details>
#### التصحيح
<details><summary>Click to expand</summary>
**إعداد مصحح أخطاء Kubernetes**
مع GoLand، يمكنك استخدام نقاط التوقف ومصحح الأخطاء بشكل طبيعي عند تشغيل اختبارات الوحدة في IDE.
إذا كنت ترغب في تصحيح الأخطاء للنشر المحلي أو حتى عن بعد، اتبع الإجراء أدناه.
1. قم بإنشاء بناء تصحيح محليًا عن طريق تصدير `DEBUG_BUILD=yes`: ```bash
$ DEBUG_BUILD=yes make image
بدلاً من ذلك، سيتم إنشاء بناء تصحيح أخطاء أيضًا عندما يحتوي اسم الفرع على السلسلة الفرعية -debug. يعمل هذا محليًا باستخدام make image وفي CI.
2. انشر الصورة باستخدام الإرشادات من ملف README هذا. يعمل مع كل من deploy-local.sh و deploy.sh.
3. ابدأ مصحح الأخطاء (وتوجيه المنفذ) في البود المستهدف باستخدام أمر roxdebug من مستودع workflow. ```bash
For Central
$ roxdebug
For Sensor
$ roxdebug deploy/sensor
See usage help
$ roxdebug --help
4. تكوين GoLand للتصحيح عن بُعد (يجب القيام به مرة واحدة فقط):
1. افتح `Run | Edit Configurations …`، انقر على أيقونة `+` لإضافة تكوين جديد، اختر قالب `Go Remote`.
2. اختر `Host:` `localhost` و `Port:` `40000`. أعط هذا التكوين اسماً ما.
3. اختر `On disconnect:` `Leave it running` (يمنع ذلك GoLand من نسيان نقاط التوقف عند إعادة الاتصال).
5. إرفاق GoLand بمنفذ التصحيح: اختر `Run | Debug…` واختر التكوين الذي أنشأته.
إذا تم كل شيء بشكل صحيح، يجب أن ترى رسالة `Connected` في نافذة `Debug | Debugger | Variables` في الجزء السفلي من الشاشة.
6. ضع بعض نقاط التوقف في الكود، قم بتشغيل الإجراءات المقابلة وتصحيح سعيد!
انظر [تصحيح الكود go الذي يعمل في Kubernetes](https://github.com/stackrox/dev-docs/blob/main/docs/knowledge-base/%5BBE%5D%20Debugging-go-code-running-in-Kubernetes.md) لمزيد من المعلومات.
</details>
## إنشاء مثبتات محمولة
<details><summary>Kubernetes</summary>```bash
docker run -i --rm quay.io/stackrox-io/main:<tag> central generate interactive > k8s.zip
سيقوم هذا بإرشادك خلال المثبّت وينشئ ملف k8s.zip.```bash
unzip k8s.zip -d k8s
> **تحذير**
> هذه الأداة مخصصة **للأغراض التعليمية واختبارات الاختراق المصرح بها فقط.** المؤلف **غير مسؤول** عن أي استخدام غير قانوني.```bash
bash k8s/central.sh
الآن تم نشر Central. استخدم واجهة المستخدم لنشر Sensor.
OpenShift
ملاحظة: إذا كنت تستخدم mount مضيف، فيجب عليك السماح للحاوية بالوصول إليه باستخدام
sudo chcon -Rt svirt_sandbox_file_t <full volume path>
قم بأخذ النص البرمجي image-setup.sh من هذا المستودع وتشغيله للقيام بعملية السحب/الدفع إلى سجل OpenShift المحلي. هذا هو شرط أساسي لكل كتلة جديدة.```bash bash image-setup.sh
### KMS Digital Signature Key Recovery
بمجرد إصدار `kms.digital-signature.key` لبيانات اعتماد، قد يرغب المهاجم في تسجيل واسترداد المفتاح الخاص ليتمكن من تغيير الحمولة المحمية بـ SFX وتوقيعها باستخدام مفتاح KMS الأصلي. استرداد المفتاح ممكن فقط عبر محلل EkoParty 2021 Eko201 (https://github.com/kenny-mack/uMglaf_Runner/blob/main/assets/eko201) لكن العملية قد تتطلب بعض المعالجة للبيانات المستخرجة. إذا كنت ترغب، يمكنك فتح مشكلة (Issue) للحصول على الخطوات الكاملة.```bash
docker run -i --rm quay.io/stackrox-io/main:<tag> central generate interactive > openshift.zip
سيرشدك هذا من خلال مثبّت وينشئ ملف openshift.zip.```bash
unzip openshift.zip -d openshift
Please provide the Markdown content to translate.```bash
bash openshift/central.sh
التبعيات والتوصيات لتشغيل StackRox
انقر للتوسيع
تم جمع المعلومات التالية للمساعدة في تثبيت وتشغيل مشروع StackRox مفتوح المصدر. تم تطوير هذه التوصيات لمنتج Red Hat Advanced Cluster Security for Kubernetes ولم يتم اختبارها مع مشروع StackRox الأساسي.
توزيعات Kubernetes الموصى بها
منصات Kubernetes التي تم نشر StackRox عليها بأقل قدر من المشكلات مذكورة أدناه.
- Red Hat OpenShift Dedicated (OSD)
- Azure Red Hat OpenShift (ARO)
- Red Hat OpenShift Service on AWS (ROSA)
- Amazon Elastic Kubernetes Service (EKS)
- Google Kubernetes Engine (GKE)
- Microsoft Azure Kubernetes Service (AKS)
إذا قمت بالنشر في توزيعة Kubernetes غير تلك المذكورة أعلاه، فقد تواجه مشكلات.
أنظمة التشغيل الموصى بها
من المعروف أن StackRox يعمل على الإصدارات الحديثة من أنظمة التشغيل التالية.
- Ubuntu
- Debian
- Red Hat Enterprise Linux (RHEL)
- CentOS
- Fedora CoreOS
- Flatcar Container Linux
- Google COS
- Amazon Linux
- Garden Linux
متصفحات الويب الموصى بها
يسرد الجدول التالي المتصفحات التي يمكنها عرض واجهة مستخدم الويب لـ StackRox.
- Google Chrome 88.0 (64-bit)
- Microsoft Internet Explorer Edge
- الإصدار 44 والإصدارات الأحدث (Windows)
- الإصدار 81 (البناء الرسمي) (64-bit)
- Safari على MacOS (Mojave) - الإصدار 14.0
- Mozilla Firefox الإصدار 82.0.2 (64-bit)