<?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 servidor linux - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/servidor-linux/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/servidor-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.2</generator>

<image>
	<url>https://blog.remontti.com.br/wp-content/uploads/2024/09/icone-rr-80x80.png</url>
	<title>Arquivos servidor linux - Remontti</title>
	<link>https://blog.remontti.com.br/tag/servidor-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: Como instalar e configurar o Nextcloud Hub 9 no Debian 12</title>
		<link>https://blog.remontti.com.br/8193</link>
					<comments>https://blog.remontti.com.br/8193#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 06 Jan 2025 18:34:38 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[armazenamento em nuvem]]></category>
		<category><![CDATA[banco de dados nextcloud]]></category>
		<category><![CDATA[configuração nextcloud]]></category>
		<category><![CDATA[configuração redis]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[debian server]]></category>
		<category><![CDATA[guia completo nextcloud]]></category>
		<category><![CDATA[instalação nextcloud]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[nextcloud]]></category>
		<category><![CDATA[nextcloud em português]]></category>
		<category><![CDATA[nextcloud hub]]></category>
		<category><![CDATA[otimização nextcloud]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[segurança servidor]]></category>
		<category><![CDATA[servidor linux]]></category>
		<category><![CDATA[servidor nextcloud]]></category>
		<category><![CDATA[ssl certbot]]></category>
		<category><![CDATA[tutorial nextcloud]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=8193</guid>

					<description><![CDATA[<p>Neste tutorial, você aprenderá como configurar e instalar o NextCloud em um servidor Linux Debian 12. O Nextcloud Hub é uma poderosa solução de armazenamento em nuvem que permite hospedar seus próprios arquivos, calendários,&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/8193">Guia Completo: Como instalar e configurar o Nextcloud Hub 9 no Debian 12</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/2025/01/NEXTCLOUD-HUB-9-DEBIAN-12.png" alt="" width="1792" height="1024" class="alignnone size-full wp-image-8217" srcset="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-HUB-9-DEBIAN-12.png 1792w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-HUB-9-DEBIAN-12-300x171.png 300w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-HUB-9-DEBIAN-12-1024x585.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-HUB-9-DEBIAN-12-768x439.png 768w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-HUB-9-DEBIAN-12-1536x878.png 1536w" sizes="(max-width: 1792px) 100vw, 1792px" /><br />
Neste tutorial, você aprenderá como configurar e instalar o NextCloud em um servidor Linux Debian 12. O Nextcloud Hub é uma poderosa solução de armazenamento em nuvem que permite hospedar seus próprios arquivos, calendários, contatos e outros dados, garantindo total controle sobre a privacidade e segurança.</p>
<p>Abordaremos passo a passo desde a configuração do servidor web com Apache, PHP e MariaDB, até a instalação e configuração do NextCloud. Além disso, este guia inclui ajustes de segurança, como a implementação de SSL com Certbot (Let&#8217;s Encrypt) e otimizações para melhorar o desempenho do sistema.</p>
<p>Ao final, você terá um ambiente funcional e seguro para hospedar sua própria nuvem privada, ideal para empresas ou usuários que desejam independência de serviços de terceiros.</p>
<p>Prepare-se para transformar seu servidor em uma plataforma de nuvem privada robusta e personalizável! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h3>Debian 12</h3>
<p><strong><a href="https://blog.remontti.com.br/7236" target="_blank">Instalação do Debian 12 Bookworm limpa passo-a-passo</a></strong></p>
<h2>Subindo Servidor Web</h2>
<p>Instale o servidor web Apache e vários módulos do PHP necessários para o nextcloud</p>
<pre class="remontti-code"># apt install apache2 apache2-utils redis-server php \
  php-{fpm,pclzip,xmlrpc,imagick,redis,memcached,apcu,imap,ldap,intl,mysql,cli,pear,gmp,gd,bcmath,mbstring,curl,xml,zip} -y</pre>
<p>Habilitação de Módulos do Apache</p>
<pre class="remontti-code"># a2enmod proxy_fcgi setenvif mpm_event rewrite headers http2</pre>
<ul>
<li><strong>proxy_fcgi</strong>: Permite que o Apache se conecte a servidores FastCGI, como PHP-FPM.  </li>
<li><strong>setenvif</strong>: Configura variáveis de ambiente com base em condições das requisições.  </li>
<li><strong>mpm_event</strong>: Otimiza o Apache para lidar com conexões simultâneas de forma eficiente.  </li>
<li><strong>rewrite</strong>: Permite redirecionamentos e reescritas de URL dinâmicas.  </li>
<li><strong>headers</strong>: Permite manipulação de cabeçalhos HTTP em respostas e requisições.  </li>
<li><strong>http2</strong>: Habilita suporte ao protocolo HTTP/2 para maior velocidade e eficiência.</li>
</ul>
<p>Desabilitação do Módulo PHP do Apache, vamos utilizar o PHP-FPM.</p>
<pre class="remontti-code"># a2dismod php8.2</pre>
<p>Ativação do PHP-FPM no Boot, e habilite o PHP-FPM no Apache.</p>
<pre class="remontti-code"># systemctl enable php8.2-fpm
# a2enconf php8.2-fpm</pre>
<p>Melhorias de Segurança: Ajusta as configurações para ocultar informações sensíveis do servidor, como versão do Apache e detalhes do sistema operacional.</p>
<pre class="remontti-code"># sed -i &#039;s/ServerTokens OS/ServerTokens Prod/&#039; /etc/apache2/conf-available/security.conf
# sed -i &#039;s/ServerSignature On/ServerSignature Off/&#039; /etc/apache2/conf-available/security.conf</pre>
<p>Adiciona o usuário `www-data` (usado pelo servidor web) ao grupo do Redis, permitindo acesso ao cache Redis pelo Apache ou PHP.</p>
<pre class="remontti-code"># usermod -a -G redis www-data
echo &#039;apc.enable_cli=1&#039; &gt;&gt; /etc/php/8.2/cli/php.ini</pre>
<p>Edite o arquivo php.ini do PHP-FPM</p>
<pre class="remontti-code"># vim /etc/php/8.2/fpm/php.ini</pre>
<ul>
<li>Defina o limite de memória para scripts PHP em <strong>512MB</strong>, garantindo que aplicações PHP que consomem mais memória possam funcionar adequadamente.</li>
<li>Configura o <strong>opcache</strong> para usar <strong>16MB de buffer para strings internada</strong>, melhorando o desempenho e reduzindo o consumo de memória de strings repetitivas.</li>
</ul>
<pre class="remontti-code-plain">
memory_limit = 512M
opcache.interned_strings_buffer=16
</pre>
<p>Para instalação do NextCloud vou utilizar o diretório padrão do Apache /var/www/html, desta forma se você se você não fou utilizar DNS (acessar via IP) pode pular o próximo passo.</p>
<p>Aponte em seus DNS a entra para o subdomínio, exemplo: <strong>nextcloud</strong>.seudominio.com.br. Agora vamos criar a configuração do Apache para tratar o <em>&#8220;nextcloud.seudominio.com.br&#8221;</em></p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/nextcloud.conf</pre>
<p>Ajuste da seguinte forma:</p>
<pre class="remontti-code-plain">
&lt;virtualhost *:80&gt;
        Protocols h2 http/1.1
        ServerName nextcloud.seudominio.com.br
        ServerAdmin noc@seudominio.com.br
 
        DocumentRoot /var/www/html 
 
        &lt;IfModule mod_headers.c&gt;
          Header always set Strict-Transport-Security &quot;max-age=15552000; includeSubDomains&quot;
        &lt;/IfModule&gt; 
 
        &lt;directory /var/www/html/ &gt;
                Options FollowSymLinks
                AllowOverride All
        &lt;/directory&gt; 
 
        LogLevel warn 
        ErrorLog ${APACHE_LOG_DIR}/error_nextcloud.log
        CustomLog ${APACHE_LOG_DIR}/access_nextcloud.log combined
&lt;/virtualhost&gt;</pre>
<p>Se estiver configurado servidor para um DNS desative a configuração <strong>000-default</strong>, caso não configurou pule essa etapa.</p>
<pre class="remontti-code"># a2dissite 000-default</pre>
<p>Ative as configurações do nextcloud.conf no apache para interpretar as configurações com nosso domínio.</p>
<pre class="remontti-code"># a2ensite nextcloud</pre>
<p>Reinicia o servidor Apache e php-fpm para aplicar as configurações feitas.</p>
<pre class="remontti-code"># systemctl restart php8.2-fpm apache2</pre>
<p>Instala o Certbot (ferramenta para gerenciar certificados grátis da Let’s Encrypt) e o plugin para integração com o Apache.</p>
<pre class="remontti-code"># apt install certbot python3-certbot-apache</pre>
<p>Execute o Certbot para configura automaticamente o VirtualHost.</p>
<pre class="remontti-code"># certbot</pre>
<pre class="remontti-code-green">Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter &#039;c&#039; to cancel): noc@seudominio.com.br <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f448.png" alt="👈" class="wp-smiley" style="height: 1em; max-height: 1em;" />

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in
order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f448.png" alt="👈" class="wp-smiley" style="height: 1em; max-height: 1em;" />

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let&#039;s Encrypt project and the non-profit organization that
develops Certbot? We&#039;d like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f448.png" alt="👈" class="wp-smiley" style="height: 1em; max-height: 1em;" />
Account registered.

Which names would you like to activate HTTPS for?
We recommend selecting either all domains, or all domains in a VirtualHost/server block.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: nextcloud.seudominio.com.br
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter &#039;c&#039; to cancel): 1
Requesting a certificate for nextcloud.seudominio.com.br

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/nextcloud.seudominio.com.br/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/nextcloud.seudominio.com.br/privkey.pem
This certificate expires on 2025-04-06.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for nextcloud.seudominio.com.br to /etc/apache2/sites-available/nextcloud-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://nextcloud.seudominio.com.br

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</pre>
<p>Certificados gerados pela Let&#8217;s Encrypt tem validade de 90 dias. Então vamos criar um script para renovar de forma automática.</p>
<pre class="remontti-code"># vim /usr/local/bin/renew-certificates.sh</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">#!/bin/bash

# Renova os certificados usando Certbot
/usr/bin/certbot renew --quiet</pre>
<p>De permissão para execução.</p>
<pre class="remontti-code">chmod +x /usr/local/bin/renew-certificates.sh</pre>
<p>Adicione ao cron para 1x por semana às 03:00 da manhã ele realizar a renovação.</p>
<pre class="remontti-code">crontab -e</pre>
<p>Adicion:</p>
<pre class="remontti-code-plain">
0 3 * * 1 /usr/local/bin/renew-certificates.sh</pre>
<p>Reinicie o cron.</p>
<pre class="remontti-code"># systemctl restart cron</pre>
<h4>MariaDB <em>(Banco de Dados)</em></h4>
<p>Instala o servidor e o cliente do MariaDB, um sistema de gerenciamento de banco de dados.</p>
<pre class="remontti-code"># apt install mariadb-server mariadb-client</pre>
<p>Crie o banco de dados para o NextCloud, acesso o terminal do MariaDB.</p>
<pre class="remontti-code"># mariadb -u root </pre>
<p>Altere <strong>SUA_SENHA</strong> para sua senha.</p>
<pre class="remontti-code-plain">
CREATE USER &#039;nextcloud&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA_SENHA&#039;;
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO &#039;nextcloud&#039;@&#039;localhost&#039;;
FLUSH PRIVILEGES;
QUIT;</pre>
<p>Vamos fazer mais um ajuste no banco de dados MariaDB:</p>
<pre class="remontti-code"># vim /etc/mysql/conf.d/mysql.cnf</pre>
<p>Adicione configuração extras do <strong>innodb_buffer_pool_size</strong> e <strong>innodb_io_capacity</strong> para uma melhor performace.</p>
<pre class="remontti-code-plain">[mysqld]

# Define o tamanho do buffer pool do InnoDB para 1 GB, usado para armazenar 
# dados e índices em memória, melhorando o desempenho.
innodb_buffer_pool_size=1G

# Configura a capacidade máxima de I/O por segundo do InnoDB, 
# ideal para servidores com discos rápidos, como SSDs.
innodb_io_capacity=4000</pre>
<p>Reinicie o serviço para carregar as novas configurações.</p>
<pre class="remontti-code"># systemctl restart mariadb</pre>
<h5>Bibliotecas adicionais</h5>
<p>Instala bibliotecas adicionais para suporte a formatos de imagem extras e funcionalidades avançadas no ImageMagick.</p>
<pre class="remontti-code"># apt install libmagickcore-6.q16-6-extra -y</pre>
<h2>Instalação do NextCloud</h2>
<p>Servidor web pronto, vamos as configurações do NextCloud</p>
<p>Vamos fazer download da versão mais recente (Hoje 06/01/2025 v30.0.4)</p>
<pre class="remontti-code"># cd /tmp/
# wget https://download.nextcloud.com/server/releases/latest.zip</pre>
<pre class="remontti-code-green">--2025-01-06 11:50:58--  https://download.nextcloud.com/server/releases/latest.zip
Resolvendo download.nextcloud.com (download.nextcloud.com)... 2a01:21c8::145, 5.9.202.145
Conectando-se a download.nextcloud.com (download.nextcloud.com)|2a01:210:21c8::145|:443... conectado.
A requisição HTTP foi enviada, aguardando resposta... 200 OK
Tamanho: 225508096 (215M) [application/zip]
Salvando em: “latest.zip”

latest.zip  100%[============================================&gt;] 215,06M   373KB/s    em 8m 11s  

2025-01-06 11:59:10 (448 KB/s) - “latest.zip” salvo [225508096/225508096]</pre>
<p>Extraia o arquivo</p>
<pre class="remontti-code"># unzip -q latest.zip</pre>
<p>Agora vamos mover os arquivos para /var/www/html, porem antes vamos renomear a pasta html que contém o arquivo index.html padrão do apache. </p>
<pre class="remontti-code"># mv /var/www/html/ /var/www/html_old</pre>
<p>Agora vamos mover nossa pasta que extraímos <strong>nextcloud</strong> para <strong>/var/www/html</strong>, e vamos dar permissões para o usuário Apache administrar os arquivos.</p>
<pre class="remontti-code"># mv nextcloud /var/www/html
# chown -R www-data: /var/www/html</pre>
<p>Agora acesse em seu navegador <em>&#8220;https://nextcloud.seudominio.com.br&#8221;</em> para finalizar a instalação:<br />
Crie uma nome de <strong>usuário</strong> e senha para o <strong>administrador</strong>, em seguida informe os dados da conexão do banco de dados MariaDB, conforme você criou anteriormente, e clique em <strong>instalar</strong>.<br />
<img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD.png" alt="" width="956" height="1088" class="alignnone size-full wp-image-8210" srcset="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD.png 956w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-264x300.png 264w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-900x1024.png 900w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD-768x874.png 768w" sizes="(max-width: 956px) 100vw, 956px" /></p>
<p>Selecione quais aplicações gostaria de instalar e clique em instalar, ou clique em ignorar para não instalar agora. (É possível instalar posteriormente no painel de administração.)<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD3.png" alt="" width="1353" height="955" class="alignnone size-full wp-image-8212" srcset="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD3.png 1353w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD3-300x212.png 300w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD3-1024x723.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD3-768x542.png 768w" sizes="auto, (max-width: 1353px) 100vw, 1353px" /></p>
<p>Algumas telas irão aparecer apresentando o Nexcloud Hub. </p>
<p>Ao final você terá a seguinte tela.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10.png" alt="" width="2560" height="957" class="alignnone size-full wp-image-8213" srcset="https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10.png 2560w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10-300x112.png 300w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10-1024x383.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10-768x287.png 768w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10-1536x574.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2025/01/NEXTCLOUD10-2048x766.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></p>
<p>Seu NextCloud está quase pronto para utilizar, vamos a mais alguns ajustes.</p>
<p><strong>Adicionar Índices Ausentes ao Banco de Dados:</strong></p>
<pre class="remontti-code"># su - www-data --shell=/bin/bash -c &#039;php /var/www/html/occ db:add-missing-indices&#039; </pre>
<p>Este comando utiliza a interface de linha de comando do Nextcloud (`occ`) para verificar e adicionar índices que possam estar faltando nas tabelas do banco de dados. Índices são cruciais para melhorar a velocidade das consultas e o desempenho geral do sistema. Ao adicionar os índices ausentes, garantimos que o banco de dados opere de maneira mais eficiente. </p>
<p><strong>Configurar o Horário de Início da Janela de Manutenção:</strong></p>
<pre class="remontti-code"># su - www-data --shell=/bin/bash -c &#039;php /var/www/html/occ config:system:set maintenance_window_start --type=integer --value=3&#039; </pre>
<p>Este comando define o horário de início da janela de manutenção para as tarefas de segundo plano que exigem muitos recursos. Ao configurar este parâmetro, você especifica a hora (em UTC) em que essas tarefas devem começar, minimizando o impacto no desempenho durante os períodos de uso intenso. No exemplo acima, o valor `3` indica que a janela de manutenção começará às 03:00 UTC. </p>
<p><strong>Executar Reparos de Manutenção Incluindo Migrações de Mime Types:</strong></p>
<pre class="remontti-code"># su - www-data --shell=/bin/bash -c &#039;php /var/www/html/occ maintenance:repair --include-expensive&#039; </pre>
<p>Este comando executa uma série de reparos no sistema Nextcloud, incluindo tarefas que podem ser demoradas (`&#8211;include-expensive`). Entre essas tarefas, está a migração de tipos MIME, que assegura que novos tipos de arquivos sejam reconhecidos e tratados corretamente pelo sistema. É especialmente útil após atualizações ou quando novos tipos de arquivos são adicionados. </p>
<p><strong>Ajustes finais</strong></p>
<pre class="remontti-code"># vim /var/www/html/config/config.php</pre>
<p>Adicione as seguintes linhas dentro do array $CONFIG {}: </p>
<pre class="remontti-code-plain">
  &#039;default_language&#039; =&gt; &#039;pt-BR&#039;,
  &#039;default_locale&#039; =&gt; &#039;pt_BR&#039;,
  &#039;default_phone_region&#039; =&gt; &#039;BR&#039;,
</pre>
<p>Adicione: Redis como memcache para o bloqueio de arquivos.</p>
<pre class="remontti-code-plain">
  &#039;filelocking.enabled&#039; =&gt; true,
  &#039;memcache.local&#039; =&gt; &#039;\OC\Memcache\APCu&#039;,
  &#039;memcache.locking&#039; =&gt; &#039;\OC\Memcache\Redis&#039;,
  &#039;redis&#039; =&gt; [
    &#039;host&#039; =&gt; &#039;localhost&#039;,
    &#039;port&#039; =&gt; 6379,
  ],
</pre>
<p>Sempre que você cria um usuário novo ele cria vários arquivos de exemplo/modelo, se desejar desativar isso adicione também:</p>
<pre class="remontti-code-plain">
  &#039;skeletondirectory&#039; =&gt; &#039;&#039;,
</pre>
<p>Agora limpe os logs</p>
<pre class="remontti-code"> # &gt; /var/www/html/data/nextcloud.log</pre>
<p>Agora vá até as configurações de administrador para verificar se a instalação está tudo &#8220;dentro dos conformes&#8221;.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2025/01/nextcloud-hub-conf.png" alt="" width="453" height="525" class="alignnone size-full wp-image-8215" srcset="https://blog.remontti.com.br/wp-content/uploads/2025/01/nextcloud-hub-conf.png 453w, https://blog.remontti.com.br/wp-content/uploads/2025/01/nextcloud-hub-conf-259x300.png 259w" sizes="auto, (max-width: 453px) 100vw, 453px" /></p>
<p>Deve conter apenas um &#8220;problema&#8221;: <em>Você ainda não definiu ou verificou a configuração do seu servidor de e-mail. </em> Para resolver basta configurar o serviço de envio de e-mail.</p>
<p>É possível testar seu servidor em: <a href="https://scan.nextcloud.com" target="_blank">https://scan.nextcloud.com</a></p>
<p>Agora sim seu servidor NextCloud Hub está pronto!</p>
<h5>Bônus</h5>
<p>Perdi a senha como recupara?</p>
<pre class="remontti-code"># su - www-data --shell=/bin/bash -c &#039;php /var/www/html/occ user:resetpassword administrador&#039;</pre>
<pre class="remontti-code-green">Enter a new password: 
Confirm the new password: 
Successfully reset password for administrador</pre>
<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><strong>Fonte:</strong><br />
<a href="https://docs.nextcloud.com/server/latest/admin_manual/contents.html" target="_blank">https://docs.nextcloud.com/server/latest/admin_manual/contents.html</a></p>
<p>O post <a href="https://blog.remontti.com.br/8193">Guia Completo: Como instalar e configurar o Nextcloud Hub 9 no Debian 12</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/8193/feed</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
	</channel>
</rss>
