Repositório descreve a instalação do Wazuh usando segregação de funções por node, ou seja:
- 01 wazuh-server
- 01 wazuh-indexer
- 01 wazuh-dashboard
Cada um dos nodes acima rodando em uma VM diferente. A figura abaixo ilustra a topologia simplificada:
A implantação desse ambiente de prova de conceito local tem alguns pré-requisitos:
- Sistema operacional hospedeiro (host) Ubuntu 22.04. Provável que funcione em outras distros.
- Virtualbox. Provável que funcione com outros.
- Vagrant
- Git
A implantação foi executada baseada nos pré-requisitos acima. Se o cenário for diferente, deve-se consultar a documentação das ferramentas para entender como configurar, etc.
ATENÇÃO: Antes de implantar, ajustar as informações constantes no arquivo environment.yml conforme a capacidade computadional do host hospedeiro (onde as VMs irão ser executadas). Esse ajuste é importante para evitar problemas, pois no arquivo atual constam 3 VMs, cada uma com 2 vCPUs e 4GB de RAM.
-
Clone esse repo:
git clone https://github.com/gutobrutus/wazuh-vagrant.git
-
Acesse o diretório raiz do projeto clonado.
cd wazuh-vagrant
-
Ajuste o arquivo environment.yml conforme necessário, adequado com a sua realidade, como já chamado atenção anteriormente.
-
Implante/Inicie as VMs:
vagrant up
Aguarde o término do processo. Após finalizar, consulte o status das VMs com:
vagrant status
Saída do comando anterior:
Current machine states: wazuh-server running (virtualbox) wazuh-indexer running (virtualbox) wazuh-dashboard running (virtualbox) This environment represents multiple VMs. The VMs are all listed above with their current state. For more information about a specific VM, run `vagrant status NAME`.
Pronto, agora as VMs estão implantadas. Para acessar as VMs via ssh, basta:
vagrant ssh NOME_DA_VM
Por exemplo:
vagrant ssh wazuh-indexer
A instalação seguirá na forma multi-node. Para isso, a instalação deve sempre começar pelo node indexer.
-
Acesse a VM wazuh-indexer:
vagrant ssh wazuh-indexer
-
Eleve para root:
sudo -i
-
Realize o download do script de instalação:
curl -sO https://packages.wazuh.com/4.5/wazuh-install.sh
-
Realize o donwload do template de arquivo de configuração:
curl -sO https://packages.wazuh.com/4.5/config.yml
-
Edite o arquivo config.yml com o seu editor favorito. Exemplo:
vim config.yml
O conteúdo do arquivo para mim ficou conforme abaixo:
nodes: # Wazuh indexer nodes indexer: - name: node-1 ip: 192.168.56.81 # Wazuh server nodes # If there is more than one Wazuh server # node, each one must have a node_type server: - name: wazuh-1 ip: 192.168.56.80 # Wazuh dashboard nodes dashboard: - name: dashboard ip: 192.168.56.82
O arquivo config.yml completo que foi descarregado anteriormente está disponível nesse reporitório.
-
Geração de arquivos de configuração:
bash wazuh-install.sh --generate-config-files
Será gerado um arquivo wazuh-install-files.tar. Ele deve ser copiado para todas as VMs que compõe a implantação. Com o uso do Vagrant, basta copiar o arquivo para o diretório /vagrant que todas as VMs também terão esse arquivo.
cp wazuh-install-files.tar /vagrant
-
Instalação do node indexer:
bash wazuh-install.sh --wazuh-indexer node-1
-
Iniciando o cluster:
bash wazuh-install.sh --start-cluster
Obs.: Esse passo só necessário executar uma vez no primeiro node indexer.
Aguardar o processo finalizar.
-
Acesse a VM wazuh-server:
vagrant ssh wazuh-indexer
-
Eleve para root:
sudo -i
-
Copie o arquivo wazuh-install-files.tar para o diretório corrente:
cp /vagrant/wazuh-install-files.tar .
Obs.: A cópia foi feita dessa forma por conta da configuração do ambiente, pois o Vagrant tem o diretório /vagrant disponível em todas as VMs e ele também é mapeado para o diretório raiz do projeto no host hospedeiro. Em outra configuração de ambiente, a cópia deverá ser realizada de outra forma, por exemplo, usando o scp.
-
Realize o download do script de instalação:
curl -sO https://packages.wazuh.com/4.5/wazuh-install.sh
-
Realize a instalação do Wazuh Server:
bash wazuh-install.sh --wazuh-server wazuh-1
Aguarde o processo finalizar.
-
Acesse a VM wazuh-server:
vagrant ssh wazuh-indexer
-
Eleve para root:
sudo -i
-
Novamente, copie o arquivo wazuh-install-files.tar para o diretório corrente:
cp /vagrant/wazuh-install-files.tar .
-
Realize o download do script de instalação:
curl -sO https://packages.wazuh.com/4.5/wazuh-install.sh
-
Realize a instalação do Wazuh Server:
bash wazuh-install.sh --wazuh-dashboard dashboard
-
Após finalizar a instalação, recupere a senha do usuário admin que será usado para logar no dashboard:
tar -O -xvf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt
-
Acesse a interface dashboard através da url https://192.168.56.82.
-
Para listar todas as demais credenciais que são usadas pela plataforma do Wazuh:
tar -O -xvf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt
Guarde essas credenciais em sua solução de cofre de senhas.
-
Em ambientes produtivos ou mesmo de teste dentro de uma rede corporativa, após realizar a instalação/configuração da plataforma Wazuh, guarde o arquivo wazuh-install-files.tar em um local seguro. Após isso, delete-o das VMs, visto que se as VMs forem comprometidas, um invasor com esse arquivo terá acesso a todas as configurações, além de todas as credenciais que ficam dentro dele.
-
Em ambientes produtivos, recomenda-se criar uma configuração de volumes lógicos criando um LV para o path /var/lib/wazuh-indexer nas VMs com a função indexer (Wazuh Indexer), já prevendo problemas de estouro de filesystem. Com o LVM ficará mais fácil gerenciar o aumento de volume do path onde ficam os dados indexados na plataforma Wazuh.
-
Ao executar o comando de geração do arquivo de configuração, o arquivo config.yml vai ser excluído. Ele está dentro do wazuh-install-files.tar. Nesse arquivo tem tudo necessário para a instalação, o conteúdo dele pode ser visto com:
tar -tf wazuh-install-files.tar
Saída do comando anterior:
wazuh-install-files/ wazuh-install-files/node-1.pem wazuh-install-files/config.yml wazuh-install-files/dashboard-key.pem wazuh-install-files/dashboard.pem wazuh-install-files/wazuh-1-key.pem wazuh-install-files/admin-key.pem wazuh-install-files/node-1-key.pem wazuh-install-files/wazuh-passwords.txt wazuh-install-files/root-ca.key wazuh-install-files/admin.pem wazuh-install-files/wazuh-1.pem wazuh-install-files/root-ca.pem
- Documentar processo de incremento de nodes no cluster.
- Documentar implementação de Load Balancer para clusters com mais nodes.