
Script per creare immagini cloud Kali (fork di https://salsa.debian.org/cloud-team/debian-cloud-images)
Costruttore di immagini cloud di Kali Linux tramite FAI (Fully Automatic Installation), forked da Debian Cloud Images.
Questi sono gli stessi build-scripts che il team di Kali utilizza per generare le immagini cloud ufficiali di Kali Linux, disponibili su kali.org/get-kali/.
Per maggiori informazioni, consultare: kali.org/docs/cloud/ e kali.org/docs/troubleshooting/common-cloud-setup/.
Costruisci il tuo Kali, oggi stesso!
Consigliamo di eseguire la build su un host basato su Linux, che corrisponda all'architettura desiderata.
Ci sono vari modi per prepararsi all'uso del build-script di kali-cloud. Puoi:
build.sh - Esegui la build direttamente dalla tua macchinabuild-in-container.sh - Esegui la build dall'interno di un container (come Docker o Podman) Perché build.sh funzioni, richiederà accesso super user (ad esempio sudo o un container rootful). Tuttavia, KVM non è richiesto.
Per prima cosa installa git e assicurati che il repository sia clonato localmente:
$ sudo apt-get install --no-install-recommends \
git ca-certificates
$ git clone https://gitlab.com/kalilinux/build-scripts/kali-cloud.git
$ cd ./kali-cloud/
Per eseguire la build direttamente sul tuo host, con build.sh, installa le dipendenze di build:
$ 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
NOTA: A seconda dell'età della versione del sistema operativo, potrebbe essere necessario usare qemu-user-static (legacy) invece di qemu-user-binfmt (moderno/attuale/aggiornato).
NOTA: qemu-user-static/qemu-user-binfmt è richiesto solo se stai eseguendo una build cross-architettura (ad esempio host amd64, build di un'immagine arm64).
Ora puoi usare ./build.sh, che costruirà un'immagine cloud di Kali direttamente sulla tua macchina.
Se NON stai usando Kali come sistema operativo di base, dovrai installare il kali-archive-keyring di Kali affinché fai possa recuperare i pacchetti di 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
NOTA: Sostituisci 20YY.X con i valori mostrati qui, in kali-archive-keyring.
Ora puoi seguire Build dall'host (Kali) per installare le dipendenze di build.
Salteremo la configurazione di qualsiasi software per container.
Se preferisci eseguire la build dall'interno di un container, dovrai installare e configurare docker o podman sulla tua macchina.
docker richiede che l'utente sia aggiunto al gruppo Docker, oppure l'uso dell'account root (ad esempio $ sudo ./build-in-container.sh).podman è stato testato con rootful (ad esempio $ sudo ./build-in-container.sh). Se eseguito rootless, build-in-container.sh tenterà di elevarsi tramite sudo, oppure ripiegherà sulla riconfigurazione della podman machine come rootful, vedi Limitazioni note.build-in-container.sh è un wrapper sopra build.sh. Rileva quale motore di container conforme a OCI usare, si occupa di creare l'immagine del container se mancante, e poi avvia il container per eseguire la build dall'interno.
Hai tre modi per fornire l'immagine del container:
$ # 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
Se hai sia docker che podman installati, build-in-container.sh userà podman per impostazione predefinita. Per cambiarlo, anteponi CONTAINER=docker prima di ./build-in-container.sh:
$ CONTAINER=docker ./build-in-container.sh [...]
Ora puoi usare ./build-in-container.sh (invece di ./build.sh), per costruire un'immagine.
$ ./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