
Preseed-Konfigurationsbeispiele und Anleitungen für die automatisierte, unbeaufsichtigte Kali-Linux-Installation, einschließlich Partitionierung, Paketauswahl und Boot-Optionen.
Die Debian-Preseed-Dateien sind nützliche Werkzeuge, um Installation und Konfiguration einer Debian-basierten Distribution zu automatisieren. Kali kann diese nutzen, um Installationen mit einer unbeaufsichtigten, angepassten und konsistenten Einrichtung zu beschleunigen. Weitere Informationen zu Preseed-Dateien finden Sie im Debian-Installationshandbuch oder in der Beispiel-Preseed-Textdatei von Debian.
Obwohl es viele Möglichkeiten gibt, eine Preseed-Datei anzupassen – installierte Pakete bieten noch mehr Optionen – soll dieses Repository als Host dienen und die Erstellung einfacherer Dateien ermöglichen, die leicht angepasste Kali-Installationsoptionen unterstützen.
Für eine sehr ausführliche und hilfreiche Anleitung zur Verwendung von Preseed-Dateien können wir das Debian-Installations-Wiki heranziehen. Es enthält Schritte, wie man das Preseed in die iso-Datei einbettet, einen USB-Stick verwendet, um die Preseed-Datei zu speichern, oder eine Netzwerkverbindung nutzt, um die Preseed-Datei von einer URL zu laden.
Eine Sache, die wir erwähnen sollten, ist, dass wir für das URL-Preseeding die folgende Boot-Eingabe verwenden müssen:
/install.amd/vmlinuz vga=788 auto=true priority=critical url=link-to-preseed.cfg initrd=/install.amd/initrd.gz --- quiet
Wir können den Boot-Parameter auf einem System mit BIOS-Boot bearbeiten, indem wir entweder ESC für eine leere Eingabeaufforderung drücken oder E um eine vorhandene Boot-Option zu ändern. Auf UEFI-Systemen können wir entweder C für eine leere Eingabeaufforderung oder E zum Ändern einer vorhandenen Boot-Option drücken.
Wenn wir eine vorhandene Boot-Option verwenden möchten, können wir die folgenden Boot-Eingaben hinzufügen, um eine automatisierte Installation zu erhalten:
language=en country=US locale=en_US.UTF-8 keymap=us auto=true priority=critical url=link-to-preseed.cfg
Beim Erstellen einer Preseed-Datei gibt es bestimmte Optionen (Flags), die man immer verwenden sollte, um eine unbeaufsichtigte Installation zu erreichen. Werfen wir einen Blick auf jede einzelne davon.
Das Folgende wählt automatisch unsere ortsbezogenen Einstellungen aus – das Gebietsschema, die Sprache und das Land. Weitere Informationen zu Gebietsschemata finden Sie im Debian-Wiki-Eintrag. Wenn wir uns nicht sicher sind, welches Gebietsschema wir verwenden sollen, können wir entweder die englische Option wählen, die unten festgelegt ist. Alternativ können wir, um unser Gebietsschema herauszufinden, ein bereits installiertes System verwenden und den Befehl locale ausführen. Achten Sie nur darauf, die Informationen vor .UTF-8 einzugeben.
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=
Die Preseed-Option:
d-i debian-installer/locale string en_US
Wenn wir jedoch alle diese Optionen manuell auswählen oder nach Verwendung der obigen Einstellungen nur eine davon ändern möchten, können wir die folgenden Anweisungen verwenden, um jede einzelne festzulegen:
d-i debian-installer/language string en
d-i debian-installer/country string US
d-i debian-installer/locale string en_US.UTF-8
Als Nächstes müssen wir die Tastaturbelegung festlegen, die nicht durch das Gebietsschema gesetzt wird. Wir können den Befehl localectl verwenden, um unser Layout herauszufinden, falls wir bereits ein installiertes System haben.
kali@kali:~$ localectl
System Locale: (unset)
VC Keymap: (unset)
X11 Layout: us
X11 Model: pc105
Die Preseed-Option:
d-i keyboard-configuration/xkb-keymap select us
Bedenken Sie, dass sowohl das Locale als auch die Tastaturbelegung später geändert werden können, und zwar mit dpkg-reconfigure locales bzw. dpkg-reconfigure keyboard-configuration.
Wir können nun unsere Netzwerkeinstellungen bearbeiten. Beachten Sie, dass diese nicht verwendet werden, wenn wir URL-Preseeding verwenden. Zuerst müssen wir unser Interface auswählen. Für diese Option verwenden wir einfach auto, da dies am einfachsten ist. Wir können jedoch bei Bedarf ein bestimmtes Interface wählen, wie z. B. eth0.
d-i netcfg/choose_interface select auto
Die folgenden Preseed-Optionen werden verwendet, um die Abfrage von Hostname und Domainname zu überspringen; diese werden über DHCP oder über die voreingestellten Werte bereitgestellt: „kali“ als Hostname und eine leere Domain:
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
Falls wir den Hostname oder den Domainnamen selbst festlegen möchten, können wir das tun, indem wir die Zeichenkette nach unseren Wünschen ändern. Beachten Sie, dass DHCP-Werte Vorrang vor jedem von uns gesetzten Wert haben. Das kann jedoch vermieden werden, indem wir den Wert wie folgt hartkodieren:
d-i netcfg/hostname string personal-hostname
Wir kommen nun zu den Netzwerk-Mirrors. Die folgenden Optionen dienen dazu, den Mirror festzulegen, den wir für Kali verwenden möchten, sowie Proxy-Einstellungen, falls wir sie benötigen. Wenn Sie sich nicht sicher sind, müssen Sie wahrscheinlich nichts festlegen. In unserem Fall ändern wir den Wert des Hostnamens auf das Kali-Cloudflare-Mirror-Netzwerk, kali.download. Wenn uns der schnellste verfügbare Mirror zugewiesen werden soll, können wir stattdessen die Option http.kali.org verwenden:
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
Es gibt noch ein paar weitere Optionen, die wir einfügen können. Diese beiden Optionen legen sowohl das Protokoll für die Verbindung zum Mirror als auch die auszuwählende Suite fest. Wenn Sie keine der beiden Optionen ändern müssen, lassen Sie sie am besten aus dem Preseed heraus:
d-i mirror/protocol string http
d-i mirror/suite string kali-rolling
Wir kommen nun zur Benutzererstellung. Zuerst legen wir unseren vollständigen Namen und dann unseren Benutzernamen fest. Der vollständige Name kann aus mehreren Wörtern bestehen, der Benutzername jedoch nicht. Achten Sie darauf, dass Ihr Benutzername aus einem einzigen Wort besteht. Anschließend können wir unser Passwort nach Belieben festlegen. Wenn Sie nicht möchten, dass Ihr Passwort im Klartext vorliegt, können wir einen verschlüsselten Hash verwenden. Einen solchen Hash können wir mit dem Befehl mkpasswd oder über viele andere Wege erzeugen, die hier nicht behandelt werden:
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
Ein verschlüsselter Hash kann wie folgt verwendet werden:
d-i passwd/user-password-crypted password [hash]
Wir kommen nun zur Einrichtung der Uhr. Die verwendeten Optionen bewirken Folgendes: Sie teilen dem Installer mit, dass die Systemuhr auf UTC gestellt ist, wenden einen Zeitzonenwert an, den die Kali-Installation als ihre Uhr verwenden soll, und verwenden dann NTP, um diese Zeit zu setzen.
d-i clock-setup/utc boolean true
d-i time/zone string US/Eastern
d-i clock-setup/ntp boolean true
Wir können in dem Ordner /usr/share/zoneinfo/ nach einem Wert für die Zeitzone suchen oder den folgenden Befehl verwenden:
kali@kali:~$ cat /etc/timezone
US/Eastern
Wir kommen nun zur Partitionierung. Dies ist mit Abstand der komplizierteste Teil beim Erstellen eines Preseeds, da einige Werte festgelegt werden müssen, je nachdem, welchen Systemtyp Sie verwenden und welche Art von Installation Sie wünschen.
Wir legen zuerst die automatischen Einstellungen für partman, das Partitionierungswerkzeug, fest. Wir geben an, dass es sich um eine normale Installation handelt, anstatt LVM (lvm) oder Verschlüsselung (crypto) zu verwenden, und legen dann fest, dass die gesamte verfügbare Festplatte verwendet werden soll. Wir können auch kleinere Größen verwenden, z. B. 20 GB oder einen Prozentsatz des freien Speicherplatzes. Die letzte Option hier bestimmt, wie Ihre Dateien konfiguriert werden: ob alles in einer Partition liegt (atomic), ob der Ordner /home in einer separaten Partition liegt (home) oder ob /home, /var und /tmp alle in separaten Partitionen liegen (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
Wir haben als Nächstes eine Reihe von Abfragen, denen wir zustimmen. Wenn wir all diesen Abfragen zustimmen, partitioniert partman automatisch entsprechend den oben festgelegten Werten.
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
Wir sind schließlich mit der Partitionierung fertig und können nun zur Paketauswahl übergehen. Die folgenden Optionen führen zu einer typischen Kali-Xfce-Installation. Die vollständige Liste der verfügbaren Werte, die wir festlegen können, finden Sie im tasksell-Kali-GitLab-Paket-Repository. Einige Optionen sind desktop-gnome, desktop-kde, meta-top10, meta-everything und meta-purple. Wir fügen einfach die Pakete hinzu, die wir verwenden möchten, und achten darauf, ein Komma als Trennzeichen zu verwenden.
tasksel tasksel/first multiselect standard,core,desktop-xfce,meta-default
Es ist möglich, zusätzlich zu installierende Pakete einzeln auszuwählen:
d-i pkgsel/include string openssh-server build-essential
Es ist außerdem möglich, Pakete nach dem Debootstrap zu aktualisieren, entweder mit safe-upgrade oder full-upgrade oder überhaupt nicht mit none:
d-i pkgsel/upgrade select none
Nur noch ein Abschnitt: GRUB-Optionen und Neustart. Diese Optionen sind relativ unkompliziert. Wir teilen GRUB mit, dass es sicher ist, die Boot-Partition einzurichten, wenn es nur Debian erkennt, und sagen ihm dann, dass es sicher ist, die Boot-Partition einzurichten, wenn es ein anderes installiertes Betriebssystem erkennt. Während die erste Option in den meisten Fällen unbedenklich ist, kann die zweite Option bei Dual-Boot riskant sein. Wenn Sie kein Dual-Boot verwenden, können wir sie auf true setzen; andernfalls sollten wir die Option möglicherweise entfernen und unsere Auswahl manuell treffen.
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
Diese letzten beiden Optionen legen das Boot-Gerät fest und weisen das System dann an, in Kali neu zu starten. In unserem Beispiel kodieren wir das Boot-Gerät fest auf /dev/sda, da wir möglicherweise ein USB-Laufwerk verwenden, um Kali zu installieren. Wenn wir kein USB-Laufwerk verwenden, könnten wir den Wert default verwenden, aber es ist sicherer, den Wert fest zu kodieren.
d-i grub-installer/bootdev string /dev/sda
d-i finish-install/reboot_in_progress note