
Exemplos de configuração preseed e guias para instalação automatizada e sem intervenção do Kali Linux, incluindo particionamento, seleção de pacotes e opções de inicialização.
Arquivos preseed do Debian são ferramentas úteis para automatizar a instalação e configuração de uma distribuição baseada em Debian. O Kali é capaz de utilizá-los para acelerar instalações com uma instalação sem intervenção, personalizada e consistente. Para muito mais informações sobre arquivos preseed, consulte o Guia de Instalação do Debian ou o arquivo de texto de exemplo de preseed do Debian.
Embora existam muitas maneiras de personalizar um arquivo preseed, com pacotes instalados fornecendo ainda mais opções, este repositório servirá para hospedar e permitir a criação de arquivos mais simples que possibilitam opções de instalação do Kali levemente personalizadas.
Para um guia muito aprofundado e útil sobre o uso de arquivos preseed, podemos consultar a wiki de instalação do Debian. Isso inclui etapas de como incorporar o preseed no arquivo iso, usar um USB para armazenar o arquivo preseed ou utilizar uma conexão de rede para baixar o arquivo preseed de uma URL.
Uma observação que devemos fazer é que, para utilizar o preseed por URL, devemos seguir o seguinte prompt de boot:
/install.amd/vmlinuz vga=788 auto=true priority=critical url=link-to-preseed.cfg initrd=/install.amd/initrd.gz --- quiet
Podemos editar o parâmetro de boot em um sistema com boot BIOS pressionando ESC para um prompt em branco ou pressionando E para modificar uma opção de boot pré-existente. Em sistemas UEFI, podemos pressionar C para um prompt em branco ou E para modificar uma opção de boot pré-existente.
Se desejarmos utilizar uma opção de boot pré-existente, podemos adicionar os seguintes prompts de boot para ter uma instalação automatizada:
language=en country=US locale=en_US.UTF-8 keymap=us auto=true priority=critical url=link-to-preseed.cfg
Ao criar um arquivo preseed, há certos flags que sempre se deve usar para ter uma instalação sem intervenção. Vamos dar uma olhada em cada um deles.
O seguinte escolherá automaticamente nossas configurações baseadas em localização. A locale, o idioma e o país. Para mais informações sobre locales, podemos visitar a entrada do Wiki Debian. Se não tivermos certeza sobre qual locale usar, podemos optar pela opção em inglês, que é a definida abaixo. Opcionalmente, para descobrir nossa locale, podemos usar uma máquina que já esteja instalada e executar o comando locale. Apenas certifique-se de inserir a informação antes de .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=
A opção de preseed:
d-i debian-installer/locale string en_US
No entanto, se quisermos selecionar manualmente todas essas opções ou alterar apenas uma delas após utilizar as opções acima, podemos então usar o seguinte para definir cada uma:
d-i debian-installer/language string en
d-i debian-installer/country string US
d-i debian-installer/locale string en_US.UTF-8
Em seguida, precisaremos definir o keymap, que não é definido pela locale. Podemos usar o comando localectl para descobrir nosso layout, se já tivermos uma máquina instalada.
kali@kali:~$ localectl
System Locale: (unset)
VC Keymap: (unset)
X11 Layout: us
X11 Model: pc105
A opção de preseed:
d-i keyboard-configuration/xkb-keymap select us
Tenha em mente que tanto a locale quanto o keymap podem ser alterados posteriormente, utilizando dpkg-reconfigure locales e dpkg-reconfigure keyboard-configuration, respectivamente.
Agora podemos editar nossas configurações de rede. Tenha em mente que isso não será usado se estivermos utilizando preseed por URL. Primeiro precisamos escolher nossa interface. Para esta opção, usamos auto, pois é o mais fácil. No entanto, podemos escolher uma interface específica, se necessário, como eth0.
d-i netcfg/choose_interface select auto
As seguintes opções de preseed são usadas para pular a solicitação de nome de host e nome de domínio, que serão fornecidos via DHCP ou usando os valores predefinidos: 'kali' para nome de host e um domínio em branco:
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
Se quisermos definir um nome de host ou nome de domínio nós mesmos, podemos fazer isso modificando a string para o que desejarmos. Tenha em mente que os valores do DHCP serão priorizados sobre qualquer valor que definirmos, mas isso pode ser evitado definindo o valor diretamente da seguinte forma:
d-i netcfg/hostname string personal-hostname
Agora passamos para os mirrors de rede. As opções a seguir servem para definir o mirror que desejamos usar para o Kali e as configurações de proxy, se precisarmos usá-las. Se você não tiver certeza, provavelmente não precisa definir nada. No nosso caso, editamos o valor do hostname para ser o mirror de rede Cloudflare do Kali, kali.download. Se quisermos que o mirror mais rápido disponível seja atribuído a nós, podemos usar a opção 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
Há algumas outras opções que também podemos escolher incluir. Essas duas opções definirão o protocolo a ser usado para conectar ao mirror, bem como qual suite selecionar. A menos que você precise alterar alguma dessas opções, é melhor deixá-las de fora do nosso preseed:
d-i mirror/protocol string http
d-i mirror/suite string kali-rolling
Agora passamos para a criação de usuário. Primeiro definimos nosso nome completo e depois nosso nome de usuário. O nome completo pode ter várias palavras, porém o nome de usuário não pode. Certifique-se de usar apenas uma palavra para o seu nome de usuário. Em seguida, podemos definir nossa senha como quisermos. Se você não quiser que sua senha fique em texto puro, podemos optar por usar um hash criptografado. Podemos gerar um usando o comando mkpasswd ou por muitos outros meios, que não serão abordados:
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
Um hash criptografado pode ser usado da seguinte forma:
d-i passwd/user-password-crypted password [hash]
Agora passamos para a configuração do relógio. As opções usadas fazem o seguinte: informam ao instalador que o relógio do sistema está definido para UTC, aplicam um valor de fuso horário que a instalação do Kali deve usar como seu relógio e, em seguida, usam NTP para ajustar esse horário.
d-i clock-setup/utc boolean true
d-i time/zone string US/Eastern
d-i clock-setup/ntp boolean true
Podemos procurar um valor para definir o fuso horário na pasta /usr/share/zoneinfo/, ou podemos usar o seguinte comando:
kali@kali:~$ cat /etc/timezone
US/Eastern
Agora entramos no particionamento. Esta é facilmente a parte mais complicada da criação de um preseed, pois há alguns valores a definir com base no tipo de sistema que você está usando e no tipo de instalação desejada.