Pular para conteúdo
Logo CEPTRO.br

Medições NIC.br

Configuração do medidor#

O medidor SIMET precisa ser configurado, para seu correto funcionamento, conforme descrito a seguir.

Atenção

Incorreções na parametrização, como tabelas DMI com erro de preenchimento ou preenchimento incompleto pelo fabricante/integrador, geram vício oculto em sondas e roteadores SIMETBox e caracterizam violação dos termos de uso do sistema SIMET .

Nota

O NIC.br dispõe-se a ajudar na verificação final da configuração mediante suporte best-effort por email, ou suporte de desenvolvimento em caso de acordo de cooperação técnica com o fabricante ou integrador.

Nota

1. A parametrização para Raspberry Pi utilizando a versão atual do Raspberry Pi OS está em testes. Entre em contato para obter instruções específicas. Pacote: simetbox-deb-rpi;

2. Pacotes simetbox-deb-* estão em desenvolvimento. Estes facilitam largamente a parametrização de Sondas SIMET baseadas em sistema operacional Debian ou Ubuntu.

Arquivos de configuração#

O medidor SIMET obtém vários itens de configuração a partir de arquivos de texto UTF-8, com marcadores de fim-de-linha padrão UNIX (LF). NÃO DEVEM ser utilizados marcadores de fim-de-linha no padrão do MS-DOS / Microsoft Windows (CR+LF).

Os arquivos de configuração do medidor SIMET são processados na ordem listada abaixo.

Arquivos lidos por último podem modificar itens de configuração definidos por arquivos lidos anteriormente e por isso a configuração padrão é lida primeiro:

/opt/simet/lib/simet/simet-ma.conf

Configuração padrão do motor de medição. Este arquivo NÃO DEVE ser alterado.

/opt/simet/lib/simet/conf.d/

Pasta com vários arquivos de configuração, lidos em ordem definida pelo LOCALE “C”. É RECOMENDADO prefixar cada arquivo com um número de dois dígitos, garantindo a ordem em que serão processados. Os nomes dos arquivos DEVEM terminar em “.conf”, ou serão ignorados.

Separar em arquivos diferentes as parametrizações comuns a todos os medidores de um mesmo fabricante, de uma mesma plataforma, de um mesmo modelo, e específicas para um exato equipamento.

/opt/simet/etc/simet/simet-ma.conf

Configurações específicas do equipamento, particularmente útil para itens de configuração que sejam ajustáveis via UI do medidor.

Formato dos arquivos#

Os arquivos de configuração contém um item de configuração por linha, no formato CHAVE=”VALOR”. Restrinja-se a chaves e valores válidos para shells POSIX.

Linhas iniciadas por “#” são comentários, utilize UTF-8 válido para evitar problemas.

Exemplo de um arquivo de configuração (inclua este arquivo em todas as Sondas SIMET que forem baseadas em Debian ou Ubuntu):

/opt/simet/lib/simet/conf.d/15-simetbox.conf

# SIMETBox profile / dedicated measurement probe

# MA family is "embedded", because its main purpose is to
# be a measurement agent, and the measurement engine can and
# will tune the entire system for measurements, if need be.
SIMET2_AGENT_FAMILY="embedded"

# Hostnames of SIMETBoxes are registered with the central system
# to help user support.
SIMET2_MAHOSTNAME="auto"

Variáveis de configuração#

SIMET2_FIRMWARE_VENDOR

Exemplo: SIMET2_FIRMWARE_VENDOR=”Ficticia”.

Indica o responsável pela geração do firmware, e também por gerar novas versões de firmware com correções do motor de medição, e atualizações de segurança dos outros componentes.

DEVE conter o nome do fabricante do equipamento, se o agente de medição SIMET foi embarcado no firmware original do fabricante [pelo fabricante]. Caso contrário, deve conter o nome do integrador que é responsável pelo firmware e suas atualizações.

SIMET2_DEVICE_MODEL

Exemplo: SIMET2_DEVICE_MODEL=“Ficticia WRT-99BNG v3”

DEVE conter o nome completo do equipamento e versão de hardware, incluir o nome do fabricante do equipamento. PODE incluir o model number, etc.

SIMET2_MAHOSTNAME

Exemplo: SIMET2_MAHOSTNAME=”auto”

Define o hostname (opcional) a ser utilizado no registro do medidor SIMET. Particularmente útil no caso de agente de medição SIMET instalado em computador de uso geral. Neste caso, o RECOMENDADO é que seja identificado em qual computador foi instalado.

Em Sondas SIMET/SIMETBox costuma ser utilizado para identificar o local e enlace de Internet onde foi instalado o medidor.

  • “auto”: envia o hostname configurado no sistema operacional.

  • Vazio: não envia um hostname.

SIMET2_MADESCRIPTION

Exemplo: SIMET2_MADESCRIPTION=”Medidor escola INEP12345678”

Define uma descrição (opcional) para o medidor, a ser utilizada no registro do medidor SIMET.

Útil para o suporte técnico ou para o dono do medidor, para informar detalhes sobre o medidor ou local de instalação.

SIMET2AGENT_ENVNAME, SIMET2_AGENT_ENVVERSION

Em Linux, estes itens de configuração são definidos automaticamente utilizando o comando “lsb_release”, ou diretamente a partir das informações de release do OpenWRT.

ENVNAME DEVE conter o nome abreviado do sistema operacional (por exemplo: “Debian”, “Ubuntu”, “OpenWRT”, “Mint”).

ENVVERSION DEVE conter o nome completo com versão do sistema operacional (por exemplo: “Debian GNU/Linux 12 (bookworm)”).

Nota

Ajustar conforme orientado acima apenas quando o ajuste automático não estiver funcional na plataforma. Ao portar o medidor SIMET para outros sistemas operacionais, o ajuste automático desses itens de configuração DEVE ser implementado para o novo sistema operacional.

Reconhecer o ambiente via DMI#

Esta funcionalidade ainda não está implementada no motor de medição, entre em contato caso seja de interesse para a sua plataforma.

Reconhecer o ambiente via script#

O medidor SIMET utilizará programas executáveis (scripts ou compilados) instalados pelo integrador/fabricante ao detectar a existência destes.

Isto é feito para obter diversas informações da plataforma, exceto para aquelas que tenham sido definidas via item de configuração, conforme descrito anteriormente.

Estes scripts DEVEM possuir permissão de execução para root e para o usuário não privilegiado do medidor (“nicbr-simet”).

1. Script Plataform Secret

/opt/simet/lib/simet/vendor/get_platform_simet_secret
/usr/lib/simet/vendor/get_platform_simet_secret

DEVE estar presente caso um identificador único e permanente do dispositivo (não alterado mesmo em caso de atualização de firmware ou BIOS/UEFI) não possa ser corretamente obtido pelo medidor via tabelas DMI.

O programa/script deve retornar um identificador único (um segredo) que precisa estar armazenado em memória não volátil protegida do equipamento.

Uma vez gerado, este identificador NÃO DEVE mais mudar, mesmo no caso de atualização de firmware, recuperação de emergência do firmware/sistema operacional e reset de fábrica.

PODE ser gerado em fábrica, ou da primeira vez que o script/programa for executado.

Endereços MAC e derivações matemáticas do mesmo NÃO DEVEM ser utilizadas.

Esta informação é utilizada para gerar a “chave SIMET” (“virtual label” no código fonte) do medidor, e não é transmitida para fora do equipamento. A “chave SIMET” é obtida através de uma transformação criptográfica (one-way hash) em esquema PBKDF2 ou similar, para proteger o identificador único.

Para maiores detalhes, consulte o exemplo.

2. Script Plataform Label

/opt/simet/lib/simet/vendor/get_platform_simet_label
    /usr/lib/simet/vendor/get_platform_simet_label

DEVE estar presente no caso onde o dispositivo possui uma etiqueta física, impressa e colada em seu exterior (“etiqueta SIMET”), onde consta o MAC do equipamento e a “chave SIMET”, gerada pelo fabricante e armazenada em área de configuração não-volátil da FLASH do equipamento.

Se a “chave SIMET” foi calculada pelo medidor SIMET, o script get_platform_simet_label NÃO DEVE estar presente, ou deve retornar exit status 1.

Para maiores detalhes, consulte o exemplo.

Atenção

Utilize esta funcionalidade apenas após consultar a equipe SIMET do NIC.br.

3. Script Device Model

Atenção

Este programa não é suportado no OpenWRT. Neste, o próprio sistema operacional DEVE estar detectando corretamente o device_model.

/opt/simet/bin/simet_get_device_model.sh

DEVE estar presente quando o modelo do equipamento não puder ser determinado a partir das tabelas de informação DMI.

Retorna, em stdout, uma só linha e separados por espaço:

  • nome do fabricante;
  • modelo;
  • versão de hardware do equipamento.

Retorna exit status zero em caso de sucesso, e não-zero em caso de falha. Envia mensagens de erro para stderr.

Veja a definição de SIMET2_DEVICE_MODEL nas Variáveis de Configuração para mais detalhes e exemplos. Veja também o exemplo em código fonte, que é funcional em plataformas que retornem em /proc/cpuinfo uma linha “Model:” com seu fabricante e modelo.

4. Script MAC Address

/opt/simet/bin/simet_get_mac_address.sh
Esta presente sempre que o equipamento possuir um endereço MAC impresso em etiqueta.

O programa retorna, em stdout, uma única linha com o endereço MAC do dispositivo que está presente na etiqueta física do mesmo, e retorna exit status zero.

Caso a etiqueta contenha múltiplos endereços MAC, retorna o “visivelmente mais importante” (o primeiro deles, ou um que esteja em destaque por algum outro motivo).

Erros são retornados em stderr, e em caso de erro o programa/script retorna exit status não-zero.

Atenção

Este programa não é suportado no OpenWRT. Neste, identifique na Device Tree o nodo que provê o MAC address impresso na etiqueta do dispositivo ou ajuste a parametrização do mesmo para que retorne a informação correta na API, conforme descrito em Script MAC Address.

No OpenWRT é necessário que o medidor SIMET obtenha o MAC impresso na etiqueta através da sequência de comandos shell:

. /lib/functions.sh && 
. /lib/functions/system.sh &&
label_mac_addr=$(get_mac_label)

Na impossibilidade, entre em contato com a equipe SIMET do NIC.br.

Relógio de tempo real#

Antes de iniciar os serviços do medidor SIMET, o relógio do sistema DEVE ser ajustado pelo sistema operacional para a data e horas corretas.

Um erro muito grande no relógio de sistema impede o correto funcionamento das camadas https e DNSSEC do sistema (inclusive do medidor).

É RECOMENDADO que sondas SIMET possuam um RTC1 com bateria, que mantenha a data e hora aproximadamente correta mesmo quando o equipamento for desligado.

Caso o equipamento não possua RTC com bateria, é RECOMENDADO que este utilize o sistema de arquivos para uma aproximação de tempo inicial, seguido de ajuste SNTP2 ou HTP3, assim que obtiver conexão com a Internet, e utilizar NTS4 ou NTP para ajuste continuado do relógio de sistema.

Sondas SIMET DEVEM utilizar NTP ou NTS para ajuste contínuo do relógio (é RECOMENDADO que utilize servidores do projeto NTP.br).

PODE-SE usar outras fontes de temporização ainda melhores (GPS, PPTP, etc).


  1. 2- Real Time Clock 

  2. 3- Simple Network Time Protocol (SNTP): ajusta o relógio do sistema apenas uma vez contactando, um servidor NTP. Precisa ser executado periodicamente para compensar erros acumulados pelo relógio do sistema. Não é capaz de ajustar a frequência do relógio do sistema. 

  3. 4- Http Time Protocol: Realiza um acesso a servidor(es) http e utiliza a timestamp retornada pelo servidor no cabeçalho http “Date”. Deve ser utilizado apenas se SNTP for impossível. 

  4. 5- NTS: “Secure NTP”. Mais informações