Ir para o conteúdo

Elasticsearch Externo Para Zenarmor

Pré-Requisitos

  • Instalar o Ubuntu 24.04 LTS
  • Memória: 8 GB
  • CPU: 8 vCPU
  • Disco: 80GB mínimo para instalação.

1. Renomear o servidor

hostnamectl set-hostname elk.citrait.corp
echo "192.168.1.180 elk.citrait.corp elk" >> /etc/hosts

2. Configurar IP fixo na placa de rede

cat << "EOF" > /etc/netplan/50-cloud-init.yaml
network:
  version: 2
  ethernets:
    ens18:
      addresses: [192.168.1.180/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1]
EOF

3. Instalar atualizações

sudo apt update && sudo apt upgrade -y

4. Instalar o ElasticSearch

# instala o repositório do elasticsearch
sudo apt-get install -y apt-transport-https
curl -o - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

# instala o elasticsearch
# após a instalação, procure na tela a senha de superuser que foi gerada.
# exemplo: "The generated password for the elastic built-in superuser is : RsjTK2SY*3w79uZCZfpt"
sudo apt update && sudo apt install -y elasticsearch

# habilita e inicia o serviço do elasticsearch
sudo /bin/systemctl daemon-reload
sudo systemctl enable elasticsearch.service

# não inicialize o elasticsearch ainda.
# sudo systemctl start elasticsearch

# gerar um token para integrar com o kibana
# anote o token gerado para ser usado no próximo passo
sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana --url https://127.0.0.1:9200

5. Abrir o Elasticsearch para conexões de rede

sudo sed -i 's/#network.host: 192.168.0.1/network.host: 0.0.0.0/' /etc/elasticsearch/elasticsearch.yml

6. Iniciar o Elasticsearch

sudo systemctl start elasticsearch

7. Executar ajustes de memória para otimizar o processo do elasticsearch

# necessario pois o elasticsearch consome muita memória RAM
# essa opção define a quantidade de áreas de memória mapeáveis que um único processo pode criar.
# recomendação do fabricante.
sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sudo systemctl restart elasticsearch

8.Verificar se o Elasticsearch está operacional

# repare que vamos precisar da senha que foi gerada no comando de instalação do elasticsearch 
curl -k -u 'elastic:<senha>'  https://localhost:9200

9. Instalar o Kibana

sudo apt update && sudo apt install -y kibana

10. Registrar o Kibana no Elasticsearch

# Quando executar o comando abaixo, será solicitado o token que foi gerado anteriormente para integração do kibana
sudo /usr/share/kibana/bin/kibana-setup

11. Abrir o kibana para conexões via rede

sudo sed -i 's/#server.host: "localhost"/server.host: "0.0.0.0"/' /etc/kibana/kibana.yml

12. Habilita e inicializa o serviço do Kibana

# habilita e inicia o serviço do elasticsearch
sudo systemctl daemon-reload
sudo systemctl enable kibana
sudo systemctl start kibana

13. Acessar o Kibana pelo navegador

http://ip-do-servidor:5601/

# Login: elastic
# Senha: *gerada anteriormente na instalação do elastic
# repare também que o acesso é HTTP e não httpS

No OPNsense

1. Instalar o plugin zenarmor

  • instale o plugin os-sunnyvalley
  • instale o plugin os-sensei

2. Configurar o zenarmor

  • Acesse qualquer menu do zenarmor para ser levado para a configuração inicial
  • Responda as questões na tela
  • Quando perguntado do banco de dados, selecione remote elasticsearch
  • Preencha os dados da seguinte forma:
    • URL: https://ip-do-servidor-elastic:9200
    • user: elastic
    • senha: senha gerada na instalação do elasticsearch

Visualização no Elasticsearch

  1. Volte na tela do kibana
  2. Acesse o menu Analytics > Discover
  3. Clique no menu All Logs, selecione create a data view
  4. Preencha seguinte forma:
    • name: Zenarmor
    • Index pattern: zenarmor_*
    • Timestamp field: Start_Time
  5. Clique em Save data view to kibana

Pronto! O elasticserach já está recebendo os dados do Zenarmor.

Agora você pode prosseguir para a criação dos dashboards.


Configurando o Ciclo de Vida dos dados

  1. Acesse o menu lateral esquerdo Management > Stack Management
  2. Clique do lado esquerdo em Index Management
  3. Clique na guia Index Templates
  4. Clique em Create Template
    • Name: zenarmor
    • Index pattern: zenarmor_*
    • Marque a opção Enable data retention
    • Preencha o campo Data Retention com a quantidade de dias para manter estes registros. Exemplo: 365
    • Na seção Allow auto create marque como True
    • Clique em Next
  5. Na seção Component templates Clique em Next
  6. Na seção Index Settings Clique novamente em Next
  7. Na seção Mappings (optional) clique em Next
  8. Na seção Aliases clique em Next
  9. Na seção Review Template clique em Create Template.

Pronto! Foi criado um agrupamento dos templates dos logs do zenarmor e definido um período de retenção destes logs.

Agora você já está enviando os logs do zenarmor para o Elasticsearch.


Próximos Passos:

  • Configure o nginx como proxy reverso para o Kibana.
  • Emita certificado SSL Válido (let's encrypt) para o acesso ao dashboard do Kibana.
  • Crie os dashboards e relatórios pertinentes à sua análise de dados.