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.
Como faria para o genieacs fazer assim:
Cliente reseta equipamento ele subir as configurações novamente, precisa fazer algo ou já seria nativo?
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.
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
Alguém mais teve problemas pra trocar a senha de WI-FI em roteadores huawei?
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.
Também estou com este mesmo problema, conseguiu resolver?
Provavelmente vc deve ter instalado o debian 12 ao inves do 11. A libssl no 12 é a versao 3 e o mongodb 6 não dá suporte. Instala o debian 11 que as dependencias vao funcionar
Boa tarde Luciano, tive esse mesmo erro mas funcionou de boa, não sei se irá dar algum problema futuro…
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.
Fiz um teste na versão debian10 e funciona perfeitamente também !
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
Se seguirem da forma do tutorial não tem erro.
Funcionou de boa!
Excelente material.
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
você virou root com “su -” ?, as vezes corre isto
Coloque:” su -l ” antes do comando
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.
ola alguém poderia me ajudar como faço mais de 200 por pagina so vai ate 200 e ja tenho mais 400 configurados
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
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.
Excelentíssimo conteúdo meu amigo me ajudou muito aqui obrigado pela sabedoria!
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á!!
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?
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
Conseguiu resolver Flavio? Tive o mesmo erro.
root@genie:/tmp# systemctl status mongod
● mongod.service – MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: failed (Result: signal) since Tue 2022-07-05 15:41:35 -03; 4s ago
Docs: https://docs.mongodb.org/manual
Process: 5037 ExecStart=/usr/bin/mongod –config /etc/mongod.conf (code=killed, signal=ILL)
Main PID: 5037 (code=killed, signal=ILL)
CPU: 14ms
jul 05 15:41:35 genie systemd[1]: Started MongoDB Database Server.
jul 05 15:41:35 genie systemd[1]: mongod.service: Main process exited, code=killed, status=4/ILL
jul 05 15:41:35 genie systemd[1]: mongod.service: Failed with result ‘signal’.
ainda nao conseguir nao..
Esta ai a solução
https://stackoverflow.com/questions/68609678/mongodb-result-signal-code-killed-signal-ill
Eu tive esse erro na minha instalação e resolvi por remover o mongodb 5 e instalando a versão 4!
No meu deu tudo certo. Muito Obrigado. Terminei agora as 04:06. Faz tempo que procuro.
Parabéns pelo blog.
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?
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
Estou com esse problema também, se você conseguiu resolver? por favor me ajuda…
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?
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
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.