
# سكربتات لبناء صور كالي السحابية (نسخة مشتقة من https://salsa.debian.org/cloud-team/debian-cloud-images)
أداة بناء صور Kali Linux السحابية عبر FAI (التثبيت التلقائي الكامل)، متفرعة من Debian Cloud Images.
هذه هي نفس نصوص البناء التي يستخدمها فريق Kali لإنشاء صور Kali Linux السحابية الرسمية، الموجودة على kali.org/get-kali/.
لمزيد من المعلومات، يرجى الاطلاع على: kali.org/docs/cloud/ وكذلك kali.org/docs/troubleshooting/common-cloud-setup/.
قم ببناء نسختك من Kali اليوم!
نوصي بالبناء على مضيف يعمل بنظام Linux، يتوافق مع البنية المطلوبة.
هناك طرق متعددة للاستعداد لاستخدام نص بناء kali-cloud. يمكنك إما:
build.sh - البناء مباشرة من جهازكbuild-in-container.sh - البناء من داخل حاوية (مثل Docker أو Podman) لكي يعمل build.sh، سيتطلب صلاحيات المستخدم الخارق (مثل sudo أو حاوية بصلاحيات الجذر). ومع ذلك، لا يُشترط وجود KVM.
أولاً قم بتثبيت git، وتأكد من استنساخ المستودع محلياً:
$ sudo apt-get install --no-install-recommends \
git ca-certificates
$ git clone https://gitlab.com/kalilinux/build-scripts/kali-cloud.git
$ cd ./kali-cloud/
للبناء مباشرة على مضيفك باستخدام build.sh، قم بتثبيت تبعيات البناء:
$ sudo apt-get install --no-install-recommends \
python3-minimal libpython3-stdlib python3-yaml python3-libcloud python3-marshmallow python3-httpx python3-pytest \
fai-server fai-setup-storage \
sudo \
qemu-utils qemu-user-binfmt \
fdisk \
udev \
dosfstools \
apt-utils \
debsums
ملاحظة: اعتماداً على عمر إصدار نظام التشغيل، قد تحتاج إلى استخدام qemu-user-static (القديم) بدلاً من qemu-user-binfmt (الحديث/الحالي/المحدّث).
ملاحظة: qemu-user-static/qemu-user-binfmt مطلوب فقط إذا كنت تبني عبر بنيات مختلفة (مثل مضيف amd64، وبناء صورة arm64).
الآن يمكنك استخدام ./build.sh، الذي سيبني صورة Kali سحابية مباشرة على جهازك.
إذا كنت لا تستخدم Kali كنظام تشغيل أساسي، فستحتاج إلى تثبيت kali-archive-keyring الخاص بـ Kali لكي يتمكن fai من جلب حزم Kali.
$ sudo apt-get install --no-install-recommends \
wget ca-certificates
$ wget https://http.kali.org/pool/main/k/kali-archive-keyring/kali-archive-keyring_20YY.X_all.deb
$ sudo apt-get install ./kali-archive-keyring_*_all.deb
ملاحظة: استبدل 20YY.X بالقيم الموضحة هنا، في kali-archive-keyring.
الآن يمكنك اتباع البناء من المضيف (Kali) لتثبيت تبعيات البناء.
سنتخطى إعداد أي برنامج حاويات.
إذا كنت تفضل البناء من داخل حاوية، فستحتاج إلى تثبيت وتكوين إما docker أو podman على جهازك.
docker إضافة المستخدم إلى مجموعة Docker، أو استخدام حساب الجذر (مثل $ sudo ./build-in-container.sh).podman بصلاحيات الجذر (مثل $ sudo ./build-in-container.sh). إذا تم تشغيله بدون صلاحيات الجذر، سيحاول build-in-container.sh رفع صلاحياته عبر sudo، أو سيعود إلى إعادة تكوين podman machine بصلاحيات الجذر، انظر القيود المعروفة.build-in-container.sh هو غلاف فوق build.sh. يكتشف محرك الحاويات المتوافق مع OCI الذي يجب استخدامه، ويتولى إنشاء صورة الحاوية إذا كانت مفقودة، ثم يبدأ الحاوية لتنفيذ البناء من الداخل.
لديك ثلاث طرق لتوفير صورة الحاوية:
$ # Option #1 - Automated build (recommended)
$ ./build-in-container.sh
$ ./build-in-container.sh --force # If you need to rebuild the image from scratch
$
$
$
$ # Option #2 - Manual build
$ docker build -t kali-build/kali-cloud .
$ # ...OR...
$ podman build -t kali-build/kali-cloud .
$
$
$
$ # Option #3 - Use the pre-generated
$ docker pull registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest
$ docker tag registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest kali-build/kali-cloud
$ # ...OR...
$ podman pull registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest
$ podman tag registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest kali-build/kali-cloud
$
$ # ...then point the build at it:
$ ./build-in-container.sh # Locally built (automated or manual)
$ IMAGE=registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest ./build-in-container.sh # Pre-generated
إذا كان لديك كل من docker وpodman مثبتين، فسيستخدم build-in-container.sh podman افتراضياً. لتغيير ذلك، أضف البادئة CONTAINER=docker قبل ./build-in-container.sh:
$ CONTAINER=docker ./build-in-container.sh [...]
الآن يمكنك استخدام ./build-in-container.sh (بدلاً من ./build.sh)، لبناء صورة.
$ ./build.sh --help
Usage: build.sh [OPTIONS]
Build a Kali Linux Cloud image.
Build options:
-a, --arch ARCH Build an image for this architecture (default: amd64)
Supported: amd64 arm64
-b, --branch BRANCH Kali branch used to build the image (default: kali-rolling)
Supported: kali-rolling kali-dev kali-last-snapshot
-k, --keep Keep intermediary build artifacts
-m, --mirror URL Mirror used to build the image (default: http://http.kali.org/kali)
-o, --output DIR Output directory (default: /home/kali/kali-cloud/output)
-v, --variant VARIANT Cloud platform/target image to build (default: genericcloud)
Supported: genericcloud azure ec2 gce generic nocloud
-x, --version VERSION What to name the image release as (default: rolling)
-z, --zip Compress image after the build
-h, --help Show this help and exit
Cloud options:
-H, --hostname HOSTNAME Set system host name (default: kali)
-P, --packages PKGS Install extra packages (comma/space separated list)
-s, --size SIZE Size of the disk image in GB (default: ...depends on --variant)
-T, --toolset TOOLSET The selection of tools to include in the image (default: default)
Supported: default minimal
Apt caching proxy:
Auto-detected: localhost:3142 (apt-cacher-ng), localhost:8000 (squid-deb-proxy).
If detected and --mirror is not set, the mirror is routed via the proxy.
Supported environment variables:
http_proxy HTTP proxy URL, see README.md for details
DEBUG Print extra debug output
Any --flag value can be pre-set via its env var (e.g. ARCH, BUILD_MIRROR, OUT_DIR)
Examples:
build.sh
build.sh --branch kali-rolling --variant generic --arch amd64
build.sh -b kali-dev -T minimal -v generic -a amd64