
Примеры preseed-конфигураций и руководства по автоматизированной установке Kali Linux без вмешательства пользователя, включая разметку диска, выбор пакетов и параметры загрузки.
Preseed-файлы Debian — полезные инструменты для автоматизации установки и настройки дистрибутива на основе Debian. Kali может использовать их для ускорения установки, обеспечивая автоматическую, настраиваемую и согласованную установку. Более подробную информацию о preseed-файлах можно найти в Руководстве по установке Debian или в примере preseed-файла Debian.
Хотя существует множество способов настройки preseed-файла, а установленные пакеты предоставляют ещё больше возможностей, этот репозиторий предназначен для размещения и создания более простых файлов, позволяющих выполнять установку Kali с лёгкой настройкой.
Для получения очень подробного и полезного руководства по использованию preseed-файлов можно обратиться к вики по установке Debian. Там описаны шаги по встраиванию preseed-файла в iso-образ, использованию USB-накопителя для хранения preseed-файла или использованию сетевого подключения для загрузки preseed-файла по URL.
Следует отметить, что для использования пресидинга через URL необходимо ввести следующую загрузочную строку:
/install.amd/vmlinuz vga=788 auto=true priority=critical url=link-to-preseed.cfg initrd=/install.amd/initrd.gz --- quiet
На системе с BIOS мы можем изменить параметры загрузки, нажав ESC для пустого приглашения или E , чтобы изменить существующий пункт загрузки. На системах UEFI мы можем нажать C для пустого приглашения или E, чтобы изменить существующий пункт загрузки.
Если мы хотим использовать существующий пункт загрузки, мы можем добавить следующие параметры загрузки для автоматической установки:
language=en country=US locale=en_US.UTF-8 keymap=us auto=true priority=critical url=link-to-preseed.cfg
При создании preseed-файла есть определённые параметры, которые всегда следует использовать для установки без вмешательства пользователя. Давайте рассмотрим каждый из них.
Следующее позволит автоматически выбрать настройки, основанные на местоположении: локаль, язык и страну. Дополнительную информацию о локалях можно найти в статье вики Debian. Если вы не уверены, какую локаль использовать, можно выбрать английский вариант, который указан ниже. Также, чтобы узнать свою локаль, можно воспользоваться уже установленной машиной и выполнить команду locale. Просто обязательно вводите информацию перед .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=
Параметр preseed:
d-i debian-installer/locale string en_US
Однако, если мы хотим вручную выбрать все эти параметры или изменить только один из них после использования вышеуказанного, мы можем использовать следующее, чтобы задать каждый из них:
d-i debian-installer/language string en
d-i debian-installer/country string US
d-i debian-installer/locale string en_US.UTF-8
Далее нам нужно установить раскладку клавиатуры, которая не задаётся локалью. Мы можем использовать команду localectl, чтобы узнать нашу раскладку, если у нас уже есть установленная машина.
kali@kali:~$ localectl
System Locale: (unset)
VC Keymap: (unset)
X11 Layout: us
X11 Model: pc105
Параметр preseed:
d-i keyboard-configuration/xkb-keymap select us
Имейте в виду, что и локаль, и раскладку клавиатуры можно изменить позже, используя dpkg-reconfigure locales и dpkg-reconfigure keyboard-configuration соответственно.
Теперь мы можем настроить сетевые параметры. Имейте в виду, что они не будут использоваться, если мы используем пресидинг через URL. Сначала нам нужно выбрать наш интерфейс. Для этого варианта мы просто используем auto, так как это проще всего. Однако при необходимости можно выбрать конкретный интерфейс, например eth0.
d-i netcfg/choose_interface select auto
Следующие параметры preseed используются для пропуска запроса имени хоста и доменного имени, которые будут получены через DHCP или с помощью предустановленных значений: 'kali' для имени хоста и пустое доменное имя:
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
Если мы хотим сами задать имя хоста или доменное имя, мы можем сделать это, изменив строку на желаемое значение. Имейте в виду, что значения DHCP будут иметь приоритет над любым заданным нами значением, но этого можно избежать, жёстко прописав значение следующим образом:
d-i netcfg/hostname string personal-hostname
Теперь перейдём к сетевым зеркалам. Следующие параметры позволяют задать зеркало, которое мы хотим использовать для Kali, и настройки прокси, если они необходимы. Если вы не уверены, скорее всего, ничего настраивать не нужно. В нашем случае мы изменяем значение hostname на зеркало Kali Cloudflare, kali.download. Если мы хотим, чтобы нам было назначено самое быстрое из доступных зеркал, мы можем вместо этого использовать вариант 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
Есть ещё пара параметров, которые мы также можем включить. Эти два параметра задают протокол для подключения к зеркалу, а также какую серию (suite) выбрать. Если вам не нужно изменять какой-либо из этих параметров, лучше не включать их в наш preseed:
d-i mirror/protocol string http
d-i mirror/suite string kali-rolling
Теперь перейдём к созданию пользователя. Сначала мы задаём полное имя, а затем имя пользователя. Полное имя может состоять из нескольких слов, а имя пользователя — нет. Убедитесь, что имя пользователя состоит из одного слова. Затем мы можем задать пароль по своему усмотрению. Если вы не хотите, чтобы пароль хранился в открытом виде, мы можем использовать зашифрованный хэш. Его можно сгенерировать с помощью команды mkpasswd или множества других способов, которые здесь не рассматриваются:
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
Зашифрованный хэш можно использовать следующим образом:
d-i passwd/user-password-crypted password [hash]
Теперь перейдём к настройке часов. Используемые параметры делают следующее: сообщают установщику, что системные часы установлены в UTC, применяют значение часового пояса, которое установка Kali должна использовать как свои часы, а затем используют NTP для установки этого времени.
d-i clock-setup/utc boolean true
d-i time/zone string US/Eastern
d-i clock-setup/ntp boolean true
Мы можем найти значение для часового пояса в папке /usr/share/zoneinfo/ или использовать следующую команду:
kali@kali:~$ cat /etc/timezone
US/Eastern
Теперь перейдём к разметке диска. Это, пожалуй, самая сложная часть создания preseed, поскольку нужно задать несколько значений в зависимости от типа используемой системы и типа установки, которую вы хотите выполнить.