
Esempi di configurazione preseed e guide per l'installazione automatizzata e senza intervento manuale di Kali Linux, incluse partizionamento, selezione dei pacchetti e opzioni di avvio.
I file preseed di Debian sono strumenti utili per automatizzare l'installazione e la configurazione di una distribuzione basata su Debian. Kali è in grado di utilizzarli per velocizzare le installazioni con un'installazione non presidiata, personalizzata e coerente. Per molte più informazioni sui file preseed, consulta la Guida all'installazione di Debian o il file di testo preseed di esempio di Debian.
Sebbene ci siano molti modi per personalizzare un file preseed, con i pacchetti installati che offrono ancora più opzioni, questo repository servirà a ospitare e consentire la creazione di file più semplici che permettono opzioni di installazione Kali leggermente personalizzate.
Per una guida molto approfondita e utile sull'uso dei file preseed, possiamo fare riferimento alla wiki di installazione di Debian. Questa include i passaggi per incorporare il preseed nel file iso, usare una USB per contenere il file preseed o sfruttare una connessione di rete per recuperare il file preseed da un URL.
Una nota da fare è che per utilizzare il preseed via URL, dobbiamo seguire il seguente prompt di avvio:
/install.amd/vmlinuz vga=788 auto=true priority=critical url=link-to-preseed.cfg initrd=/install.amd/initrd.gz --- quiet
Possiamo modificare il parametro di avvio su un sistema avviato tramite BIOS premendo ESC per un prompt vuoto oppure premendo E per modificare un'opzione di avvio preesistente. Sui sistemi UEFI possiamo premere C per un prompt vuoto oppure E per modificare un'opzione di avvio preesistente.
Se desideriamo utilizzare un'opzione di avvio preesistente, possiamo aggiungere i seguenti prompt di avvio per avere un'installazione automatizzata:
language=en country=US locale=en_US.UTF-8 keymap=us auto=true priority=critical url=link-to-preseed.cfg
Quando si crea un file preseed ci sono alcuni flag che si dovrebbero sempre usare per avere un'installazione non presidiata. Diamo un'occhiata a ciascuno di essi.
Quanto segue sceglierà automaticamente le nostre impostazioni basate sulla posizione: la locale, la lingua e il paese. Per maggiori informazioni sulle locale, possiamo visitare la voce della Wiki Debian. Se non siamo sicuri su quale locale usare, possiamo optare per l'opzione inglese, che è quella impostata di seguito. In alternativa, per scoprire la nostra locale, possiamo usare una macchina già installata ed eseguire il comando locale. Assicurati solo di inserire le informazioni prima di .UTF-8.
kali@kali:~$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
L'opzione preseed:
d-i debian-installer/locale string en_US
Tuttavia, se desideriamo selezionare manualmente tutte queste opzioni, oppure modificarne solo una dopo aver utilizzato quanto sopra, possiamo usare quanto segue per impostarle singolarmente:
d-i debian-installer/language string en
d-i debian-installer/country string US
d-i debian-installer/locale string en_US.UTF-8
Dovremo poi impostare la keymap, che non viene impostata dalla locale. Possiamo usare il comando localectl per trovare il nostro layout, se abbiamo già una macchina installata.
kali@kali:~$ localectl
System Locale: (unset)
VC Keymap: (unset)
X11 Layout: us
X11 Model: pc105
L'opzione preseed:
d-i keyboard-configuration/xkb-keymap select us
Tieni presente che sia la locale che la keymap possono essere modificate in seguito, utilizzando rispettivamente dpkg-reconfigure locales e dpkg-reconfigure keyboard-configuration.
Ora possiamo modificare le nostre impostazioni di rete. Tieni presente che questo non verrà usato se stiamo utilizzando il preseed via URL. Per prima cosa dobbiamo scegliere la nostra interfaccia. Per questa opzione usiamo semplicemente auto, perché è la più semplice. Possiamo comunque scegliere un'interfaccia specifica se necessario, come eth0.
d-i netcfg/choose_interface select auto
Le seguenti opzioni preseed vengono utilizzate per saltare la richiesta di hostname e nome di dominio, che verranno forniti tramite DHCP o usando i valori preimpostati: 'kali' come hostname e un dominio vuoto:
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
Se volessimo impostare noi stessi un hostname o un nome di dominio, possiamo farlo modificando la stringa in base a ciò che desideriamo. Tieni presente che i valori DHCP avranno priorità su qualsiasi valore impostato, ma questo può essere evitato codificando il valore in modo rigido come segue:
d-i netcfg/hostname string personal-hostname
Passiamo ora ai mirror di rete. Le seguenti opzioni servono a impostare il mirror che desideriamo usare per Kali e le impostazioni del proxy, se dobbiamo usarle. Se non sei sicuro, probabilmente non devi impostare nulla. Nel nostro caso, modifichiamo il valore dell'hostname in modo che sia il mirror di rete Kali Cloudflare, kali.download. Se desideriamo che ci venga assegnato il mirror più veloce disponibile, possiamo invece usare l'opzione http.kali.org:
d-i mirror/country string manual
d-i mirror/http/hostname string kali.download
d-i mirror/http/directory string /kali
d-i mirror/http/proxy string
Ci sono un paio di altre opzioni che possiamo scegliere di includere. Queste due opzioni imposteranno il protocollo da usare per connettersi al mirror e la suite da selezionare. A meno che tu non abbia bisogno di modificare una delle due opzioni, è meglio lasciarle fuori dal nostro preseed:
d-i mirror/protocol string http
d-i mirror/suite string kali-rolling
Passiamo ora alla creazione dell'utente. Prima impostiamo il nome completo e poi il nome utente. Il nome completo può essere composto da più parole, mentre il nome utente no. Assicurati di usare una sola parola per il tuo nome utente. Possiamo poi impostare la nostra password come preferiamo. Se non desideri che la tua password sia in chiaro, possiamo scegliere di usare un hash crittografato. Possiamo generarne uno usando il comando mkpasswd o tramite molti altri mezzi, che non verranno trattati:
d-i passwd/user-fullname string Kali Linux
d-i passwd/username string kali
d-i passwd/user-password password kali
d-i passwd/user-password-again password kali
Un hash crittografato può essere usato come segue:
d-i passwd/user-password-crypted password [hash]
Passiamo ora alla configurazione dell'orologio. Le opzioni utilizzate fanno quanto segue: dicono all'installatore che l'orologio di sistema è impostato su UTC, applicano un valore di fuso orario che l'installazione di Kali deve usare come orologio, e poi usano NTP per impostare quell'ora.
d-i clock-setup/utc boolean true
d-i time/zone string US/Eastern
d-i clock-setup/ntp boolean true
Possiamo cercare un valore per impostare il fuso orario nella cartella /usr/share/zoneinfo/, oppure possiamo usare il seguente comando:
kali@kali:~$ cat /etc/timezone
US/Eastern
Ora entriamo nel partizionamento. Questa è facilmente la parte più complicata della creazione di un preseed, poiché ci sono alcuni valori da impostare in base al tipo di sistema che stai usando e al tipo di installazione che desideri.
Per prima cosa impostiamo le impostazioni automatiche di partman, lo strumento di partizionamento. Diciamo che questa sarà un'installazione regolare, invece di utilizzare LVM (lvm) o la crittografia (crypto), e poi diciamo di usare l'intera quantità di disco rigido disponibile. Possiamo anche usare dimensioni più piccole, come 20 GB o una percentuale di spazio libero. L'opzione finale qui determina come vengono configurati i tuoi file, se tutto è in una sola partizione (atmoic), se la cartella /home è in una partizione separata (home) o se /home, /var e /tmp sono tutti in partizioni separate (multi).
d-i partman-auto/method string regular
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/choose_recipe select atomic
Successivamente abbiamo una serie di richieste a cui acconsentiamo. Acconsentendo a tutte queste richieste, partman partizionerà automaticamente secondo i valori impostati in precedenza.
d-i partman-md/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
Abbiamo finalmente finito con il partizionamento e possiamo passare alla selezione dei pacchetti. Le seguenti opzioni daranno luogo a una tipica installazione Kali Xfce. Per vedere l'elenco completo dei valori disponibili che possiamo impostare, possiamo guardare il repository dei pacchetti tasksell Kali su GitLab. Alcune opzioni sono desktop-gnome, desktop-kde, meta-top10, meta-everything e meta-purple. Aggiungiamo semplicemente i pacchetti che desideriamo usare e assicuriamoci di usare una virgola come separatore.
tasksel tasksel/first multiselect standard,core,desktop-xfce,meta-default
È possibile selezionare singolarmente pacchetti aggiuntivi da installare:
d-i pkgsel/include string openssh-server build-essential
È anche possibile aggiornare i pacchetti dopo debootstrap con safe-upgrade o full-upgrade oppure per niente con none:
d-i pkgsel/upgrade select none
Manca solo un'ultima sezione: le opzioni di grub e il riavvio. Queste opzioni sono relativamente semplici. Informiamo grub che è sicuro impostare la partizione di avvio se rileva solo Debian, e poi gli diciamo che è sicuro impostare la partizione di avvio se rileva un altro sistema operativo installato. Mentre la prima opzione è sicura nella maggior parte dei casi, la seconda può essere rischiosa quando si usa il dual boot. Se non stai usando il dual boot possiamo impostarla su true, altrimenti potremmo rimuovere l'opzione e scegliere manualmente.
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
Queste ultime due opzioni imposteranno il dispositivo di avvio e poi diranno al sistema di riavviarsi in Kali. Nel nostro esempio codifichiamo il dispositivo di avvio come /dev/sda, poiché potremmo usare una chiavetta USB per installare Kali. Se non stiamo usando una chiavetta USB potremmo scegliere di usare il valore default, ma è più sicuro codificare il valore.
d-i grub-installer/bootdev string /dev/sda
d-i finish-install/reboot_in_progress note