Entrar ou criar conta

ULC Lab · implementação reproduzível

Laboratório: Monitoramento e controle de políticas de acesso em dispositivos IoT urbanos com Wazuh e OPA

Você irá implantar um ambiente simulado de cidade inteligente com sensores IoT, monitorados pelo Wazuh e com controle de acesso centralizado via Open Policy Agent. Em cerca de 2 horas, terá um pipeline de segurança open source funcional, validando eventos e políticas em tempo real.

Segurança avançada em plataformas de cidades inteligentes: open source na prática
Ligado ao treinamento Segurança avançada em plataformas de cidades inteligentes: open source na prática
ULC-LAB-SMAR-0004 · Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
12
Validações
4
Versões da documentação consultada
Wazuh 4.7 · Open Policy Agent v0.59.0 · Ubuntu Server 20.04 LTS
Objetivo

Demonstrar, na prática, como integrar Wazuh e Open Policy Agent para monitorar eventos de segurança e aplicar políticas de acesso em dispositivos IoT típicos de cidades inteligentes. O laboratório cobre desde a instalação até a validação de logs e decisões de política, usando apenas software livre e configurações abertas. O foco é mostrar como proteger dados sensíveis e impedir acessos indevidos em ambientes urbanos digitais.

Topologia

Três VMs: uma simula sensores IoT (192.168.56.10), outra roda o Wazuh Manager (192.168.56.20), e a terceira executa o OPA (192.168.56.30). O sensor envia logs para o Wazuh, que monitora e alerta. O OPA recebe requisições de decisão de acesso do sensor, aplicando políticas centralizadas.

         +-------------------+
         |  VM1: IoT Sensor  |
         | 192.168.56.10     |
         +--------+----------+
                  |
                  v
         +--------+----------+
         |  VM2: Wazuh       |
         | 192.168.56.20     |
         +--------+----------+
                  |
                  v
         +--------+----------+
         |  VM3: OPA         |
         | 192.168.56.30     |
         +-------------------+

Equipamentos e software

ItemRequisito, licença ou versão
VM ou servidor x86_641 vCPU, 1GB RAM, 10GB disco, 1 interface de rede, Ubuntu Server 20.04 ou superior
WazuhGPLv2 · 4.7
Open Policy AgentApache 2.0 · v0.59.0
Ubuntu ServerGPLv2 · 20.04 LTS

Roteiro

  1. Preparar as VMs e rede

    Crie três VMs com Ubuntu Server 20.04+, conectadas à mesma rede privada (exemplo: 192.168.56.0/24). Isso simula um ambiente isolado e controlado.

    O que você deve ver: As três VMs se comunicam entre si via ping.

  2. Instalar o Wazuh Manager na VM2

    O Wazuh Manager centraliza logs e eventos de segurança. Siga a documentação oficial para instalar.

    curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh
    sudo bash wazuh-install.sh -a

    O que você deve ver: Serviço Wazuh ativo. Acesse https://192.168.56.20:55000 para ver o painel (ignore HTTPS warning).

  3. Instalar o Wazuh Agent na VM1 (IoT Sensor)

    O agente coleta logs e envia para o Manager. Instale e registre o agente.

    curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh
    sudo bash wazuh-install.sh -a --agent
    sudo /var/ossec/bin/agent-auth -m 192.168.56.20

    O que você deve ver: Agente registrado no Manager. No painel do Wazuh, VM1 aparece como agente ativo.

  4. Configurar o Wazuh para monitorar tentativas de acesso SSH no sensor

    Adicione monitoramento do arquivo /var/log/auth.log no agente. Isso permite detectar tentativas de login suspeitas.

    sudo nano /var/ossec/etc/ossec.conf
    <!-- Adicione dentro de <localfile> -->
    <localfile>
      <log_format>syslog</log_format>
      <location>/var/log/auth.log</location>
    </localfile>
    sudo systemctl restart wazuh-agent

    O que você deve ver: Tentativas de login SSH são reportadas no painel do Wazuh.

  5. Instalar o Open Policy Agent na VM3

    O OPA centraliza decisões de política. Instale o binário oficial.

    curl -L -o opa https://openpolicyagent.org/downloads/v0.59.0/opa_linux_amd64_static
    chmod +x opa
    sudo mv opa /usr/local/bin/

    O que você deve ver: Comando 'opa version' retorna a versão instalada.

  6. Criar uma política OPA para controlar acesso SSH

    Implemente uma política simples: só usuários do grupo 'iot_admins' podem acessar via SSH.

    sudo mkdir -p /etc/opa
    sudo nano /etc/opa/ssh_policy.rego
    # Conteúdo:
    package ssh
    allow {
      input.user == "iot_admin"
    }
    

    O que você deve ver: Arquivo ssh_policy.rego criado.

  7. Executar o OPA como serviço REST

    Inicie o OPA ouvindo na porta 8181 e carregando a política.

    sudo nohup opa run --server --addr :8181 /etc/opa/ssh_policy.rego &

    O que você deve ver: OPA ouvindo em http://0.0.0.0:8181/v1/data/ssh/allow

  8. Simular requisição de decisão de acesso do sensor para o OPA

    No VM1, envie uma requisição para o OPA simulando login SSH de diferentes usuários.

    curl -X POST http://192.168.56.30:8181/v1/data/ssh/allow -d '{"input": {"user": "iot_admin"}}'
    curl -X POST http://192.168.56.30:8181/v1/data/ssh/allow -d '{"input": {"user": "visitor"}}'

    O que você deve ver: Primeira requisição retorna 'true', segunda retorna 'false'.

  9. Integrar Wazuh e OPA via alerta customizado

    Configure o Wazuh para disparar um script ao detectar login SSH, consultando o OPA antes de permitir acesso (simulado).

    sudo nano /var/ossec/etc/active-response/bin/opa_ssh_check.sh
    # Exemplo de script (consulte a documentação para detalhes de integração real)
    #
    #!/bin/bash
    USER=$1
    RESULT=$(curl -s -X POST http://192.168.56.30:8181/v1/data/ssh/allow -d '{"input": {"user": "'$USER'"}}' | grep true)
    if [ -z "$RESULT" ]; then
      exit 1
    else
      exit 0
    fi
    sudo chmod +x /var/ossec/etc/active-response/bin/opa_ssh_check.sh

    O que você deve ver: Script criado e executável. Consulte a documentação do Wazuh para acionar scripts em respostas automáticas.

  10. Testar o pipeline: tentativa de login não autorizado

    Tente logar via SSH na VM1 como 'visitor'. O Wazuh detecta, consulta o OPA e bloqueia (simulado pelo script).

    ssh visitor@192.168.56.10

    O que você deve ver: Acesso negado. Alerta gerado no Wazuh.

  11. Testar o pipeline: tentativa de login autorizado

    Tente logar via SSH na VM1 como 'iot_admin'. O Wazuh detecta, consulta o OPA e permite acesso.

    ssh iot_admin@192.168.56.10

    O que você deve ver: Acesso permitido. Alerta de acesso autorizado no Wazuh.

  12. Verificar logs e decisões no Wazuh e OPA

    Consulte os logs do Wazuh e do OPA para validar o fluxo de decisão.

    sudo tail -f /var/ossec/logs/ossec.log
    sudo tail -f /var/log/syslog | grep opa

    O que você deve ver: Logs mostram eventos de acesso e decisões do OPA.

Como saber que funcionou

TesteComandoCritério
OPA responde corretamente a requisições de decisãocurl -X POST http://192.168.56.30:8181/v1/data/ssh/allow -d '{"input": {"user": "iot_admin"}}'Resposta JSON: {"result": true}
Wazuh detecta tentativas de login SSHsudo tail /var/ossec/logs/alerts/alerts.json | grep sshEntradas de alerta para logins SSH aparecem
Bloqueio de acesso não autorizadossh visitor@192.168.56.10Acesso negado, alerta no Wazuh
Permissão de acesso autorizadossh iot_admin@192.168.56.10Acesso permitido, alerta positivo no Wazuh

Troubleshooting

SintomaCausa provávelCorreção
OPA não responde na porta 8181OPA não foi iniciado ou firewall bloqueandoVerifique se o OPA está rodando e libere a porta no firewall
Agente Wazuh não aparece no painelErro na autenticação do agenteReexecute o agent-auth apontando para o Manager
Script de integração não executaPermissão de execução ausenteAplique chmod +x no script
Alertas de SSH não aparecemConfiguração de monitoramento de log ausenteRevise o bloco <localfile> no ossec.conf e reinicie o agente

Segurança e hardening

  • Utilize senhas fortes para todos os usuários de teste
  • Restrinja o acesso à porta 8181 do OPA apenas para hosts autorizados
  • Remova scripts e usuários de teste após o laboratório
  • Aplique atualizações de segurança no sistema operacional antes do uso

Checklist final

Referências

  1. Wazuh Documentation · Wazuh Inc. (documentation.wazuh.com)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
1 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.