TR-069 – Instalação do GenieACS no Debian 11 Bullseye

Cliente TR-069 (Relatório Técnico 069) é uma implementação do CWMP (CPE WAN Management Protocol) para gerenciar dispositivos de usuários finais de forma centralizada. Este CWMP é executado em uma rede IP usando HTTP ou HTTPS para se comunicar com dispositivos ACS (Sistema de configuração automática), onde ACS é um sistema usado para monitorar, configurar e atualizar o firmware de dispositivos remotos.

Em geral, a função do TR-069 é mais amplamente usada em ISPs para gerenciamento de dispositivos do usuário final. Alguns dispositivos que estão atualmente começando a implementar as funções do TR-069, como FTTH CPE/ONT, WIMAX CPE, também podem ser usados ​​para monitoramento de VoIP ou CFTV. E no próprio MikroTik, a função Cliente TR-069 também foi adicionada a partir do RouterOS versão 6.38.

Requesitos:
Debian 11 Bullseye – Instalação Limpa

Leitura recomendada:
Configurando interface de rede no Debian 11
Como melhorar a produtividade no seu Debian após instalação

Ajustando o repositório

# vim /etc/apt/sources.list

Adicione contrib non-free aos repositórios

# deb http://YOUR_MIRROR/debian/ bullseye main contrib non-free
# deb-src http://YOUR_MIRROR/debian/ bullseye main contrib non-free

deb http://deb.debian.org/debian/ bullseye main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye main contrib non-free

deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free

deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free

Atualize o repositório:

# apt update

Se tiver algum pacote para atualização também faça:

# apt upgrade -y

Intale os firmware-linux*

# apt install firmware-linux firmware-linux-free firmware-linux-nonfree -y

Reinicie seu servidor para carregar os novos módulos do kernel

# reboot

Pré-requisitos:
– Node.js
– MongoDB

https://genieacs.com
http://docs.genieacs.com/

# apt install curl gnupg2 wget

Instalção do Node.js

Repositório Node Js

# curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
# apt install nodejs -y

Verifique a versão

# npm -v

Veja se não tem atualização

# npm search -g npm

Exemplo colocando a para atualizar (Ajuste a versão)

# npm install -g npm@9.6.7

Instalação do MongoDB

Adicione o repositorio do MongoD (Sim é Buster Bullseye até o momento out/2021 não tem)

Versão 5 (Recomendada)

# cd /tmp
# echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main" | tee /etc/apt/sources.list.d/mongodb-org-5.0.list
# curl -sSL https://www.mongodb.org/static/pgp/server-5.0.asc  -o mongoserver.asc
# gpg --no-default-keyring --keyring ./mongo_key_temp.gpg --import ./mongoserver.asc
# gpg --no-default-keyring --keyring ./mongo_key_temp.gpg --export > ./mongoserver_key.gpg
# mv mongoserver_key.gpg /etc/apt/trusted.gpg.d/

Versão 4 (Alguns relatos que no vmware não teve jeito de fazer o mongodb iniciar e a v4 funcionou)

# cd /tmp
# echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list
# wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add - 

Atualize o repositório e instale o mongodb bem como a estensão do nodejs

# apt update
# apt install mongodb-org node-mongodb

Ative o serviço para iniciar com o boot, inicie o serviço e verifique se o mesmo iniciou com êxito.

# systemctl enable mongod
# systemctl start mongod
# systemctl status mongod

Instalação do GenieACS

Procure se o pacote existe:

# npm search -g genieacs
NAME                      | DESCRIPTION          | AUTHOR          | DATE       | VERSION  | KEYWORDS       
genieacs                  | A TR-069 Auto…       | =zaidka         | 2022-08-22 | 1.2.9    | TR-069 CWMP ACS
@anlix-io/genieacs-sim    | TR-069 client…       | =anlix-io       | 2023-05-30 | 1.4.0    | TR-069 CWMP ACS Simulator
genieacs-sim              | TR-069 client…       | =zaidka         | 2017-02-05 | 0.9.0    | TR-069 CWMP ACS

Instale o genieacs

# npm install -g genieacs
added 129 packages in 8s

12 packages are looking for funding
  run `npm fund` for details

Crie um usuário do sistema para executar daemons GenieACS

# useradd --system --no-create-home --user-group genieacs

Crie um diretório para salvar extensões e arquivo de ambiente
Usaremos o diretório /opt/genieacs/ext/ para armazenar scripts de extensão (se houver).

# mkdir /opt/genieacs
# mkdir /opt/genieacs/ext

Crie o arquivo /opt/genieacs/genieacs.envpara que irá conter as opções de configuração, que passamos ao GenieACS como variáveis de ambiente.

# vim /opt/genieacs/genieacs.env

Adicione:

GENIEACS_CWMP_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-cwmp-access.log
GENIEACS_NBI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-nbi-access.log
GENIEACS_FS_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-fs-access.log
GENIEACS_UI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-ui-access.log
GENIEACS_DEBUG_FILE=/var/log/genieacs/genieacs-debug.yaml
NODE_OPTIONS=--enable-source-maps
GENIEACS_EXT_DIR=/opt/genieacs/ext
GENIEACS_UI_JWT_SECRET=secret

Defina a propriedade e as permissões do arquivo:

# chown genieacs. /opt/genieacs -R
# chmod 600 /opt/genieacs/genieacs.env

Criar diretório de logs

# mkdir /var/log/genieacs
# chown genieacs. /var/log/genieacs

Configure os serviços no systemd

# systemctl edit --force --full genieacs-cwmp

Adicione:

[Unit]
Description=GenieACS CWMP
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-cwmp

[Install]
WantedBy=default.target
# systemctl edit --force --full genieacs-nbi

Adicione:

[Unit]
Description=GenieACS NBI
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-nbi

[Install]
WantedBy=default.target
# systemctl edit --force --full genieacs-fs

Adicione:

[Unit]
Description=GenieACS FS
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-fs

[Install]
WantedBy=default.target
# systemctl edit --force --full genieacs-ui

Adicione:

[Unit]
Description=GenieACS UI
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-ui

[Install]
WantedBy=default.target

Configure o logrotate para rotação dos log gerados

# vim /etc/logrotate.d/genieacs
/var/log/genieacs/*.log /var/log/genieacs/*.yaml {
    daily
    rotate 30
    compress
    delaycompress
    dateext
}

Ative e inicie serviços, e revise a mensagem de status de cada um para verificar se os serviços estão sendo executados com êxito.

# systemctl enable genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui
# systemctl start genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui
# systemctl status genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui --no-pager
● genieacs-cwmp.service - GenieACS CWMP
     Loaded: loaded (/etc/systemd/system/genieacs-cwmp.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-10-29 11:33:02 -03; 12s ago
   Main PID: 2487 (node)
      Tasks: 25 (limit: 2305)
     Memory: 155.5M
        CPU: 4.957s
     CGroup: /system.slice/genieacs-cwmp.service
             ├─2487 node /usr/bin/genieacs-cwmp
             ├─2494 /usr/bin/node /usr/bin/genieacs-cwmp
             └─2495 /usr/bin/node /usr/bin/genieacs-cwmp

● genieacs-nbi.service - GenieACS NBI
     Loaded: loaded (/etc/systemd/system/genieacs-nbi.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-10-29 11:33:30 -03; 11ms ago
   Main PID: 2531 (node)
      Tasks: 6 (limit: 2305)
     Memory: 840.0K
        CPU: 3ms
     CGroup: /system.slice/genieacs-nbi.service
             └─2531 node /usr/bin/genieacs-nbi

● genieacs-fs.service - GenieACS FS
     Loaded: loaded (/etc/systemd/system/genieacs-fs.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-10-29 11:33:41 -03; 12ms ago
   Main PID: 2596 (node)
      Tasks: 6 (limit: 2305)
     Memory: 840.0K
        CPU: 3ms
     CGroup: /system.slice/genieacs-fs.service
             └─2596 node /usr/bin/genieacs-fs

● genieacs-ui.service - GenieACS UI
     Loaded: loaded (/etc/systemd/system/genieacs-ui.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-10-29 11:33:51 -03; 28ms ago
   Main PID: 2639 (node)
      Tasks: 7 (limit: 2305)
     Memory: 7.7M
        CPU: 20ms
     CGroup: /system.slice/genieacs-ui.service
             └─2639 node /usr/bin/genieacs-ui

Acesse em seu navegador: http://IP:3000

Clique em: ABRACADABRA!

Clique em: Open Sesame!

Entre com: admin/admin

Grupo do telegram: ACS/CWMP – TR069 – Brasil (PT-Br)

Gostou? Quer ajudar manter o blog? 🙂

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

34 Resultados

  1. Léo Carvalho disse:

    Como faria para o genieacs fazer assim:
    Cliente reseta equipamento ele subir as configurações novamente, precisa fazer algo ou já seria nativo?

    • Montanaro Mendes - HSTI Network disse:

      Léo, nesse caso o seu equipamento precisa ser ter a feature de preset. Essa feature permite que você “instale” uma nova configuração de fábrica, que quando seu cliente resetar o equipamento, fará que ele volte para a configuração que você fez.

  2. Jocelio Almeida disse:

    Pra quem ta tentando de todo jeito subir no debian12 e não consegue segue umas modificações.. para SOMAR com o post, todos os creditos são do Rudmar

    Instalação do Genic ACS

    apt-get update
    apt-get upgrade -y

    apt-get install gnupg curl rsyslog -y

    curl -fsSL https://pgp.mongodb.com/server-7.0.asc | gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg –dearmor

    echo “deb [signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/7.0 main” | tee /etc/apt/sources.list.d/mongodb-org-7.0.list

    echo “deb http://security.ubuntu.com/ubuntu focal-security main” | tee /etc/apt/sources.list.d/focal-security.list

    apt update

    //// note que teve um erro com a chave pública para resolver

    apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 871920D1991BC93C
    apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 3B4FE6ACC0B21F32

    apt-get update

    ///// Instalando libssl1.1 e MongoDB 7.0:

    apt-get install libssl1.1
    apt-get install mongodb-org -y

    systemctl enable mongod –now

    Removendo as coisas do ubuntu

    rm /etc/apt/sources.list.d/focal-security.list

    apt-key del 3B4FE6ACC0B21F32
    apt-key del 871920D1991BC93C

    comente a a linha
    nano /etc/apt/sources.list.d/mongodb-org-7.0.list

    apt update

    /// Instalando o Node.JS

    curl -fsSL https://deb.nodesource.com/setup_lts.x | bash –
    apt install nodejs -y

    /// Instalando o GenieACS

    npm search -g genieacs
    npm install -g genieacs
    useradd –system –no-create-home –user-group genieacs

    mkdir /opt/genieacs && mkdir /opt/genieacs/ext && mkdir /var/log/genieacs

    echo ‘GENIEACS_CWMP_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-cwmp-access.log
    GENIEACS_NBI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-nbi-access.log
    GENIEACS_FS_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-fs-access.log
    GENIEACS_UI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-ui-access.log
    GENIEACS_DEBUG_FILE=/var/log/genieacs/genieacs-debug.yaml
    NODE_OPTIONS=–enable-source-maps
    GENIEACS_EXT_DIR=/opt/genieacs/ext
    GENIEACS_UI_JWT_SECRET=secret’ | tee /opt/genieacs/genieacs.env

    chown genieacs. /opt/genieacs -R
    chmod 600 /opt/genieacs/genieacs.env
    chown genieacs. /var/log/genieacs

    systemctl edit –force –full genieacs-cwmp
    Adicione:

    [Unit]
    Description=GenieACS CWMP
    After=network.target

    [Service]
    User=genieacs
    EnvironmentFile=/opt/genieacs/genieacs.env
    ExecStart=/usr/bin/genieacs-cwmp

    [Install]
    WantedBy=default.target

    systemctl edit –force –full genieacs-nbi
    Adicione:

    [Unit]
    Description=GenieACS CWMP
    After=network.target

    [Service]
    User=genieacs
    EnvironmentFile=/opt/genieacs/genieacs.env
    ExecStart=/usr/bin/genieacs-cwmp

    [Install]
    WantedBy=default.target

    systemctl edit –force –full genieacs-fs

    Adicione:

    [Unit]
    Description=GenieACS FS
    After=network.target

    [Service]
    User=genieacs
    EnvironmentFile=/opt/genieacs/genieacs.env
    ExecStart=/usr/bin/genieacs-fs

    [Install]
    WantedBy=default.target

    systemctl edit –force –full genieacs-ui
    Adicione:

    [Unit]
    Description=GenieACS UI
    After=network.target
    [Service]
    User=genieacs
    EnvironmentFile=/opt/genieacs/genieacs.env
    ExecStart=/usr/bin/genieacs-ui
    [Install]
    WantedBy=default.target

    echo ‘/var/log/genieacs/*.log /var/log/genieacs/*.yaml {
    daily
    rotate 30
    compress
    delaycompress
    dateext
    }’ | tee /etc/logrotate.d/genieacs

    systemctl enable genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui
    systemctl start genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui
    systemctl status genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui –no-pager

  3. Emanuel disse:

    Alguém mais teve problemas pra trocar a senha de WI-FI em roteadores huawei?

  4. Carlos disse:

    Alguem me ajuda, estou parado neste erro e não consigo instalar o libssl11

    root@genieACS:/etc# apt install mongodb-org node-mongodb Lendo listas de pacotes… Pronto
    Construindo árvore de dependências… Pronto
    Lendo informação de estado… Pronto
    Alguns pacotes não puderam ser instalados. Isto pode significar que
    você solicitou uma situação impossível ou, se você está usando a
    distribuição instável, que alguns pacotes requeridos não foram
    criados ainda ou foram retirados da “Incoming”.
    A informação a seguir pode ajudar a resolver a situação:

    Os pacotes a seguir têm dependências desencontradas:
    mongodb-org-mongos : Depende: libssl1.1 (>= 1.1.1) mas não é instalável
    mongodb-org-server : Depende: libssl1.1 (>= 1.1.1) mas não é instalável
    mongodb-org-shell : Depende: libssl1.1 (>= 1.1.1) mas não é instalável
    node-semver : Depende: nodejs:any
    E: Impossível corrigir problemas, você manteve (hold) pacotes quebrados.

  5. Colossi disse:

    marinheiro de primeira viagem, inicialmente me causou um pouco de náuseas .
    Porém, depois de rever a explicação mais de uma vez, algo fluiu!
    Deu certo, consegui !
    Agora com status Online não sei bem o que fazer. (mas isso é outro assunto)
    Pensei que apareceria o device de rede, visto que configurei em modo Bridge aqui em casa.

    parabéns pelo tutorial, me ajudou muito.

  6. Marcio A. disse:

    Fiz um teste na versão debian10 e funciona perfeitamente também !

  7. Nilton disse:

    Acs instalado, agora estou aguardando o tutorial de como faço ele funcionar com OLT e ONU Huawei… 😢 Para configurar IPv4/IPv6 e troca de senha wi-fi

  8. Michael Oliveira disse:

    Se seguirem da forma do tutorial não tem erro.
    Funcionou de boa!

    Excelente material.

  9. Cassio Araujo disse:

    Bom dia pessoal. Estou com problemas para criar o usuario.
    root@genieacs:~# useradd –system –no-create-home –user-group genieacs
    bash: useradd: comando não encontrado

  10. Valmir disse:

    Boa tarde senhores, consegui instalar porém alguém tem alguma dica de como fazer a integração ou como faço pra usar?
    Desde já agradeço.

  11. Alison disse:

    ola alguém poderia me ajudar como faço mais de 200 por pagina so vai ate 200 e ja tenho mais 400 configurados

  12. Prague disse:

    Existe uma instalação de exemplo com suporte STUN? Não tenho certeza se genieacs e coturn são compatíveis. Não consigo interferir nos dispositivos por trás do nat

    • zolitacs disse:

      I would also be interested in how to manage NATed devices. Which STUN server to install and how to configure it.
      Eu também estaria interessado em como gerenciar dispositivos NATEADO. Qual servidor STUN instalar e como configurá-lo.

  13. Eric disse:

    Excelentíssimo conteúdo meu amigo me ajudou muito aqui obrigado pela sabedoria!

  14. Jonatas disse:

    Boa tarde Remontti, primeiramente muito obrigado pelo ótimo conteúdo. Sou novo no mundo GPON e a empresa que trabalho tem uma OLT da Nokia. Poderiam me ajudar com dicas como faço pra integrar o servidor ACS a OLT Nokia?

    Muito obrigado desde já!!

  15. Alexsander da Silva disse:

    Tutorial claro, simples e direto. Obrigado pela qualidade do conteúdo.

    Uma dúvida, não consigo encontrar a pasta genieacs-gui para realizar alterações nos yml.
    Alguém pode ajudar?

  16. flavio disse:

    alguem pode me da uma ajuda com esse erro

    root@ACS:/tmp# service mongod status
    ● mongod.service – MongoDB Database Server
    Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
    Active: failed (Result: signal) since Mon 2022-04-04 20:51:42 -03; 3s ago
    Docs: https://docs.mongodb.org/manual
    Process: 1558 ExecStart=/usr/bin/mongod –config /etc/mongod.conf (code=killed, signal=ILL)
    Main PID: 1558 (code=killed, signal=ILL)
    CPU: 122ms

  17. Irailto disse:

    No meu deu tudo certo. Muito Obrigado. Terminei agora as 04:06. Faz tempo que procuro.
    Parabéns pelo blog.

  18. Danilo Moreira disse:

    Boa tarde, segui todos os procedimentos e aparentemente, tudo ok, quando vou abrir o geniusacs por web em http://ip:3000, não tenho acesso.
    seria o ip que configurei na maquina debian confere?

    • Marcelo Araújo disse:

      Bom dia. Estava com o mesmo problema!

      O meu problema era que o mongodb não estava iniciando, pois meu processador não era compatível com AVX.

      A solução: instalar uma versão anterior do mongodb: 4.4

    • Gabriel Messias disse:

      Estou com esse problema também, se você conseguiu resolver? por favor me ajuda…

  19. Vinicius Coelho disse:

    Estou recebendo esse erro:
    npm ERR! code ENOENT
    npm ERR! syscall chmod
    npm ERR! path /usr/local/lib/node_modules/genieacs/bin/genieacs-cwmp
    npm ERR! errno -2
    npm ERR! enoent ENOENT: no such file or directory, chmod ‘/usr/local/lib/node_modules/genieacs/bi n/genieacs-cwmp’
    npm ERR! enoent This is related to npm not being able to find a file.
    npm ERR! enoent

    npm ERR! A complete log of this run can be found in:
    npm ERR! /root/.npm/_logs/2021-11-23T10_53_39_093Z-debug.log
    root@TR69:~# vim /root/.npm/_logs/2021-11-23T10_53_39_093Z-debug.log
    root@TR69:~# npm install -g genieacs
    npm ERR! code ENOENT
    npm ERR! syscall chmod
    npm ERR! path /usr/local/lib/node_modules/genieacs/bin/genieacs-cwmp
    npm ERR! errno -2
    npm ERR! enoent ENOENT: no such file or directory, chmod ‘/usr/local/lib/node_modules/genieacs/bin/genieacs-cwmp’
    npm ERR! enoent This is related to npm not being able to find a file.
    npm ERR! enoent

    npm ERR! A complete log of this run can be found in:
    npm ERR! /root/.npm/_logs/2021-11-23T11_07_14_276Z-debug.log

    Podem me ajudar?

  20. Maxwell disse:

    Eu revisei aqui, eu pulei uma etapa quando eu dei reboot na vm, entao ate se quiser deixar meu comentario como exemplo de desatenção hehe caso algue faça o mesmo kk

    obrigado irmao, abraço

  21. Maxwell disse:

    opa Buenas, valeu por compartilhar mais um excelente conteudo, tenho só umas ideias e uma duvida:
    IDEIA:
    — Ajustando o repositório. Adicione contrib non-free aos repositórios:

    sed -i ‘s/main/main contrib non-free/g’ /etc/apt/sources.list

    (acho que facilita quem quiser testar.)

    — Instalção do Node.js

    apt install nodejs npm curl -y

    (precisei instalar o npm e curl assim junto com o node, pq posteriormente dava comandos not found)

    DUVIDA:
    nov 13 10:39:18 TR-069 systemd[1]: Started GenieACS UI.
    nov 13 10:39:18 TR-069 systemd[13085]: genieacs-ui.service: Failed to locate executable /usr/bin/genieacs-ui: No such file or directory
    nov 13 10:39:18 TR-069 systemd[13085]: genieacs-ui.service: Failed at step EXEC spawning /usr/bin/genieacs-ui: No such file or directory
    nov 13 10:39:18 TR-069 systemd[1]: genieacs-ui.service: Main process exited, code=exited, status=203/EXEC
    nov 13 10:39:18 TR-069 systemd[1]: genieacs-ui.service: Failed with result ‘exit-code’.

    ao finalizar eu tive esse output, nao to me atentando ao que esta errado, vou tentar dar mais uma olhada qualquer coisa eu retorno aqui.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *