<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivos Tutorial Linux - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/tutorial-linux/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/tutorial-linux</link>
	<description>rudimar@remontti</description>
	<lastBuildDate>Tue, 14 Jul 2026 20:45:49 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://blog.remontti.com.br/wp-content/uploads/2024/09/icone-rr-80x80.png</url>
	<title>Arquivos Tutorial Linux - Remontti</title>
	<link>https://blog.remontti.com.br/tag/tutorial-linux</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Servidor DNS #1 &#8211; Recursivo com BIND 9.20 no Debian 13 (Trixie)</title>
		<link>https://blog.remontti.com.br/8358</link>
					<comments>https://blog.remontti.com.br/8358#respond</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 14 Jul 2026 20:45:49 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Administração de Redes]]></category>
		<category><![CDATA[Anycast DNS]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[BIND 9.20]]></category>
		<category><![CDATA[Bind no Debian]]></category>
		<category><![CDATA[bind9]]></category>
		<category><![CDATA[Cache DNS]]></category>
		<category><![CDATA[Debian 13]]></category>
		<category><![CDATA[Debian Trixie]]></category>
		<category><![CDATA[dig]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[DNS Recursivo]]></category>
		<category><![CDATA[dnssec]]></category>
		<category><![CDATA[Firewall Linux]]></category>
		<category><![CDATA[Forwarders]]></category>
		<category><![CDATA[Infraestrutura de Redes]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[isp]]></category>
		<category><![CDATA[named]]></category>
		<category><![CDATA[nftables]]></category>
		<category><![CDATA[Open Resolver]]></category>
		<category><![CDATA[Porta 53]]></category>
		<category><![CDATA[Provedor de Internet]]></category>
		<category><![CDATA[Rede de Provedores]]></category>
		<category><![CDATA[Resolver DNS]]></category>
		<category><![CDATA[Segurança de Redes]]></category>
		<category><![CDATA[servidor dns]]></category>
		<category><![CDATA[servidor linux]]></category>
		<category><![CDATA[Tutorial Linux]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=8358</guid>

					<description><![CDATA[<p>BIND é o servidor DNS mais utilizado na Internet e um padrão de fato em sistemas Unix/Linux. O DNS Recursivo é responsável pela resolução de nomes: recebe a consulta do cliente e percorre a&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/8358">Servidor DNS #1 &#8211; Recursivo com BIND 9.20 no Debian 13 (Trixie)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2026/07/CAPA.png" alt="" width="1672" height="941" class="alignnone size-full wp-image-8364" srcset="https://blog.remontti.com.br/wp-content/uploads/2026/07/CAPA.png 1672w, https://blog.remontti.com.br/wp-content/uploads/2026/07/CAPA-300x169.png 300w, https://blog.remontti.com.br/wp-content/uploads/2026/07/CAPA-1024x576.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2026/07/CAPA-768x432.png 768w, https://blog.remontti.com.br/wp-content/uploads/2026/07/CAPA-1536x864.png 1536w" sizes="(max-width: 1672px) 100vw, 1672px" /></p>
<p><a href="https://pt.wikipedia.org/wiki/BIND" rel="noopener noreferrer" target="_blank">BIND</a> é o servidor DNS mais utilizado na Internet e um padrão de fato em sistemas Unix/Linux.</p>
<p>O <strong>DNS Recursivo</strong> é responsável pela resolução de nomes: recebe a consulta do cliente e percorre a hierarquia do DNS — servidores raiz → TLD (.br, .com) → autoritativo do domínio — até obter a resposta. O resultado fica armazenado em <strong>cache</strong> pelo tempo (TTL) definido pelo autoritativo do domínio consultado, o que reduz a latência das próximas consultas e o tráfego DNS saindo da sua rede.</p>
<p>Para um ISP, rodar recursivo próprio significa menor latência (o servidor está dentro do seu AS, próximo do cliente), controle total do serviço e independência de resolvers públicos como 8.8.8.8 e 1.1.1.1.</p>
<p><strong>Atenção:</strong> este tutorial cobre <strong>apenas o Recursivo</strong>.<br />
&#8211; <strong>DNS Autoritativo e Reverso</strong> estão na <strong><a href="#2" rel="noopener" target="_blank">parte 2</a> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/23f3.png" alt="⏳" class="wp-smiley" style="height: 1em; max-height: 1em;" />(em breve)</strong><br />
&#8211; <strong>DNS anycast com FRR</strong> (alta disponibilidade) na <strong><a href="#3" rel="noopener" target="_blank">parte 3</a> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/23f3.png" alt="⏳" class="wp-smiley" style="height: 1em; max-height: 1em;" />(em breve)</strong>.</p>
<p>Usaremos o <strong>Debian 13 (Trixie)</strong> com <strong>BIND 9.20</strong> — houve mudanças relevantes em relação aos tutoriais antigos com<strong> Debian 11/12</strong>.</p>
<p><strong>Requisitos:</strong><br />
<strong><a href="https://blog.remontti.com.br/8267" rel="noopener noreferrer" target="_blank">Debian 13 Trixie &#8211; Instalação Limpa</a></strong></p>
<p><strong>Leituras recomendadas:</strong><br />
<a href="https://blog.remontti.com.br/5848" rel="noopener" target="_blank"><strong>Configurando interface de rede no Debian</strong></a><br />
<a href="https://blog.remontti.com.br/5867" rel="noopener" target="_blank"><strong>Como melhorar a produtividade no seu Debian após instalação</strong></a></p>
<h5>Vire root com o comando correto!</h5>
<pre class="remontti-code">$ su -</pre>
<h5>Pacotes recomendados:</h5>
<pre class="remontti-code"># apt install vim wget unzip man-db htop tree mtr-tiny whois -y</pre>
<h4>Configurando a placa de Rede</h4>
<p>Neste tutorial vou configurar a rede da forma simples e convencional (IP fixo na interface). Na parte 3 aprenderemos a configurar via roteamento (FRR), que é o cenário ideal para DNS anycast. Se quiser se aprofundar, veja também: <a href="https://blog.remontti.com.br/5848" target="_blank">Configurando interface de rede no Debian</a>. Caso já tenha sua placa de rede configurada pule esta etapa.</p>
<p>Primeiro descubra o nome da sua interface:</p>
<pre class="remontti-code"># ip -br link</pre>
<p>No meu caso o nome é <strong>ens18</strong>, o seu pode ser diferente (<em>ens192, enp0s3, eno1, enp1s0&#8230;</em>). Ajuste nos exemplos abaixo.</p>
<p>Edite o arquivo:</p>
<pre class="remontti-code"># vim /etc/network/interfaces</pre>
<p>Seu arquivo deverá ficar assim (as linhas &#8220;source&#8221; e da interface de loopback &#8220;lo&#8221; já existem no arquivo, não duplique, apenas ajuste/adicione o bloco da sua interface):</p>
<pre class="remontti-code-plain">source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet static
    address 255.9.0.2/28
    gateway 255.9.0.1

iface ens18 inet6 static
    address 2559:ffff:cafe::2/64
    gateway 2559:ffff:cafe::1  </pre>
<p>Obs: substitua os IPs pelos endereços do seu bloco. Estou usando 255.9.0.2/28 e 2559:ffff:cafe::2/64 apenas como exemplo.</p>
<p>Obs 2: em servidor use &#8220;auto&#8221; em vez de &#8220;allow-hotplug&#8221;. O allow-hotplug só levanta a interface por evento de hotplug e pode deixar seu servidor sem rede no boot em algumas situações; o auto garante que a interface suba junto com o sistema.</p>
<p>Aplique a configuração:</p>
<pre class="remontti-code"># systemctl restart networking</pre>
<p><strong>ATENÇÃO</strong>: se você está acessando o servidor via SSH e errar algo aqui, vai perder o acesso. Se possível faça essa etapa pelo console (físico ou da VM).<br />
Mas recomendo que você reinicie o servidor.</p>
<pre class="remontti-code"># reboot </pre>
<p>Acesse novamente o servidor pelo endereço de IP.<br />
Valide se os IPs subiram e se há conectividade:</p>
<pre class="remontti-code"># ip -br address
# ip -c address
# ping -c3 8.8.8.8
# ping -c3 2001:4860:4860::8888</pre>
<h2>Instalação do Bind9</h2>
<p>Instalação dos pacotes:</p>
<pre class="remontti-code"># apt install bind9 bind9-utils bind9-dnsutils</pre>
<p>Obs: no Debian 13 o serviço agora se chama &#8220;named&#8221; (o nome &#8220;bind9&#8221; ainda funciona como atalho, mas nos comandos vou usar named que é o nome oficial).</p>
<p>Arquitetura de arquivos e diretórios do bind9 no Debian 13:</p>
<h5>Estrutura de arquivos do BIND</h5>
<p>Os principais arquivos do BIND ficam distribuídos nos seguintes diretórios:</p>
<h4><strong>/etc/bind/</strong></h4>
<p>Diretório principal de configuração do BIND.</p>
<ul>
<li><strong>named.conf</strong>: arquivo principal, responsável por incluir os demais arquivos de configuração.</li>
<li><strong>named.conf.local</strong>: usado para declarar zonas locais, autoritativas ou configurações específicas do servidor.</li>
<li><strong>named.conf.options</strong>: contém opções globais, como recursão, encaminhadores, interfaces e controles de acesso.</li>
<li><strong>named.conf.root-hints</strong>: referência aos servidores raiz do DNS.</li>
<li><strong>rndc.key</strong>: chave utilizada para comunicação segura entre o comando <strong>rndc</strong> e o serviço <strong>named</strong>.</li>
</ul>
<h4><strong>/usr/share/dns/</strong></h4>
<p>Contém arquivos de referência relacionados à raiz do DNS.</p>
<ul>
<li><strong>root.hints</strong>: lista dos servidores raiz do DNS.</li>
<li><strong>root.key</strong>: chave de confiança utilizada na validação DNSSEC.</li>
<li><strong>root.ds</strong>: registro DS da zona raiz utilizado como referência para DNSSEC.</li>
</ul>
<h4><strong>/var/cache/bind/</strong></h4>
<p>Diretório de trabalho do BIND.<br />
Nele ficam arquivos gerados ou atualizados pelo próprio serviço, como zonas dinâmicas, journals e chaves gerenciadas pelo DNSSEC.</p>
<ul>
<li><strong>managed-keys.bind</strong>: armazena chaves DNSSEC gerenciadas automaticamente pelo BIND.</li>
<li><strong>managed-keys.bind.jnl</strong>: arquivo de journal utilizado para registrar alterações dessas chaves.</li>
</ul>
<h4><strong>/run/named/</strong></h4>
<p>Contém arquivos temporários criados enquanto o serviço está em execução.</p>
<ul>
<li><strong>named.pid</strong>: armazena o PID do processo <strong>named</strong>.</li>
<li><strong>session.key</strong>: chave temporária utilizada em operações de atualização dinâmica local.</li>
</ul>
<h4>Configuração do Recursivo</h4>
<p>Alteramos o DNS do servidor fazendo com que ele consulte em si próprio, através dos IPs de loopback. Essa alteração deve ser feita no arquivo /etc/resolv.conf.</p>
<pre class="remontti-code"># echo &quot;nameserver 127.0.0.1&quot; &gt; /etc/resolv.conf
# echo &quot;nameserver ::1&quot; &gt;&gt; /etc/resolv.conf</pre>
<p>Neste ponto, o servidor já deve estar resolvendo nomes localmente. Agora utilize a ferramenta <strong>dig</strong> para realizar alguns testes:</p>
<pre class="remontti-code"># dig @localhost google.com.br A
# dig @localhost google.com.br AAAA
# dig @localhost google.com.br A +trace</pre>
<p>Agora vamos ajustar o BIND para funcionar como servidor DNS recursivo, permitindo consultas somente das redes autorizadas.</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<pre class="remontti-code-plain">acl autorizados {
        127.0.0.1;
        ::1;
        10.0.0.0/8;
        172.16.0.0/12;
        192.168.0.0/16;
        100.64.0.0/10;
        fc00::/7;
        fe80::/10;

        // Prefixos da sua rede
        255.9.0.0/22;
        2559:ffff::/32;
};

options {
        directory &quot;/var/cache/bind&quot;;

        dnssec-validation auto;

        listen-on { any; };
        listen-on-v6 { any; };

        minimal-responses yes;

        max-ncache-ttl 300;
        min-cache-ttl 90;

        allow-recursion { autorizados; };
        allow-query-cache { autorizados; };
        allow-query { autorizados; };

        version &quot;RR DNS Server - Do good&quot;;
};</pre>
<p><strong>Atenção:</strong> substitua <em>255.9.0.0/22 e 2559:ffff::/32</em> pelos prefixos IPv4 e IPv6 da sua rede.</p>
<h3>Entendendo as opções</h3>
<p><strong>acl autorizados</strong><br />
Lista os endereços que podem utilizar o servidor recursivo. Inclui localhost, redes privadas, CGNAT, IPv6 interno e os prefixos da sua rede. Clientes fora dessa lista recebem <strong>REFUSED</strong>.</p>
<p><strong>directory &#8220;/var/cache/bind&#8221;;</strong><br />
Define o diretório de trabalho do BIND.</p>
<p><strong>dnssec-validation auto;</strong><br />
Ativa a validação DNSSEC para verificar a autenticidade das respostas.</p>
<p><strong>listen-on / listen-on-v6</strong><br />
Define em quais endereços IPv4 e IPv6 o BIND escutará. O valor <strong>any</strong> significa todos os endereços do servidor.</p>
<p><strong>minimal-responses yes;</strong><br />
Reduz o tamanho das respostas, enviando somente as informações necessárias.</p>
<p><strong>max-ncache-ttl 300;</strong><br />
Mantém respostas negativas, como <strong>NXDOMAIN</strong>, no cache por no máximo 5 minutos.</p>
<p><strong>min-cache-ttl 90;</strong><br />
Mantém respostas positivas no cache por pelo menos 90 segundos, mesmo quando o domínio informa um TTL menor.</p>
<p><strong>allow-recursion</strong><br />
Define quem pode realizar consultas recursivas.</p>
<p><strong>allow-query-cache</strong><br />
Define quem pode receber respostas armazenadas no cache.</p>
<p><strong>allow-query</strong><br />
Define quem pode consultar o servidor. Como este servidor é somente recursivo, restringimos o acesso à ACL.</p>
<p><strong>version &#8220;RR DNS Server &#8211; Do good&#8221;;</strong><br />
Oculta a versão real do BIND em consultas simples. Não substitui atualizações e boas práticas de segurança.</p>
<p><strong>Opções adicionais</strong></p>
<p><strong>max-cache-ttl</strong><br />
Define o tempo máximo das respostas positivas no cache. O padrão é 7 dias.</p>
<p><strong>max-cache-ttl 86400;</strong><br />
O exemplo acima limita o cache a 24 horas.</p>
<p><strong>max-cache-size</strong><br />
Define quanto de memória o cache pode utilizar.</p>
<p><strong>max-cache-size 2G;</strong><br />
Limita a 2 GB a memória RAM que o BIND pode usar para armazenar respostas DNS em cache.</p>
<h3>Validando a configuração</h3>
<pre class="remontti-code"># named-checkconf</pre>
<p>Se nenhum erro for exibido:</p>
<pre class="remontti-code"># systemctl restart named
# systemctl status named --no-pager</pre>
<p>Refaça os testes para ver se ainda está resolvendo nomes:</p>
<pre class="remontti-code"># dig @localhost google.com A</pre>
<p>Algumas coisas que você precisa saber, da saída dig:</p>
<pre class="remontti-code-green">
; &lt;&lt;&gt;&gt; DiG 9.20.23-1~deb13u1-Debian &lt;&lt;&gt;&gt; @localhost google.com A
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 42819
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 9afef403caa37261010000006a5680455e2f7c3f211ca5b7 (good)
;; QUESTION SECTION:
;google.com.			IN	A

;; ANSWER SECTION:
google.com.		31	IN	A	172.217.29.206

;; Query time: 0 msec
;; SERVER: ::1#53(localhost) (UDP)
;; WHEN: Tue Jul 14 15:30:29 -03 2026
;; MSG SIZE  rcvd: 83
</pre>
<p><strong>HEADER</strong>: Ela contém diversas informações a respeito da consulta. </p>
<pre class="remontti-code-green">;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 49083
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 9</pre>
<p>- <strong>status</strong> indica o tratamento de erro nas consultas, sendo eles:<br />
-- <strong>NOERROR</strong>: Nenhum erro encontrado, ou seja, sucesso.<br />
-- <strong>SERVFAIL</strong>: Houve algum problema com o servidor, que não conseguiu processar a query.<br />
-- <strong>NXDOMAIN</strong>: Significa que o domínio pesquisado não existe.<br />
-- <strong>REFUSED</strong>: O servidor rejeitou a solicitação.<br />
-<strong>flags:</strong> indicador das opções de recursividade e de autoridade, em resumo este conjunto de “letrinhas” (aa, rd, ra, etc), indica o estado ligado/desligado <a href="https://www.ietf.org/rfc/rfc1035.txt" rel="noopener" target="_blank">RFC1035</a><br />
-- <strong>qr</strong>: se a mensagem é uma query (0) ou uma resposta (1). Como estamos avaliando somente as respostas, este bit sempre estará ligado (consequentemente, sempre veremos a string “qr” no campo “flags“).<br />
-- <strong>aa</strong>: que o servidor que respondeu à solicitação é autoritativo do domínio.<br />
-- <strong>rd</strong>: indica que o cliente solicitou recursão ao servidor DNS.<br />
-- <strong>ra</strong>: que o servidor que respondeu à requisição suporta consultas recursivas.<br />
-- <strong>tc</strong>: que a mensagem de resposta está truncada.<br />
-- <strong>z</strong>: reservado para uso futuro.<br />
- <strong>contadores</strong>: na mesma linha das flags, encontramos quantos registros foram retornados em cada seção.</p>
<pre class="remontti-code-green">QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 9</pre>
<p><strong>QUESTION </strong><br />
Replica a query que foi enviada para consulta, quando o tipo não é informado, o dig utiliza o registro A por padrão.</p>
<pre class="remontti-code-green">;; QUESTION SECTION:
;google.com.br.                 IN      A</pre>
<p>Outros exemplos:</p>
<pre class="remontti-code"># dig @localhost google.com.br AAAA
# dig @localhost google.com.br MX
# dig @localhost google.com.br NS
# dig @localhost google.com.br TXT
# dig @localhost google.com.br ANY</pre>
<p><strong>ANSWER </strong><br />
Contém a resposta para a consulta que foi enviada.</p>
<pre class="remontti-code-green">;; ANSWER SECTION:
google.com.br.          86400   IN      CAA     0 issue &quot;pki.goog&quot;
google.com.br.          60      IN      SOA     ns1.google.com. dns-admin.google.com. 405356128 900 900 1800 60
google.com.br.          300     IN      AAAA    2800:3f0:4001:819::2003
google.com.br.          300     IN      A       172.217.173.67
google.com.br.          300     IN      MX      0 smtp.google.com.
google.com.br.          300     IN      TXT     &quot;v=spf1 -all&quot;
google.com.br.          2774    IN      NS      ns4.google.com.
google.com.br.          2774    IN      NS      ns2.google.com.
google.com.br.          2774    IN      NS      ns1.google.com.
google.com.br.          2774    IN      NS      ns3.google.com.</pre>
<p><strong>AUTHORITY</strong><br />
Servidores que respondem com “autoridade” pelo domínio (os NS)</p>
<pre class="remontti-code-green">;; AUTHORITY SECTION:
google.com.br.          3599    IN      NS      ns1.google.com.
google.com.br.          3599    IN      NS      ns4.google.com.
google.com.br.          3599    IN      NS      ns3.google.com.
google.com.br.          3599    IN      NS      ns2.google.com.</pre>
<p><strong>ADDITIONAL</strong><br />
Informações auxiliares ou adicionais à pesquisa, no exemplo IPs dos servidores DNS</p>
<pre class="remontti-code-green">;; ADDITIONAL SECTION:
ns1.google.com.         172800  IN      AAAA    2001:4860:4802:32::a
ns2.google.com.         172800  IN      AAAA    2001:4860:4802:34::a
ns3.google.com.         172800  IN      AAAA    2001:4860:4802:36::a
ns4.google.com.         172800  IN      AAAA    2001:4860:4802:38::a
ns1.google.com.         172800  IN      A       216.239.32.10
ns2.google.com.         172800  IN      A       216.239.34.10
ns3.google.com.         172800  IN      A       216.239.36.10
ns4.google.com.         172800  IN      A       216.239.38.10</pre>
<p>Na última parte da saída encontramos mais quatro informações:</p>
<pre class="remontti-code-green">;; Query time: 10 msec
;; SERVER: ::1#53(localhost) (UDP)
;; WHEN: Tue Jul 14 15:30:29 -03 2026
;; MSG SIZE  rcvd: 83</pre>
<p>- <strong>QUERY TIME</strong>: informa quanto tempo a consulta levou. Um resultado de 0 ms significa que ela foi concluída em menos de 1 ms, geralmente por ter sido respondida localmente ou pelo cache.<br />
- <strong>SERVER</strong>: Qual servidor ele realizou a consulta<br />
- <strong>WHEN</strong>:  data e hora em que a consulta foi realizada. O horário exibido é o do próprio servidor, e o valor -03 indica o fuso horário (UTC-3, horário de Brasília).<br />
- <strong>MSG SIZE</strong>: tamanho do pacote </p>
<p>Leitura recomendada: <a href="https://bind9.readthedocs.io/en/stable/reference.html" target="_blank">https://bind9.readthedocs.io/en/stable/reference.html</a></p>
<h4>Comandos do dia a dia</h4>
<p>Para verificar se seu arquivo tem algum erro use o comando named-checkconf (se não retornar nada, está tudo certo):</p>
<pre class="remontti-code"># named-checkconf /etc/bind/named.conf
# named-checkconf /etc/bind/named.conf.options</pre>
<p>Imprime todas as configurações (bem útil para mandar suas conf quando estiver com algum problema lá no grupo do Telegram):</p>
<pre class="remontti-code"># named-checkconf -p</pre>
<p>Reinicie o serviço para que as novas configurações sejam carregadas, e verifique se o mesmo subiu sem erros:</p>
<pre class="remontti-code"># systemctl restart named
# systemctl status named</pre>
<h5>Atualização dos Root Servers</h5>
<p>Não é comum servidores raiz terem alteração, mas pode acontecer, como em 2023. Então caso um dia precise atualizá-los, faça isso:</p>
<pre class="remontti-code"># mv /usr/share/dns/root.hints /usr/share/dns/root.hints.`date +%Y%m%d`
# wget https://www.internic.net/domain/named.root -O /usr/share/dns/root.hints</pre>
<p>Para visualizar a diferença entre os arquivos:</p>
<pre class="remontti-code"># diff /usr/share/dns/root.hints.`date +%Y%m%d` /usr/share/dns/root.hints</pre>
<h5>Desativar IPv6 do bind <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f92c.png" alt="🤬" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h5>
<p>Se por algum motivo precisar desabilitar, faça:</p>
<pre class="remontti-code"># vim /etc/default/named</pre>
<p>Altere <strong>OPTIONS="-u bind"</strong> para:</p>
<pre class="remontti-code-red">OPTIONS=&quot;-4 -u bind&quot;</pre>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<p>Altere <strong>listen-on-v6 { any; };</strong> para:</p>
<pre class="remontti-code-red">listen-on-v6 { none; };</pre>
<p>Reinicie o serviço:</p>
<pre class="remontti-code"># systemctl restart named</pre>
<h5>Configurando encaminhadores DNS (forwarders)</h5>
<p>Em alguns casos você pode estar com problema em relação aos servidores raiz, e então querer configurar <strong>forwarders</strong>.<br />
Com essa configuração, o BIND não consulta diretamente os servidores raiz: ele encaminha todas as consultas para os servidores DNS definidos em <b>forwarders</b> e mantém as respostas no cache local.</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<p>Adicione dentro do bloco <code>options { ... };</code>:</p>
<pre class="remontti-code-plain">...
recursion yes;
forward only;
forwarders {
        // Cloudflare
        1.1.1.1;
        1.0.0.1;
        2606:4700:4700::1111;
        2606:4700:4700::1001;

        // Google
        8.8.8.8;
        8.8.4.4;
        2001:4860:4860::8888;
        2001:4860:4860::8844;
};
...
</pre>
<p><code>recursion yes;</code> habilita a resolução recursiva, permitindo que o BIND busque a resposta completa em nome do cliente.<br />
<code>forward only</code>, caso todos os encaminhadores falhem, o BIND não tentará resolver a consulta diretamente pelos servidores raiz.</p>
<h3>Protegendo o servidor</h3>
<p>Seu DNS recursivo já está configurado. Como este servidor será utilizado apenas para esse serviço, vamos aplicar regras no nftables para restringir o acesso às portas expostas, principalmente à porta 53.</p>
<pre class="remontti-code"># vim /etc/nftables.conf</pre>
<p>Na seção <strong>elements</strong>, substitua os endereços de exemplo pelos IPs e prefixos que terão permissão de acesso. O modelo também inclui regras de proteção para o SSH e para o agente do Zabbix.</p>
<pre class="remontti-code-plain">
#!/usr/sbin/nft -f

flush ruleset

# Portas acessíveis somente pelas redes do NOC 22 SSH / 10050 Zabbix
define PORTAS_RESTRITAS_TCP = { 22, 10050 }

# Porta do serviço DNS
define PORTA_DNS = 53

table inet filter {

    # Redes do NOC: acesso administrativo, ping e DNS
    set REDE_NOC4 {
        type ipv4_addr;
        flags interval;
        elements = { 192.168.0.0/24, 255.9.0.0/26 };
    }

    set REDE_NOC6 {
        type ipv6_addr;
        flags interval;
        elements = { 2559:ffff:f0da::/48 };
    }

    # Redes autorizadas a utilizar o DNS
    set REDE_CLIENTES4 {
        type ipv4_addr;
        flags interval;
        elements = {
            10.0.0.0/8,
            172.16.0.0/12,
            192.168.0.0/16,
            100.64.0.0/10,
            255.9.0.0/22
        };
    }

    set REDE_CLIENTES6 {
        type ipv6_addr;
        flags interval;
        elements = {
            fc00::/7,
            fe80::/10,
            2559:ffff::/32
        };
    }

    chain input {
        type filter hook input priority 0;
        policy drop;

        # Descarta pacotes inválidos
        ct state invalid counter drop

        # Permite conexões já estabelecidas ou relacionadas
        ct state established,related counter accept

        # Permite a comunicação interna do próprio servidor
        iifname &quot;lo&quot; counter accept

        # ICMPv4 necessário para erros e PMTU
        meta l4proto icmp icmp type {
            destination-unreachable,
            time-exceeded,
            parameter-problem
        } counter accept

        # Ping IPv4 somente pelas redes do NOC e CLIENTES
        ip saddr @REDE_NOC4 meta l4proto icmp icmp type echo-request counter accept
        ip saddr @REDE_CLIENTES4 meta l4proto icmp icmp type echo-request counter accept

        # ICMPv6 essencial para NDP, RA, PMTU e erros IPv6
        meta l4proto ipv6-icmp icmpv6 type {
            destination-unreachable,
            packet-too-big,
            time-exceeded,
            parameter-problem,
            echo-reply,
            nd-router-solicit,
            nd-router-advert,
            nd-neighbor-solicit,
            nd-neighbor-advert
        } counter accept

        # Ping IPv6 somente pelas redes do NOC e CLIENTES
        ip6 saddr @REDE_NOC6 meta l4proto ipv6-icmp icmpv6 type echo-request counter accept
        ip6 saddr @REDE_CLIENTES6 meta l4proto ipv6-icmp icmpv6 type echo-request counter accept

        # SSH e Zabbix Agent somente pelas redes do NOC
        ip saddr @REDE_NOC4 tcp dport $PORTAS_RESTRITAS_TCP counter accept
        ip6 saddr @REDE_NOC6 tcp dport $PORTAS_RESTRITAS_TCP counter accept

        # DNS TCP e UDP somente para as redes autorizadas
        ip saddr @REDE_CLIENTES4 meta l4proto { tcp, udp } th dport $PORTA_DNS counter accept
        ip6 saddr @REDE_CLIENTES6 meta l4proto { tcp, udp } th dport $PORTA_DNS counter accept
    }

    chain forward {
        type filter hook forward priority 0;
        policy drop;
    }

    chain output {
        type filter hook output priority 0;
        policy accept;
    }
}
</pre>
<p>Teste: </p>
<pre class="remontti-code"># nft -c -f /etc/nftables.conf</pre>
<p>Se nenhum erro for exibido, reinicie o serviço para aplicar as regras.</p>
<p>Ative o nftables para iniciar automaticamente junto com o sistema e reinicie o serviço para aplicar as regras:</p>
<pre class="remontti-code"># systemctl enable nftables
# systemctl restart nftables</pre>
<p><strong>Atenção</strong>: antes de reiniciar o firewall, tenha acesso ao console do servidor. Se perder o acesso, alguma regra foi configurada incorretamente.</p>
<p>Para verificar se as regras foram carregadas corretamente, execute:</p>
<pre class="remontti-code"># nft list ruleset</pre>
<p>O post <a href="https://blog.remontti.com.br/8358">Servidor DNS #1 &#8211; Recursivo com BIND 9.20 no Debian 13 (Trixie)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/8358/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Guia Completo de Instalação e Configuração do GenieACS em Debian 12 Bookworm</title>
		<link>https://blog.remontti.com.br/7904</link>
					<comments>https://blog.remontti.com.br/7904#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 10 Apr 2024 15:18:40 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[ACS (Sistema de Configuração Automática)]]></category>
		<category><![CDATA[Automação de Serviços]]></category>
		<category><![CDATA[configuração de rede]]></category>
		<category><![CDATA[Configuração do Node.js]]></category>
		<category><![CDATA[CWMP]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[GenieACS]]></category>
		<category><![CDATA[Gerenciamento de Dispositivos]]></category>
		<category><![CDATA[Gerenciamento de Firmware]]></category>
		<category><![CDATA[Instalação do MongoDB]]></category>
		<category><![CDATA[Monitoramento de CPE]]></category>
		<category><![CDATA[Protocolo de Gerenciamento WAN]]></category>
		<category><![CDATA[Segurança de Rede]]></category>
		<category><![CDATA[tr-069]]></category>
		<category><![CDATA[Tutorial Linux]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7904</guid>

					<description><![CDATA[<p>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&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7904">Guia Completo de Instalação e Configuração do GenieACS em Debian 12 Bookworm</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2024/04/genieacs-debian12.png" alt="" width="1792" height="838" class="alignnone size-full wp-image-7908" srcset="https://blog.remontti.com.br/wp-content/uploads/2024/04/genieacs-debian12.png 1792w, https://blog.remontti.com.br/wp-content/uploads/2024/04/genieacs-debian12-300x140.png 300w, https://blog.remontti.com.br/wp-content/uploads/2024/04/genieacs-debian12-1024x479.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2024/04/genieacs-debian12-768x359.png 768w, https://blog.remontti.com.br/wp-content/uploads/2024/04/genieacs-debian12-1536x718.png 1536w" sizes="(max-width: 1792px) 100vw, 1792px" /><br />
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.</p>
<p>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.</p>
<p><strong>Leitura recomendada:</strong><br />
<a href="https://blog.remontti.com.br/5848" rel="noopener" target="_blank"><strong>Configurando interface de rede no Debian</strong></a></p>
<h3>Requisitos Debian 12 Bookworm</h3>
<p><a href="https://blog.remontti.com.br/7236" rel="noopener" target="_blank">Instalação do Debian 12 Bookworm limpa passo-a-passo</a></p>
<h3>Melhorando o seu BASH</h3>
<p>Para melhorar seu bash e entender o comando a seguir, visite: Como melhorar a produtividade no seu Debian após a instalação</p>
<pre class="remontti-code"># apt -y install wget; wget remontti.com.br/debian; bash debian; su -</pre>
<h3>Repositório</h3>
<p>Adicione <strong>contrib non-free </strong>aos repositórios</p>
<pre class="remontti-code"># vim /etc/apt/sources.list</pre>
<p>Ajuste:</p>
<pre class="remontti-code-plain">
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
</pre>
<p>Atualize o repositório:</p>
<pre class="remontti-code"># apt update</pre>
<p>Se tiver algum pacote para atualização também faça:</p>
<pre class="remontti-code"># apt upgrade -y</pre>
<p>Instale os firmware-linux*</p>
<pre class="remontti-code"># apt install firmware-linux firmware-linux-free firmware-linux-nonfree -y</pre>
<p>Reinicie seu servidor para carregar os novos módulos do kernel</p>
<pre class="remontti-code"># reboot</pre>
<p>Pacotes requisitos</p>
<pre class="remontti-code"># apt -y install gnupg gnupg2 curl wget rsyslog</pre>
<h4>Repositório MongoDB</h3>
<pre class="remontti-code"># curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
 gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

# echo &quot;deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
 http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main&quot; \
 &gt; /etc/apt/sources.list.d/mongodb-org-7.0.list</pre>
<p>Recarregue o repositório, e instale o MongoDB vamos</p>
<pre class="remontti-code"># apt update
# apt -y install mongodb-org </pre>
<p>Ative o serviço para iniciar com o boot, inicie o serviço e verifique se o mesmo iniciou com êxito. </p>
<pre class="remontti-code"># systemctl enable mongod
# systemctl start mongod
# systemctl status mongod</pre>
<h4>Node.js</h4>
<pre class="remontti-code"># apt -y install nodejs npm --no-install-recommends
# apt -y install node-mongodb</pre>
<h3>Instalação do GenieACS</h3>
<p>Procure se o pacote existe:</p>
<pre class="remontti-code"># npm search -g genieacs</pre>
<pre class="remontti-code-plain">
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

</pre>
<p>Instale o genieacs</p>
<pre class="remontti-code"># npm install -g genieacs</pre>
<pre class="remontti-code-plain">
added 220 packages in 5s

18 packages are looking for funding
  run `npm fund` for details

</pre>
<p>Crie um usuário do sistema para executar daemons GenieACS</p>
<pre class="remontti-code"># useradd --system --no-create-home --user-group genieacs</pre>
<p>Crie um diretório para salvar extensões e arquivo de ambiente<br />
Usaremos o diretório /opt/genieacs/ext/ para armazenar scripts de extensão (se houver).</p>
<pre class="remontti-code"># mkdir /opt/genieacs
# mkdir /opt/genieacs/ext</pre>
<p>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. </p>
<pre class="remontti-code"># vim /opt/genieacs/genieacs.env</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">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</pre>
<p>Gere um segredo JWT seguro e anexe a /opt/genieacs/genieacs.env:</p>
<pre class="remontti-code"># node -e &quot;console.log(\&quot;GENIEACS_UI_JWT_SECRET=\&quot; + require(&#039;crypto&#039;).\
 randomBytes(128).toString(&#039;hex&#039;))&quot; \
 &gt;&gt; /opt/genieacs/genieacs.env</pre>
<p>Defina a propriedade e as permissões do arquivo:</p>
<pre class="remontti-code"># chown genieacs: /opt/genieacs -R
# chmod 600 /opt/genieacs/genieacs.env</pre>
<p>Criar diretório de logs</p>
<pre class="remontti-code"># mkdir /var/log/genieacs
# chown genieacs: /var/log/genieacs</pre>
<p>Configure os serviços no systemd</p>
<pre class="remontti-code"># systemctl edit --force --full genieacs-cwmp</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">
[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
</pre>
<pre class="remontti-code"># systemctl edit --force --full genieacs-nbi</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">
[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
</pre>
<pre class="remontti-code"># systemctl edit --force --full genieacs-fs</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">
[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
</pre>
<pre class="remontti-code"># systemctl edit --force --full genieacs-ui</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">
[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
</pre>
<p>Configure o logrotate para rotação dos log gerados</p>
<pre class="remontti-code"># vim /etc/logrotate.d/genieacs</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">
/var/log/genieacs/*.log /var/log/genieacs/*.yaml {
    daily
    rotate 30
    compress
    delaycompress
    dateext
}
</pre>
<p>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.</p>
<pre class="remontti-code"># 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</pre>
<pre class="remontti-code-plain">
● 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&quot;
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&quot;
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&quot;
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&quot;
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.

</pre>
<p>Acesse em seu navegador: <strong>http://IP:3000 </strong></p>
<p>Clique em: <strong>ABRACADABRA! </strong><br />
<img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_1.png" alt="" width="1194" height="446" class="alignnone size-full wp-image-6003" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_1.png 1194w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_1-300x112.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_1-1024x382.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_1-768x287.png 768w" sizes="(max-width: 1194px) 100vw, 1194px" /></p>
<p>Clique em: <strong>Open Sesame!</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_2.png" alt="" width="1194" height="446" class="alignnone size-full wp-image-6004" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_2.png 1194w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_2-300x112.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_2-1024x382.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_2-768x287.png 768w" sizes="auto, (max-width: 1194px) 100vw, 1194px" /></p>
<p>Entre com: <strong>admin/admin</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_3.png" alt="" width="1194" height="386" class="alignnone size-full wp-image-6005" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_3.png 1194w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_3-300x97.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_3-1024x331.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_3-768x248.png 768w" sizes="auto, (max-width: 1194px) 100vw, 1194px" /></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_4.png" alt="" width="1194" height="483" class="alignnone size-full wp-image-6006" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_4.png 1194w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_4-300x121.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_4-1024x414.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_4-768x311.png 768w" sizes="auto, (max-width: 1194px) 100vw, 1194px" /></p>
<p>Grupo do telegram: <strong><a href="https://t.me/acsbrasil" rel="noopener" target="_blank">ACS/CWMP &#8211; TR069 &#8211; Brasil (PT-Br)</a></strong></p>
<p>Gostou? Quer ajudar manter o blog? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>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 <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Fonte: <a href="https://genieacs.com/" rel="noopener" target="_blank">https://genieacs.com/</a></p>
<p>O post <a href="https://blog.remontti.com.br/7904">Guia Completo de Instalação e Configuração do GenieACS em Debian 12 Bookworm</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7904/feed</wfw:commentRss>
			<slash:comments>18</slash:comments>
		
		
			</item>
	</channel>
</rss>
