Ambiente de laboratório baseado em Vagrant + VirtualBox.
| VM | IP | RAM | Ferramentas |
|---|---|---|---|
containers |
172.16.0.30 | 2 GB | Docker, Fluent Bit, auditd, Python3 |
graylog |
172.16.0.10 | 3 GB | MongoDB 8.0, OpenSearch 2.x, Graylog 7.1 |
opensearch |
172.16.0.20 | 3 GB | OpenSearch 2 + Dashboards (Docker) |
Importante: nunca suba as três VMs ao mesmo tempo em um computador com 8 GB de RAM.
Use graylog e containers juntas ou opensearch e containers juntas.
| Módulo | Conteúdo | VM(s) necessária(s) |
|---|---|---|
| 01 | rsyslog, journald, logrotate | containers |
| 02 | auditd, ausearch, aureport | containers |
| 03 | Graylog (instalação e configuração) | graylog |
| 04 | OpenSearch + Dashboards + ISM | opensearch |
| 05 | Docker logging, Fluent Bit | containers + graylog ou containers + opensearch |
| 06 | Logs na nuvem (GCP) | — (conta GCP do aluno) |
| 07 | Análise de logs com IA | containers (+ graylog ou opensearch para LABs avançados) |
- VirtualBox 7.x
- Vagrant 2.3+
- 8 GB de RAM (mínimo) — nunca rode as 3 VMs simultaneamente
- Conexão com a internet durante o primeiro
vagrant up(download de pacotes)
# Subir apenas uma VM (recomendado para economia de RAM)
vagrant up containers
vagrant up graylog
vagrant up opensearch
# Subir duas juntas (para labs que integram ferramentas)
vagrant up containers graylog
vagrant up containers opensearchvagrant ssh containers
vagrant ssh graylog
vagrant ssh opensearch# Desligar todas
vagrant halt
# Desligar apenas uma
vagrant halt containers# Destruir todas (libera disco)
vagrant destroy -f
# Destruir apenas uma
vagrant destroy -f graylogvagrant statusUsada nos labs 01, 02, 05 e 07.
Serviços instalados:
docker— ativo e iniciando com o sistemafluent-bit— instalado mas não iniciado (configurado em cada lab)auditd— ativo com regras básicas pré-carregadas
Scripts disponíveis em /home/vagrant/:
analisa-arquivo.py— analisa logs locais com IAanalisa-graylog.py— busca logs no Graylog e analisa com IAanalisa-opensearch.py— busca logs no OpenSearch e analisa com IAsimula-incidente.sh— gera eventos de segurança para o LAB 7.4
Portas:
- Nenhuma porta encaminhada para o host (acesso via
vagrant ssh containers)
Usada nos labs 03, 05 (GELF) e 07.
Serviços instalados (nativo, sem Docker):
mongod— MongoDB 8.0opensearch— OpenSearch 2.x (security desabilitado, single-node)graylog-server— Graylog Server 7.1
Primeiro acesso:
- Acesse
http://localhost:9000no navegador do host - Login direto:
admin/4Linux@516!
Portas encaminhadas:
9000→ Graylog Web UI5044→ Beats input (se configurado)12201/udp→ GELF input (para containers)
Usada nos labs 04, 05 (Fluent Bit → OpenSearch) e 07.
Serviços (via Docker Compose em /opt/opensearch/):
opensearch— OpenSearch 2.x (sem TLS, para fins didáticos)opensearch-dashboards— interface web
Comandos úteis dentro da VM:
# Ver status
cd /opt/opensearch && docker compose ps
# Ver logs
cd /opt/opensearch && docker compose logs -f
# Reiniciar
cd /opt/opensearch && docker compose restartPortas encaminhadas:
9200→ OpenSearch REST API5601→ OpenSearch Dashboards
O Lab 07 usa a API do OpenRouter para análise de logs com IA.
- Crie uma conta gratuita em openrouter.ai
- Gere uma chave de API (Free tier disponível)
- Dentro da VM
containers, exporte a chave:
export OPENROUTER_API_KEY="sk-or-v1-xxxxxxxxxxxxxxxxxxxxxxxx"Para persistir entre sessões:
echo 'export OPENROUTER_API_KEY="sk-or-v1-xxx"' >> ~/.bashrc
source ~/.bashrclabs/
├── Vagrantfile # Definição das 3 VMs
├── README.md # Este arquivo
├── provision/
│ ├── containers.sh # Provisionamento da VM containers
│ ├── graylog.sh # Provisionamento da VM graylog
│ └── opensearch.sh # Provisionamento da VM opensearch
├── opensearch/
│ └── docker-compose.yml # Stack OpenSearch + Dashboards
├── lab-07/
│ ├── analisa-arquivo.py # Script: análise de arquivo local com IA
│ ├── analisa-graylog.py # Script: busca no Graylog + IA
│ └── analisa-opensearch.py # Script: busca no OpenSearch + IA
└── scripts/
└── simula-incidente.sh # Gerador de eventos de segurança (LAB 7.4)