Kali Linux é uma distribuição Linux especializada em Testes de Intrusão e Auditoria de Segurança mantida pela Offensive Security. Antigamente conhecida como BackTrack, o Kali, que é baseada no Debian, contém mais de 300 ferramentas de testes de intrusão; também possui suporte a ataques a redes WIFI; suporte a ARM; entre outros.
Assim, ter condições de usá-la em qualquer lugar é interessante. Inclusive, na nuvem. Por isso, escolhi o provedor de nuvem DigitalOcean para dar base para este tutorial.
Kali Linux na nuvem
A DigitalOcean é um provedor de nuvem semelhante ao AWS, ao Microsoft Azure, ao Google Cloud Platform e muitos outros. Eles oferecem instâncias virtuais, chamadas “droplets”, com diferentes distribuições Linux, como Debian, Ubuntu, FreeBSD, etc. Similar à AWS, a DigitalOcean possui datacenters em todo o mundo e, às vezes, vários datacenters em cada país.
Saiba como criar um servidor VPS Linux na infraestrutura de nuvem da DigitalOcean
Por quais motivos a hospedagem VPS Linux é a melhor opção para seu projeto?
No entanto, um recurso em particular os diferencia dos concorrentes. Eles há pouco tempo adicionaram suporte a imagens personalizadas, o que permite aos usuários importar discos de máquinas virtuais e usá-los como “droplets”. Isso é perfeito, pois você pode usar sua própria versão do Kali Linux na nuvem.
Em resumo, será preciso, localmente, gerar uma imagem enxuta, sem recursos gráficos, por exemplo, criar uma máquina virtual e, depois, enviar para a nuvem.
1. Gerando uma ISO personalizada
Embora seja possível carregar imagens virtuais oficiais do Kali Linux, não seria muito eficiente. Em vez disso, é melhor criar uma instalação leve do Kali com o mínimo para funcionar, por exemplo sem ambiente gráfico.
Isso minimiza a quantidade de dados que temos que carregar para o provedor DigitalOcean, para não haver um desperdício de recursos. Por isso, é preciso gerar uma imagem ISO Kali personalizada sem ambiente gráfico ou qualquer outra ferramenta.
Para construir uma imagem ISO, você primeiramente fará no seu computador local, antes de enviar para nuvem. Isso exigirá, cerca de, 5 GB de espaço no disco rígido. Por isso, certifique-se de ter o suficiente.
Primeiro, vamos garantir que o sistema esteja atualizado (nesse caso o Debian):
No caso de um novo kernel ser instalado, será preciso reiniciar o sistema antes de continuar e prosseguir com a compilação:
Saiba como compilar e instalar programas Linux distribuídos diretamente pelo código-fonte [tar.gz]
Execute esses 4 benchmarkings para medir o desempenho de VPS Linux
A opção “–verbose” exibirá o log de execução. Agora, aguarde um pouco! Vai demorar um pouco para gerar a imagem ISO, pois será preciso baixar muitos pacotes e compilá-los.
2. Criando máquina virtual
Com a nossa ISO construída, agora podemos começar a criar nossa máquina virtual. Crie uma nova máquina virtual, usando o VirtualBox, configurando o sistema operacional com o mais recente Debian de 64 bits e alocando um disco rígido de 20 GB. Se necessário, a configuração detalhada é explicada no site da Kali Training.
Saiba como emular diversas arquiteturas computacionais para testar diferentes distribuições Linux
Gnome Boxes – uma alternativa simples para criar e usar máquinas virtuais no Linux
É importante armazenar o disco virtual como um único arquivo que é alocado dinamicamente. O restante, como a quantidade de CPU e RAM, não importará, porque somente o arquivo do disco será carregado para a DigitalOcean.
O tamanho do disco é importante, pois o faturamento é baseado no tamanho do disco para imagens personalizadas. Isso também afetará a escolha da instância que podemos criar. Digamos que um disco rígido de 40 GB seja criado, ele falhará ao criar uma instância no nível de US$ 5 por mês, pois seu tamanho máximo de disco rígido é de 25 GB. Nesse caso, seríamos forçados a usar a opção de US$ 10/mês para instâncias com discos de 50 GB. Não se preocupe, embora o disco tenha 20 GB, ele será expandido dependendo do plano de “dropĺets” escolhido.
Durante a instalação, selecione o particionamento manual e configure-o como mostrado abaixo, com todos os arquivos em uma partição e nenhum arquivo de swap.
3. Personalizações
– Atualização do sistema
Quando a instalação estiver concluída e após ter reiniciado a máquina virtual, atualize o sistema:
– Pacotes necessários
Para que o DigitalOcean configure o sistema para nós, precisamos instalar o pacote cloud-init:
– Atualização do GRUB
Ao inicializar, o disco é anexado e mapeado como /dev/sda1. No entanto, com as “droplets”, é visto como /dev/vda1. Para alterar isso, precisamos modificar todas as instâncias de sda1 para vda1 em /boot/grub/grub.cfg:
Com o arquivo de configuração atualizado, podemos executar o comando “update-grub” para atualizar o sistema:
– Preparando para o acesso SSH
Como precisaremos usar o SSH para conectar ao sistema na DigitalOcean, o pacote openssh-server também precisa ser instalado (e habilitado):
Ao criar um droplet padrão, você pode optar por usar as chaves SSH ou não. No entanto, ao usar imagens personalizadas, essa não é uma opção e o uso de chaves SSH é obrigatório. Por esse motivo, a DigitalOcean exige que removamos a senha de root:
Também é preciso criar uma pasta /root/.ssh:
– Limpeza
Antes de terminar, é preciso fazer algumas “limpezas”:
Neste ponto, desligue a máquina virtual:
4. Subindo imagem para nuvem
Como executar o Kali Linux diretamente no web browser
Na pasta da máquina virtual, localize o arquivo .vmdk e, em seguida, compacte-o usando o bzip2, o gzip ou o zip, preparando-o para o upload para a DigitalOcean.
Depois de criar sua conta DigitalOcean, vá na seção “Manage” à esquerda, clique em “Images” e selecione a guia “Custom Images”:
Pronto! Nós carregamos a imagem do disco compactado para a nuvem:
5. Iniciando Kali Linux na nuvem
Depois de concluído, a coluna “Uploaded” indicará há quanto tempo foi enviado. Agora vamos clicar na opção “More” da imagem e selecionar “Start a droplet”:
Você será levado às configurações do droplet, onde poderá selecionar o plano, a chave SSH e o projeto para iniciá-lo. Como essa é uma imagem personalizada, é necessário usar uma chave SSH.
Você pode selecionar uma existente ou fazer o upload de uma nova clicando em “Nova chave SSH”, que abrirá a tela a seguir, onde você pode colar a chave pública e nomeá-la – caso não saiba criar uma chave SSH, clique aqui:
Uma vez feito, clique em “Criar”, como mostrado abaixo.
Então, você será levado de volta ao painel, onde todos os “droplets” estão listados – como estamos usando uma chave SSH, a DigitalOcean não enviará um email com credenciais para o droplet.
Dentro de alguns segundos, e após o IP ser exibido, o droplet estará pronto. Para conectar, é preciso usar a chave SSH privada que criamos (chamada MY_KEY neste exemplo):
user@computer:~$ ssh -i MY_KEY [email protected] The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established. ECDSA key fingerprint is SHA256:d83fcd43d25e2a7edd291666160b47360cc85870ded. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'IP' (ECDSA) to the list of known hosts. Linux kali-s-1vcpu-1gb-nyc3-01 4.19.0-kali5-amd64 #1 SMP Debian 4.19.37-2kali1 (2019-05-15) x86_64 The programs included with the Kali GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Now we have a nice, minimal Kali Linux installation that we can deploy and customize as needed.
root@kali-s-1vcpu-1gb-nyc3-01:~# lsb_release -a No LSB modules are available. Distributor ID: Kali Description: Kali GNU/Linux Rolling Release: 2019.2 Codename: n/a root@kali-s-1vcpu-1gb-nyc3-01:~# uname -a Linux kali-s-1vcpu-1gb-nyc3-01 4.19.0-kali5-amd64 #1 SMP Debian 4.19.37-2kali1 (2019-05-15) x86_64 GNU/Linux root@kali-s-1vcpu-1gb-lon1-01:~# free -h total used free shared buff/cache available Mem: 987Mi 51Mi 527Mi 1.0Mi 407Mi 790Mi Swap: 0B 0B 0B
Via | Kali.org