Entrar ou criar conta

Laboratório em bancada

Laboratório: Integração Modbus TCP e OPC UA com Node-RED e Wireshark em Rede Segmentada

Você irá implementar uma rede simulada com um servidor Modbus TCP, um servidor OPC UA open62541 e um fluxo de integração Node-RED, monitorando o tráfego com Wireshark. Em cerca de 2 horas, terá uma visão prática de protocolos industriais, segmentação e monitoramento.

Redes industriais: Modbus, OPC UA, segmentação e IEC 62443
Ligado ao treinamento Redes industriais: Modbus, OPC UA, segmentação e IEC 62443
Duração estimada
120 min
Passos
10
Validações
5
Objetivo

Este laboratório demonstra, na prática, como integrar dispositivos industriais simulados usando Modbus TCP e OPC UA, segmentar a rede conforme recomendações da IEC 62443 e monitorar o tráfego OT com Wireshark. Você irá configurar servidores, criar fluxos de dados e observar como as camadas se comunicam, identificando pontos de integração e possíveis riscos. O foco é entender a arquitetura, a segmentação e o monitoramento em ambientes OT, usando apenas ferramentas abertas.

Topologia

Três máquinas virtuais (ou hosts): uma simula um servidor Modbus TCP (IP 192.168.10.10), outra um servidor OPC UA open62541 (IP 192.168.20.20), e a terceira executa Node-RED (IP 192.168.30.30) para integrar ambos. Todas conectadas via bridge ou rede interna. Wireshark instalado na máquina Node-RED para capturar o tráfego. Cada segmento de rede representa uma zona diferente, conforme IEC 62443.

         [Modbus TCP Server]
             192.168.10.10
                   |
          [  Roteador/Firewall  ]
                   |
         [OPC UA Server]
             192.168.20.20
                   |
          [  Roteador/Firewall  ]
                   |
             [Node-RED]
             192.168.30.30
                   |
             [Wireshark]

Equipamentos e software

ItemRequisito, licença ou versão
VM ou PC para Modbus1 vCPU, 512MB RAM, 1 NIC, Ubuntu 22.04 ou similar
VM ou PC para OPC UA1 vCPU, 512MB RAM, 1 NIC, Ubuntu 22.04 ou similar
VM ou PC para Node-RED/Wireshark2 vCPU, 1GB RAM, 1 NIC, Ubuntu 22.04 ou similar
Node-REDApache 2.0 · a versão estável atual
open62541MPLv2 · a versão estável atual
WiresharkGPLv2 · a versão estável atual
mbserver (Modbus TCP server)MIT · a versão estável atual

Roteiro

  1. Preparar as máquinas virtuais e rede

    Crie três VMs (ou use três PCs) em uma rede interna, cada uma com um IP fixo conforme a topologia. Separe as sub-redes para simular zonas distintas, conforme IEC 62443.

    Consulte a documentação do seu hipervisor para criar redes internas e atribuir IPs estáticos.

    O que você deve ver: Cada máquina responde a ping apenas de hosts autorizados, conforme as regras de firewall.

  2. Instalar o servidor Modbus TCP (mbserver)

    No host 192.168.10.10, instale o mbserver para simular um equipamento Modbus TCP.

    sudo apt update && sudo apt install python3-pip
    pip3 install mbserver

    O que você deve ver: mbserver instalado e disponível para execução.

  3. Executar o servidor Modbus TCP

    Inicie o servidor Modbus TCP para aceitar conexões na porta padrão (502).

    python3 -m mbserver --host 192.168.10.10 --port 502

    O que você deve ver: Mensagem indicando que o servidor está ouvindo em 192.168.10.10:502.

  4. Instalar o servidor OPC UA open62541

    No host 192.168.20.20, baixe e compile o open62541 simples server de exemplo.

    sudo apt update && sudo apt install git build-essential cmake
    cd ~
    git clone https://github.com/open62541/open62541.git
    cd open62541
    mkdir build && cd build
    cmake .. -DBUILD_EXAMPLES=ON
    make

    O que você deve ver: Compilação concluída, binário simple_server disponível em build/bin.

  5. Executar o servidor OPC UA

    Inicie o servidor OPC UA de exemplo.

    ./bin/examples/server_simple

    O que você deve ver: Mensagem indicando que o servidor está ouvindo (geralmente porta 4840).

  6. Instalar Node-RED e pacotes Modbus/OPC UA

    No host 192.168.30.30, instale Node-RED e os nodes contrib para Modbus e OPC UA.

    sudo apt update && sudo apt install nodejs npm
    sudo npm install -g --unsafe-perm node-red
    node-red
    # Em outro terminal:
    npm install node-red-contrib-modbus
    npm install node-red-contrib-opcua

    O que você deve ver: Node-RED rodando em http://localhost:1880, nodes Modbus e OPC UA disponíveis no editor.

  7. Criar fluxo Node-RED: Modbus para OPC UA

    No editor web do Node-RED, crie um fluxo que lê um registrador do servidor Modbus e publica o valor em um nó OPC UA Client conectado ao servidor OPC UA.

    Arraste um node 'modbus-read' (configurado para 192.168.10.10:502), conecte a um node 'opcua-client' (configurado para 192.168.20.20:4840). Consulte a documentação dos nodes para detalhes de configuração.

    O que você deve ver: Fluxo salvo e implantado, sem erros nos nodes.

  8. Instalar e iniciar Wireshark

    No host Node-RED, instale e inicie o Wireshark para monitorar o tráfego das interfaces de rede.

    sudo apt update && sudo apt install wireshark
    gsudo wireshark &

    O que você deve ver: Wireshark aberto, interfaces de rede listadas para captura.

  9. Capturar e filtrar tráfego Modbus e OPC UA

    No Wireshark, inicie a captura na interface da VM. Use filtros 'tcp.port == 502' para Modbus e 'tcp.port == 4840' para OPC UA.

    Filtros: tcp.port == 502 ou tcp.port == 4840

    O que você deve ver: Pacotes dos protocolos sendo exibidos ao acionar o fluxo Node-RED.

  10. Configurar firewall entre zonas

    Implemente regras de firewall (iptables ou ufw) para permitir apenas o tráfego necessário entre as zonas, simulando conduítes IEC 62443.

    sudo ufw allow from 192.168.30.30 to any port 502 proto tcp
    sudo ufw allow from 192.168.30.30 to any port 4840 proto tcp
    sudo ufw deny from any to any

    O que você deve ver: Somente Node-RED consegue acessar Modbus e OPC UA; outros hosts são bloqueados.

Como saber que funcionou

TesteComandoCritério
Verificar conexão Modbus TCPtelnet 192.168.10.10 502Conexão aceita; se não, fluxo Node-RED não funcionará.
Verificar conexão OPC UAtelnet 192.168.20.20 4840Conexão aceita; se não, fluxo Node-RED não funcionará.
Observar dados no fluxo Node-REDUse node 'debug' conectado ao Modbus-readValores lidos do Modbus aparecem no debug.
Observar pacotes no WiresharkFiltros: tcp.port == 502 ou tcp.port == 4840Pacotes visíveis ao acionar o fluxo.
Testar bloqueio de acesso externoDe outro host, tente conectar nas portas 502/4840Conexão negada, firewall funcionando.

Troubleshooting

SintomaCausa provávelCorreção
Node-RED não conecta ao ModbusFirewall bloqueando porta 502 ou IP erradoVerifique IPs, regras de firewall e se o servidor está rodando.
Node-RED não conecta ao OPC UAServidor OPC UA não iniciado ou porta bloqueadaConfirme execução do open62541 e regras de firewall.
Wireshark não captura pacotesInterface errada ou falta de permissãoExecute Wireshark como root e selecione a interface correta.
Fluxo Node-RED apresenta erro de autenticação OPC UAConfiguração de segurança ou endpoint incorretoConsulte a documentação do node-red-contrib-opcua para ajustar endpoint e modo de segurança.
mbserver não inicia na porta 502Permissão insuficiente (porta <1024)Execute como root ou use porta acima de 1024 para testes.

Segurança e hardening

  • Nunca exponha portas 502 (Modbus) e 4840 (OPC UA) sem firewall em produção.
  • Modbus TCP não possui autenticação nativa; use segmentação e firewall.
  • OPC UA suporta criptografia e autenticação; ative sempre que possível.
  • Node-RED deve ser protegido por senha e restrição de IP.
  • Desative ou restrinja o acesso remoto ao Wireshark.
  • Aplique hardening básico no sistema operacional das VMs (SSH, atualizações, usuários).

Checklist final

Referências

  1. OPC UA Specification
  2. Node-RED Documentation
  3. Wireshark User Guide