Guia Completo de Instalação e Configuração do GenieACS em Debian 12 Bookworm
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.
Leitura recomendada:
Configurando interface de rede no Debian
Requisitos Debian 12 Bookworm
Instalação do Debian 12 Bookworm limpa passo-a-passo
Melhorando o seu BASH
Para melhorar seu bash e entender o comando a seguir, visite: Como melhorar a produtividade no seu Debian após a instalação
1 |
# apt -y install wget; wget remontti.com.br/debian; bash debian; su - |
Repositório
Adicione contrib non-free aos repositórios
1 |
# vim /etc/apt/sources.list |
Ajuste:
1 2 3 4 5 6 7 8 |
deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free deb http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware contrib non-free deb-src http://deb.debian.org/debian/ bookworm-updates main non-free-firmware contrib non-free |
Atualize o repositório:
1 |
# apt update |
Se tiver algum pacote para atualização também faça:
1 |
# apt upgrade -y |
Instale os firmware-linux*
1 |
# apt install firmware-linux firmware-linux-free firmware-linux-nonfree -y |
Reinicie seu servidor para carregar os novos módulos do kernel
1 |
# reboot |
Pacotes requisitos
1 |
# apt -y install gnupg gnupg2 curl wget rsyslog |
Repositório MongoDB
1 2 3 4 5 6 |
# curl -fsSL https://www.mongodb.org/static/pgp/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 bookworm/mongodb-org/7.0 main" \ > /etc/apt/sources.list.d/mongodb-org-7.0.list |
Recarregue o repositório, e instale o MongoDB vamos
1 2 |
# apt update # apt -y install mongodb-org |
Ative o serviço para iniciar com o boot, inicie o serviço e verifique se o mesmo iniciou com êxito.
1 2 3 |
# systemctl enable mongod # systemctl start mongod # systemctl status mongod |
Node.js
1 2 |
# apt -y install nodejs npm --no-install-recommends # apt -y install node-mongodb |
Instalação do GenieACS
Procure se o pacote existe:
1 |
# npm search -g genieacs |
1 2 3 4 |
NAME | DESCRIPTION | AUTHOR | DATE | VERSION | KEYWORDS genieacs | A TR-069 Auto… | =zaidka | 2024-03-28 | 1.2.12 | TR-069 CWMP ACS @anlix-io/genieacs-sim | TR-069 client… | =anlix-io | 2024-01-15 | 1.14.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
1 |
# npm install -g genieacs |
1 2 3 4 |
added 220 packages in 5s 18 packages are looking for funding run `npm fund` for details |
Crie um usuário do sistema para executar daemons GenieACS
1 |
# 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).
1 2 |
# 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.
1 |
# vim /opt/genieacs/genieacs.env |
Adicione:
1 2 3 4 5 6 7 |
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 |
Gere um segredo JWT seguro e anexe a /opt/genieacs/genieacs.env:
1 2 3 |
# node -e "console.log(\"GENIEACS_UI_JWT_SECRET=\" + require('crypto').\ randomBytes(128).toString('hex'))" \ >> /opt/genieacs/genieacs.env |
Defina a propriedade e as permissões do arquivo:
1 2 |
# chown genieacs: /opt/genieacs -R # chmod 600 /opt/genieacs/genieacs.env |
Criar diretório de logs
1 2 |
# mkdir /var/log/genieacs # chown genieacs: /var/log/genieacs |
Configure os serviços no systemd
1 |
# systemctl edit --force --full genieacs-cwmp |
Adicione:
1 2 3 4 5 6 7 8 9 10 11 |
[Unit] Description=GenieACS CWMP After=network.target [Service] User=genieacs EnvironmentFile=/opt/genieacs/genieacs.env ExecStart=/usr/local/bin/genieacs-cwmp [Install] WantedBy=default.target |
1 |
# systemctl edit --force --full genieacs-nbi |
Adicione:
1 2 3 4 5 6 7 8 9 10 11 |
[Unit] Description=GenieACS NBI After=network.target [Service] User=genieacs EnvironmentFile=/opt/genieacs/genieacs.env ExecStart=/usr/local/bin/genieacs-nbi [Install] WantedBy=default.target |
1 |
# systemctl edit --force --full genieacs-fs |
Adicione:
1 2 3 4 5 6 7 8 9 10 11 |
[Unit] Description=GenieACS FS After=network.target [Service] User=genieacs EnvironmentFile=/opt/genieacs/genieacs.env ExecStart=/usr/local/bin/genieacs-fs [Install] WantedBy=default.target |
1 |
# systemctl edit --force --full genieacs-ui |
Adicione:
1 2 3 4 5 6 7 8 9 10 11 |
[Unit] Description=GenieACS UI After=network.target [Service] User=genieacs EnvironmentFile=/opt/genieacs/genieacs.env ExecStart=/usr/local/bin/genieacs-ui [Install] WantedBy=default.target |
Configure o logrotate para rotação dos log gerados
1 |
# vim /etc/logrotate.d/genieacs |
Adicione:
1 2 3 4 5 6 7 |
/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.
1 2 3 4 |
# systemctl daemon-reload # 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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
● genieacs-cwmp.service - GenieACS CWMP Loaded: loaded (/etc/systemd/system/genieacs-cwmp.service; enabled; preset: enabled) Active: active (running) since Wed 2024-04-10 12:09:13 -03; 44s ago Main PID: 9695 (node) Tasks: 25 (limit: 4645) Memory: 101.1M CPU: 1.541s CGroup: /system.slice/genieacs-cwmp.service ├─9695 node /usr/local/bin/genieacs-cwmp ├─9725 /usr/bin/node /usr/local/bin/genieacs-cwmp └─9730 /usr/bin/node /usr/local/bin/genieacs-cwmp abr 10 12:09:13 deb12-rr-flow systemd[1]: Started genieacs-cwmp.service - GenieACS CWMP. abr 10 12:09:14 deb12-rr-flow genieacs-cwmp[9695]: 2024-04-10T15:09:14.701Z [INFO] genieacs-cwmp starting; …80f66" abr 10 12:09:16 deb12-rr-flow genieacs-cwmp[9695]: 2024-04-10T15:09:16.465Z [INFO] Worker listening; pid=97…t=7547 abr 10 12:09:16 deb12-rr-flow genieacs-cwmp[9695]: 2024-04-10T15:09:16.475Z [INFO] Worker listening; pid=97…t=7547 ● genieacs-nbi.service - GenieACS NBI Loaded: loaded (/etc/systemd/system/genieacs-nbi.service; enabled; preset: enabled) Active: active (running) since Wed 2024-04-10 12:09:13 -03; 44s ago Main PID: 9696 (node) Tasks: 25 (limit: 4645) Memory: 98.5M CPU: 1.639s CGroup: /system.slice/genieacs-nbi.service ├─9696 node /usr/local/bin/genieacs-nbi ├─9731 /usr/bin/node /usr/local/bin/genieacs-nbi └─9737 /usr/bin/node /usr/local/bin/genieacs-nbi abr 10 12:09:13 deb12-rr-flow systemd[1]: Started genieacs-nbi.service - GenieACS NBI. abr 10 12:09:14 deb12-rr-flow genieacs-nbi[9696]: 2024-04-10T15:09:14.710Z [INFO] genieacs-nbi starting; pi…80f66" abr 10 12:09:16 deb12-rr-flow genieacs-nbi[9696]: 2024-04-10T15:09:16.497Z [INFO] Worker listening; pid=973…t=7557 abr 10 12:09:16 deb12-rr-flow genieacs-nbi[9696]: 2024-04-10T15:09:16.523Z [INFO] Worker listening; pid=973…t=7557 ● genieacs-fs.service - GenieACS FS Loaded: loaded (/etc/systemd/system/genieacs-fs.service; enabled; preset: enabled) Active: active (running) since Wed 2024-04-10 12:09:13 -03; 44s ago Main PID: 9697 (node) Tasks: 25 (limit: 4645) Memory: 88.0M CPU: 1.561s CGroup: /system.slice/genieacs-fs.service ├─9697 node /usr/local/bin/genieacs-fs ├─9723 /usr/bin/node /usr/local/bin/genieacs-fs └─9724 /usr/bin/node /usr/local/bin/genieacs-fs abr 10 12:09:13 deb12-rr-flow systemd[1]: Started genieacs-fs.service - GenieACS FS. abr 10 12:09:14 deb12-rr-flow genieacs-fs[9697]: 2024-04-10T15:09:14.676Z [INFO] genieacs-fs starting; pid=…80f66" abr 10 12:09:16 deb12-rr-flow genieacs-fs[9697]: 2024-04-10T15:09:16.386Z [INFO] Worker listening; pid=9723…t=7567 abr 10 12:09:16 deb12-rr-flow genieacs-fs[9697]: 2024-04-10T15:09:16.497Z [INFO] Worker listening; pid=9724…t=7567 ● genieacs-ui.service - GenieACS UI Loaded: loaded (/etc/systemd/system/genieacs-ui.service; enabled; preset: enabled) Active: active (running) since Wed 2024-04-10 12:09:13 -03; 44s ago Main PID: 9698 (node) Tasks: 25 (limit: 4645) Memory: 114.1M CPU: 2.003s CGroup: /system.slice/genieacs-ui.service ├─9698 node /usr/local/bin/genieacs-ui ├─9777 /usr/bin/node /usr/local/bin/genieacs-ui └─9778 /usr/bin/node /usr/local/bin/genieacs-ui abr 10 12:09:13 deb12-rr-flow systemd[1]: Started genieacs-ui.service - GenieACS UI. abr 10 12:09:15 deb12-rr-flow genieacs-ui[9698]: 2024-04-10T15:09:15.244Z [INFO] genieacs-ui starting; pid=…80f66" abr 10 12:09:16 deb12-rr-flow genieacs-ui[9698]: 2024-04-10T15:09:16.757Z [INFO] Worker listening; pid=9777…t=3000 abr 10 12:09:16 deb12-rr-flow genieacs-ui[9698]: 2024-04-10T15:09:16.763Z [INFO] Worker listening; pid=9778…t=3000 Hint: Some lines were ellipsized, use -l to show in full. |
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.
Fonte: https://genieacs.com/
Bom dia Mestre, seus tutoriais são os melhores. Nos ajuda muito. Quero fazer uma observação.
Atual: # echo “deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main” \
> /etc/apt/sources.list.d/mongodb-org-7.0.list
não seria assim:
# echo “deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main” | \
> tee /etc/apt/sources.list.d/mongodb-org-7.0.list
Da da mesma! rsrs