<?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 bookworm - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/bookworm/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/bookworm</link>
	<description>rudimar@remontti</description>
	<lastBuildDate>Wed, 15 Oct 2025 17:33:42 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.remontti.com.br/wp-content/uploads/2024/09/icone-rr-80x80.png</url>
	<title>Arquivos bookworm - Remontti</title>
	<link>https://blog.remontti.com.br/tag/bookworm</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Guia Passo a Passo para Instalar o Typebot em seu servidor próprio</title>
		<link>https://blog.remontti.com.br/7656</link>
					<comments>https://blog.remontti.com.br/7656#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 22 Sep 2023 15:32:29 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[automação]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[bookworm]]></category>
		<category><![CDATA[Certbot]]></category>
		<category><![CDATA[Chatbot]]></category>
		<category><![CDATA[Configuração]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[instalaçao]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[passo a passo]]></category>
		<category><![CDATA[PM2]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[Prisma]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Servidor]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Typebot]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7656</guid>

					<description><![CDATA[<p>O Typebot é uma ferramenta de código aberto que permite criar aplicativos ou formulários conversacionais de forma simples e eficaz. Ele oferece uma alternativa robusta a outras plataformas como o Landbot. Com o Typebot,&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7656">Guia Passo a Passo para Instalar o Typebot em seu servidor próprio</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/2023/09/typebot.jpeg" alt="" width="1024" height="640" class="alignnone size-full wp-image-7666" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot.jpeg 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-300x188.jpeg 300w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-768x480.jpeg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
<p>O <a href="https://typebot.io" rel="noopener" target="_blank"><strong>Typebot</strong></a> é uma ferramenta de código aberto que permite criar aplicativos ou formulários conversacionais de forma simples e eficaz. Ele oferece uma alternativa robusta a outras plataformas como o Landbot. Com o Typebot, você pode criar diferentes tipos de aplicativos conversacionais, como:</p>
<p>&#8211; Qualificação de leads<br />
&#8211; Lançamento de produtos<br />
&#8211; Integração de usuários<br />
&#8211; Suporte ao cliente</p>
<p>O Typebot é amado por equipes e criadores em todo o mundo e oferece uma experiência de construção fácil. Você pode arrastar e soltar blocos para criar seu aplicativo e integrá-lo facilmente em qualquer plataforma. Além disso, ele permite coletar resultados em tempo real, o que é uma grande vantagem.</p>
<p><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-scaled.webp" alt="" width="2560" height="1465" class="alignnone size-full wp-image-7664" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-scaled.webp 2560w, https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-300x172.webp 300w, https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-1024x586.webp 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-768x439.webp 768w, https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-1536x879.webp 1536w, https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-2048x1172.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></p>
<h4>Exemplos de Uso</h4>
<p><strong>&#8211; Coleta de Informações de Contato:</strong> Substitua seus formulários tradicionais por um chatbot que pode coletar nomes, e-mails e outros detalhes de forma interativa.<br />
<strong>&#8211; Suporte ao Cliente:</strong> Use o Typebot para responder automaticamente a perguntas frequentes e fornecer suporte em tempo real.<br />
<strong>&#8211; Integração de Usuários:</strong> Facilite o processo de integração, fornecendo aos novos usuários um guia passo a passo interativo.<br />
&#8211; Campanhas de Marketing: Utilize o Typebot em suas landing pages para aumentar as taxas de conversão e engajamento.<br />
<strong>&#8211; Pesquisas e Feedback:</strong> Colete feedback do usuário ou conduza pesquisas de forma mais envolvente e interativa.</p>
<h4>Requesitos</h4>
<p><a href="https://blog.remontti.com.br/7236" rel="noopener" target="_blank">Debian 12 bookworm (Instalação Limpa)</a></p>
<h4>DNS</h4>
<p>Crie duas entradas em seu DNS exemplo:<br />
&#8211; typebot.remontti.cum.br apontando para os IPs do servidor<br />
&#8211; typebotapi.remontti.cum.br apontando para os IPs do servidor</p>
<p>Se você<a href="https://blog.remontti.com.br/5958" rel="noopener" target="_blank"> já é da turma do blog</a> vai entender o que temos a baixo la no amigo bind9:</p>
<pre class="remontti-code-plain">typebot       A       192.168.0.100
              AAAA    2001:db8:bebe:cafe::100

typebotapi    A       192.168.0.100
              AAAA    2001:db8:bebe:cafe::100</pre>
<h4>Atualização e Instalação de Pacotes</h4>
<pre class="remontti-code"># apt update; apt upgrade -y</pre>
<p>Instale os pacotes necessários para o projeto</p>
<pre class="remontti-code"># apt install -y nodejs npm git nginx postgresql postgresql-contrib</pre>
<p>Instala globalmente os pacotes pm2 e pnpm usando npm</p>
<pre class="remontti-code"># npm install -g pm2 pnpm</pre>
<h4>Configuração do PostgreSQL</h4>
<p>Alterne para o usuário postgres</p>
<pre class="remontti-code"># su - postgres</pre>
<p>Crie um novo usuário chamado &#8216;typebot&#8217; em seguida inserira uma senha.</p>
<pre class="remontti-code">$ createuser --pwprompt typebot</pre>
<p>Crie um novo banco de dados &#8216;typebot&#8217; e define &#8216;typebot&#8217; como o proprietário</p>
<pre class="remontti-code">$ createdb -O typebot typebot</pre>
<p>Sai do usuário postgres</p>
<pre class="remontti-code">$ exit</pre>
<h4>Preparando formas de autenticação</h4>
<p>Vou deixar 3 formas que são as mais fáceis, você pode optar em usar apenas uma.</p>
<h4>Email</h4>
<p>A mais fácil de todas, basta você utilizar um email, assim toda vez que você for logar ele ira lhe mandar um e-mail com o link. </p>
<h4>Google</h4>
<p>Crie um novo projeto em <a href="https://console.developers.google.com/apis/credentials" rel="noopener" target="_blank">https://console.developers.google.com/apis/credentials</a></p>
<pre class="remontti-code-plain">
Cria um novo projeto
&gt; OAuth consent screen
	&gt; externo 
	Nome: Typebot
	User support email: seu!
	Developer contact information: seu!
	 SAVE

	 ADD OR REMOVE SCOPES
	   	.../auth/userinfo.email
	   	.../auth/userinfo.profile
	   	 SAVE

	   	 SAVE

	   	 BACK TO DASH
&gt; Credentials 
	+ CREATE CREDENTALS
	  &gt; Create OAuth client ID 
		Application type: Web application
		Name: Typebot

		Authorized redirect URIs
		https://typebot.remontti.cum.br/api/auth/callback/google

	Client ID
	Anote

	Client secret
	Anote</pre>
<p>Será usado em:</p>
<pre class="remontti-code-plain">GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=</pre>
<h4>Github</h4>
<p>Acesse <a href="https://github.com/settings/developers" rel="noopener" target="_blank">https://github.com/settings/developers</a> e clique em <strong>New OAuth Apps</strong></p>
<pre class="remontti-code-plain">Application name: Typebot
Homepage URL: https://typebot.remontti.cum.br
Application description: Typebot Auth
Authorization callback URL: https://typebot.remontti.cum.br/api/auth/callback/github</pre>
<p>Anote o <strong>Client ID</strong> e clique em <strong>Generate a new client secret</strong> anote os dois para ser usado em </p>
<pre class="remontti-code-plain">GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=</pre>
<h4>Configuração do Projeto Typebot no Servidor</h4>
<p>Vamos armazenar o projeto mo diretório /opt. </p>
<pre class="remontti-code"># cd /opt/
# git clone https://github.com/baptisteArno/typebot.io.git</pre>
<p>Entre no diretório do projeto<br />
cd typebot.io</p>
<p>Crie arquivo <strong>.env</strong> onde irá ficar as <a href="https://docs.typebot.io/self-hosting/configuration" rel="noopener" target="_blank">variáveis de ambiente</a>.</p>
<pre class="remontti-code"># vim /opt/typebot.io/.env</pre>
<p>Faça os ajustes:</p>
<pre class="remontti-code-plain"># Define a chave de criptografia (Gere aqui https://senhasegura.remontti.cum.br/)
ENCRYPTION_SECRET=i9eRecwVJQeKENqdcrQeizOXFHzQdwAp

# Define a URL de conexão com o banco de dados PostgreSQL
DATABASE_URL=postgresql://typebot:minhasupersenha@localhost:5432/typebot

# Define as URLs para autenticação e API
NEXTAUTH_URL=https://typebot.remontti.cum.br
NEXT_PUBLIC_VIEWER_URL=https://typebotapi.remontti.cum.br

# Define o e-mail do administrador
ADMIN_EMAIL=typebot@remontti.cum.br

# Define as configurações para o servidor SMTP
SMTP_USERNAME=typebot@remontti.cum.br
SMTP_PASSWORD=minhasenha
SMTP_HOST=mail.remontti.cum.br
SMTP_PORT=25
NEXT_PUBLIC_SMTP_FROM=typebot@remontti.cum.br
SMTP_SECURE=false
SMTP_AUTH_DISABLED=false

# Configurações para autenticação via Google e GitHub (opcional)
# Google
GOOGLE_CLIENT_ID=98916e5d5dd1-e3lfmixxuditlz2egexp0n8bfwf3oie3.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=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

# GitHub
GITHUB_CLIENT_ID=6ewyvfeumndg2ve5kve1
GITHUB_CLIENT_SECRET=7r78f2vpmihgriebkp7p4b0ervd4qc7ufu1uu5nx

# Permite ou desabilita o cadastro de novas contas
DISABLE_SIGNUP=false</pre>
<p>Instale todas as dependências do projeto</p>
<pre class="remontti-code"># cd /opt/typebot.io/
# pnpm install</pre>
<p>Saída:</p>
<pre class="remontti-code-plain">Scope: all 19 workspace projects
Lockfile is up to date, resolution step is skipped
Packages: +2398
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Downloading registry.npmjs.org/next/13.4.3: 12,32 MB/12,32 MB, done
[...]
[...]
[...]
devDependencies:
+ cross-env 7.0.3
+ cz-emoji 1.3.2-canary.2
+ husky 8.0.3
+ prettier 2.8.8
+ turbo 1.10.12

. prepare$ husky install
│ husky - Git hooks installed
└─ Done in 288ms
Done in 2m 12.5s</pre>
<p>Compile os aplicativos</p>
<pre class="remontti-code"># cd /opt/typebot.io/
# pnpm run build:apps</pre>
<p>Saída</p>
<pre class="remontti-code-plain">&gt; typebot-os@2.17.2 build:apps /root/typebot.io
&gt; turbo run build --filter=builder... --filter=viewer...
[...]
[...]
[...]
[...]
builder:build: ○  (Static)  automatically rendered as static HTML (uses no initial props)
builder:build: 

 Tasks:    9 successful, 9 total
Cached:    0 cached, 9 total
  Time:    5m28.928s 

⠋ ...writing to cache...  [1s] 

─────────┴──────────┴──────────┘</pre>
<p>Copie o arquivo .env para os diretórios dos aplicativos</p>
<pre class="remontti-code"># cp /opt/typebot.io/.env /opt/typebot.io/apps/builder/
# cp /opt/typebot.io/.env /opt/typebot.io/apps/viewer/</pre>
<p>Configuração e migrações do banco de dados</p>
<pre class="remontti-code"># cd /opt/typebot.io/
# pnpm prisma generate &amp;&amp; pnpm db:migrate</pre>
<p>Saída:</p>
<pre class="remontti-code-plain">Environment variables loaded from .env
prisma:warn We could not find your Prisma schema at `prisma/schema.prisma`.
If you have a Prisma schema file in a custom path, you will need to run
`prisma generate --schema=./path/to/your/schema.prisma` to generate Prisma Client.
If you do not have a Prisma schema file yet, you can ignore this message.


&gt; typebot-os@2.17.2 db:migrate /opt/typebot.io
&gt; cd packages/prisma &amp;&amp; pnpm run db:migrate


&gt; @typebot.io/prisma@0.1.0 db:migrate /opt/typebot.io/packages/prisma
&gt; pnpm migrate:deploy


&gt; @typebot.io/prisma@0.1.0 migrate:deploy /opt/typebot.io/packages/prisma
&gt; dotenv -e ./.env -e ../../.env -- tsx scripts/migrate-deploy.ts

Executing for PostgreSQL schema
┌─────────────────────────────────────────────────────────┐
│  Update available 5.0.0 -&gt; 5.3.1                        │
│  Run the following to update                            │
│    npm i --save-dev prisma@latest                       │
│    npm i @prisma/client@latest                          │
└─────────────────────────────────────────────────────────┘</pre>
<p>Inicia os aplicativos com o PM2</p>
<pre class="remontti-code"># pm2 start --name=typebotwww --cwd /opt/typebot.io/apps/builder/ &quot;pnpm -- next start -p 54001&quot;
# pm2 start --name=typebotapi --cwd /opt/typebot.io/apps/viewer/ &quot;pnpm -- next start -p 54002&quot;</pre>
<pre class="remontti-code-plain">┌────┬───────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name          │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├────┼───────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 1  │ typebotapi    │ default     │ N/A     │ fork    │ 819      │ 0s     │ 0    │ online    │ 0%       │ 10.8mb   │ root     │ disabled │
│ 0  │ typebotwww    │ default     │ N/A     │ fork    │ 760      │ 19s    │ 0    │ online    │ 0%       │ 97.2mb   │ root     │ disabled │
└────┴───────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘</pre>
<p>Salva a configuração atual do PM2 e configura para iniciar com o sistema</p>
<pre class="remontti-code"># pm2 save
# pm2 startup</pre>
<h5>Configuração do Nginx</h5>
<p>Cria os arquivos de configuração do Nginx para os subdomínios</p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/typebot.remontti.cum.br.conf</pre>
<pre class="remontti-code-plain">
server {
    listen 80;
    listen [::]:80;
 
    server_name typebot.remontti.cum.br;

    location / {
        proxy_pass http://localhost:54001;
        proxy_set_header Host $host;
    }
}

</pre>
<pre class="remontti-code"># vim /etc/nginx/sites-available/typebotapi.remontti.cum.br.conf</pre>
<pre class="remontti-code-plain">
server {
    listen 80;
    listen [::]:80;
 
    server_name typebotapi.remontti.cum.br;
 
    location / {
        proxy_pass http://localhost:54002;
        proxy_set_header Host $host;
    }
}
</pre>
<p>Ativa os sites no Nginx</p>
<pre class="remontti-code"># ln -s /etc/nginx/sites-available/typebot.remontti.cum.br.conf /etc/nginx/sites-enabled/
# ln -s /etc/nginx/sites-available/typebotapi.remontti.cum.br.conf /etc/nginx/sites-enabled/
# rm /etc/nginx/sites-enabled/default</pre>
<p>Verifica a sintaxe e reinicia o Nginx</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<h5>Configuração do Certbot/Let&#8217;s Encrypt para HTTPS</h5>
<p>Instala o Certbot e o plugin do Nginx</p>
<pre class="remontti-code"># apt install certbot python3-certbot-nginx</pre>
<p>Executa o Certbot para obter os certificados SSL</p>
<pre class="remontti-code">certbot</pre>
<p>Responda: </p>
<pre class="remontti-code-plain">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@remontti.cum.br

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y &lt;&lt;&lt;&lt;&lt;

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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 &lt;&lt;&lt;&lt;
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: typebotapi.remontti.cum.br
2: typebot.remontti.cum.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):  &lt;&lt;&lt;&lt;
Requesting a certificate for typebotapi.remontti.cum.br and typebot.remontti.cum.br

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/typebotapi.remontti.cum.br/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/typebotapi.remontti.cum.br/privkey.pem
This certificate expires on 2023-12-20.
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 typebotapi.remontti.cum.br to /etc/nginx/sites-enabled/typebotapi.remontti.cum.br.conf
Successfully deployed certificate for typebot.remontti.cum.br to /etc/nginx/sites-enabled/typebot.remontti.cum.br.conf
Congratulations! You have successfully enabled HTTPS on https://typebotapi.remontti.cum.br and https://typebot.remontti.cum.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>
<h5>Configuração do Cron para Renovação Automática do Certificado SSL.</h5>
<p>Adicione uma tarefa cron para renovar automaticamente o certificado SSL todo dia 1 de cada mês à meia-noite, e reinicie o cron.</p>
<pre class="remontti-code"># echo &#039;00 00   1 * *   root    /usr/bin/certbot renew -q&#039; &gt;&gt; /etc/crontab
# systemctl restart cron.service</pre>
<h5>Acessando a aplicação</h5>
<p>Abra seu navegador e acesse: https://typebot.remontti.cum.br<br />
<img decoding="async" src="https://blog.remontti.cum.br/wp-content/uploads/2023/09/typebot-remontti.png" alt="" width="900" height="403" class="alignnone size-full wp-image-7661" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti.png 900w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti-300x134.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti-768x344.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></p>
<p>Clique em <strong>Registre-se gratuitamente</strong><br />
Escolha a forma desejada.</p>
<h4><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2757.png" alt="❗" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2757.png" alt="❗" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2757.png" alt="❗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </h4>
<p>Os registros <strong>ficam aberto</strong>, então registre toda sua equipe e em seguida desativa a possibilidade de novos registros nos arquivos .env (<strong>DISABLE_SIGNUP=true</strong>)<br />
Com o comando sed</p>
<pre class="remontti-code"># sed -i &#039;s/DISABLE_SIGNUP=false/DISABLE_SIGNUP=true/&#039; /opt/typebot.io/.env
# sed -i &#039;s/DISABLE_SIGNUP=false/DISABLE_SIGNUP=true/&#039; /opt/typebot.io/apps/viewer/.env
# sed -i &#039;s/DISABLE_SIGNUP=false/DISABLE_SIGNUP=true/&#039; /opt/typebot.io/apps/builder/.env</pre>
<p>Reinicie o pm2 </p>
<pre class="remontti-code"># systemctl restart pm2-root.service</pre>
<p>Se deseja realizar novos cadastros basta alterar <strong>DISABLE_SIGNUP=true</strong> para <strong>DISABLE_SIGNUP=false</strong> e reiniciar novamente.</p>
<pre class="remontti-code"># sed -i &#039;s/DISABLE_SIGNUP=true/DISABLE_SIGNUP=false/&#039; /opt/typebot.io/.env
# sed -i &#039;s/DISABLE_SIGNUP=true/DISABLE_SIGNUP=false/&#039; /opt/typebot.io/apps/viewer/.env
# sed -i &#039;s/DISABLE_SIGNUP=true/DISABLE_SIGNUP=false/&#039; /opt/typebot.io/apps/builder/.env</pre>
<p>Reinicie o pm2 </p>
<pre class="remontti-code"># systemctl restart pm2-root.service</pre>
<p>Se desejar fazer alterações faça os arquivos:</p>
<pre class="remontti-code-plain">/opt/typebot.io/.env
/opt/typebot.io/apps/viewer/.env
/opt/typebot.io/apps/builder/.env</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.cum.br/wp-content/uploads/2023/09/typebot-remontti-1.png" alt="" width="1050" height="411" class="alignnone size-full wp-image-7662" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti-1.png 1050w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti-1-300x117.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti-1-1024x401.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti-1-768x301.png 768w" sizes="auto, (max-width: 1050px) 100vw, 1050px" /></p>
<p>A parte mais complicada está feita!<br />
Existe vários videos no <a href="https://www.youtube.com/results?search_query=typebot" rel="noopener" target="_blank">YouTube</a> sobre como mexer nessa criança. Inclusive no <a href="https://www.youtube.com/@typebot4666" rel="noopener" target="_blank">canal oficial </a>dos desenvolvedores. <em>Dica ative a legenda e selecione traduzir!</em></p>
<p><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/jp3ggg_42-M?si=xPi09hAm6AqyZfcU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></p>
<p>Gostou e quer me ajudar manter o blog sem a inconveniência de anúncios intrusivos ou a imposição de taxas? <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.cum.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.cum.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Abraço!</p>
<p><strong>Fonte:</strong><br />
<a href="https://docs.typebot.io/" rel="noopener" target="_blank">https://docs.typebot.io/</a></p>
<p>O post <a href="https://blog.remontti.com.br/7656">Guia Passo a Passo para Instalar o Typebot em seu servidor próprio</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7656/feed</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
			</item>
		<item>
		<title>Guia passo a passo: Instalando NFDUMP, NFSEN e NFSEN-NG para Análise de Fluxo de Rede no Debian 12 Bookworm</title>
		<link>https://blog.remontti.com.br/7610</link>
					<comments>https://blog.remontti.com.br/7610#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 11 Jul 2023 22:13:53 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Administração de Rede]]></category>
		<category><![CDATA[Análise]]></category>
		<category><![CDATA[Análise de Segurança]]></category>
		<category><![CDATA[Análise de Tráfego]]></category>
		<category><![CDATA[bookworm]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[Debian 12 Bookworm]]></category>
		<category><![CDATA[Debian12]]></category>
		<category><![CDATA[Ferramentas de Análise]]></category>
		<category><![CDATA[Ferramentas de Rede]]></category>
		<category><![CDATA[Fluxo de Rede]]></category>
		<category><![CDATA[Gerenciamento de Tráfego]]></category>
		<category><![CDATA[GuiaPassoAPasso]]></category>
		<category><![CDATA[instalaçao]]></category>
		<category><![CDATA[monitoramento]]></category>
		<category><![CDATA[Monitoramento de Tráfego]]></category>
		<category><![CDATA[NFDUMP]]></category>
		<category><![CDATA[NFSEN]]></category>
		<category><![CDATA[NFSEN-NG]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[software livre]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7610</guid>

					<description><![CDATA[<p>Neste tutorial você adquirirá conhecimentos e habilidades relacionadas à análise de fluxo de rede bem como a área de segurança. Você poderá examinar os dados de fluxo de rede capturados e identificar padrões, tendências&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7610">Guia passo a passo: Instalando NFDUMP, NFSEN e NFSEN-NG para Análise de Fluxo de Rede no Debian 12 Bookworm</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfdump-nfsen-nfsen-ng-nfcap-debian-12-bokworm.jpg" alt="" width="720" height="340" class="alignnone size-full wp-image-7619" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfdump-nfsen-nfsen-ng-nfcap-debian-12-bokworm.jpg 720w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfdump-nfsen-nfsen-ng-nfcap-debian-12-bokworm-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfdump-nfsen-nfsen-ng-nfcap-debian-12-bokworm-520x245.jpg 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>Neste tutorial você adquirirá conhecimentos e habilidades relacionadas à análise de fluxo de rede bem como a área de segurança. Você poderá examinar os dados de fluxo de rede capturados e identificar padrões, tendências e anomalias no tráfego de rede. Isso pode ajudar a detectar atividades suspeitas, como ataques cibernéticos, tráfego malicioso ou congestionamentos.</p>
<h4>Distribuição Utilizada</h4>
<p><strong><a href="https://blog.remontti.com.br/7236" rel="noopener" target="_blank">Debian 12 bookworm (Instalação Limpa)</a></strong></p>
<h4>Requisitos de hardware</h4>
<p>Para o que vamos utilizar aqui não precisamos nada tão agressivo, porém o armazenamento vai depender muito de quanto tempo você for deixar salvo, em média você pode colocar 2GB a 4GB (por source) de dados por dias (mas isso é bem relativo), em questão de CPU e memoria 2 CPU e 2GB de memória já da conta, mas se puder coloca mais melhor para processar os dados.</p>
<h4>Pacotes Requeridos</h4>
<pre class="remontti-code"># apt install \
 curl wget unzip man-db tcpdump htop tree dialog git \
 build-essential autoconf pkg-config flex byacc bison \
 php php-dev apache2 libapache2-mod-php autogen \
 libtool librrd-dev libbz2-dev libpcap-dev rrdtool \
 libcurl4-openssl-dev librrds-perl libsocket6-perl \
 librrdp-perl libio-socket-inet6-perl libmailtools-perl \
 libnet-telnet-perl libnet-whois-ip-perl libnet-snmp-perl \
 libio-socket-ssl-perl libgd-perl git -y</pre>
<p>Crie o diretório onde iremos baixar nossos arquivos extras</p>
<pre class="remontti-code"># mkdir /root/nf</pre>
<h3>NFDUMP</h3>
<p><strong><a href="https://github.com/phaag/nfdump" rel="noopener" target="_blank">NFDUMP</a></strong> é um conjunto de ferramentas para coletar e processar dados netflow/ipfix e sflow, enviados de dispositivos compatíveis com netflow/sflow.</p>
<p>O conjunto de ferramentas contém vários coletores para coletar dados de fluxo:</p>
<ul>
<li>nfcapd suporta netflow v1, v5/v7, v9 e IPFIX</li>
<li>sfcapd suporta sflow.</li>
<li>nfpcapd converte dados pcap lidos de uma interface de host ou de arquivos pcap.</li>
</ul>
<p>O nfdump possui um filtro de fluxo muito poderoso para processar fluxos. A sintaxe do filtro é muito semelhante ao tcpdump, mas adaptada e estendida para filtragem de fluxo. Um filtro de fluxo também pode conter matrizes de muitos milhares de endereços IP, etc., para pesquisar registros específicos.</p>
<p>O nfdump pode agregar fluxos de acordo com um número de elementos definido pelo usuário. Isso mascara certos elementos e permite somar registros de fluxo correspondentes aos mesmos valores.</p>
<p>A combinação de filtragem e agregação de fluxo como entrada para qualquer estatística de fluxo permite processamento de fluxo complexo. Os dados de fluxo pré-filtrados e agregados também podem ser gravados de volta em um arquivo de fluxo binário, que novamente pode ser processado com nfdump</p>
<p>O nfdump pode enriquecer a listagem de fluxos com informações de localização geográfica e informações de AS, a menos que as informações de AS já estejam disponíveis nos registros de fluxo. Os endereços IP podem ser marcados com um código de país de duas letras ou com uma etiqueta de localização mais longa contendo a região geográfica, o país e a cidade. A localização geográfica e as informações AS são recuperadas do banco de dados geoDB opcional, criado pelo programa geolookup das ferramentas nfdump. geolookup usa o banco de dados Maxmind GeoDB ou GeoLite2 para criar um banco de dados de pesquisa binária para nfdump.</p>
<p><strong>Instalação:</strong><br />
O nfdump até se encontra no repositório do Debian 12 (na versão 1.7.1) como um serviço de coleta, como a ideia é mais voltada a depois utilizar o nfsen, irei baixar a ultima versão que inclusive tem alguns recursos interessantes que você pode se aprofundar posteriormente.  </p>
<pre class="remontti-code"># mkdir /root/nf
# cd /root/nf
# git clone https://github.com/phaag/nfdump.git
# cd nfdump
# ./autogen.sh</pre>
<p>Na compilação podemos ativar algumas features adicionais, para ver mais sobre use o comando:</p>
<pre class="remontti-code"># ./configure --help</pre>
<p>Estarei instalando as seguintes: (&#8211;enable-influxdb &#8211;enable-maxmind opcional)</p>
<pre class="remontti-code"># ./configure --enable-nfprofile --enable-nftrack --enable-jnat --enable-influxdb --enable-maxmind 
# make ; make install</pre>
<p>Atualize o cache das bibliotecas dinâmicas.</p>
<pre class="remontti-code"># ldconfig</pre>
<p>Iremos ter uma lista de novos binários em /usr/local/bin/</p>
<pre class="remontti-code-plain">├── geolookup
├── nfanon
├── nfcapd
├── nfdump
├── nfexpire
├── nfprofile
├── nfreplay
├── nftrack
└── updateGeoDB.sh</pre>
<p>Configure seu roteador para enviar dados de netflow para porta 2055, e com o comando a baixo vamos analisar se os mesmo estão chegando em nosso servidor e capturados pelo nfcap.</p>
<pre class="remontti-code"># nfcapd -E -p 2055 -w /tmp/</pre>
<pre class="remontti-code-plain">
Verbose log level: 3
Add flow source: ident: none, IP: any IP, flowdir: /tmp
Bound to IPv4 host/IP: any, Port: 2055
Init v1
Init v5/v7: Default sampling: 1
Init v9: Max number of v9 tags enabled: 105, default sampling: 1
Init IPFIX: Max number of ipfix tags enabled: 88, default sampling: 1
Startup nfcapd.
Process_v9: New v9 exporter: SysID: 1, Domain: 2166325505, IP: 10.10.10.255
Process_v9: New v9 exporter: SysID: 2, Domain: 18841857, IP: 10.10.10.255
^CFile Block Header: type: 3, size: 64, NumRecords: 2
Ident: &#039;none&#039; Flows: 0, Packets: 0, Bytes: 0, Sequence Errors: 0, Bad Packets: 0
Terminating nfcapd.
</pre>
<p><strong>Ctrl+C</strong> Para cancelar (Não precisa deixar em execução, deixe apenas alguns segundos para ver se esta chegando os flows)</p>
<pre class="remontti-code"># ls -lh /tmp/nfcapd.*</pre>
<p>Se tudo ocorreu bem você ira ter uma arquivo da captura com o nome nfcapd.AAAAMMDDHHMM [ANO MÊS DIA HORA MINUTO]</p>
<pre class="remontti-code-plain">-rw-r--r-- 1 root root 149K jul 11 14:54 /tmp/nfcapd.202307111450</pre>
<p>Nfdump é muito poderoso, para dar apenas uma provinha do que estamos falando testes os comandos a baixo para visualizar as saídas. O ultimo comando você vai gostar!</p>
<pre class="remontti-code"># nfdump -r /tmp/nfcapd.202307111450
# nfdump -r /tmp/nfcapd.202307111450 dst ip 8.8.8.8
# nfdump -r /tmp/nfcapd.202307111450 dst ip 8.8.8.8 and dst port 53
# nfdump -r /tmp/nfcapd.202307111500 dst port 80 or dst port 443 -s srcip/bytes
# nfdump -r /tmp/nfcapd.202307111450 -s record/bytes
# nfdump -r /tmp/nfcapd.202307111450 -s dstip/bytes
# nfdump -r /tmp/nfcapd.202307111450 -s dstas/bytes
# nfdump -r /tmp/nfcapd.202307111450 -s dstas/bytes
# nfdump -r /tmp/nfcapd.202307111450 &#039;net 200.200.200.0/22 and (dst port 80 or dst port 443)&#039; -s dstas/bytes -n 20</pre>
<p>Para mais informações de como utiliza-lo use comando <strong>man</strong> para ver o manual do nfdump.</p>
<pre class="remontti-code"># man nfdump</pre>
<p>Mas não se preocupe ainda em aprender todas as possibilidades, para isso vamos aprender agora utilizar duas ferramentar que poderão ser uteis para você. Mas ler <a href="https://blog.remontti.com.br/wp-content/uploads/2023/07/NFDUMP.txt" rel="noopener" target="_blank">esse manual</a> não vai cair o braço. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f602.png" alt="😂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h3>NFSEN</h3>
<p>O <a href="https://github.com/phaag/nfsen" rel="noopener" target="_blank">NfSen</a> é uma ferramenta de código aberto para análise e visualização de dados de fluxo de rede. Com uma interface web intuitiva (estilo anos 90 <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f602.png" alt="😂" class="wp-smiley" style="height: 1em; max-height: 1em;" />), ele coleta registros de fluxo de diferentes dispositivos e os apresenta de forma compreensível. Além disso, oferece recursos avançados, como detecção de ataques e armazenamento de dados de fluxo histórico, tornando-o uma opção popular para monitoramento e solução de problemas em redes de grande porte.</p>
<pre class="remontti-code"># cd /root/nf
# wget https://github.com/phaag/nfsen/archive/v1.3.9.tar.gz
# tar -vxzf v1.3.9.tar.gz
# cd nfsen-1.3.9
# sed -i &#039;s/\$USER\s*=\s*&quot;netflow&quot;;/\$USER    = &quot;www-data&quot;;/&#039; etc/nfsen-dist.conf
# sed -i &#039;s/\$WWWUSER\s*=\s*&quot;www&quot;;/\$WWWUSER  = &quot;www-data&quot;;/&#039; etc/nfsen-dist.conf
# sed -i &#039;s/\$WWWGROUP\s*=\s*&quot;www&quot;;/\$WWWGROUP = &quot;www-data&quot;;/&#039; etc/nfsen-dist.conf
# sed -i &#039;s/\$HTMLDIR\s*=\s*&quot;\/var\/www\/nfsen\/&quot;;/\$HTMLDIR    = &quot;\/var\/www\/html\/nfsen\/&quot;;/&#039; etc/nfsen-dist.conf
# sed -i &#039;s/\$BUFFLEN = 200000;/\$BUFFLEN = 1073741824;/&#039; etc/nfsen-dist.conf</pre>
<p>Vamos definir nosso enviadores de fluxos (sim você pode enviar de vários locais)</p>
<pre class="remontti-code"># vim etc/nfsen-dist.conf</pre>
<p>Procure pela seguintes linhas:</p>
<pre class="remontti-code-plain">
%sources = (
    &#039;Borda&#039;        =&gt; { &#039;port&#039; =&gt; &#039;2055&#039;, &#039;col&#039; =&gt; &#039;#0D47A1&#039;, &#039;type&#039; =&gt; &#039;netflow&#039; },
    &#039;Cgnat&#039;        =&gt; { &#039;port&#039; =&gt; &#039;3055&#039;, &#039;col&#039; =&gt; &#039;#B71C1C&#039;, &#039;type&#039; =&gt; &#039;netflow&#039; },
);
</pre>
<p>No exemplo acima estarei incluindo analise do meu <strong>Cgnat</strong> para fins de investigação de problemas <strong>(Mas se prepare que os arquivos capturados serão gigantes</strong>). Vale lembrar que para <strong>cada source a porta não pode ser a mesma</strong>!</p>
<p>Caso você queira adicionar ou remover um novo source edite o arquivo <strong>/data/nfsen/etc/nfsen.conf</strong> e rode o comando <strong>/data/nfsen/bin/nfsen reconfig</strong></p>
<p>Vamos criar o diretório /data/nfsen onde ficarão nossos dados do sistema.</p>
<pre class="remontti-code"># mkdir -p /data/nfsen
# ./install.pl etc/nfsen-dist.conf</pre>
<p>De um ENTER ao perguntar:  Perl to use: [/usr/bin/perl]</p>
<pre class="remontti-code-plain">
  Check for required Perl modules: All modules found.
  Setup NfSen:
  Version: 1.3.9: install.pl 2022-12-19

  Perl to use: [/usr/bin/perl]  [ENTER]
  Setup php and html files.
  mkdir /var/www/html/nfsen/

  Copy NfSen dirs etc bin libexec plugins doc ...
  Copy config file &#039;/etc/nfsen.conf&#039;

  In directory: /data/nfsen/bin ...
  Update script: nfsen
...
...</pre>
<p>Vamos ajustar o <a href="https://www.php.net/manual/pt_BR/timezones.america.php" rel="noopener" target="_blank">timezone</a> do PHP</p>
<pre class="remontti-code"># vim /etc/php/8.2/apache2/php.ini</pre>
<p>Localize e altere: (remova &#8220;;&#8221; do início para descomentar)</p>
<pre class="remontti-code-plain">date.timezone = &#039;America/Sao_Paulo&#039;</pre>
<pre class="remontti-code"># vim /etc/php/8.2/cli/php.ini</pre>
<p>Localize e altere:</p>
<pre class="remontti-code-plain">date.timezone = &#039;America/Sao_Paulo&#039;</pre>
<p>Reinicie p apache</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>Agora vamos criar um serviço no systemd para nosso amigo nfsen </p>
<pre class="remontti-code"># ln -s /data/nfsen/bin/nfsen /etc/init.d/nfsen</pre>
<p>Crie o arquivo:</p>
<pre class="remontti-code"># vim /lib/systemd/system/nfsen.service</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">[Unit]
Description=nfsen
After=network-online.target

[Service]
Type=simple
#Type=oneshot
RemainAfterExit=yes
ExecStart=/data/nfsen/bin/nfsen start
ExecStop=/data/nfsen/bin/nfsen stop
ExecReload=/data/nfsen/bin/nfsen restart
 
[Install]
WantedBy=multi-user.target</pre>
<p>Recarregue o daemon e vamos por para rodar </p>
<pre class="remontti-code"># systemctl daemon-reload
# systemctl enable nfsen
# systemctl start nfsen
# systemctl status nfsen</pre>
<p>Verificar logs</p>
<pre class="remontti-code"># journalctl -u nfsen 
# journalctl -u nfsen -p err</pre>
<p>Vamos ver se as portas estão na escuta</p>
<pre class="remontti-code"># ss -putan | grep nfcapd</pre>
<pre class="remontti-code-plain">
udp   UNCONN 0      0     0.0.0.0:2055     0.0.0.0:*     users:((&quot;nfcapd&quot;,pid=20756,fd=3))
udp   UNCONN 0      0     0.0.0.0:3055     0.0.0.0:*     users:((&quot;nfcapd&quot;,pid=20752,fd=3))</pre>
<p>Se quiser testar se algo esta chegando o tcpdump pode ser uma boa escolha também.</p>
<pre class="remontti-code"># tcpdump -i enp0s3 -n udp port 2055 -T cnfp -c 10
# tcpdump -i enp0s3 -n udp port 3055 -T cnfp -c 10
</pre>
<p><strong>Vamos entender como os dados vão ser armazenados</strong><br />
Em /data/nfsen/profiles-data/live/ todos nossos sources terão uma pasta, outra pasta com ano, mes, dia. Cada arquivos criado tem um intervalo de 5 minutos. Aguarde uns 15min e rode o seguinte comando:</p>
<pre class="remontti-code"># tree /data/nfsen/profiles-data/live/</pre>
<p>Iremos ver que alguns arquivos e diretórios já foram criados. </p>
<pre class="remontti-code-plain">
├── Borda
│   ├── 2023
│   │   └── 07
│   │       └── 11
│   │           ├── nfcapd.202307111600
│   │           ├── nfcapd.202307111605
│   │           ├── nfcapd.202307111610
│   │           ├── nfcapd.202307111615
│   │           └── nfcapd.202307111620
│   └── nfcapd.current.29124
└── Cgnat
    ├── 2023
    │   └── 07
    │       └── 11
    │           ├── nfcapd.202307111600
    │           ├── nfcapd.202307111605
    │           ├── nfcapd.202307111610
    │           ├── nfcapd.202307111615
    │           └── nfcapd.202307111620
    └── nfcapd.current.29128

9 directories, 12 files
</pre>
<p>Projeto não tem uma index então para não precisar informar na url nfsen.php crie um atalho apontando para index.php</p>
<pre class="remontti-code"># ln -s /var/www/html/nfsen/nfsen.php /var/www/html/nfsen/index.php</pre>
<p>Agora acesse: <strong>http://__endereco_servidor/nfsen/</strong><br />
E temos nossa bela interface anos 90! Não me preocupo com isso, a ferramenta é o que importa. Recomendo você dar uma olha na <a href="https://nfsen.sourceforge.net/#mozTocId391879" rel="noopener" target="_blank">documentação</a>.</p>
<h3>NFSEN-NG</h3>
<p>O projeto <a href="https://github.com/mbolli/nfsen-ng" rel="noopener" target="_blank">NfSen-NG</a> é uma implementação melhorada do NfSen, que oferece recursos avançados para coleta, análise e visualização de dados de tráfego de rede. Com sua interface web intuitiva e poderosa, o &#8220;nfsen-ng&#8221; permite aos usuários monitorar e analisar o tráfego em tempo real, realizar pesquisas detalhadas em dados históricos e criar relatórios personalizados, facilitando a detecção de problemas, a análise de desempenho e a tomada de decisões relacionadas à rede.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12.png" alt="" width="1199" height="778" class="alignnone size-full wp-image-7613" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12.png 1199w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-300x195.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-1024x664.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-768x498.png 768w" sizes="auto, (max-width: 1199px) 100vw, 1199px" /></p>
<pre class="remontti-code"># cd /var/www/html
# git clone https://github.com/mbolli/nfsen-ng /var/www/html/nfsen-ng
# cd /var/www/html/nfsen-ng/
# chmod +x backend/cli.php
# cp backend/settings/settings.php.dist backend/settings/settings.php
# mkdir /var/www/html/nfsen-ng/backend/datasources/data/
# chown -R www-data: /var/www/html/nfsen-ng/</pre>
<p>Vamos fazer alguns ajustes para ler nossa mesma base de dados do nfsen.</p>
<pre class="remontti-code"># vim backend/settings/settings.php</pre>
<p>Localize os sources.</p>
<pre class="remontti-code-plain">        &#039;sources&#039; =&gt; array(
            &#039;source1&#039;, &#039;source2&#039;,
        ),</pre>
<p>Informe os seus:</p>
<pre class="remontti-code-plain">        &#039;sources&#039; =&gt; array(
            &#039;Borda&#039;, &#039;Cgnat&#039;,
        ),</pre>
<p>Se desejar incluir algumas porta para analisar os gráficos.</p>
<pre class="remontti-code-plain">
        &#039;ports&#039; =&gt; array(
            80, 22, 53,
        ),</pre>
<p>No meu vou alterar para:</p>
<pre class="remontti-code-plain">        &#039;ports&#039; =&gt; array(
            0, 22, 53, 80, 443,
        ),</pre>
<p>Localize e altere:</p>
<pre class="remontti-code-plain">        &#039;binary&#039; =&gt; &#039;/usr/bin/nfdump&#039;,
        &#039;profiles-data&#039; =&gt; &#039;/var/nfdump/profiles-data&#039;,</pre>
<p>Por</p>
<pre class="remontti-code-plain">        &#039;binary&#039; =&gt; &#039;/usr/local/bin/nfdump&#039;,
        &#039;profiles-data&#039; =&gt; &#039;/data/nfsen/profiles-data&#039;,</pre>
<p>Enable apache modules</p>
<pre class="remontti-code"># a2enmod rewrite expires</pre>
<p>Configure a biblioteca RRD para o PHP</p>
<pre class="remontti-code"># pecl install rrd
# echo &quot;extension=rrd.so&quot; &gt; /etc/php/8.2/mods-available/rrd.ini
# phpenmod rrd</pre>
<p>Configure virtual host para ler o .htaccess</p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/000-default.conf</pre>
<p>Deve ficar assim:</p>
<pre class="remontti-code-plain">&lt;VirtualHost *:80&gt;
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    &lt;Directory /var/www/html/&gt;
        Options FollowSymLinks Indexes
        AllowOverride All
    &lt;/Directory&gt;

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
&lt;/VirtualHost&gt;</pre>
<p>Reinicie o serviço web</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>Vamos criar um &#8220;serviço&#8221; no systemd para iniciar o /var/www/html/nfsen-ng/backend/cli.php. </p>
<pre class="remontti-code"># vim /lib/systemd/system/nfsen-ng.service</pre>
<p>Adicione?</p>
<pre class="remontti-code-plain">[Unit]
Description=nfsen-ng
After=network-online.target
 
[Service]
Type=simple
RemainAfterExit=yes
ExecStart=su - www-data --shell=/bin/bash -c &#039;/var/www/html/nfsen-ng/backend/cli.php start&#039;
ExecStop=su - www-data --shell=/bin/bash -c &#039;/var/www/html/nfsen-ng/backend/cli.php stop&#039;
 
[Install]
WantedBy=multi-user.target</pre>
<p>Recarregue o daemon e vamos por para rodar</p>
<pre class="remontti-code"># systemctl daemon-reload
# systemctl enable nfsen-ng
# systemctl start nfsen-ng
# systemctl status nfsen-ng</pre>
<p>Acesse agora: <strong>http://__endereco__/nfsen-ng/</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-graph.png" data-rel="lightbox-gallery-n0PA7sM6" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-graph.png" alt="" width="2560" height="967" class="alignnone size-full wp-image-7614" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-graph.png 2560w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-graph-300x113.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-graph-1024x387.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-graph-768x290.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-graph-1536x580.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-graph-2048x774.png 2048w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-graph-1320x500.png 1320w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat.png" data-rel="lightbox-gallery-n0PA7sM6" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat.png" alt="" width="1920" height="1059" class="alignnone size-full wp-image-7615" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat.png 1920w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat-300x165.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat-1024x565.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat-768x424.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat-1536x847.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a></p>
<p>Utilizando um filtro Ex: &#8220;dst as 15169 OR dst as 2906 OR dst as 32934&#8221; obtém um informações com destino aos 3 AS.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat2.png" data-rel="lightbox-gallery-n0PA7sM6" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat2.png" alt="" width="1920" height="992" class="alignnone size-full wp-image-7616" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat2.png 1920w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat2-300x155.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat2-1024x529.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat2-768x397.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfsen-ng-debian-12-stat2-1536x794.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a><br />
Se notar na parte verde temos o comando executado no terminal</p>
<pre class="remontti-code"># nfdump -M &#039;/data/nfsen/profiles-data/live/Borda&#039; -R &#039;2023/07/11/nfcapd.202307111605:2023/07/11/nfcapd.202307111730&#039; -s &#039;dstas/pps&#039; &#039;dst as 15169 OR dst as 2906 OR dst as 32934&#039;</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfdump-google-facebook-netflix.png" data-rel="lightbox-gallery-n0PA7sM6" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfdump-google-facebook-netflix.png" alt="" width="2292" height="316" class="alignnone size-full wp-image-7617" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/07/nfdump-google-facebook-netflix.png 2292w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfdump-google-facebook-netflix-300x41.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfdump-google-facebook-netflix-1024x141.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfdump-google-facebook-netflix-768x106.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfdump-google-facebook-netflix-1536x212.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2023/07/nfdump-google-facebook-netflix-2048x282.png 2048w" sizes="auto, (max-width: 2292px) 100vw, 2292px" /></a><br />
Pode ser um bom &#8220;meio de você aprender os comandos&#8221;. </p>
<p>Algo legal do NfSen-Ng é que ele tem uma API: <strong>http://__endereco__//nfsen-ng/api/config</strong> de uma lida em <a href="https://github.com/mbolli/nfsen-ng/blob/master/README.md" rel="noopener" target="_blank">https://github.com/mbolli/nfsen-ng/blob/master/README.md</a> como utiliza, com um pouco de imaginação você pode fazer algumas coisas bem legais.</p>
<h4>Script para ir apagando arquivos mais antigos</h4>
<pre class="remontti-code"># mkdir /root/scripts/
# vim /root/scripts/faxina_nf.sh</pre>
<p>Adicione (ajuste os dias para realidade do seu disco)</p>
<pre class="remontti-code-plain">#!/bin/bash
  
# Defina o diretório do NFSen
nf_dir=&quot;/data/nfsen/profiles-data/live/&quot;

#Define o número de dias a ser removido
ref_date=$(date -d &#039;60 days ago&#039; +%Y%m%d)

# Ativar o modo de depuração
debug=false

# Percorre os diretórios e exclui os arquivos antigos
find &quot;$nf_dir&quot; -type f -name &#039;nfcapd.*&#039; | while read -r file; do
    # Obtém a data do arquivo em vez do diretório
    file_date=$(date -r &quot;$file&quot; +%Y%m%d)
    if [[ &quot;$file_date&quot; -lt &quot;$ref_date&quot; ]]; then
        if [[ &quot;$debug&quot; = true ]]; then
            echo &quot;$(date -r &quot;$file&quot;) - $file excluído&quot;
        fi
        rm &quot;$file&quot;
    fi
done</pre>
<p>Agende o script para roda todos os dias as 4h da manhã</p>
<pre class="remontti-code"># crontab -e</pre>
<p>Adcione</p>
<pre class="remontti-code-plain">
# m h  dom mon dow   command
# Apaga coletas
00 04  *   *   *     /root/scripts/faxina_nf.sh</pre>
<p>Reinicie o cron</p>
<pre class="remontti-code"># systemctl  restart cron</pre>
<p>Para verificar o tamanho do diretório use o comando</p>
<pre class="remontti-code"># du -sh /data/nfsen/profiles-data/live/</pre>
<p>E para ver o disco use:</p>
<pre class="remontti-code"># df -h</pre>
<p>Gostou e quer me 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>Abraço!</p>
<p><strong>Fonte:</strong><br />
<a href="https://github.com/phaag/nfdump" rel="noopener" target="_blank">https://github.com/phaag/nfdump</a><br />
<a href="https://github.com/phaag/nfsen" rel="noopener" target="_blank">https://github.com/phaag/nfsen</a><br />
<a href="https://nfsen.sourceforge.net/#mozTocId391879" rel="noopener" target="_blank">https://nfsen.sourceforge.net/</a><br />
<a href="https://github.com/mbolli/nfsen-ng" rel="noopener" target="_blank">https://github.com/mbolli/nfsen-ng</a><br />
<a href="https://github.com/phaag/nfinflux" rel="noopener" target="_blank">https://github.com/phaag/nfinflux</a><br />
<a href="https://github.com/phaag/nfexporter" rel="noopener" target="_blank">https://github.com/phaag/nfexporter</a><br />
<a href="https://github.com/phaag/go-nfdump" rel="noopener" target="_blank">https://github.com/phaag/go-nfdump</a></p>
<p>O post <a href="https://blog.remontti.com.br/7610">Guia passo a passo: Instalando NFDUMP, NFSEN e NFSEN-NG para Análise de Fluxo de Rede no 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/7610/feed</wfw:commentRss>
			<slash:comments>29</slash:comments>
		
		
			</item>
		<item>
		<title>Guia de Instalação do Greenbone OpenVAS: Um Scanner de Vulnerabilidades Poderoso</title>
		<link>https://blog.remontti.com.br/7555</link>
					<comments>https://blog.remontti.com.br/7555#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 23 Jun 2023 21:27:19 +0000</pubDate>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Vírus]]></category>
		<category><![CDATA[Ajuste de desempenho]]></category>
		<category><![CDATA[Atualizações diárias]]></category>
		<category><![CDATA[bookworm]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[Feed de testes.]]></category>
		<category><![CDATA[Greenbone OpenVAS]]></category>
		<category><![CDATA[instalaçao]]></category>
		<category><![CDATA[Linguagem de programação interna]]></category>
		<category><![CDATA[Protocolos de alto nível da Internet]]></category>
		<category><![CDATA[Protocolos industriais]]></category>
		<category><![CDATA[Scanner de Vulnerabilidades]]></category>
		<category><![CDATA[Testes autenticados]]></category>
		<category><![CDATA[Testes não autenticados]]></category>
		<category><![CDATA[Varreduras em larga escala]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7555</guid>

					<description><![CDATA[<p>Greenbone OpenVAS é um scanner de vulnerabilidade completo. Seus recursos incluem testes não autenticados e autenticados, vários protocolos industriais e de alto nível da Internet, ajuste de desempenho para varreduras em larga escala e&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7555">Guia de Instalação do Greenbone OpenVAS: Um Scanner de Vulnerabilidades Poderoso</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/Greenbone-OpenVAS-Debian-12-bookworm.jpg" alt="" width="720" height="340" class="alignnone size-full wp-image-7579" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/Greenbone-OpenVAS-Debian-12-bookworm.jpg 720w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Greenbone-OpenVAS-Debian-12-bookworm-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Greenbone-OpenVAS-Debian-12-bookworm-520x245.jpg 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p><strong><a href="https://openvas.org/" rel="noopener" target="_blank">Greenbone OpenVAS</a></strong> é um scanner de vulnerabilidade completo. Seus recursos incluem testes não autenticados e autenticados, vários protocolos industriais e de alto nível da Internet, ajuste de desempenho para varreduras em larga escala e uma poderosa linguagem de programação interna para implementar qualquer tipo de teste de vulnerabilidade.<br />
O scanner obtém os testes para detectar vulnerabilidades de um feed que possui um longo histórico e atualizações diárias.</p>
<p>O OpenVAS foi desenvolvido e impulsionado pela empresa Greenbone desde 2006. Como parte da família de produtos de gerenciamento de vulnerabilidade comercial Greenbone Enterprise Appliance, o scanner forma o Greenbone Community Edition junto com outros módulos de código aberto (Open Source).<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/Greenbone-OpenVAS.png" alt="" width="520" height="97" class="aligncenter size-full wp-image-7561" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/Greenbone-OpenVAS.png 520w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Greenbone-OpenVAS-300x56.png 300w" sizes="auto, (max-width: 520px) 100vw, 520px" /><br />
Leia mais sobre a <a href="https://greenbone.github.io/docs/latest/background.html#history-of-the-openvas-project" rel="noopener" target="_blank">história do OpenVAS aqui</a>.</p>
<p>A figura a seguir mostra uma visão geral da arquitetura da versão 22.4.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-22.4-architecture.png" data-rel="lightbox-gallery-SCbqOp4s" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-22.4-architecture.png" alt="" width="3249" height="1913" class="alignnone size-full wp-image-7556" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-22.4-architecture.png 3249w, https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-22.4-architecture-300x177.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-22.4-architecture-1024x603.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-22.4-architecture-768x452.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-22.4-architecture-1536x904.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-22.4-architecture-2048x1206.png 2048w" sizes="auto, (max-width: 3249px) 100vw, 3249px" /></a></p>
<p>A arquitetura do Greenbone Community Edition é agrupada em três partes principais:<br />
 &#8211; Aplicativos de scanner executáveis que executam testes de vulnerabilidade (VT) em sistemas de destino<br />
 &#8211; Daemon do gerenciador de vulnerabilidade Greenbone (gvmd)<br />
 &#8211; Greenbone Security Assistant (GSA) com o Greenbone Security Assistant Daemon (gsad)</p>
<h4>Distribuição Utilizada</h4>
<p><strong> <a href="https://blog.remontti.com.br/7236" rel="noopener" target="_blank">Debian 12 bookworm (Instalação Limpa)</a></strong></p>
<h4>Requisitos de hardware</h4>
<p><strong><em>Mínimo</em></strong><br />
 &#8211; 2 CPU<br />
 &#8211; 4 GB Memória<br />
 &#8211; 20 GB de disco livres</p>
<p><strong><em>Recomendado:</em></strong><br />
 &#8211; 4 CPU<br />
 &#8211; 8 GB Memória<br />
 &#8211; 60 GB de disco livres</p>
<h2>Instalação</h2>
<p>Irei fazer a instalação através de containes pois ser mais pratico e fácil, mas se você quiser compilar e instala-lo siga <a href="https://greenbone.github.io/docs/latest/22.4/source-build/index.html" rel="noopener" target="_blank">esses passos</a>.</p>
<p>Vamos a instalação dos pacotes necessários:</p>
<pre class="remontti-code"># apt install curl docker.io python3 python3-pip docker-compose
# mkdir -p /usr/local/lib/docker/cli-plugins
# curl -SL https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-linux-x86_64 \
  -o /usr/local/lib/docker/cli-plugins/docker-compose
</pre>
<p>Vamos adicionar o docker ao grupo root.</p>
<pre class="remontti-code"># usermod -aG docker root</pre>
<p>Crie um diretório onde iremos criar a composição do docker, em seguinta entre no diretório.</p>
<pre class="remontti-code"># mkdir -p /opt/greenbone-community-container
# cd /opt/greenbone-community-container</pre>
<p>Baixe o arquivo de composição do docker.</p>
<pre class="remontti-code"># curl -f -L \
 https://greenbone.github.io/docs/latest/_static/docker-compose.yml \
 -o docker-compose.yml</pre>
<p>Puxe os contêiners.</p>
<pre class="remontti-code"># docker-compose -f \
 /opt/greenbone-community-container/docker-compose.yml \
 -p greenbone-community-edition pull</pre>
<p>Inicie os contêiner.</p>
<pre class="remontti-code"># docker-compose -f \
 /opt/greenbone-community-container/docker-compose.yml \
 -p greenbone-community-edition up -d</pre>
<p>Acesse em seu navegador com usuário e senha <strong>admin</strong>.<br />
<strong>http://IP_SERVIDOR:9392</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-debian-12.png" data-rel="lightbox-gallery-SCbqOp4s" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-debian-12.png" alt="" width="1406" height="928" class="alignnone size-full wp-image-7559" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-debian-12.png 1406w, https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-debian-12-300x198.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-debian-12-1024x676.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/greenbone-community-debian-12-768x507.png 768w" sizes="auto, (max-width: 1406px) 100vw, 1406px" /></a></p>
<p>Se achar melhor pode fazer um proxy<a href="https://blog.remontti.com.br/7413" rel="noopener" target="_blank">utilizando o Nginx</a> para acessar via domínio (Http/Http)</p>
<pre class="remontti-code"># apt install nginx
# sed -i &#039;s/# server_tokens/server_tokens/&#039; /etc/nginx/nginx.conf
# vim /etc/nginx/sites-available/greenbone.conf</pre>
<p>Ajuste</p>
<pre class="remontti-code">
server {
    listen 80;
    listen [::]:80;
 
    server_name greenbone.remontti.com.br;
 
    # Descomente para restringir o acesso apenas aos IPs Listados
    # allow 127.0.0.1;
    # allow ::1;
    # allow 192.168.0.0/16;
    # allow 2801:db8::/32;
    # deny  all;
    # error_page  403   http://www.remontti.com.br;
 
    location / {
        proxy_pass http://localhost:9392;
        proxy_set_header   Host $host;
    }
}</pre>
<p>Crie o link para sites-enabled, e reinicie o serviços.</p>
<pre class="remontti-code"># ln -s /etc/nginx/sites-available/greenbone.conf /etc/nginx/sites-enabled/
# systemctl restart nginx</pre>
<p>Agora você pode acessar via Domínio (removendo a criação de um firewall com nftables)</p>
<h4>Primeiros passos</h4>
<p>A ferramenta tem uma ótima documentação, <a href="https://docs.greenbone.net/GSM-Manual/gos-22.04/en/index.html" rel="noopener" target="_blank">basta acessar aqui</a>. Mas vou deixar aqui uns passo básicos para você realizar ao menos um primeiro scan.</p>
<p>Alterando as <a href="https://docs.greenbone.net/GSM-Manual/gos-22.04/en/web-interface.html#changing-the-user-settings" rel="noopener" target="_blank">configurações do usuário</a> (provavelmente vai querer trocar a senha admin)<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/user_settings.png" alt="" width="317" height="162" class="alignnone size-full wp-image-7563" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/user_settings.png 317w, https://blog.remontti.com.br/wp-content/uploads/2023/06/user_settings-300x153.png 300w" sizes="auto, (max-width: 317px) 100vw, 317px" /></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/user_settings_3.png" alt="" width="499" height="426" class="alignnone size-full wp-image-7565" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/user_settings_3.png 499w, https://blog.remontti.com.br/wp-content/uploads/2023/06/user_settings_3-300x256.png 300w" sizes="auto, (max-width: 499px) 100vw, 499px" /></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/user_settings_2.png" alt="" width="813" height="658" class="alignnone size-full wp-image-7564" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/user_settings_2.png 813w, https://blog.remontti.com.br/wp-content/uploads/2023/06/user_settings_2-300x243.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/user_settings_2-768x622.png 768w" sizes="auto, (max-width: 813px) 100vw, 813px" /></p>
<p><strong>Administration >>  Feed Status</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/feed.png" alt="" width="967" height="411" class="alignnone size-full wp-image-7566" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/feed.png 967w, https://blog.remontti.com.br/wp-content/uploads/2023/06/feed-300x128.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/feed-768x326.png 768w" sizes="auto, (max-width: 967px) 100vw, 967px" /><br />
Em todo lugar você irá encontrar esse <strong>(?)</strong> que irá te jogar direto para a explicação na documentação.</p>
<p><strong>Configuration >> Portlists</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/ports.png" alt="" width="1106" height="392" class="alignnone size-full wp-image-7567" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/ports.png 1106w, https://blog.remontti.com.br/wp-content/uploads/2023/06/ports-300x106.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/ports-1024x363.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/ports-768x272.png 768w" sizes="auto, (max-width: 1106px) 100vw, 1106px" /><br />
Você ira encontrar já 3 padrões exemplo o All IANA assigned TCP and UDP, que contem um total de 11.318 portas sendo 5.836/TCP e 5482/UDP.</p>
<p>Para criar clique no ícone de &#8220;<em>New Port List</em>&#8221;<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/ports_add.png" alt="" width="375" height="151" class="alignnone size-full wp-image-7568" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/ports_add.png 375w, https://blog.remontti.com.br/wp-content/uploads/2023/06/ports_add-300x121.png 300w" sizes="auto, (max-width: 375px) 100vw, 375px" /></p>
<p>Exemplo:<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/ports_add_web_tcp.png" alt="" width="573" height="266" class="alignnone size-full wp-image-7570" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/ports_add_web_tcp.png 573w, https://blog.remontti.com.br/wp-content/uploads/2023/06/ports_add_web_tcp-300x139.png 300w" sizes="auto, (max-width: 573px) 100vw, 573px" /></p>
<p>Outro exemplo de TCP e UDP:<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/ports_tcp_udp.png" alt="" width="567" height="266" class="alignnone size-full wp-image-7571" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/ports_tcp_udp.png 567w, https://blog.remontti.com.br/wp-content/uploads/2023/06/ports_tcp_udp-300x141.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/ports_tcp_udp-520x245.png 520w" sizes="auto, (max-width: 567px) 100vw, 567px" /></p>
<p>Para iniciar um scan, menu: <strong>Scans >> Tasks</strong>, em seguida <em>New Task</em><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/task.png" alt="" width="362" height="149" class="alignnone size-full wp-image-7572" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/task.png 362w, https://blog.remontti.com.br/wp-content/uploads/2023/06/task-300x123.png 300w" sizes="auto, (max-width: 362px) 100vw, 362px" /></p>
<p>Defina um nome (pelo menos)<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/task-1.png" alt="" width="831" height="561" class="alignnone size-full wp-image-7576" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/task-1.png 831w, https://blog.remontti.com.br/wp-content/uploads/2023/06/task-1-300x203.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/task-1-768x518.png 768w" sizes="auto, (max-width: 831px) 100vw, 831px" /></p>
<p>Vamos informar nossos hosts (Prefixos) e informar qual portas vamos varrer, clique em save.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/task-2.png" alt="" width="834" height="716" class="alignnone size-full wp-image-7575" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/task-2.png 834w, https://blog.remontti.com.br/wp-content/uploads/2023/06/task-2-300x258.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/task-2-768x659.png 768w" sizes="auto, (max-width: 834px) 100vw, 834px" /></p>
<p>Voltamos par atela anterior, é so clicar em save. Poré perceba que temos varias outras <a href="https://docs.greenbone.net/GSM-Manual/gos-22.04/en/scanning.html#managing-tasks" rel="noopener" target="_blank">possibilidades</a>.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/task-3.png" alt="" width="826" height="660" class="alignnone size-full wp-image-7574" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/task-3.png 826w, https://blog.remontti.com.br/wp-content/uploads/2023/06/task-3-300x240.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/task-3-768x614.png 768w" sizes="auto, (max-width: 826px) 100vw, 826px" /></p>
<p>Agora de um start e aguarde!<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/task-4.png" alt="" width="1109" height="549" class="alignnone size-full wp-image-7573" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/task-4.png 1109w, https://blog.remontti.com.br/wp-content/uploads/2023/06/task-4-300x149.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/task-4-1024x507.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/task-4-768x380.png 768w" sizes="auto, (max-width: 1109px) 100vw, 1109px" /></p>
<p>Agora é só &#8220;chorrar&#8221;&#8230;<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/scan.png" alt="" width="1505" height="816" class="alignnone size-full wp-image-7577" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/scan.png 1505w, https://blog.remontti.com.br/wp-content/uploads/2023/06/scan-300x163.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/scan-1024x555.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/scan-768x416.png 768w" sizes="auto, (max-width: 1505px) 100vw, 1505px" /></p>
<p>Vou deixar um vídeo do <a href="https://t.me/raphaelisp" rel="noopener" target="_blank">Raphael</a> explicando como utilizar também a ferramenta.<br />
<iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/gA-J16tqHyE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></p>
<p>Gostou e quer me 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>Abraço!</p>
<p><strong>Fonte:</strong><br />
<a href="https://greenbone.github.io/docs/latest/" rel="noopener" target="_blank">https://greenbone.github.io/docs/latest/</a></p>
<p>O post <a href="https://blog.remontti.com.br/7555">Guia de Instalação do Greenbone OpenVAS: Um Scanner de Vulnerabilidades Poderoso</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7555/feed</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>Um pouco do meu ambiente de trabalho com Debian 12 Bookworm e Gnome 43</title>
		<link>https://blog.remontti.com.br/7512</link>
					<comments>https://blog.remontti.com.br/7512#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 19 Jun 2023 23:13:31 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[AmbienteDeTrabalho]]></category>
		<category><![CDATA[Aplicativos]]></category>
		<category><![CDATA[Artigo]]></category>
		<category><![CDATA[bookworm]]></category>
		<category><![CDATA[Comunidade.]]></category>
		<category><![CDATA[Configuração]]></category>
		<category><![CDATA[ConfiguraçõesAvançadas]]></category>
		<category><![CDATA[Customização]]></category>
		<category><![CDATA[Debian12]]></category>
		<category><![CDATA[Desempenho]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[Estabilidade]]></category>
		<category><![CDATA[Experiência]]></category>
		<category><![CDATA[Extensões]]></category>
		<category><![CDATA[GerenciadorDeArquivos]]></category>
		<category><![CDATA[Gnome43]]></category>
		<category><![CDATA[Inovação]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Multitarefa]]></category>
		<category><![CDATA[NavegadorWeb]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Personalização]]></category>
		<category><![CDATA[produtividade]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[SistemaOperacional]]></category>
		<category><![CDATA[SoftwareLivre]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[tema]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[Usabilidade]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7512</guid>

					<description><![CDATA[<p>Voltando ao Debian ❤️ Desde o tempo que a distribuição Kurumin era &#8220;gente&#8221; (minha primeira experiência com linux) tenho um grande apreço por este mundo. Acabei de sair do Ubuntu 22, que não deixa&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7512">Um pouco do meu ambiente de trabalho com Debian 12 Bookworm e Gnome 43</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/remontti_debian_12.jpg" alt="" width="720" height="340" class="alignnone size-full wp-image-7529" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/remontti_debian_12.jpg 720w, https://blog.remontti.com.br/wp-content/uploads/2023/06/remontti_debian_12-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/remontti_debian_12-520x245.jpg 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>Voltando ao Debian <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2764.png" alt="❤" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>
<p>Desde o tempo que a distribuição Kurumin era &#8220;gente&#8221; (minha primeira experiência com linux) tenho um grande apreço por este mundo. Acabei de <a href="https://blog.remontti.com.br/6853" rel="noopener" target="_blank">sair do Ubuntu 22</a>, que não deixa de ser um &#8220;Debian 12&#8221;, pois ele é totalmente baseado nele. Já comentei sobre os motivos que acabei utilizando ubuntu no artigo <em><a href="https://blog.remontti.com.br/6853" rel="noopener" target="_blank">Como é meu desktop de trabalho com Ubuntu</a></em>. </p>
<p>Eu não utilizo o PC para jogar e o intuito aqui é para meus amigos e colegas da área mais de telecom que utilizam mais para trabalho. Como tenho acesso a muitos servidores e roteador eu me sinto inseguro em realizar um acesso a partir de um Windows, e me sinto em paz ao usar Linux. Mas se você gosta de jogos instalar em dual boot pode ser uma boa alternativa. Vai jogar entra no windows, vai trabalhar da uma chance pro Linux:-) além do mais o GNOME te deixa com uma pegada mais produtiva!</p>
<p>Faça download neste link: <strong> <a href="https://cdimage.debian.org/mirror/cdimage/archive/12.0.0-live/amd64/iso-hybrid/" rel="noopener" target="_blank">Debian 12 Live Desktop (amd64) Gnome</a></strong> localize por <strong>debian-live-12.x.x-amd64-gnome.iso</strong>, você irá baixar a ISO com o Gnome, mas se deseja outra interface fica a seu critério, mas estarei utilizando o Gnome.</p>
<p><strong>INICIANDO LIVE CD</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live.png" alt="" width="640" height="480" class="alignnone size-full wp-image-7513" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live.png 640w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-300x225.png 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<p>Ao entrar no live, ao clicar em instalar irá solicitar uma <strong>senha</strong>, é <strong>live</strong>. Prossiga com a instalação ao seu gosto.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-password-installer.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-password-installer.png" alt="" width="1364" height="765" class="alignnone size-full wp-image-7514" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-password-installer.png 1364w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-password-installer-300x168.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-password-installer-1024x574.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-password-installer-768x431.png 768w" sizes="auto, (max-width: 1364px) 100vw, 1364px" /></a></p>
<p><strong>APÓS INSTALAÇÃO</strong><br />
Ao logar pela primeira vez (ou não) ao clicar no campo para digita a senha, clique sobre a engrenagem no canto direito inferior e selecione: <strong>GNOME sobre Xorg</strong> (você só precisa fazer 1x), o padrão utiliza o Wayland, no entanto alguma aplicações como Anydesk, TeamViewer entre outras e uso de cabo HDMI, infelizmente o Wayland não está preparado para tudo ainda, então vamos de motor gráfico Xorg!<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/debian_xorg.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/debian_xorg.png" alt="" width="1334" height="786" class="alignnone size-full wp-image-7540" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/debian_xorg.png 1334w, https://blog.remontti.com.br/wp-content/uploads/2023/06/debian_xorg-300x177.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/debian_xorg-1024x603.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/debian_xorg-768x453.png 768w" sizes="auto, (max-width: 1334px) 100vw, 1334px" /></a></p>
<p>Como a pegada Debian é mais hardcore já sabe, vamos começar abrindo o terminal, de cara vamos remover toda a cacetada de idiomas que o firefox vem instalado e deixar só pt-br.</p>
<pre class="remontti-code">$ sudo apt purge firefox-esr-l10n-* -y 
$ sudo apt install firefox-esr-l10n-pt-br -y </pre>
<p>certifique-se de estar tudo atualizado, antes de começar</p>
<pre class="remontti-code">$ sudo apt update; sudo apt upgrade -y</pre>
<p><strong>REPOSITÓRIO</strong><br />
Por mais que agora contamos também com non-free-firmware, vamos adicionar o <strong>contrib e o non-free </strong>, </p>
<pre class="remontti-code">$ sudo nano /etc/apt/sources.list</pre>
<p>Ficando assim:</p>
<pre class="remontti-code-plain"># See https://wiki.debian.org/SourcesList for more information.
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://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

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

# Backports allow you to install newer versions of software made available for this release
deb http://deb.debian.org/debian bookworm-backports main non-free-firmware contrib non-free
deb-src http://deb.debian.org/debian bookworm-backports main non-free-firmware contrib non-free

</pre>
<p>Agora instale o firmware-linux</p>
<pre class="remontti-code">$ sudo apt update
$ sudo apt install firmware-linux</pre>
<p><strong>PLACA DE VÍDEO</strong><br />
O terror da maioria das pessoas!<br />
<strong><a href="https://wiki.debian.org/NvidiaGraphicsDrivers#Debian_12_.22Bookworm.22" rel="noopener" target="_blank">Nvidia</a></strong></p>
<pre class="remontti-code">$ apt install nvidia-driver firmware-misc-nonfree</pre>
<p>Dificuldades? <a href="https://wiki.debian.org/NVIDIA%20Optimus" rel="noopener" target="_blank">Esse link</a> pode lhe ajudar.</p>
<p><strong><a href="https://wiki.debian.org/AtiHowTo" rel="noopener" target="_blank">AMD/ATI</a></strong></p>
<pre class="remontti-code">$ apt installfirmware-amd-graphics</pre>
<p><strong>GRUB + KERNEL</strong><br />
Eu desativo algumas proteções do kernel (Nuca faça essa M** em um servidor) pois se tratando de desktop sei que não terei exemplo um serviço web rodando para o mundo, então para ganhar performance vou colocar <strong>mitigations</strong> em <strong>off</strong>, se você gosta do nome das interfaces de rede como eth0 wlan0 use o <strong>net.ifnames</strong> e <strong>biosdevname</strong> em <strong>0</strong>, se você quiser <strong>ver tudo </strong>que esta sendo carregado no sistema também<strong> pode remover quiet splash</strong> se desejar. Se não sabe o que ta fazendo pule essa parte! <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>
<pre class="remontti-code">$ sudo nano /etc/default/grub</pre>
<p>Adicione ao <strong>GRUB_CMDLINE_LINUX_DEFAULT</strong> , vai ficar assim, porem resume= é sei UID!</p>
<pre class="remontti-code-plain">GRUB_CMDLINE_LINUX_DEFAULT=&quot;mitigations=off net.ifnames=0 biosdevname=0 quiet splash resume=UUID=7c3fc737-...&quot;
</pre>
<pre class="remontti-code">$ sudo update-grub</pre>
<p>Mais ajustes</p>
<pre class="remontti-code">$ sudo su -</pre>
<p>Se você tem SSD/NVME e execute os 2 comandos</p>
<pre class="remontti-code"># echo &quot;vm.vfs_cache_pressure=50&quot; &gt;&gt; /etc/sysctl.conf
# echo &quot;vm.dirty_background_ratio = 5&quot; &gt;&gt; /etc/sysctl.conf</pre>
<p>Se tiver mais que 4GB de memória ram.</p>
<pre class="remontti-code"># echo &quot;vm.swappiness=10&quot; &gt;&gt; /etc/sysctl.conf</pre>
<p>Carregue e reinicie</p>
<pre class="remontti-code"># sysctl -p
# exit
$ sudo reboot</pre>
<p><strong>ZSH + POWERLEVEL10K</strong><br />
Já que nosso &#8220;negócio&#8221; é terminal que tal dar uma tunada com ZSH, primeiramente baixa as fontes MesloLGS</p>
<pre class="remontti-code">$ sudo apt install wget -y
$ cd /usr/local/share/fonts
$ sudo wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf
$ sudo wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf
$ sudo wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf
$ sudo wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf</pre>
<p>Configure o terminal com a fonte MesloLGS NF<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-1.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-1.png" alt="" width="867" height="470" class="alignnone size-full wp-image-7516" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-1.png 867w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-1-300x163.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-1-768x416.png 768w" sizes="auto, (max-width: 867px) 100vw, 867px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-2.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-2.png" alt="" width="896" height="591" class="alignnone size-full wp-image-7517" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-2.png 896w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-2-300x198.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-2-768x507.png 768w" sizes="auto, (max-width: 896px) 100vw, 896px" /></a></p>
<p>Se deseja alter a cor do terminal:<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-3.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-3.png" alt="" width="1267" height="709" class="alignnone size-full wp-image-7518" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-3.png 1267w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-3-300x168.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-3-1024x573.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-3-768x430.png 768w" sizes="auto, (max-width: 1267px) 100vw, 1267px" /></a></p>
<p>Instale os pacotes necessários:</p>
<pre class="remontti-code">$ sudo apt install git zsh zsh-autosuggestions zsh-syntax-highlighting fzf -y
$ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/.powerlevel10k
$ echo &#039;source ~/.powerlevel10k/powerlevel10k.zsh-theme&#039; &gt;&gt;~/.zshrc
$ zsh</pre>
<p>Várias perguntas serão feitas, para chegar ao resultado a baixo respondi com:<br />
<strong>y y y y 3 1 n 1 1 1 1 2 2 2 n 1 y</strong>, mas ajuste ao seu gosto.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-4.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-4.png" alt="" width="933" height="187" class="alignnone size-full wp-image-7519" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-4.png 933w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-4-300x60.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-terminal-zsh-4-768x154.png 768w" sizes="auto, (max-width: 933px) 100vw, 933px" /></a></p>
<p>Para reconfigurar novamente execute:</p>
<pre class="remontti-code">$ p10k configure</pre>
<p>Vai ser necessário colocar algumas entradas em nosso ~/.zshrc</p>
<pre class="remontti-code">$ nano ~/.zshrc</pre>
<p>Deixe assim:</p>
<pre class="remontti-code-plain">
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r &quot;${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh&quot; ]]; then
  source &quot;${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh&quot;
fi

source ~/.powerlevel10k/powerlevel10k.zsh-theme

# share history across multiple zsh sessions
setopt SHARE_HISTORY
# append to history
setopt APPEND_HISTORY
# adds commands as they are typed, not at shell exit
setopt INC_APPEND_HISTORY
# do not store duplications
setopt HIST_IGNORE_DUPS
# ignore duplicates when searching
setopt HIST_FIND_NO_DUPS
# removes blank lines from history
setopt HIST_REDUCE_BLANKS

# setup autocompletion
autoload -Uz compinit &amp;&amp; compinit
zstyle &#039;:completion:*&#039; matcher-list &#039;m:{a-z}={A-Za-z}&#039;
# autocompletion using arrow keys (based on history)
bindkey &#039;\e[A&#039; history-search-backward
bindkey &#039;\e[B&#039; history-search-forward

setopt prompt_subst
autoload -U colors &amp;&amp; colors
local resetColor=&quot;%{$reset_color%}&quot;
PS1=&quot;&quot;
PS1=&quot;%F{cyan}&quot;&#039;($(basename &quot;$CONDA_DEFAULT_ENV&quot;)) &#039;&quot;$resetColor&quot;
PS1+=&#039;%n%{$reset_color%}@$(scutil --get ComputerName):&#039;&quot;$resetColor&quot;
PS1+=$&#039;\e[38;5;211m$(short_cwd) &#039;;
PS1+=$&#039;\e[38;5;48m[$(git_repo):$(git_branch)] &#039;;
PS1+=&#039;$resetColor$ &#039;;

bindkey &quot;^[[1;5D&quot; backward-word
bindkey &quot;^[[1;5C&quot; forward-word

source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/share/doc/fzf/examples/key-bindings.zsh

export LS_OPTIONS=&#039;--color=auto&#039;
eval &quot;`dircolors`&quot;
alias ls=&#039;ls $LS_OPTIONS&#039;
alias ll=&#039;ls $LS_OPTIONS -l&#039;
alias l=&#039;ls $LS_OPTIONS -lha&#039;

alias grep=&#039;grep --color&#039;
alias egrep=&#039;egrep --color&#039;
alias ip=&#039;ip -c&#039;
alias diff=&#039;diff --color&#039;
alias meuip=&#039;curl ifconfig.me; echo;&#039;
alias tail=&#039;grc tail&#039;
alias ping=&#039;grc ping&#039;
alias ps=&#039;grc ps&#039;
alias netstat=&#039;grc netstat&#039;
alias dig=&#039;grc dig&#039;
alias traceroute=&#039;grc traceroute&#039;
alias apt=&#039;sudo apt&#039;
alias l=&#039;ls -lh&#039;
alias la=&#039;ls -lha&#039;

HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt appendhistory

# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

</pre>
<p>Adicione comando personalizado em preferencias para sempre que abrir o terminal carregar o zsh<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/zsh_terminal.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/zsh_terminal.png" alt="" width="1132" height="709" class="alignnone size-full wp-image-6940" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/zsh_terminal.png 1132w, https://blog.remontti.com.br/wp-content/uploads/2022/11/zsh_terminal-300x188.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/zsh_terminal-1024x641.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/11/zsh_terminal-768x481.png 768w" sizes="auto, (max-width: 1132px) 100vw, 1132px" /></a></p>
<p><strong>FERRAMENTAS &#038; UTILITÁRIO</strong><br />
Como utilizo muito o vim no meu dia a dia faço alguns ajustes.</p>
<pre class="remontti-code">$ apt install vim
$ cat &lt;&lt;EOF &gt;~/.vimrc
set showmatch &quot; Mostrar colchetes correspondentes
set ts=4 &quot; Ajuste tab
set sts=4 &quot; Ajuste tab
set sw=4 &quot; Ajuste tab
set autoindent &quot; Ajuste tab
set smartindent &quot; Ajuste tab
set smarttab &quot; Ajuste tab
set expandtab &quot; Ajuste tab
&quot;set number &quot; Mostra numero da linhas
EOF
$ sudo sed -i &#039;s/&quot;syntax on/syntax on/&#039; /etc/vim/vimrc
$ sudo sed -i &#039;s/&quot;set background=dark/set background=dark/&#039; /etc/vim/vimrc
</pre>
<p>Sou amante do terminal e muitas da ferramentas de terminal ajudam a debugar problemas, recomendo uma leitura do artigo: <a href="https://blog.remontti.com.br/5867" rel="noopener" target="_blank">Como melhorar a produtividade</a>. Tem alguns aplicações extras ai no meio também como filezilla, mas garanto tudo é útil!</p>
<pre class="remontti-code">$ sudo apt install htop iotop iftop hdparm locate traceroute tree \
  ipcalc sipcalc mtr-tiny whois dnsutils net-tools ncdu apt-transport-https \
  neofetch breeze bash-completion fzf curl grc bgpq4 nmap lm-sensors ncal \
  rtorrent links arping bmon tcpdump ethtool iptraf-ng mutter qbittorrent \
  filezilla vinagre rdesktop icedtea-netx default-jre kolourpaint -y
</pre>
<p>Provavelmente você utiliza VPNs então os pacotes a baixo não podem falar:</p>
<pre class="remontti-code">$ sudo apt install network-manager-gnome \
 network-manager-pptp-gnome \
 network-manager-vpnc-gnome \
 network-manager-ssh-gnome \
 network-manager-openvpn-gnome \
 network-manager-l2tp-gnome 
</pre>
<p>Eu gosto de dar uma personalizada no GNOME, vou deixar aqui algumas extensões que curto. (Use se te agradar).</p>
<pre class="remontti-code">$ sudo apt install gnome-shell-extension-manager gnome-tweaks  -y</pre>
<p>Abra a aplicação: <strong>Gereciador de Extensões</strong> e clique em <strong>Navegar</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao1.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao1.png" alt="" width="862" height="654" class="alignnone size-full wp-image-7520" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao1.png 862w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao1-300x228.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao1-768x583.png 768w" sizes="auto, (max-width: 862px) 100vw, 862px" /></a></p>
<p>Na buscar pesquise por:<br />
<a href="https://extensions.gnome.org/extension/3193/blur-my-shell/" rel="noopener" target="_blank"><strong>Blur my Shell</strong></a> ela vai deixar acompanhado o papel de parede.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao2.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao2.png" alt="" width="1280" height="800" class="alignnone size-full wp-image-7521" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao2.png 1280w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao2-300x188.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao2-1024x640.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao2-768x480.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></a></p>
<p><a href="https://extensions.gnome.org/extension/4158/gnome-40-ui-improvements/" rel="noopener" target="_blank"><strong>Gnome 4x UI Improvements</strong></a> irá exibir as áreas de trabalho, inclusive você pode arrastar uma aplicação para dentro dela.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao3.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao3.png" alt="" width="1280" height="800" class="alignnone size-full wp-image-7522" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao3.png 1280w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao3-300x188.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao3-1024x640.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/Debian-12-Live-extensao3-768x480.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></a></p>
<p><a href="https://extensions.gnome.org/extension/2890/tray-icons-reloaded/" rel="noopener" target="_blank"><strong>Tray Icons: Reloaded</strong></a> caso você tem problema com algum ícones que não é exibido na barra, pode tentar usa-lo.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/tray-icon.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/tray-icon.png" alt="" width="400" height="200" class="alignnone size-full wp-image-6887" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/tray-icon.png 400w, https://blog.remontti.com.br/wp-content/uploads/2022/11/tray-icon-300x150.png 300w" sizes="auto, (max-width: 400px) 100vw, 400px" /></a></p>
<p><a href="https://extensions.gnome.org/extension/4679/burn-my-windows/" rel="noopener" target="_blank"><strong>Burn My Windows</strong></a> se você é das antigas e lembra do compiz vai gostar desse, janelinha explodindo, pegando fogo, e muitas animações. Nas configurações dessa extensão você encontra muita frescura rsrsrs<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/firulagem.gif" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/firulagem.gif" alt="" width="320" height="200" class="alignnone size-full wp-image-6888" /></a></p>
<p><a href="https://extensions.gnome.org/extension/4648/desktop-cube/" rel="noopener" target="_blank"><strong>Desktop Cube</strong></a> vai tornar suas áreas de trabalho em um cubo.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/cube.gif" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/cube.gif" alt="" width="320" height="180" class="alignnone size-full wp-image-6889" /></a></p>
<p><a href="https://extensions.gnome.org/extension/3724/net-speed-simplified/" rel="noopener" target="_blank"><strong>Net speed Simplified</strong></a> se você quiser acompanhar o trafego da sua interface de rede.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/trafego.gif" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/trafego.gif" alt="" width="356" height="64" class="alignnone size-full wp-image-6891" /></a></p>
<p><a href="https://extensions.gnome.org/extension/3396/color-picker/" rel="noopener" target="_blank"><strong>Color Picker</strong></a> se você precisa descobrir uma cor de qualquer objeto do seu desktop essa é uma ótima extensão.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/colorpicker.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/colorpicker.png" alt="" width="454" height="345" class="alignnone size-full wp-image-6892" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/colorpicker.png 454w, https://blog.remontti.com.br/wp-content/uploads/2022/11/colorpicker-300x228.png 300w" sizes="auto, (max-width: 454px) 100vw, 454px" /></a></p>
<p><a href="https://extensions.gnome.org/extension/750/openweather/" rel="noopener" target="_blank"><strong>OpenWeather</strong></a> informações de clima.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/clima.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/clima.png" alt="" width="606" height="302" class="alignnone size-full wp-image-6894" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/clima.png 606w, https://blog.remontti.com.br/wp-content/uploads/2022/11/clima-300x150.png 300w" sizes="auto, (max-width: 606px) 100vw, 606px" /></a></p>
<p><a href="https://extensions.gnome.org/extension/2458/bubblemail/" rel="noopener" target="_blank">Bubblemail</a> se você precisa acompanhar seus e-mails esse cara pode lhe ajudar bastante. é necessário a instalação do <a href="http://bubblemail.free.fr/downloads" rel="noopener" target="_blank">bubblemail</a>.</p>
<pre class="remontti-code">$ cd /tmp; wget http://bubblemail.free.fr/releases/debian/bubblemail_1.8-1_all.deb 
sudo apt install ./bubblemail_1.8-1_all.deb</pre>
<p>Agora basta configurar sua conta na extensão.</p>
<p>Existe muita personalização possíveis, para icones novos e themas crie dois diretórios. </p>
<pre class="remontti-code">$ mkdir ~/.themes
$ mkdir ~/.icons</pre>
<p>Vamos supor que queira alterar o cursor para um novo, vou baixar o <a href="https://www.gnome-look.org/p/999927/" rel="noopener" target="_blank">Cursor Breeze</a> que eu gosto (herança do KDE) faça download do mesmo. <em>(Ignore meus prints do ubuntu, reaproveitei)</em><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/breeze.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/breeze.png" alt="" width="625" height="71" class="alignnone size-full wp-image-6896" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/breeze.png 625w, https://blog.remontti.com.br/wp-content/uploads/2022/11/breeze-300x34.png 300w" sizes="auto, (max-width: 625px) 100vw, 625px" /></a><br />
<strong>Extraia</strong> o mesmo e mova para a pasta breeze para dentro de <strong>.icons</strong> que esta dentro da sua<strong> Pasta Pessoal</strong>, no linux tudo que começa com ponto é oculto, para exibi-los pressione <strong>CRTL+H</strong>.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/cursor.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/cursor.png" alt="" width="1281" height="799" class="alignnone size-full wp-image-6897" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/cursor.png 1281w, https://blog.remontti.com.br/wp-content/uploads/2022/11/cursor-300x187.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/cursor-1024x639.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/11/cursor-768x479.png 768w" sizes="auto, (max-width: 1281px) 100vw, 1281px" /></a><br />
Em seguida abra <strong>Ajustes</strong>, em <strong>Aparência</strong>, <strong>Cursor</strong> selecione <strong>Breeze</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/cursor2.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/cursor2.png" alt="" width="1281" height="791" class="alignnone size-full wp-image-6898" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/cursor2.png 1281w, https://blog.remontti.com.br/wp-content/uploads/2022/11/cursor2-300x185.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/cursor2-1024x632.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/11/cursor2-768x474.png 768w" sizes="auto, (max-width: 1281px) 100vw, 1281px" /></a></p>
<p>Alguns pacotes de icones/themas você encontra no repositório também. Um bem bonito é o Papirus.</p>
<pre class="remontti-code">$ sudo apt install papirus-icon-theme</pre>
<p>Vou deixar alguns Icones/Temas que acho bonito para os temas basta colocar eles na pasta  ~/.themes<br />
<a href="https://www.gnome-look.org/p/1477945" rel="noopener" target="_blank">https://www.gnome-look.org/p/1477945</a><br />
<a href="https://www.gnome-look.org/p/1201366" rel="noopener" target="_blank">https://www.gnome-look.org/p/1201366</a><br />
<a href="https://www.gnome-look.org/p/1357889" rel="noopener" target="_blank">https://www.gnome-look.org/p/1357889</a><br />
<a href="https://www.gnome-look.org/p/1013030" rel="noopener" target="_blank">https://www.gnome-look.org/p/1013030</a><br />
<a href="https://www.gnome-look.org/p/1661983" rel="noopener" target="_blank">https://www.gnome-look.org/p/1661983</a><br />
<a href="https://www.gnome-look.org/p/1678986" rel="noopener" target="_blank">https://www.gnome-look.org/p/1678986</a><br />
<a href="https://www.gnome-look.org/p/1348081" rel="noopener" target="_blank">https://www.gnome-look.org/p/1348081</a><br />
<a href="https://www.pling.com/p/1280977" rel="noopener" target="_blank">https://www.pling.com/p/1280977</a></p>
<p><strong>GOOGLE CHROME</strong><br />
Você pode manipular as extensões pelo Google Chrome também. Primeiramente vamos instala-lo.</p>
<pre class="remontti-code">$ cd /tmp/
$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
$ sudo apt install ./google-chrome-stable_current_amd64.deb chrome-gnome-shell -y</pre>
<p>Acesse no Google Chrome: <a href="https://chrome.google.com/webstore/detail/gnome-shell-integration/gphhapmejobijbbhgpjhcjognlahblep" rel="noopener" target="_blank">Integração com GNOME Shell</a> Clique em Usar no Chrome. Agora com a extensão instalada você pode administrar acessando: <a href="https://extensions.gnome.org/local/" rel="noopener" target="_blank">https://extensions.gnome.org/local/</a></p>
<p><strong>TELEGRAM</strong><br />
Telegram até esta no repositório porem recebe atualizações sempre atrasadas, etão vamos fazer a instalação manual, abra seu terminal:</p>
<pre class="remontti-code">$ cd /tmp/
$ wget https://telegram.org/dl/desktop/linux -O tsetup.tar.xz
$ tar xvf tsetup.tar.xz
$ sudo mv Telegram/ /opt/
$ sudo chown $USER: /opt/Telegram/ -R
$ sudo ln -sf /opt/Telegram/Telegram /usr/bin/telegram
$ telegram &amp;</pre>
<p><strong>VIRTUALBOX 7</strong><br />
Vamos atualizar o repositório oficial do <a href="https://www.virtualbox.org/wiki/Linux_Downloads" rel="noopener" target="_blank">Vbox</a>.</p>
<pre class="remontti-code">$ wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo \
   gpg --dearmor --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg</pre>
<pre class="remontti-code">$ sudo nano /etc/apt/sources.list.d/virtualbox.list </pre>
<pre class="remontti-code-plain">deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg]  https://download.virtualbox.org/virtualbox/debian bookworm contrib</pre>
<p>Salve e feche.</p>
<pre class="remontti-code">$ sudo apt update
$ sudo apt install virtualbox-7.0 -y
$ sudo usermod -a -G vboxusers $USER
$ cd /tmp
$ wget https://download.virtualbox.org/virtualbox/7.0.12/Oracle_VM_VirtualBox_Extension_Pack-7.0.12.vbox-extpack
$ VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-7.0.12.vbox-extpack</pre>
<p>Uma extensão do GNOME que você pode gostar é a <a href="https://extensions.gnome.org/extension/1415/virtualbox-applet/" rel="noopener" target="_blank"><strong>Virtualbox Applet</strong></a></p>
<p><strong>DROPBOX</strong></p>
<pre class="remontti-code">$ cd /tmp/
$ sudo apt install python3-gpg -y
$ wget &quot;https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_2022.12.05_amd64.deb&quot; \
  -O dropbox.deb
$ sudo apt install ./dropbox.deb -y
$ apt update
$ apt upgrade
</pre>
<p>Não achei solução ainda para o erro apt-key, então comenti a linha do repositorio.</p>
<pre class="remontti-code">$ sudo nano /etc/apt/sources.list.d/dropbox.list</pre>
<p><strong>SUBLIME-TEXT</strong></p>
<pre class="remontti-code">$ wget -O- https://download.sublimetext.com/sublimehq-pub.gpg \
  | gpg --dearmor | sudo tee /usr/share/keyrings/sublimehq-archive-keyring.gpg &amp;&gt;/dev/null
$ echo &quot;deb [signed-by=/usr/share/keyrings/sublimehq-archive-keyring.gpg] \
  https://download.sublimetext.com/ apt/stable/&quot; | \
  sudo tee /etc/apt/sources.list.d/sublime-text.list
$ sudo apt update ; sudo apt install sublime-text -y</pre>
<p><strong>VSCODE</strong></p>
<pre class="remontti-code">$ cd /tmp
$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor &gt; packages.microsoft.gpg
$ sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
$ sudo sh -c &#039;echo &quot;deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main&quot; &gt; /etc/apt/sources.list.d/vscode.list&#039;
$ sudo apt update ; sudo apt install code -y</pre>
<p><strong>TEAMVIEWER</strong></p>
<pre class="remontti-code">$ cd /tmp/
$ wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb
$ sudo apt install ./teamviewer_amd64.deb -y</pre>
<p><strong>ANYDESK</strong></p>
<pre class="remontti-code">$ wget -qO - https://keys.anydesk.com/repos/DEB-GPG-KEY \
  | sudo tee /usr/share/keyrings/anydesk.asc
$ echo &quot;deb [signed-by=/usr/share/keyrings/anydesk.asc] \
  http://deb.anydesk.com/ all main&quot; \
  |sudo tee /etc/apt/sources.list.d/anydesk-stable.list
$ sudo apt update
$ cd /tmp 
$ wget http://ftp.br.debian.org/debian/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_amd64.deb
$ sudo apt install ./libpangox-1.0-0_0.0.2-5+b2_amd64.deb -y
$ sudo apt install anydesk -y
$ sudo systemctl disable anydesk</pre>
<p><strong>SKYPE</strong><br />
Para os mais idosos (e olha que eu já abandonei ele :-D)</p>
<pre class="remontti-code">$ cd /tmp/
$ wget https://repo.skype.com/latest/skypeforlinux-64.deb
$ sudo apt install ./skypeforlinux-64.deb -y</pre>
<p>Vai precisar ajustar o repositório para nao ter erro, como não uso não pesquisei. Mas remove do repositório que esta resolvido, se precisar atualizar baixe e instale novamente.</p>
<pre class="remontti-code">$ sudo rm /etc/apt/sources.list.d/skype-stable.list</pre>
<p><strong>ONLYOFFICE</strong><br />
Melhor pacote office na minha opnião.</p>
<pre class="remontti-code">$ cd /tmp
$ wget https://download.onlyoffice.com/install/desktop/editors/linux/onlyoffice-desktopeditors_amd64.deb 
$ sudo apt install ./onlyoffice-desktopeditors_amd64.deb -y</pre>
<p><strong>GOOGLE EARTH</strong></p>
<pre class="remontti-code">$ cd /tmp/
$ wget https://dl.google.com/dl/earth/client/current/google-earth-pro-stable_current_amd64.deb
$ sudo apt install ./google-earth-pro-stable_current_amd64.deb -y</pre>
<p><strong>CALCULADORA IPV6</strong></p>
<pre class="remontti-code">$ sudo apt install python3-pip
$ pip install --break-system-packages ipaddr
$ sudo wget https://blog.remontti.com.br/arquivos/ip6calc_py3 -O /bin/ip6calc
$ sudo chmod a+x /bin/ip6calc
$ ip6calc 2804:f123::/32</pre>
<p><strong>AJUSTES INICIALIZAÇÃO</strong><br />
Você pode estranhar o NumLock não vir ativado na inicialização para resolver isso:</p>
<pre class="remontti-code">$ sudo apt install numlockx -y
$ mkdir ~/.config/autostart/ &amp;&gt;/dev/null
$ nano ~/.config/autostart/numlockx.desktop</pre>
<p>Adicione:</p>
<pre class="remontti-code">[Desktop Entry]
Type=Application
Exec=/usr/bin/numlockx on
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[pt_BR]=Inicia NumLock Ativo
Name=Inicia NumLock Ativo
Comment[pt_BR]=Inicia NumLock Ativo
Comment=Inicia NumLock Ativo
</pre>
<p>Outro problema que você pode encontrar dependendo do seu teclado, é que o ponto no teclado numérico ao usar algum aplicativo que esteja sendo executado pelo wine/playonlinux saia uma virgula. Abra seu winbox ai e teste. Se for seu caso abra o terminal e execute:</p>
<pre class="remontti-code">$ /usr/bin/xmodmap -e &#039;keycode 129 = period</pre>
<p>Resolveu, crie uma entrada na inicialização!<br />
$ nano ~/.config/autostart/pontowine.desktop<br />
Adicione:</p>
<pre class="remontti-code">[Desktop Entry]
Type=Application
Exec=/usr/bin/xmodmap -e &#039;keycode 129 = period&#039;
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[pt_BR]=Ponto Wine
Name=Ponto Wine
Comment[pt_BR]=Ponto Wine
Comment=Ponto Wine
</pre>
<p><strong>PRINT COM FLAMESHOT</strong><br />
Gnome melhorou bastante o print nas ultimas versões mais ainda gosto mais do flameshot</p>
<pre class="remontti-code">$ sudo apt install flameshot -y</pre>
<p>Para criar um atalho abra <strong>Configurações</strong> &#8211; <strong>Teclado</strong> > <strong>Atalhos de teclado</strong> > <strong>Veja e personalize atalhos</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_atalho.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_atalho.png" alt="" width="1033" height="785" class="alignnone size-full wp-image-6930" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_atalho.png 1033w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_atalho-300x228.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_atalho-1024x778.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_atalho-768x584.png 768w" sizes="auto, (max-width: 1033px) 100vw, 1033px" /></a></p>
<p>Clique em <strong>Atalhos personalizados</strong> e Adicione um novo<br />
Nome: <strong>Print Flame</strong><br />
Comando: <strong>/usr/bin/flameshot gui</strong><br />
Associar a tecla Print (Meu exemplo vou usar CTRL+Print)<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_atalho2.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_atalho2.png" alt="" width="997" height="636" class="alignnone size-full wp-image-6931" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_atalho2.png 997w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_atalho2-300x191.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_atalho2-768x490.png 768w" sizes="auto, (max-width: 997px) 100vw, 997px" /></a></p>
<pre class="remontti-code">$ flameshot config </pre>
<p>Faça os ajustes de configurações com as suas necessidades, eu desativo as notificações e uso Enter para copiar para área de transferência. </p>
<p><strong>GIMP</strong><br />
Se você precisa editar algumas imagens (É o concorrente do photoshop)</p>
<pre class="remontti-code"> sudo apt install gimp</pre>
<p><strong>SPOTIFY</strong></p>
<pre class="remontti-code">$ curl -sS https://download.spotify.com/debian/pubkey_7A3A762FAFD4A51F.gpg \
 | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg
$ echo &quot;deb http://repository.spotify.com stable non-free&quot; | sudo \
 tee /etc/apt/sources.list.d/spotify.list
$ sudo apt update; sudo apt install spotify-client -y</pre>
<p><strong>PLAYONLINUX</strong><br />
Para executar algumas aplicações <strong>.exe</strong> Exemplo um Winbox, The Dude (Os que mais me perguntam)&#8230; </p>
<pre class="remontti-code">$ sudo dpkg --add-architecture i386 ; sudo apt update ; sudo apt upgrade
$ sudo apt install playonlinux msttcorefonts</pre>
<p>Vou demonstrar como instalar o Dude e Winbox com o playonlinux, faça download dos mesmo, vamos te terminal né!</p>
<pre class="remontti-code">$ $ cd ~/Downloads
$ wget https://download.mikrotik.com/routeros/6.48.7/dude-install-6.48.7.exe
$ wget https://download.mikrotik.com/winbox/3.38/winbox.exe</pre>
<p>Abra o Playonlinux e clique em <strong>Instalar um program</strong> e em seguida <strong>Instalar um programa não listado</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_1.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_1.png" alt="" width="946" height="619" class="alignnone size-full wp-image-6901" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_1.png 946w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_1-300x196.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_1-768x503.png 768w" sizes="auto, (max-width: 946px) 100vw, 946px" /></a></p>
<p><strong>Avançar</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_2.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_2.png" alt="" width="847" height="566" class="alignnone size-full wp-image-6902" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_2.png 847w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_2-300x200.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_2-768x513.png 768w" sizes="auto, (max-width: 847px) 100vw, 847px" /></a></p>
<p><strong>Avançar</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_3.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_3.png" alt="" width="857" height="570" class="alignnone size-full wp-image-6903" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_3.png 857w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_3-300x200.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_3-768x511.png 768w" sizes="auto, (max-width: 857px) 100vw, 857px" /></a></p>
<p><strong>Avançar</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_4.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_4.png" alt="" width="850" height="563" class="alignnone size-full wp-image-6904" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_4.png 850w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_4-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_4-768x509.png 768w" sizes="auto, (max-width: 850px) 100vw, 850px" /></a><br />
Selecione <strong>Editar ou atualizar um aplicativo existente </strong>e <strong>Avançar</strong></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_5.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_5.png" alt="" width="869" height="567" class="alignnone size-full wp-image-6905" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_5.png 869w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_5-300x196.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_5-768x501.png 768w" sizes="auto, (max-width: 869px) 100vw, 869px" /></a></p>
<p>Marque <strong>Exibir unidade virtuais</strong> selecione <strong>default</strong> e <strong>Avançar</strong>.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_6.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_6.png" alt="" width="862" height="561" class="alignnone size-full wp-image-6906" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_6.png 862w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_6-300x195.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_6-768x500.png 768w" sizes="auto, (max-width: 862px) 100vw, 862px" /></a></p>
<p><strong>Avançar</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_7.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_7.png" alt="" width="838" height="550" class="alignnone size-full wp-image-6907" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_7.png 838w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_7-300x197.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_7-768x504.png 768w" sizes="auto, (max-width: 838px) 100vw, 838px" /></a></p>
<p>Selecione <strong>32bits </strong>e <strong>Avançar</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_8.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_8.png" alt="" width="847" height="556" class="alignnone size-full wp-image-6908" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_8.png 847w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_8-300x197.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_8-768x504.png 768w" sizes="auto, (max-width: 847px) 100vw, 847px" /></a></p>
<p>Clique em <strong>Navegar</strong>, e procure o <em>dude-install-6.xx.x.exe</em> em Downloads e clique em <strong>Avançar</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_9.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_9.png" alt="" width="848" height="553" class="alignnone size-full wp-image-6909" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_9.png 848w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_9-300x196.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_9-768x501.png 768w" sizes="auto, (max-width: 848px) 100vw, 848px" /></a></p>
<p>Instalador será iniciado, então clique em <strong>I Agree, Next, Next</strong>, mas <font color="red">não em <strong>Close</strong></font><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_10.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_10.png" alt="" width="867" height="569" class="alignnone size-full wp-image-6912" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_10.png 867w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_10-300x197.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_10-768x504.png 768w" sizes="auto, (max-width: 867px) 100vw, 867px" /></a></p>
<p><font color="red">Não clique em <strong>Close</strong></font> ainda!<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_13.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_13.png" alt="" width="887" height="577" class="alignnone size-full wp-image-6910" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_13.png 887w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_13-300x195.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_13-768x500.png 768w" sizes="auto, (max-width: 887px) 100vw, 887px" /></a></p>
<p>Abra o explore entre na pasta Download e copie o <strong>winbox.exe </strong>para<strong> PlayOnLinux&#8217;s virtual drives/default/drive_c/Program Files/Dude</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_14.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_14.png" alt="" width="1280" height="778" class="alignnone size-full wp-image-6913" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_14.png 1280w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_14-300x182.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_14-1024x622.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_14-768x467.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></a><br />
Se preferir pelo terminal:</p>
<pre class="remontti-code">$ cp ~/Downloads/winbox.exe \
   ~/PlayOnLinux\&#039;s\ virtual\ drives/default/drive_c/Program\ Files/Dude/</pre>
<p>Feito isso agora sim pode clicar em <strong>Close</strong>, desta forma todos os .exe do diretório da instalação irão aparecer para criar um atalho.</p>
<p>Selecione <strong>winbox.exe</strong> e clique em <strong>Avançar</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_15.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_15.png" alt="" width="847" height="554" class="alignnone size-full wp-image-6914" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_15.png 847w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_15-300x196.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_15-768x502.png 768w" sizes="auto, (max-width: 847px) 100vw, 847px" /></a></p>
<p>De o nome <strong>Winbox </strong>para aplicação, e clique em <strong>Avançar</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_16.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_16.png" alt="" width="847" height="547" class="alignnone size-full wp-image-6915" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_16.png 847w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_16-300x194.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_16-768x496.png 768w" sizes="auto, (max-width: 847px) 100vw, 847px" /></a></p>
<p>Faça o mesmo para o dude.exe<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_17.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_17.png" alt="" width="855" height="562" class="alignnone size-full wp-image-6917" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_17.png 855w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_17-300x197.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_17-768x505.png 768w" sizes="auto, (max-width: 855px) 100vw, 855px" /></a></p>
<p>Agora para finalizar escolha:<strong> Eu não quero criar outro atalho</strong>, e clique em <strong>Avançar</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_18.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_18.png" alt="" width="842" height="554" class="alignnone size-full wp-image-6918" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_18.png 842w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_18-300x197.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_18-768x505.png 768w" sizes="auto, (max-width: 842px) 100vw, 842px" /></a></p>
<p>Pode fechar o PlayOnLinux<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_19.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_19.png" alt="" width="841" height="552" class="alignnone size-full wp-image-6919" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_19.png 841w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_19-300x197.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_19-768x504.png 768w" sizes="auto, (max-width: 841px) 100vw, 841px" /></a></p>
<p>Dois atalhos/arquivos [Dude.desktop Winbox.desktop] foram criado na Área de trabalho, porém você não irá ver nada nela, pois por ao logarmos no sistema com Gnome, a extensão Desktop con NG foi desativada (Caso queira ativar) eu não gosto ehehehe. Eu irei mover eles para o menu de aplicações do sistema, para isso basta mover esses atalhos para ~/.local/share/applications, vou fazer por comando que é menos print para esse tutorial hehehe.</p>
<pre class="remontti-code">$ mv ~/Área\ de\ trabalho/*.desktop ~/.local/share/applications</pre>
<p>Pronto você pode clicar com o direito e Fixar aos favoritos.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_20.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_20.png" alt="" width="1274" height="796" class="alignnone size-full wp-image-6920" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_20.png 1274w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_20-300x187.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_20-1024x640.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_20-768x480.png 768w" sizes="auto, (max-width: 1274px) 100vw, 1274px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_21.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_21.png" alt="" width="1266" height="790" class="alignnone size-full wp-image-6921" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_21.png 1266w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_21-300x187.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_21-1024x639.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/11/ubuntu_play_21-768x479.png 768w" sizes="auto, (max-width: 1266px) 100vw, 1266px" /></a></p>
<p>Um dia também interessante é copiar as fontes da MS para a unidade virtal, assim as aplicações não ficam bugadas.</p>
<pre class="remontti-code">$ cp /usr/share/fonts/truetype/msttcorefonts/* \
   ~/PlayOnLinux\&#039;s\ virtual\ drives/default/drive_c/windows/Fonts/</pre>
<p><strong>CLIENTE SSH</strong><br />
Meu cliente SSH é o próprio terminal, porém você deve usar um desses programinhas de fresco que tem salvo joão, josé e maria&#8230; <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f61b.png" alt="😛" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Como sou das antigas acabei que criando um Shell Script (usando dialog) para ir &#8220;catalogando&#8221; todos os servidores/roteadores que tenho acesso. Veja um exemplo simples:</p>
<pre class="remontti-code">$ sudo apt install dialog</pre>
<p>Crie um arquivo com:</p>
<pre class="remontti-code">$ nano vaiplaneta</pre>
<pre class="remontti-code-plain">#!/bin/bash
# Requer dialog
while : ; do
    resposta=$(
      dialog --stdout               \
             --title &#039;Acesso SSH&#039;  \
             --menu &#039;Selecione o Servidor:&#039; \
            0 0 0                   \
            1 &#039;IDENTIFICA - LALALA&#039; \
            2 &#039;IDENTIFICA - LALALA&#039; \
            3 &#039;IDENTIFICA - LALALA&#039; \
            4 &#039;IDENTIFICA - LALALA&#039; \
            5 &#039;IDENTIFICA - LALALA&#039; \
            6 &#039;IDENTIFICA - LALALA&#039; \
            7 &#039;IDENTIFICA - LALALA&#039; \
            8 &#039;IDENTIFICA - LALALA&#039; \
            9 &#039;IDENTIFICA - LALALA&#039; \
            0 &#039;Sair&#039; )

    [ $? -ne 0 ] &amp;&amp; break

    case &quot;$resposta&quot; in
         1) ssh -p 12345 usuario@10.10.10.10 ;;
         2) ssh -p 12345 usuario@10.10.10.10 ;;
         3) ssh -p 12345 usuario@10.10.10.10 ;;
         4) ssh -p 12345 usuario@10.10.10.10 ;;
         5) ssh -p 12345 usuario@10.10.10.10 ;;
         6) ssh -p 12345 usuario@10.10.10.10 ;;
         7) ssh -p 12345 usuario@10.10.10.10 ;;
         8) ssh -p 12345 usuario@10.10.10.10 ;;
         9) ssh -p 12345 usuario@10.10.10.10 ;;
         0) break ;;
    esac
done</pre>
<pre class="remontti-code">$ chmod +x vaiplaneta
$ ./vaiplaneta
</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/dialog.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/11/dialog.png" alt="" width="845" height="569" class="alignnone size-full wp-image-6943" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/11/dialog.png 845w, https://blog.remontti.com.br/wp-content/uploads/2022/11/dialog-300x202.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/11/dialog-768x517.png 768w" sizes="auto, (max-width: 845px) 100vw, 845px" /></a></p>
<p>Outro modelinho mais elaborado sub seleção&#8230;</p>
<pre class="remontti-code">$ nano gogo</pre>
<pre class="remontti-code-plain">#!/bin/bash
# Requer dialog

janela=inicial

while : ; do

    case &quot;$janela&quot; in
        inicial)
            grupo=$(
                dialog --stdout \
                    --backtitle &#039;Acessos Remoto&#039; \
                    --title &#039;ACESSO&#039; \
                    --menu &#039;Selecione o Grupo:&#039;\
                    0 0 0 \
                    1 &#039;Selecionou 1&#039; \
                    2 &#039;Selecionou 2&#039; \
            )
            [ $? -ne 0 ] &amp;&amp; break
            case &quot;$grupo&quot; in
                1) janela=selecionou_1 ;;
                2) janela=selecionou_2 ;;
            esac
        ;;

        #####

        selecionou_1)
            anterior=inicial
            selecionou_1=$(
              dialog --stdout               \
                     --title &#039;Acesso SSH&#039;  \
                     --menu &#039;Selecione o Servidor:&#039; \
                    0 0 0                   \
                    1 &#039;IDENTIFICA 1a - LALALA&#039; \
                    2 &#039;IDENTIFICA 1b - LALALA&#039; \
                    3 &#039;IDENTIFICA 1c - LALALA&#039; \
                    0 &#039;Sair&#039; )

            [ $? -ne 0 ] &amp;&amp; janela=$anterio

            case &quot;$selecionou_1&quot; in
                 1) clear; echo &quot;IDENTIFICA 1a&quot;; ssh -p 12345 usuario@10.10.10.10 ;;
                 2) clear; echo &quot;IDENTIFICA 1b&quot;; ssh -p 12345 usuario@10.10.10.10 ;;
                 3) clear; echo &quot;IDENTIFICA 1c&quot;; ssh -p 12345 usuario@10.10.10.10 ;;
                 0) break ;;
            esac
        ;;

       #####

        selecionou_2)
            anterior=inicial
            selecionou_2=$(
              dialog --stdout               \
                     --title &#039;Acesso SSH&#039;  \
                     --menu &#039;Selecione o Servidor:&#039; \
                    0 0 0                   \
                    1 &#039;IDENTIFICA 2a - LALALA&#039; \
                    2 &#039;IDENTIFICA 2b - LALALA&#039; \
                    3 &#039;IDENTIFICA 2c - LALALA&#039; \
                    0 &#039;Sair&#039; )

            [ $? -ne 0 ] &amp;&amp; janela=$anterio

            case &quot;$selecionou_2&quot; in
                 1) clear; echo &quot;IDENTIFICA 2a&quot;; ssh -p 12345 usuario@10.10.10.10 ;;
                 2) clear; echo &quot;IDENTIFICA 2b&quot;;ssh -p 12345 usuario@10.10.10.10 ;;
                 3) clear; echo &quot;IDENTIFICA 2c&quot;;ssh -p 12345 usuario@10.10.10.10 ;;
                 0) break ;;
            esac
        ;;

        #####

        *)
            echo Abortado...
            exit

        #####

    esac

    retorno=$?
    [ $retorno -eq 1   ] &amp;&amp; janela=$anterior   # cancelar
    [ $retorno -eq 255 ] &amp;&amp; break              # Esc

done</pre>
<pre class="remontti-code">$ chmod +x gogo
$ ./gogo
</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/gogo1.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/gogo1-300x161.png" alt="" width="300" height="161" class="alignnone size-medium wp-image-7585" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/gogo1-300x161.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/gogo1-768x411.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/06/gogo1.png 848w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/gogo2.png" data-rel="lightbox-gallery-LgPMkooY" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/gogo2-300x166.png" alt="" width="300" height="166" class="alignnone size-medium wp-image-7584" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/gogo2-300x166.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/gogo2-768x426.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/06/gogo2.png 856w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>No meu caso utilizo Dropbox como nuvem, salvo meus script lá, então crio uma alias, assim em todos meus desktops ficam sincronizados os mesmo atalhos.<br />
No ZSH</p>
<pre class="remontti-code">$ nano ~/.zshrc</pre>
<p>No Bash</p>
<pre class="remontti-code">$ nano ~/.bashrc</pre>
<p>Adicione </p>
<pre class="remontti-code-plain">alias vaiplaneta=&#039;~/Dropbox/scripts/vaiplaneta&#039;
alias gogo=&#039;~/Dropbox/scripts/gogo&#039;</pre>
<p>Vou deixar aqui um manual para manualzinho do <a href="https://blog.remontti.com.br/wp-content/uploads/2022/11/Dialog.manual.zip">Dialog para download</a>.</p>
<p>Um outro problema que tive foi com alguns equipamentos antigos (KexAlgorithms) algumas OLTs por exemplo, nete caso editei /etc/ssh/ssh_config e fiz as entradas de acordos com os prefixos, como no meu caso todas estão na classe 172.18.0.0/24</p>
<pre class="remontti-code">$ sudo nano /etc/ssh/ssh_config</pre>
<p>Adicionei ao final do arquivo:</p>
<pre class="remontti-code-plain">Host 172.18.0.*
    HostKeyAlgorithms ssh-dss
    KexAlgorithms diffie-hellman-group1-sha1</pre>
<p><strong>CHAVES SSH </strong><br />
Gerando as chaves</p>
<pre class="remontti-code">$ ssh-keygen -t rsa
$ nautilus ~/.ssh</pre>
<p>Salve suas chaves: id_rsa  id_rsa.pub<br />
Para instalar a chave em um servidor use o comando:</p>
<pre class="remontti-code">$ ssh-copy-id -p 22 remontti@xxx.xxx.xxx.xxx</pre>
<p>Se um dia precisar recuperando chaves do backup</p>
<pre class="remontti-code">$ cd /onde/vc/salvou/as/chaves/
$ cp id_rsa* /home/$USER/.ssh
$ chmod 600 /home/$USER/.ssh/id_rsa
$ chmod 644 /home/$USER/.ssh/id_rsa.pub</pre>
<p>Se quiser remover os jogos que vem nele (Gosto só do gnome-chess)</p>
<pre class="remontti-code">$ sudo apt purge \
 gnome-2048 \
 aisleriot \
 atomix \
 gnome-chess \
 five-or-more \
 hitori \
 iagno \
 gnome-klotski \
 lightsoff \
 gnome-mahjongg \
 gnome-mines \
 gnome-nibbles \
 quadrapassel \
 four-in-a-row \
 gnome-robots \
 gnome-sudoku \
 swell-foop \
 tali \
 gnome-taquin \
 gnome-tetravex
$ sudo apt autoremove
</pre>
<p>Uma coisa que estava acostumado era usar o botão Backspace para voltar um diretório, que atualmente é Alt + seta para esqueda. Para contornar isso:</p>
<pre class="remontti-code">$ sudo apt install python3-nautilus
$ nano ~/.local/share/nautilus-python/extensions/BackspaceBack.py</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain"># Nautilus Backspace Back Extension
#
# Place me in ~/.local/share/nautilus-python/extensions/,
# ensure you have python-nautilus package, restrart Nautilus, and enjoy :)
#
# This script was written by molaeiali and is released to the public domain

import os, gi
gi.require_version(&#039;Nautilus&#039;, &#039;4.0&#039;)
from gi.repository import GObject, Nautilus, Gtk, Gio, GLib

def back():
                app = Gtk.Application.get_default()
                if not app.get_actions_for_accel(&quot;BackSpace&quot;):
                        app.set_accels_for_action( &quot;win.up&quot;, [&quot;BackSpace&quot;] )


class BackspaceBack(GObject.GObject, Nautilus.InfoProvider):
                def __init__(self):
                        pass

                def update_file_info(self, file):
                        back()
                        return None

</pre>
<p><strong>Cliente PPPoE</strong><br />
Crie o arquivo de configuração do PPPoE</p>
<pre class="remontti-code">$ sudo vim /etc/ppp/peers/meu-pppoe</pre>
<p>Adicione as linhas alterando eth0 pelo nome da sua interface de rede e user e password</p>
<pre class="remontti-code-plain">
# Interface de rede para a conexão PPPoE
plugin rp-pppoe.so eth0

# Nome de usuário e senha
user &quot;usuario&quot;
password &quot;senha&quot;

# Use o protocolo PAP para autenticação
noauth

# Persiste tentando a conexão em caso de falha
persist

# Use as opções padrão do pppd
usepeerdns
defaultroute

# Configurações para IPv6
+ipv6
ipv6cp-use-ipaddr
ipv6cp-accept-local
ipv6cp-accept-remote
</pre>
<p>Conectar PPPoE (Não esqueça de desativar a conexão cabeada pois ela vence o pppoe)</p>
<pre class="remontti-code">$ sudo pon meu-pppoe</pre>
<p>Para desativar a conexão PPPoE</p>
<pre class="remontti-code">$ sudo poff meu-pppoe</pre>
<h4>Firewall</h4>
<p>Para quem sai com seu computador por ai, que tal deixar um firewall de verdade!</p>
<pre class="remontti-code">$ sudo vim /etc/nftables.conf</pre>
<p>Ajuste para:</p>
<pre class="remontti-code-plain">
#!/usr/sbin/nft -f
flush ruleset

table inet filter {

    set ALLOWED_MACS {
        type ether_addr
        elements = {
            00:11:22:33:44:AA,
            00:11:22:33:44:BB,
        }
    }
    chain input {
        type filter hook input priority 0; policy drop;
        iif lo accept
        ct state established,related accept

        # Mikrotik Neigbor
        udp dport 5678 ct state new accept
        # Mikrotik permite os MAC
        meta l4proto udp meta pkttype { unicast } ether saddr @ALLOWED_MACS accept
    }
    chain forward {
        type filter hook forward priority 0;
    }
    chain output {
        type filter hook output priority 0;
    }
}</pre>
<p>Se você utiliza mikrotik, para que o Neigbor funcione precisa liberar a porta 5678 udp, e cadastrar os MAC do dispositivo que ira acessar (eu falei firewall de verdade!)</p>
<pre class="remontti-code">$ sudo systemctl enable nftables
$ sudo systemctl restart nftables</pre>
<p>Formata esse Windows ai p***** <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
Abraço!</p>
<p><strong>Gostou? Se quiser apoiar o blog e 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>O post <a href="https://blog.remontti.com.br/7512">Um pouco do meu ambiente de trabalho com Debian 12 Bookworm e Gnome 43</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7512/feed</wfw:commentRss>
			<slash:comments>20</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor WEB NGINX + PHP 8.2 + PostgreSQL +Let’s Encrypt  Debian 12 Bookworm (LNP)</title>
		<link>https://blog.remontti.com.br/7413</link>
					<comments>https://blog.remontti.com.br/7413#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 14 Jun 2023 17:32:09 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[bookworm]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[Let’s Encrypt]]></category>
		<category><![CDATA[LNP]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[PHP 8.2]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[Servidor WEB]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7413</guid>

					<description><![CDATA[<p>Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7413">Servidor WEB NGINX + PHP 8.2 + PostgreSQL +Let’s Encrypt  Debian 12 Bookworm (LNP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/lnp_debian_12-1.jpg" alt="" width="720" height="340" class="alignnone size-full wp-image-7423" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/lnp_debian_12-1.jpg 720w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lnp_debian_12-1-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lnp_debian_12-1-520x245.jpg 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor performance. O Apache, sem dúvidas, é o servidor web mais popular. No entanto, o NGINX a cada ano ganha mais popularidade e está sendo a preferência dos novos projetos. Também estarei instalando o banco de dados PostgreSQL e phpPgAdmin como gerenciador web. </p>
<p>Distribuição utilizada: <strong><a href="https://blog.remontti.com.br/7236" rel="noopener noreferrer" target="_blank">Debian 12 Bookworm / Instalação Limpa</a></strong></p>
<h3>NGINX 1.22</h3>
<p><a href="https://www.nginx.com" rel="noopener" target="_blank">https://www.nginx.com</a><br />
Vamos instalar-lo e remover a assinatura para que não vejam a versão do mesmo (Boas praticas)</p>
<pre class="remontti-code"># apt install nginx
# sed -i &#039;s/# server_tokens/server_tokens/&#039; /etc/nginx/nginx.conf
# systemctl restart nginx</pre>
<p>Acesse agora em seu navegador http://IP-SERVIDOR/<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png" alt="" width="1100" height="310" class="alignnone size-full wp-image-5467" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png 1100w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-300x85.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-1024x289.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-768x216.png 768w" sizes="auto, (max-width: 1100px) 100vw, 1100px" /><br />
Pronto nosso NGINX está rodando! </p>
<h3>PostgreSQL</h3>
<pre class="remontti-code"># apt install postgresql postgresql-contrib</pre>
<p>Torne-se o usuário postgres, para poder criar o banco de dados.</p>
<pre class="remontti-code"># su - postgres</pre>
<p>Execute para entrar no terminal de comandos do banco.</p>
<pre class="remontti-code">$ psql</pre>
<p>Para definir a senha do usuário postgres e instalar o adminpack.</p>
<pre class="remontti-code">postgres=# \password postgres
Digite nova senha para postgres: 
Digite-a novamente:
postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION
postgres=# \q 
$ exit</pre>
<p>Ajustes no pg_hba.conf, assim toda alteração será necessaria validação do postgres com a senha que acabou de definir.</p>
<pre class="remontti-code"># vim /etc/postgresql/15/main/pg_hba.conf</pre>
<p>Altere as seguintes linhas: </p>
<pre class="remontti-code">local   all             postgres                                peer
local   all             all                                     peer</pre>
<p>Para:</p>
<pre class="remontti-code">local   all             postgres                                md5
local   all             all                                     md5</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres.png" alt="" width="1010" height="268" class="alignnone size-full wp-image-5501" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres.png 1010w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres-300x80.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres-768x204.png 768w" sizes="auto, (max-width: 1010px) 100vw, 1010px" /><br />
Reinicie o postgres</p>
<pre class="remontti-code"># systemctl restart postgresql</pre>
<p>Volte para o postgres</p>
<pre class="remontti-code"># su - postgres</pre>
<p>Agora para toda ação será necessário autenticar.</p>
<pre class="remontti-code">$ psql 
Senha para usuário postgres: !!SUA_SENHA!!
psql (15.3 (Debian 15.3-0+deb12u1))
Type &quot;help&quot; for help.
postgres-# \q</pre>
<p>Para demonstração irei criar um banco/usuário teste, não esqueça de alterar a senha.</p>
<pre class="remontti-code">$ createuser --pwprompt teste
Digite a senha para a nova role: &lt;&lt; NOVA SENHA PARA O USUÁRIO TESTE
Digite-a novamente: &lt;&lt; REPITA
Senha: &lt;&lt; SENHA DO QUE SETOU ANTES  NO COMANDO &quot;\password postgres&quot;</pre>
<p>Agora crie o  banco e vincule ao usuário.</p>
<pre class="remontti-code">$ createdb -O teste meubd
Senha: &lt;&lt;&lt; SENHA DO POSTGRES </pre>
<p>Verifique se o mesmo foi criado.</p>
<pre class="remontti-code">$ psql -l 
Senha para usuário postgres: 
                               Lista dos bancos de dados
   Nome    |   Dono   | Codificação |   Collate   |    Ctype    | Privilégios de acesso 
-----------+----------+-------------+-------------+-------------+-----------------------
 meubd     | teste    | UTF8        | pt_BR.UTF-8 | pt_BR.UTF-8 | 
....
....</pre>
<p>Acessamos agora o bd teste.</p>
<pre class="remontti-code">$ psql -U teste -d meubd
Senha do usuário teste: 
psql (15.3 (Debian 15.3-0+deb12u1))
Digite &quot;help&quot; para ajuda.

meubd=&gt;</pre>
<p>Vamos fazer uma "brincadeira" só para testar, criaremos uma tabela e inseriremos dados nela.</p>
<pre class="remontti-code">meubd=&gt; CREATE TABLE doacao ( id int,nome text, valor text );
meubd=&gt; INSERT INTO doacao (id,nome,valor) values (1,&#039;Rudimar Remontti&#039;,&#039;R$ 5,00&#039;); 
meubd=&gt; SELECT * FROM doacao;

 id |       nome       |  valor  
----+------------------+---------
  1 | Rudimar Remontti | R$ 5,00

meubd=&gt; \q</pre>
<p>Se deseja remover o banco/usuário teste.</p>
<pre class="remontti-code">$ dropdb meubd
Senha: &lt;&lt; SENHA DO POSTGRES
$ dropuser teste
Senha: &lt;&lt; SENHA DO POSTGRES</pre>
<p>Volte para root</p>
<pre class="remontti-code">$ exit</pre>
<h3>PHP 8.2</h3>
<p>Incluirei algumas extensões do PHP que são normalmente utilizada também na instalação.</p>
<pre class="remontti-code">#  apt install --no-install-recommends \
 php php-{fpm,cli,mysql,pear,gd,gmp,bcmath,mbstring,curl,xml,zip,json,pgsql}</pre>
<p>Agora vamos fazer a "integração" do PHP com o NGINX. Moveremos o arquivo defaul.</p>
<pre class="remontti-code"># mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original</pre>
<p>Crie um novo:</p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/default</pre>
<p>Ajuste:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
}</pre>
<p>Teste a configuração se não tem nada errado e restart os serviços:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx php8.2-fpm</pre>
<p>Vamos criar um arquivo em PHP para testa se nosso NGINX está interpretando o PHP.</p>
<pre class="remontti-code"># echo &#039;&lt;?php phpinfo();&#039; &gt;&gt; /var/www/html/teste.php</pre>
<p>Acesse em seu navegador <strong>http://IP-SERVIDOR/teste.php</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2.png" data-rel="lightbox-gallery-yCaCqU4Y" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2-300x292.png" alt="" width="300" height="292" class="alignnone size-medium wp-image-7417" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2-300x292.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2-768x748.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2.png 950w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Servidor WEB com PHP está funcionando! </p>
<p>Exemplo para multiplos domínios/subdomínios </p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub1.conf</pre>
<p>Neste ex: vou representar o <em>sub1.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub1;
    index index.php index.html index.htm;

    add_header Strict-Transport-Security &quot;max-age=31536000; includeSubDomains&quot; always;

    server_name sub1.remontti.com.br;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
}</pre>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub2e3.conf</pre>
<p>Neste ex: vou representar o <em>sub2.remontti.com.br</em> e <em>sub3.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub2e3;
    index index.php index.html index.htm;

    server_name sub2.remontti.com.br sub3.remontti.com.br;

    add_header Strict-Transport-Security &quot;max-age=31536000; includeSubDomains&quot; always;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
}</pre>
<p>Link os arquivos no diretório "/etc/nginx/sites-available"  que será carregado as novas configurações </p>
<pre class="remontti-code"># ln -s /etc/nginx/sites-available/sub1.conf /etc/nginx/sites-enabled/
# ln -s /etc/nginx/sites-available/sub2e3.conf /etc/nginx/sites-enabled/</pre>
<p>Crie os diretórios referente a cada <strong>server_name</strong>.</p>
<pre class="remontti-code"># mkdir /var/www/sub1
# mkdir /var/www/sub2e3
# echo &#039;&lt;?php echo &quot;Olá mundo do sub1!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub1/index.php
# echo &#039;&lt;?php echo &quot;Olá mundo do sub2e3!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub2e3/index.php
</pre>
<p>Verifique se não tem nenhum erro e reinicie o serviço:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<h3>:: Let's Encrypt ::</h3>
<p>Criando certificado grátis para seus sub/domínios.</p>
<pre class="remontti-code"># apt install certbot python3-certbot-nginx</pre>
<p>Para gerar o certificado use o comando:</p>
<pre class="remontti-code"># certbot</pre>
<p>Não esqueça de colocar no seu cron para ele renovar o certificado, pois a cada 90 ele expira. Neste exemplo todo dia primeiro tento renovar.</p>
<pre class="remontti-code"># certbot -q renew</pre>
<p>Para testar acesse: <a href="https://www.cdn77.com/tls-test/" rel="noopener" target="_blank">https://www.cdn77.com/tls-test/</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png" data-rel="lightbox-gallery-yCaCqU4Y" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png" alt="" width="300" height="182" class="alignnone size-medium wp-image-6158" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-1024x620.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-768x465.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png 1099w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Gostou?</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><br />
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>Fontes:</strong> <a href="https://docs.nginx.com/" rel="noopener" target="_blank">https://docs.nginx.com/</a><br />
<a href="https://docs.nginx.com/nginx/admin-guide/web-server/web-server/" rel="noopener" target="_blank">https://docs.nginx.com/nginx/admin-guide/web-server/web-server/</a></p>
<p>O post <a href="https://blog.remontti.com.br/7413">Servidor WEB NGINX + PHP 8.2 + PostgreSQL +Let’s Encrypt  Debian 12 Bookworm (LNP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7413/feed</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor WEB NGINX + PHP 8.2 + MariaDB + phpMyAdmin + Let’s Encrypt Debian 12 Bookworm (LNMP)</title>
		<link>https://blog.remontti.com.br/7460</link>
					<comments>https://blog.remontti.com.br/7460#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 14 Jun 2023 15:17:45 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bookworm]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[Let’s Encrypt]]></category>
		<category><![CDATA[LNMP]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[Servidor WEB]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7460</guid>

					<description><![CDATA[<p>Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7460">Servidor WEB NGINX + PHP 8.2 + MariaDB + phpMyAdmin + Let’s Encrypt Debian 12 Bookworm (LNMP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><center><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian12.jpg" alt="" width="720" height="340" class="alignnone size-full wp-image-7476" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian12.jpg 720w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian12-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian12-520x245.jpg 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></center></p>
<p>Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor performance. O Apache, sem dúvidas, é o servidor web mais popular. No entanto, o NGINX a cada ano ganha mais popularidade e está sendo a preferência dos novos projetos.</p>
<p>Distribuição utilizada: <strong><a href="https://blog.remontti.com.br/7236" rel="noopener noreferrer" target="_blank">Debian 12 Stretch / Instalação Limpa</a></strong></p>
<h3>NGINX</h3>
<p><a href="https://www.nginx.com" rel="noopener" target="_blank">https://www.nginx.com</a><br />
Vamos instalar-lo e remover a assinatura para que não vejam a versão do mesmo (Boas praticas)</p>
<pre class="remontti-code"># apt install nginx
# sed -i &#039;s/# server_tokens/server_tokens/&#039; /etc/nginx/nginx.conf
# systemctl restart nginx</pre>
<p>Acesse agora em seu navegador http://IP-SERVIDOR/<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png" alt="" width="1100" height="310" class="alignnone size-full wp-image-5467" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png 1100w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-300x85.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-1024x289.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-768x216.png 768w" sizes="auto, (max-width: 1100px) 100vw, 1100px" /></p>
<p>Pronto nosso NGINX está rodando! </p>
<h3>MARIADB</h3>
<p>MariaDB para quem ainda não sabe é um fork do MySQL, criado pelo próprio fundador do projeto MySQL após sua aquisição pela Oracle.</p>
<pre class="remontti-code"># apt install mariadb-server mariadb-client</pre>
<p>Ao final do tutorial iremos colocar uma senha para o usuario root do mariadb. Não iremos fazer isso agora para não dar problema na instalação do phpmyadmin.</p>
<h3>PHP 8.2</h3>
<p>Incluirei algumas extensões do PHP que são normalmente utilizada também na instalação.</p>
<pre class="remontti-code"># apt install --no-install-recommends \
 php php-{fpm,cli,mysql,pear,gd,gmp,bcmath,mbstring,curl,xml,zip,json,pgsql}</pre>
<p>Agora vamos fazer a &#8220;integração&#8221; do PHP com o NGINX. Moveremos o arquivo defaul.</p>
<pre class="remontti-code"># mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original</pre>
<p>Crie um novo:</p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/default</pre>
<p>Ajuste:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
}</pre>
<p>Teste a configuração se não tem nada errado e restart os serviços:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx php8.2-fpm</pre>
<p>Vamos criar um arquivo em PHP para testa se nosso NGINX está interpretando o PHP.</p>
<pre class="remontti-code"># echo &#039;&lt;?php phpinfo();&#039; &gt;&gt; /var/www/html/teste.php</pre>
<p>Acesse em seu navegador http://IP-SERVIDOR/teste.php<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2.png" alt="" width="950" height="925" class="alignnone size-full wp-image-7417" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2.png 950w, https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2-300x292.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2-768x748.png 768w" sizes="auto, (max-width: 950px) 100vw, 950px" /><br />
Servidor WEB com PHP está funcionando! </p>
<p>Exemplo para múltiplos domínios/subdomínios </p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub1.conf</pre>
<p>Neste ex: vou representar o <em>sub1.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub1;
    index index.php index.html index.htm;

    server_name sub1.remontti.com.br;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
}</pre>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub2e3.conf</pre>
<p>Neste ex: vou representar o <em>sub2.remontti.com.br</em> e <em>sub3.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub2e3;
    index index.php index.html index.htm;

    server_name sub2.remontti.com.br sub3.remontti.com.br;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
}</pre>
<p>Link os arquivos no diretório &#8220;/etc/nginx/sites-available&#8221;  que será carregado as novas configurações </p>
<pre class="remontti-code"># ln -s /etc/nginx/sites-available/sub1.conf /etc/nginx/sites-enabled/
# ln -s /etc/nginx/sites-available/sub2e3.conf /etc/nginx/sites-enabled/</pre>
<p>Crie os diretórios referente a cada <strong>server_name</strong>.</p>
<pre class="remontti-code"># mkdir /var/www/sub1
# mkdir /var/www/sub2e3
# echo &#039;&lt;?php echo &quot;Olá mundo do sub1!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub1/index.php
# echo &#039;&lt;?php echo &quot;Olá mundo do sub2e3!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub2e3/index.php
</pre>
<p>Verifique se não tem nenhum erro e restart:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<h3>phpMyAdmin</h3>
<pre class="remontti-code"># apt install phpmyadmin -y </pre>
<p>Não selecione nenhum, apenas <strong>OK</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12.png" alt="" width="1239" height="424" class="alignnone size-full wp-image-7467" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12.png 1239w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12-300x103.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12-1024x350.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12-768x263.png 768w" sizes="auto, (max-width: 1239px) 100vw, 1239px" /></p>
<p>Responda <strong>Sim</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12_nginx.png" alt="" width="1249" height="370" class="alignnone size-full wp-image-7468" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12_nginx.png 1249w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12_nginx-300x89.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12_nginx-1024x303.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_debian12_nginx-768x228.png 768w" sizes="auto, (max-width: 1249px) 100vw, 1249px" /></p>
<p>Irá solicitar a senha para a base de dados <strong>phpmyadmin</strong>, informe sua <strong>senha e repita</strong>. </p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/default</pre>
<p>Adicione as linhas destacadas:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }

    location ^~ /phpmyadmin {
        root /usr/share;
        try_files $uri $uri/ =404;
        #allow  192.168.87.0/24;
        #allow  2001:0db8::/32;
        #deny   all;
        #error_page  403   http://www.remontti.com.br;
        location ~ .php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        }
    }

}</pre>
<p>Se deseja tonar o phpmyadmin acessivel apenas de alguns endereços IPs basta descomentar as linhas, e incluir seus prefixos. O error_page é para que quando a o acessante levar um proibido seja direcionado para um site.</p>
<pre class="remontti-code">allow  192.168.87.0/24;
allow  2001:0db8::/32;
deny   all;
error_page  403   http://www.remontti.com.br;</pre>
<p>Verifique se não tem nenhum erro e restart:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<p>Acesse agora <strong>http://SERVIDOR/phpmyadmin</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login.png" alt="" width="1523" height="556" class="alignnone size-full wp-image-7471" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login.png 1523w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login-300x110.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login-1024x374.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login-768x280.png 768w" sizes="auto, (max-width: 1523px) 100vw, 1523px" /></p>
<h4>Definindo senha para o root do mariaDB</h4>
<p>Por segurança vamos setar uma senha do usuario root do MariaDB</p>
<pre class="remontti-code"># mariadb -u root</pre>
<p>Para aumentar a seguraçã vamos definir uma senha para o usuário root do MariDB, não esqueça de alterar ALTERE_3ST4_SENHA pela sua senha. Dica acesse<a href="https://senhasegura.remontti.com.br/" rel="noopener" target="_blank"> https://senhasegura.remontti.com.br/</a> e gere uma!</p>
<pre class="remontti-code">USE mysql;
ALTER USER &#039;root&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;ALTERE_3ST4_SENHA&#039;;
FLUSH PRIVILEGES;
EXIT;
</pre>
<p>Apague seus rastros, em /root/.mysql_history temos um histórico com todos os comandos dado no terminal do MariaDB, então não é legal deixar lá em texto puro a senha que setamos!</p>
<pre class="remontti-code"># &gt; /root/.mysql_history</pre>
<p>Agora quando for acessar o mariadb será necessário informar a senha juntamente da opção <strong>-p</strong>.</p>
<pre class="remontti-code"># mariadb -u root -p</pre>
<pre class="remontti-code-plain">Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 46
Server version: 10.11.3-MariaDB-1 Debian 12

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type &#039;help;&#039; or &#039;\h&#039; for help. Type &#039;\c&#039; to clear the current input statement.

MariaDB [(none)]&gt; exit;
Bye
</pre>
<h3>Let&#8217;s Encrypt</h3>
<p>Criando certificado grátis para seus sub/domínios.</p>
<pre class="remontti-code"># apt install certbot python3-certbot-nginx</pre>
<p>Para gerar o certificado use o comando:</p>
<pre class="remontti-code"># certbot</pre>
<p>Não esqueça de colocar no seu cron para ele renovar o certificado, pois a cada 90 ele expira. Neste exemplo todo dia primeiro tento renovar.</p>
<pre class="remontti-code"># certbot -q renew</pre>
<p>Para testar acesse: <a href="https://www.cdn77.com/tls-test/" rel="noopener" target="_blank">https://www.cdn77.com/tls-test/</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png" data-rel="lightbox-gallery-Z3pmFopw" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png" alt="" width="300" height="182" class="alignnone size-medium wp-image-6158" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-1024x620.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-768x465.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png 1099w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Gostou?</p>
<p>Gostou?</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><br />
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>Fontes:</strong> <a href="https://docs.nginx.com/" rel="noopener" target="_blank">https://docs.nginx.com/</a><br />
<a href="https://docs.nginx.com/nginx/admin-guide/web-server/web-server/" rel="noopener" target="_blank">https://docs.nginx.com/nginx/admin-guide/web-server/web-server/</a></p>
<p>O post <a href="https://blog.remontti.com.br/7460">Servidor WEB NGINX + PHP 8.2 + MariaDB + phpMyAdmin + Let’s Encrypt Debian 12 Bookworm (LNMP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7460/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor WEB Apache2 + PHP 8.2 + MariaDB +Let’s Encrypt Debian 12 Bookworm (LAMP)</title>
		<link>https://blog.remontti.com.br/7496</link>
					<comments>https://blog.remontti.com.br/7496#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Sun, 11 Jun 2023 16:40:46 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Administração de banco de dados.]]></category>
		<category><![CDATA[Ambiente de servidor]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[Autenticação de servidor]]></category>
		<category><![CDATA[bookworm]]></category>
		<category><![CDATA[Certificado SSL]]></category>
		<category><![CDATA[Configuração do Apache]]></category>
		<category><![CDATA[Configuração do servidor]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[Desenvolvimento web]]></category>
		<category><![CDATA[Gerenciamento de banco de dados]]></category>
		<category><![CDATA[Hospedagem web]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[Let’s Encrypt]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[PHP 8.2]]></category>
		<category><![CDATA[Proteção de dados]]></category>
		<category><![CDATA[Segurança na web]]></category>
		<category><![CDATA[Servidor WEB]]></category>
		<category><![CDATA[Versão do PHP]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7496</guid>

					<description><![CDATA[<p>Distribuição utilizada: &#8211; Debian 12 Bookworm / Instalação Limpa Acesse seu bash e vire root com o comando su &#8211; para evitar comandos &#8220;que não existem&#8221;, e antes de mais nada tenha seu repositório&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7496">Servidor WEB Apache2 + PHP 8.2 + MariaDB +Let’s Encrypt Debian 12 Bookworm (LAMP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><center><a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12.jpg" data-rel="lightbox-gallery-c19EQ6Ma" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12.jpg" alt="" width="720" height="340" class="alignnone size-full wp-image-7503" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12.jpg 720w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12-520x245.jpg 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a></center></p>
<p>Distribuição utilizada:<br />
&#8211; <strong><a href="https://blog.remontti.com.br/7236" rel="noopener noreferrer" target="_blank">Debian 12 Bookworm / Instalação Limpa</a></strong></p>
<p>Acesse seu bash e vire root com o comando su &#8211; para evitar comandos &#8220;que não existem&#8221;, e antes de mais nada tenha seu repositório atualizado.</p>
<pre class="remontti-code"># su -
# apt update
# apt upgrade</pre>
<h3>:: Instalação do Apache2 ::</h3>
<pre class="remontti-code"># apt install apache2 apache2-utils -y</pre>
<p>Após a instação, habilitamos o <strong>mod_rewrite</strong> do Apache que é muito utilizado. Este é um módulo que utiliza um mecanismo baseado em regras de reescrita. (phpipa, wordpress todos usam), e o <strong>mod_headers</strong> Este módulo fornece diretivas para controlar e modificar os cabeçalhos de solicitação e resposta HTTP. Comando para habilita-lo:</p>
<pre class="remontti-code"># a2enmod rewrite ; a2enmod headers</pre>
<p>A página que vimos ao abri o ip do nosso servidor no navegador fica no diretório /var/www/html, isso está sendo informado no arquivo default do apache que fica em /etc/apache2/sites-enabled/000-default.conf, e para que nosso mod_rewrite e headers funcione corretamente será necessário adicionar alguma linhas.<br />
O HTTP Strict Transport Security ou HSTS (RFC 6797) é um novo padrão de segurança SSL aprovado recentemente pelo IETF. Ele traz diversas melhorias para o SSL como forçar a utilização do HTTPS impedindo que sites sejam acessados usando o protocolo HTTP ou que partes do código de um site que está usando HTTPS seja executado em servidores usando o HTTP entre outras.</p>
<pre class="remontti-code"># vim /etc/apache2/sites-enabled/000-default.conf</pre>
<p>Adicione abaixo de &#8220;DocumentRoot /var/www/html&#8221; o seguinte:</p>
<pre class="remontti-code">
	Header always set Strict-Transport-Security &quot;max-age=63072000; includeSubDomains&quot;

	&lt;Directory /var/www/html/&gt;
    		Options FollowSymLinks
    		AllowOverride All
	&lt;/Directory&gt;</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/apache_HSTS.png" data-rel="lightbox-gallery-c19EQ6Ma" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/apache_HSTS-300x281.png" alt="" width="300" height="281" class="alignnone size-medium wp-image-6154" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/apache_HSTS-300x281.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/apache_HSTS-768x720.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/apache_HSTS.png 1024w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Para você aprender mais como o apache funciona recomendo: <strong><a href="https://blog.remontti.com.br/3464" rel="noopener" target="_blank">Como ter diversos sub/domínios no mesmo servidor</a></strong></p>
<p>Por segurança remova a assinatura do apache e reinicie o apache2 para que tenha efeito as nossas alterações.</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
# systemctl restart apache2</pre>
<p><strong>http://[SERVER_IP]</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/apache2.png" data-rel="lightbox-gallery-c19EQ6Ma" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/apache2-150x150.png" alt="" width="150" height="150" class="alignnone size-thumbnail wp-image-5897" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/apache2-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2021/10/apache2-80x80.png 80w, https://blog.remontti.com.br/wp-content/uploads/2021/10/apache2-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a></p>
<h3>:: Instalação do PHP 8.2 ::</h3>
<p>Para instalação do PHP vou incluir algumas extensões que são as mais utilizada, mas seu preferir você pode optar em não instalar, as necessárias são libapache2-mod-php php php-mysql php-cli.</p>
<pre class="remontti-code"># apt install libapache2-mod-php php php-mysql php-cli php-pear php-gmp php-gd php-bcmath php-mbstring php-curl php-xml php-zip -y</pre>
<p>É necessário reiniciar o apache para que o php tenha efeito.</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>Consultado informações de versão:</p>
<pre class="remontti-code"># php --version</pre>
<pre class="remontti-code-plain">
PHP 8.2.7 (cli) (built: Jun  9 2023 19:37:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.7, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.7, Copyright (c), by Zend Technologies
</pre>
<p>Você pode criar um arquivo php com a função <a href="https://php.net/manual/pt_BR/function.phpinfo.php" rel="noopener noreferrer" target="_blank">phpinfo()</a> para mostrar todas as informações.</p>
<pre class="remontti-code"># echo &#039;&lt;?php phpinfo(); ?&gt;&#039; &gt; /var/www/html/phpinfo.php</pre>
<p><strong>http://[SERVER_IP]/phpinfo.php</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2.png" data-rel="lightbox-gallery-c19EQ6Ma" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2-300x292.png" alt="" width="300" height="292" class="alignnone size-medium wp-image-7417" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2-300x292.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2-768x748.png 768w, https://blog.remontti.com.br/wp-content/uploads/2023/06/debian12_php8.2.png 950w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<h3>:: Instalação do MariaDB 10.11 + phpMyAdmin 5 ::</h3>
<pre class="remontti-code"># apt install mariadb-server mariadb-client phpmyadmin</pre>
<p>Por padrão o pacote MaraiDB no Debian usa unix_socket para autenticar o login do usuário, o que basicamente significa que você pode usar o nome de usuário e a senha do sistema operacional para efetuar login no console do MariaDB. Assim, você pode logar diretamente sem fornecer a senha root do MariaDB. Mais a frente vou ensinar como definir uma senha, não farei agora pois se você alterar nesse momento ao instalar o phpMyAdmin terá um erro.</p>
<p>Selecione <strong>Apache2</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_1.png" data-rel="lightbox-gallery-c19EQ6Ma" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_1.png" alt="" width="1256" height="408" class="alignnone size-full wp-image-7499" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_1.png 1256w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_1-300x97.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_1-1024x333.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_1-768x249.png 768w" sizes="auto, (max-width: 1256px) 100vw, 1256px" /></a></p>
<p>Responda <strong>Sim</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_2.png" data-rel="lightbox-gallery-c19EQ6Ma" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_2.png" alt="" width="1257" height="513" class="alignnone size-full wp-image-7500" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_2.png 1257w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_2-300x122.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_2-1024x418.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_2-768x313.png 768w" sizes="auto, (max-width: 1257px) 100vw, 1257px" /></a></p>
<p><strong>Informe a senha</strong> para o banco de dados do phpmyadmin. <a href="http://senhasegura.remontti.com.br/" rel="noopener" target="_blank">http://senhasegura.remontti.com.br/</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_3.png" data-rel="lightbox-gallery-c19EQ6Ma" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_3.png" alt="" width="1261" height="410" class="alignnone size-full wp-image-7501" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_3.png 1261w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_3-300x98.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_3-1024x333.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_3-768x250.png 768w" sizes="auto, (max-width: 1261px) 100vw, 1261px" /></a></p>
<p>Repita a senha<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_4.png" data-rel="lightbox-gallery-c19EQ6Ma" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_4.png" alt="" width="1264" height="437" class="alignnone size-full wp-image-7502" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_4.png 1264w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_4-300x104.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_4-1024x354.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/lamp_debian_12_4-768x266.png 768w" sizes="auto, (max-width: 1264px) 100vw, 1264px" /></a></p>
<p>Para acessar o phpmyadmin:<strong>http://[SERVER_IP]/phpmyadmin/</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login.png" data-rel="lightbox-gallery-c19EQ6Ma" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login.png" alt="" width="1523" height="556" class="alignnone size-full wp-image-7471" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login.png 1523w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login-300x110.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login-1024x374.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/06/phpmyadmin_login-768x280.png 768w" sizes="auto, (max-width: 1523px) 100vw, 1523px" /></a></p>
<p>Por segurança eu sempre fecho o acesso ao phpmyadmin para os IPs da administração, assim evito que uma possível vulnerabilidade venha me afetar. Para isso edite:</p>
<pre class="remontti-code"># vim /etc/phpmyadmin/apache.conf</pre>
<p>Se deseja deixar o atalho para o phpmyadmin restrito apenas aos seus IP de gerencia faça da seguinte forma. Lembre-se de alterar os IPs 200.200.200.0/26 2001:db8:cafe:d0ce::/64 para os seus.</p>
<pre class="remontti-code"># phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

&lt;Directory /usr/share/phpmyadmin&gt;
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    # Restrito aos IPs
    AllowOverride All
    Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8:cafe:d0ce::/64

    # limit libapache2-mod-php to files and directories necessary by pma
    &lt;IfModule mod_php7.c&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/usr/share/doc/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/:/usr/share/javascript/
    &lt;/IfModule&gt;

    # PHP 8+
    &lt;IfModule mod_php.c&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/usr/share/doc/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/:/usr/share/javascript/
    &lt;/IfModule&gt;

&lt;/Directory&gt;

# Disallow web access to directories that don&#039;t need it
&lt;Directory /usr/share/phpmyadmin/templates&gt;
    Require all denied
&lt;/Directory&gt;
&lt;Directory /usr/share/phpmyadmin/libraries&gt;
    Require all denied
&lt;/Directory&gt;</pre>
<p>Reinicie o Apache.</p>
<pre class="remontti-code"> systemctl restart apache2</pre>
<h4>:: Definindo senha para o root do mariaDB ::</h4>
<p>Para aumentar a seguraçã vamos definir uma senha para o usuário root do MariDB, não esqueça de alterar <strong>ALTERE_3ST4_SENHA</strong> pela sua senha.</p>
<pre class="remontti-code"># mariadb -u root</pre>
<pre class="remontti-code">USE mysql;
ALTER USER &#039;root&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;ALTERE_3ST4_SENHA&#039;;
FLUSH PRIVILEGES;
EXIT;</pre>
<p>Apague seus rastros, em /root/.mysql_history temos um histórico com todos os comandos dado no terminal do MariaDB, então não é legal deixar lá em texto puro a senha que setamos!</p>
<pre class="remontti-code"># &gt; /root/.mysql_history</pre>
<h3>:: Let&#8217;s Encrypt ::</h3>
<p>Criando certificado grátis para seus sub/domínios.</p>
<pre class="remontti-code"># apt install certbot python3-certbot-apache</pre>
<p>Para gerar o certificado use o comando:</p>
<pre class="remontti-code"># certbot</pre>
<p>Não esqueça de colocar no seu cron para ele renovar o certificado, pois a cada 90 ele expira. Neste exemplo todo dia primeiro tento renovar.</p>
<pre class="remontti-code"># certbot -q renew</pre>
<p>Para testar acesse: <a href="https://www.cdn77.com/tls-test/" rel="noopener" target="_blank">https://www.cdn77.com/tls-test/</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png" data-rel="lightbox-gallery-c19EQ6Ma" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png" alt="" width="300" height="182" class="alignnone size-medium wp-image-6158" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-1024x620.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-768x465.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png 1099w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Gostou?</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>Abraço!</p>
<p>O post <a href="https://blog.remontti.com.br/7496">Servidor WEB Apache2 + PHP 8.2 + MariaDB +Let’s Encrypt Debian 12 Bookworm (LAMP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7496/feed</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title>Instalação do Debian 12 Bookworm limpa passo-a-passo</title>
		<link>https://blog.remontti.com.br/7236</link>
					<comments>https://blog.remontti.com.br/7236#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 18 Apr 2023 20:35:43 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[bookworm]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[passo a passo]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7236</guid>

					<description><![CDATA[<p>Neste tutorial vamos aprender de forma simples fazer a instalação da distribuição Linux Debian 12 bookworm. Primeiramente iremos precisar baixar imagem ISO do Debian, eu particularmente utilizo a ISO netinst, que durante a instalação&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7236">Instalação do Debian 12 Bookworm limpa passo-a-passo</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian12.jpg" alt="" width="720" height="340" class="alignnone size-full wp-image-7281" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian12.jpg 720w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian12-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian12-520x245.jpg 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>Neste tutorial vamos aprender de forma simples fazer a instalação da distribuição Linux <a href="https://www.debian.org/releases/bookworm/releasenotes" rel="noopener" target="_blank">Debian 12 bookworm</a>. </p>
<p>Primeiramente iremos precisar baixar imagem ISO do Debian, eu particularmente utilizo a ISO netinst, que durante a instalação já faz a instalação dos pacotes mais recentes usando a internet, então é lógico que vamos precisar uma conexão com a internet durante a instalação.</p>
<p>Outro motivo para utilizar a versão netinst é que não irei instalar nenhum pacote pois a ideia aqui é fazer uma instalação limpa! E assim instalamos os pacotes que realmente ira precisar (nada de perfumarias).</p>
<p>O repositório do debian 12 conta com uma novidade, que é o <strong><a href="https://www.debian.org/vote/2022/vote_003" rel="noopener" target="_blank">non-free-firmware</a></strong>. A maior parte dos pacotes de firmware não-livre foi movida de <strong>non-free</strong> para <strong>non-free-firmware</strong> em preparação para o lançamento do Debian 12. Essa separação limpa torna possível construir imagens de instalação oficiais com pacotes de main e de non-free-firmware, sem contrib nem non-free. Essa mudança é muito legal, pois muitos não conheciam a versão non-free dos debians anterioes e tinha uma dificuldade enorme quando sempre precisa por exemplo instalar o drive de uma placa de rede.</p>
<p><strong><a href="https://wiki.debian.org/SourcesList" rel="noopener" target="_blank">https://wiki.debian.org/SourcesList</a></strong></p>
<p><strong>main</strong> Consiste em pacotes compatíveis com DFSG <em>(Debian Free Software Guidelines)</em>, que não dependem de software fora desta área para operar.<strong> Estes são os únicos pacotes considerados parte da distribuição Debian</strong>.</p>
<p><strong>contrib</strong> &#8211; Contêm software compatível com DFSG, mas não possuem dependências no principal (possivelmente empacotados para o Debian em não-livre).</p>
<p><strong>non-free</strong> Contém software que não está em conformidade com a DFSG, Exemplo drives proprietários, como o nome já diz não gratuitos. </p>
<p><strong>non-free-firmware</strong> Contém pacotes de firmware não livres em nossa mídia oficial (imagens do instalador). Os binários de firmware incluídos normalmente serão ativados por padrão quando o sistema determinar que eles são necessários, mas, sempre que possível, incluiremos maneiras para os usuários desativarem isso na inicialização.</p>
<p>Um grande passo também é que contamos agora com o <a href="https://diolinux.com.br/sistemas-operacionais/linux/kernel-61.html" rel="noopener" target="_blank">Kernel 6.1</a>.<br />
Leia mais aqui: <a href="https://www.debian.org/releases/bookworm/amd64/release-notes/ch-whats-new.pt-br.html" rel="noopener" target="_blank"><strong>Quais as novidades no Debian 12</strong></a></p>
<h3>Download</h3>
<p>&#8211; <strong><a href="https://cdimage.debian.org/mirror/cdimage/archive/12.12.0/amd64/iso-cd/debian-12.12.0-amd64-netinst.iso" rel="noopener" target="_blank">Debian 12 Bookworm (amd64)</a></strong><br />
&#8211; <strong><a href="https://cdimage.debian.org/mirror/cdimage/archive/12.12.0-live/amd64/iso-hybrid/" rel="noopener" target="_blank">Debian 12 Live Desktop (amd64)</a></strong></p>
<h3>Boot</h3>
<p>Para montar seu pendrive bootavél eu particularmente gosto do <strong><a href="https://www.ventoy.net/en/download.html" rel="noopener" target="_blank">Ventoy</a></strong> , mas use o da sua preferencia, como <a href="https://rufus.ie/pt_BR/" rel="noopener" target="_blank">Rufus</a>, <a href="https://unetbootin.github.io/" rel="noopener" target="_blank">UNetbootin</a>, <a href="https://www.balena.io/etcher/" rel="noopener" target="_blank">Balena etcher</a>&#8230; </p>
<h3>Instalação</h3>
<p>Iniciando o boot da sua iso.</p>
<p>Selecione: <strong>Graphical Install</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install.png" alt="" width="640" height="480" class="alignnone size-full wp-image-7238" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install.png 640w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-300x225.png 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<p><strong>Portuguese (Brazil) – Portugues do Brasil</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-1.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-1.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7239" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-1.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-1-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-1-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><strong>Brasil</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-2.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-2.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7240" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-2.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-2-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-2-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><strong>Português Brasileiro</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-3.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-3.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7241" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-3.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-3-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-3-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Neste momento ele irá identificar sua conexão de rede, e receber seus IP automaticamente via DHCP.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-4.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-4.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7242" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-4.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-4-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-4-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>No entanto se sua rede não estiver configurada para entregar IP automaticamente, ira apresentar uma mensagem dizendo que a configuração falhou:<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/09/Debian_11-6-a.png" alt="" width="808" height="127" class="alignnone size-full wp-image-5803" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/09/Debian_11-6-a.png 808w, https://blog.remontti.com.br/wp-content/uploads/2021/09/Debian_11-6-a-300x47.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/09/Debian_11-6-a-768x121.png 768w" sizes="auto, (max-width: 808px) 100vw, 808px" /></p>
<p>No entanto se você recebeu o IP automaticamente irá cair na tela de configuração do “Nome de Máquia:” então clique em <strong>Voltar</strong>.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-5.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-5.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7243" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-5.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-5-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-5-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><strong>Configurar a rede manualmente</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-6.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-6.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7244" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-6.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-6-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-6-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Informe <strong>IP/PREFIX</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-7.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-7.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7245" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-7.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-7-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-7-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><strong>Gateway</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-8.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-8.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7246" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-8.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-8-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-8-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><strong>Servidores DNS</strong> (Separa por espaço para mais de um, máximo 3)<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-9-1.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-9-1.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7248" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-9-1.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-9-1-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-9-1-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>E agora voltamos a tela de <strong>Nome de Máquia</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-5.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-5.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7243" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-5.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-5-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-5-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Informe seu domínio se possuir, ou deixe em branco (Se você tiver o DNS reverso configurado ele já trará seu domínio)<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-10.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-10.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7249" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-10.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-10-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-10-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Defina <strong>Senha de root (administrador)</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-11.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-11.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7250" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-11.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-11-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-11-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Informe seu <strong>Nome completo</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-12.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-12.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7251" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-12.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-12-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-12-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Defina um <strong>nome de usuário</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-13.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-13.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7252" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-13.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-13-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-13-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Defina a <strong>senha deste usuário</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-14.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-14.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7253" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-14.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-14-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-14-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Selecione <strong>seu estado</strong> para a escolha do <strong>fuso horário</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-15.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-15.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7254" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-15.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-15-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-15-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Chegamos ao particionamento. Aqui vamos ter várias polemicas! Para mim é interessante particionar quando você sabe realmente o que está fazendo, exemplo possuir mais de um disco, ou porejetar que uma partição não destrua o sistema.<br />
Em VMs sempre instalo da forma automatica, não tem o porque está particionando uma máquina virtual (a não ser mais uma vez que você saiba o que quer), ou até mesmo estar fazendo algum tipo de RAID via software (Sou fã do RAID 10 espelhamento e performasse, mas quase sempre faremos isso lá na controladora, mas nada impede de fazer via software se seu servidor não possui uma controladora). Bom poderia falar um tempão aqui, mas em 90% o metodo &#8220;automático&#8221; resolve nossos problemas, então bora! </p>
<p>Selecione <strong>Assistido – usar o disco inteiro</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-16.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-16.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7255" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-16.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-16-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-16-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><strong>Selecione o Disco</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/09/Debian_11-18.png" alt="" width="800" height="600" class="alignnone size-full wp-image-5820" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/09/Debian_11-18.png 800w, https://blog.remontti.com.br/wp-content/uploads/2021/09/Debian_11-18-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/09/Debian_11-18-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></p>
<p>Selecione “<strong>Todos os arquivos em uma partição (para iniciantes)</strong>”, se você selecionar alguma das outras opções é muito importante que você realmente saiba oq está fazendo!<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-18.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-18.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7257" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-18.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-18-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-18-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><strong>Finalizar o particionamento e escrever as mudanças no disco</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-19.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-19.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7258" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-19.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-19-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-19-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><strong>Sim</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-20.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-20.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7259" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-20.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-20-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-20-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Aguarde instalar o sistema básico&#8230;<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-21.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-21.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7260" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-21.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-21-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-21-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><strong>Não</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-22.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-22.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7261" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-22.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-22-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-22-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><strong>Brasil</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-23.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-23.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7262" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-23.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-23-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-23-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Eu gosto do <strong>deb.debian.org</strong> (mas pode selecionar outro se desejar)<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-24.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-24.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7263" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-24.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-24-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-24-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><strong>Deixe em branco</strong>. <em>Acredito que ninguém mais use proxy, mas se for seu caso informe seu usuário e senha da conexão HTTP.</em><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-25.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-25.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7264" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-25.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-25-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-25-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Aguarde enquanto os espelhos (repositórios são lidos) é <strong>fundamental ter internet</strong>, caso contrário irá apresentar erro, e prosseguir a instalação vai deixar seu sistema praticamente &#8220;quebrado&#8221;.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-26.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-26.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7265" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-26.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-26-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-26-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><strong>Sim</strong>. É sempre importante ajudar a comunidade a saber quais pacotes estão sendo instalado, isso vai ajudar os desenvolvedores a serem visto pela comunidade Debian e quem sabe aquele pacote legal que você precisa compilar na próxima versão já esteja disponível via repositório.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-27.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-27.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7266" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-27.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-27-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-27-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><strong>ESSE É A PARTE MAIS IMPORTANTE PARA A INSTALAÇÃO LIMPA.</strong><br />
Pois não vamos instalar nenhum pacote, e sim apenas o sistema base. O único pacote que é bem provável que você irá precisar é do SSH para fazer o acesso a sua máquina.<br />
Essa instalação é recomendada para servidores! Agora se você está fazendo essa instalação com intuito de usar alguma interface gráfica faça sua escolha e prossiga.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-28.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-28.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7267" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-28.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-28-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-28-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-29.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-29.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7268" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-29.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-29-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-29-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Grub: <strong>Sim</strong> Se não fica sem dar boot.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-30.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-30.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7269" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-30.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-30-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-30-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Seleciona o disco qual sera configurado o GRUB (Sem ele o sistema não inicia! Normalmente /dev/sda)<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-31.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-31.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7270" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-31.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-31-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-31-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Aguarde a finalização<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-32.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-32.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7271" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-32.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-32-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-32-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Continuar para reiniciar<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-33.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-33.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7272" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-33.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-33-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-33-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Iremos ver nossa tela do GRUB (Aqui você pode selecionar um kernel anteiro instalado caso o atual apresentar algum problema&#8230;, entre recuperar até mesmo a senha de root)<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-34.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-34.png" alt="" width="640" height="480" class="alignnone size-full wp-image-7273" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-34.png 640w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-34-300x225.png 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<p>E por fim chegamos a tela de login. Nesta tela você pode logar com usuário root diretamente.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-35.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-35.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7274" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-35.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-35-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-35-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>Faça um SSH para o IP do seu servidor, se você não sabe qual o IP basta na tela anterior logar e digitar o comando: </p>
<pre class="remontti-code">ip -c address</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-36.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-36.png" alt="" width="800" height="600" class="alignnone size-full wp-image-7275" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-36.png 800w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-36-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian_12_install-36-768x576.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></a></p>
<p>No meu caso meu ip é o 172.18.18.18, irei logar com o usuário remontti (que criei na instalação) e não com root, por padrão de segurança o SSH vem com a opção que não permite que você logue com usuário root, então use o usuário &#8220;comum&#8221; da sua instalação para logar. OBS: Não seja <del datetime="2023-04-18T16:55:06+00:00">ignorante</del> de ir trocar as configurações do SSH e permitir o root logar<em> (Isso me deixa P, tem várias formas de você contornar!)</em><br />
Então do meu PC acesso e em seguida viro root com <strong>su-</strong> exemplo:</p>
<pre class="remontti-code"> ssh 172.18.18.18 -p 22</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/ssh_debian_12.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/ssh_debian_12.png" alt="" width="1102" height="496" class="alignnone size-full wp-image-7276" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/ssh_debian_12.png 1102w, https://blog.remontti.com.br/wp-content/uploads/2023/04/ssh_debian_12-300x135.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/ssh_debian_12-1024x461.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/04/ssh_debian_12-768x346.png 768w" sizes="auto, (max-width: 1102px) 100vw, 1102px" /></a></p>
<p>Se desejar configurar o <a href="https://wiki.debian.org/SourcesList" rel="noopener" target="_blank">repositório non-free e contrib</a>, para isso basta editar o arquivo /etc/apt/sources.list <strong>(Recomendo)</strong></p>
<pre class="remontti-code"># nano /etc/apt/sources.list</pre>
<p>Agora adicione ao final de cada repositório> <strong>contrib non-free</strong> como na imagem:<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian12_repo.png" data-rel="lightbox-gallery-14bIXibu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian12_repo.png" alt="" width="1480" height="581" class="alignnone size-full wp-image-7277" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/04/debian12_repo.png 1480w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian12_repo-300x118.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian12_repo-1024x402.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/04/debian12_repo-768x301.png 768w" sizes="auto, (max-width: 1480px) 100vw, 1480px" /></a><br />
Saia usando CRTL + X, em seguida atualize as informações do repositório com o comando:</p>
<pre class="remontti-code"># apt update</pre>
<p>Para atualizar (se disponível) os pacotes use:</p>
<pre class="remontti-code"># apt upgrade</pre>
<p>Ao usar o repositório non-free sempre recomendo a instalação dos pacotes: firmware-linux* para reconhecer o máximo dos drives. </p>
<pre class="remontti-code"># apt install firmware-linux firmware-linux-free firmware-linux-nonfree</pre>
<p>Reinicie seu servidor para carregar os novos módulos do kernel</p>
<pre class="remontti-code"># reboot</pre>
<p>Agora que acabou de instalar seu debian que tal dar uma &#8220;tunada&#8221; no bixinho? Então leia: <strong><a href="https://blog.remontti.com.br/5867" rel="noopener" target="_blank">Como melhorar a produtividade no seu Debian após instalação</a></strong></p>
<p>Para ver se seu Debian inicializou sem nenhum erro utilize o comando:</p>
<pre class="remontti-code"># journalctl -b -p err</pre>
<p>Muitos logs foram movidos para o o journal no Debian 12.</p>
<p>Curtiu o conteúdo? Quer me 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>Participe do canal no <a href="https://t.me/blogremontti" rel="noopener noreferrer" target="_blank">telegram</a> para ficar atualizado sempre que publicar um novo tutorial. </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>Abraço!</p>
<p>O post <a href="https://blog.remontti.com.br/7236">Instalação do Debian 12 Bookworm limpa passo-a-passo</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7236/feed</wfw:commentRss>
			<slash:comments>22</slash:comments>
		
		
			</item>
		<item>
		<title>Instalação do SpeedTest (OoklaServer) no Debian 11/12 gerenciado pelo systemd</title>
		<link>https://blog.remontti.com.br/6051</link>
					<comments>https://blog.remontti.com.br/6051#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 05 Nov 2021 21:38:17 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[banda]]></category>
		<category><![CDATA[bookworm]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[Debian 12 Bookworm]]></category>
		<category><![CDATA[debina 11]]></category>
		<category><![CDATA[medidor]]></category>
		<category><![CDATA[ooklaserver]]></category>
		<category><![CDATA[speedtest]]></category>
		<category><![CDATA[testador]]></category>
		<category><![CDATA[teste]]></category>
		<category><![CDATA[velocidade]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6051</guid>

					<description><![CDATA[<p>Neste tutorial iremos aprender a instalar o SpeedTest Server, porém vamos gerenciar o serviço dele pelo systemd, o que eu acho que já deveriam ter feito, ou a ookla já poderia disponibilizar isso via&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6051">Instalação do SpeedTest (OoklaServer) no Debian 11/12 gerenciado pelo systemd</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/speedtest_debian_11.png" alt="" width="750" height="375" class="alignnone size-full wp-image-6064" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/speedtest_debian_11.png 750w, https://blog.remontti.com.br/wp-content/uploads/2021/11/speedtest_debian_11-300x150.png 300w" sizes="auto, (max-width: 750px) 100vw, 750px" /><br />
Neste tutorial iremos aprender a instalar o <em><a href="http://speedtest.net" rel="noopener" target="_blank">SpeedTest</a></em> Server, porém vamos gerenciar o serviço dele pelo systemd, o que eu acho que já deveriam ter feito, ou a ookla já poderia disponibilizar isso via repositório. #FicaDicaOokla </p>
<h4>Leia</h4>
<p>&#8211; <strong><a href="https://support.ookla.com/hc/en-us/articles/234578628-Speedtest-Server-Requirements" rel="noopener" target="_blank">Requisitos do hardware do servidor Speedtest</a></strong>.<br />
&#8211; <strong><a href="https://support.ookla.com/hc/en-us/articles/360060609971-Speedtest-Server-Network-Acceptance-Policy" rel="noopener" target="_blank">Política de aceitação do servidor Speedtest</a></strong><br />
&#8211; <a href="https://support.ookla.com/hc/en-us/categories/204419868-Speedtest-Servers" rel="noopener" target="_blank"><strong>Toda Documentação</strong></a>.</p>
<h4>Configuração do DNS</h4>
<p>No exemplo vou usar o subdomínio teste, no domínio remontti.com.br `teste.remontti.com.br`, logo é necessário configurar seu subdomínio &#8220;<strong>teste</strong>&#8221; <a href="https://blog.remontti.com.br/5958" rel="noopener noreferrer" target="_blank">em seu DNS Server</a>, <font color="red"><strong>NÃO USE subdomínio chamado speedtest</strong></font> pois você terá possivelmente seu pedido negado. Exemplo de entradas no DNS para IPv4 (A) e IPv6 (AAAA)</p>
<pre class="remontti-code-plain">[...]

teste       A       192.168.0.2
            AAAA    2001:db8:bebe:cafe::2

[...]</pre>
<h4>Distribuição testadas</h4>
<p><a href="https://blog.remontti.com.br/7236" rel="noopener" target="_blank"><strong>Debian 12 Bookworm</strong></a><br />
<a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank"><strong>Debian 11 Bullseye</strong></a></p>
<p><strong>Pacotes necessários, não esqueça de virar root de forma correta `su -`</strong></p>
<pre class="remontti-code"># su -
# apt install vim wget unzip net-tools psmisc</pre>
<p>Faça alguns ajustes de kernel para melhorar a performace do servidor:</p>
<pre class="remontti-code"># vim /etc/sysctl.conf</pre>
<p>Adicione ao final:</p>
<pre class="remontti-code-plain">
# Kernel deve tentar manter o máximo possível de dados em memória principal 
vm.swappiness = 5

# Evitar que o sistema fique sobrecarregado com muitos dados sujos na memória.
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5

# Aumentar o número máximo de conexões simultâneas
net.core.somaxconn = 65535

# Aumentar o tamanho máximo do buffer de recepção e transmissão de rede
net.ipv4.tcp_mem = 4096 87380 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# Melhorar o desempenho da conexão e a evitar congestionamentos
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_timestamps = 1

# Reduzir o tempo limite de conexão TCP
net.ipv4.tcp_fin_timeout = 15

# Ativar o escalonamento de fila de recepção de pacotes de rede
net.core.netdev_max_backlog = 8192

# Aumentar o número máximo de portas locais que podem ser usadas
net.ipv4.ip_local_port_range = 1024 65535

# Define o controle de saída de pacotes como &quot;fq&quot; para melhorar a distribuição de dados.
net.core.default_qdisc=fq

# Ativa o algoritmo BBR para melhorar a velocidade e evitar congestionamento de rede.
net.ipv4.tcp_congestion_control=bbr

</pre>
<p>Carregue para o kernel as novas alterações</p>
<pre class="remontti-code"># sysctl -p</pre>
<p>Módulos do kernel</p>
<pre class="remontti-code"># modprobe -a tcp_illinois
# echo &quot;tcp_illinois&quot; &gt;&gt; /etc/modules</pre>
<p>TCP Illinois é um algoritmo de controle de congestionamento que utiliza uma combinação de técnicas de controle de congestionamento baseadas em perda e atraso para melhorar o desempenho em redes de alta perda. Ele foi projetado para funcionar bem em ambientes móveis sem fio, onde a perda de pacotes é frequentemente causada por condições de RF em mudança.</p>
<pre class="remontti-code"># modprobe -a tcp_westwood
# echo &quot;tcp_westwood&quot; &gt;&gt; /etc/modules</pre>
<p>TCP Westwood é um algoritmo de controle de congestionamento que utiliza medidas de janela e de banda para detectar congestionamentos em vez de depender da detecção de perda de pacotes, que pode ser menos confiável em ambientes sem fio. Ele foi projetado especificamente para ambientes móveis sem fio e pode ser uma boa opção para melhorar o desempenho em redes sem fio com alta variação de taxa de perda de pacotes.</p>
<pre class="remontti-code"># modprobe -a tcp_htcp
# echo &quot;tcp_htcp&quot; &gt;&gt; /etc/modules</pre>
<p>O TCP-HTCP (Highspeed TCP for large congestion windows) é um algoritmo de controle de congestionamento do protocolo TCP que foi projetado para melhorar o desempenho em conexões de alta velocidade com janelas de congestionamento grandes.</p>
<p>Vamos criar o diretório <strong>/usr/local/src/ooklaserver</strong> onde ira ficarnossa aplicação OoklaServer.</p>
<pre class="remontti-code"># mkdir /usr/local/src/ooklaserver</pre>
<p>Vamos baixar nosso script de instalação em /usr/local/src/ooklaserver e executar a instalação.</p>
<pre class="remontti-code"># cd /usr/local/src/ooklaserver
# wget https://install.speedtest.net/ooklaserver/ooklaserver.sh
# chmod +x ooklaserver.sh
# ./ooklaserver.sh install</pre>
<p><em>Please confirm (y/n) ></em> <strong>y</strong></p>
<pre class="remontti-code-plain">
Server Platform is linux-x86_64-static-musl
This will install the Ookla server for linux-x86_64-static-musl to the current folder. Please confirm (y/n) &gt; y
Checking Directory Structure
Downloading Server Files
--2024-11-12 16:55:44--  https://install.speedtest.net/ooklaserver/stable/OoklaServer-linux-x86_64-static-musl.tgz
Resolvendo install.speedtest.net (install.speedtest.net)... 2a04:4e42::731, 2a04:4e42:200::731, 2a04:4e42:400::731, ...
Conectando-se a install.speedtest.net (install.speedtest.net)|2a04:4e42::731|:443... conectado.
A requisição HTTP foi enviada, aguardando resposta... 200 OK
Tamanho: 4638658 (4,4M) [application/gzip]
Salvando em: “OoklaServer-linux-x86_64-static-musl.tgz”

OoklaServer-linux-x86_64-static-mus 100%[================================================================&gt;]   4,42M  21,9MB/s    em 0,2s    

2024-11-12 16:55:46 (21,9 MB/s) - “OoklaServer-linux-x86_64-static-musl.tgz” salvo [4638658/4638658]

Extracting Server Files
OoklaServer
OoklaServer.properties.default
Stopping OoklaServer Daemon (5419)
Starting OoklaServer
Daemon Started (5464)
NOTE:

We strongly recommend following instructions at

   https://support.ookla.com/hc/en-us/articles/234578588-Linux-Startup-Script-Options

to ensure your daemon starts automatically when the system reboots

</pre>
<p>Neste momento o servidor ookla já iniciou, acesse em seu navegado <strong>http://sub.dominio:8080</strong> e verifique se o mesmo esta rodando> <strong>OoklaServer &#8211; It worked!</strong></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-it-worked.png" data-rel="lightbox-gallery-EkcNzqmi" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-it-worked-300x202.png" alt="" width="300" height="202" class="alignnone size-medium wp-image-3221" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-it-worked-300x202.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-it-worked-768x518.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-it-worked.png 829w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Pare o serviço ooklaserver</p>
<pre class="remontti-code"># ./ooklaserver.sh stop</pre>
<p>Ou (se seu tempo é curto)</p>
<pre class="remontti-code"># killall -9 OoklaServer</pre>
<pre class="remontti-code-plain">Stopping OoklaServer Daemon (715) . . . . . . . . . . . . . . . . . . . .
Additional OoklaServer processes running; stopping
Stopping OoklaServer Daemon (715) . . . . . . . . . . . . . . . . . . . .
Stopping OoklaServer Daemon (858) .
Stopping OoklaServer Daemon (859) .
Stopping OoklaServer Daemon (879) . . . . . . . . . . . . . . . .
Lingering OoklaServer processes running; killing (715
964
965)</pre>
<p>Edite o arquivo de configuração OoklaServer</p>
<pre class="remontti-code"># vim /usr/local/src/ooklaserver/OoklaServer.properties</pre>
<p>A partir de 2023 IPv6 virou obrigatório, descomente (remova o # da frente) a linha a baixo deixando <strong>true</strong>.</p>
<pre class="remontti-code-plain">OoklaServer.useIPv6 = true</pre>
<p>Descomente a linha e inclua todos seus subidominios para seu domínio ex `*.remontti.com.br`</p>
<pre class="remontti-code-plain">OoklaServer.allowedDomains = *.ookla.com, *.speedtest.net, *.remontti.com.br</pre>
<p>Ativa o filtro que bloqueia agentes de usuário conhecidos como indesejados, ajudando a reduzir tráfego de fontes não oficiais.</p>
<pre class="remontti-code-plain">OoklaServer.userAgentFilterEnabled = true</pre>
<p>Define o número máximo de conexões simultâneas permitidas por endereço IP; o padrão é 50.</p>
<pre class="remontti-code-plain">OoklaServer.ipTracking.maxConnPerIp = 5</pre>
<p>Estabelece o número máximo de conexões permitidas por IP dentro de cada intervalo de tempo (bucket); o padrão é 10.</p>
<pre class="remontti-code-plain">OoklaServer.ipTracking.maxConnPerBucketPerIp = 10</pre>
<p>Define a capacidade máxima do pool de threads de trabalho; o padrão é 30.000.</p>
<pre class="remontti-code-plain">OoklaServer.workerThreadPool.capacity = 30000</pre>
<p>Especifica o tamanho máximo de quadro (frame) aceito em conexões WebSocket, em bytes; o padrão é 5 MB (5.242.880 bytes).</p>
<pre class="remontti-code-plain">OoklaServer.websocket.frameSizeLimitBytes = 5242880</pre>
<p>Define o tempo máximo, em minutos, para manter estatísticas de IPs inativos após a última conexão registrada; o padrão é 35 minutos.</p>
<pre class="remontti-code-plain">OoklaServer.ipTracking.maxIdleAgeMinutes = 35</pre>
<p>Se você desejar visualizar os logs descomente em &#8220;# Log to files&#8221;. Um arquivo em <strong>/usr/local/src/ooklaserver/ooklaserver.log</strong> será criado.</p>
<pre class="remontti-code-plain"># Log to files
#
logging.loggers.app.name = Application
logging.loggers.app.channel.class = FileChannel
logging.loggers.app.channel.pattern = %Y-%m-%d %H:%M:%S [%P - %I] [%p] %t
logging.loggers.app.channel.path = ${application.dir}/ooklaserver.log
logging.loggers.app.level = information</pre>
<p>Sobreecreva OoklaServer.properties.default com o OoklaServer.properties, para em futuras atualizações (Ocorre automaticamente) ele use como base as suas configurações.</p>
<pre class="remontti-code"># cp /usr/local/src/ooklaserver/OoklaServer.properties /usr/local/src/ooklaserver/OoklaServer.properties.default</pre>
<p>Para que o Ooklaserver seja tratado como um serviço vamos configurar-lo no systemd.</p>
<pre class="remontti-code"># vim /lib/systemd/system/ooklaserver.service</pre>
<pre class="remontti-code-plain">[Unit]
Description=OoklaServer-SpeedTest 
After=network.target

[Service]
User=root
Group=root
Type=simple
RemainAfterExit=yes

WorkingDirectory=/usr/local/src/ooklaserver
ExecStart=/usr/local/src/ooklaserver/ooklaserver.sh start
ExecReload=/usr/local/src/ooklaserver/ooklaserver.sh restart
#ExecStop=/usr/local/src/ooklaserver/ooklaserver.sh stop
ExecStop=/usr/bin/killall -9 OoklaServer

TimeoutStartSec=60
TimeoutStopSec=300

[Install]
WantedBy=multi-user.target
Alias=speedtest.service
</pre>
<p>Recarrege o daemon</p>
<pre class="remontti-code"># systemctl daemon-reload</pre>
<p>Verifique o status, nosso serviço ira estar <strong>disabled</strong></p>
<pre class="remontti-code"># systemctl status ooklaserver</pre>
<pre class="remontti-code-plain">● ooklaserver.service - OoklaServer-SpeedTest
     Loaded: loaded (/lib/systemd/system/ooklaserver.service; disabled; vendor preset: enabled)
     Active: inactive (dead)</pre>
<p>Vamos deixa-lo enable para subir com o boot do sistema.</p>
<pre class="remontti-code"># systemctl enable ooklaserver</pre>
<pre class="remontti-code-plain">Created symlink /etc/systemd/system/speedtest.service → /lib/systemd/system/ooklaserver.service.
Created symlink /etc/systemd/system/multi-user.target.wants/ooklaserver.service → /lib/systemd/system/ooklaserver.service.</pre>
<p>Verifique se ficou <strong>enabled</strong></p>
<pre class="remontti-code">#  systemctl status ooklaserver</pre>
<pre class="remontti-code-plain">● ooklaserver.service - OoklaServer-SpeedTest
     Loaded: loaded (/lib/systemd/system/ooklaserver.service; enabled; vendor preset: enabled)
     Active: inactive (dead)</pre>
<p>Inicie o serviço e verifique seu status se o mesmo ficou <strong>active</strong>.</p>
<pre class="remontti-code"># systemctl start ooklaserver
# systemctl status ooklaserver</pre>
<pre class="remontti-code-plain">● ooklaserver.service - OoklaServer-SpeedTest
     Loaded: loaded (/lib/systemd/system/ooklaserver.service; enabled; vendor preset: enabled)
     Active: active (exited) since Fri 2021-11-05 15:31:58 -03; 1s ago
    Process: 2408 ExecStart=/usr/local/src/ooklaserver/ooklaserver.sh start (code=exited, status=0/SUCCESS)
   Main PID: 2408 (code=exited, status=0/SUCCESS)
      Tasks: 47 (limit: 2312)
     Memory: 10.5M
        CPU: 185ms
     CGroup: /system.slice/ooklaserver.service
             ├─2416 ./OoklaServer --daemon --pidfile=/usr/local/src/ooklaserver/OoklaServer.pid
             └─2420 /usr/local/src/ooklaserver/OoklaServer --ward --parent-pidfile=OoklaServer.pid --server-id=d907db80a&gt;

nov 05 15:31:58 deb11 systemd[1]: Started OoklaServer-SpeedTest.
nov 05 15:31:59 deb11 ooklaserver.sh[2408]: Starting OoklaServer
nov 05 15:31:59 deb11 ooklaserver.sh[2408]: Daemon Started (2416)</pre>
<p>Se desejar reinicie o servidor para ver se o serviço ooklaserver carregou no boot!</p>
<pre class="remontti-code"># reboot</pre>
<p>Ao voltar verifique se o mesmo iniciou.</p>
<pre class="remontti-code"># systemctl status ooklaserver</pre>
<pre class="remontti-code-plain">● ooklaserver.service - OoklaServer-SpeedTest
     Loaded: loaded (/lib/systemd/system/ooklaserver.service; enabled; vendor preset: enabled)
     Active: active (exited) since Fri 2021-11-05 15:34:19 -03; 22s ago
    Process: 332 ExecStart=/usr/local/src/ooklaserver/ooklaserver.sh start (code=exited, status=0/SUCCESS)
   Main PID: 332 (code=exited, status=0/SUCCESS)
      Tasks: 50 (limit: 2312)
     Memory: 18.3M
        CPU: 157ms
     CGroup: /system.slice/ooklaserver.service
             ├─390 ./OoklaServer --daemon --pidfile=/usr/local/src/ooklaserver/OoklaServer.pid
             └─404 /usr/local/src/ooklaserver/OoklaServer --ward --parent-pidfile=OoklaServer.pid --server-id=da57142421&gt;

nov 05 15:34:19 deb11 systemd[1]: Started OoklaServer-SpeedTest.
nov 05 15:34:20 deb11 ooklaserver.sh[332]: Starting OoklaServer
nov 05 15:34:20 deb11 ooklaserver.sh[332]: Daemon Started (390)</pre>
<p>Certifique-se acessando em seu navegador <strong>http://sub.dominio:8080</strong>.</p>
<p>O serviço ooklaserver tem um alias com o nome <strong>speedtest</strong>, então se quiser usar `systemctl status speedtest` também funiona. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<pre class="remontti-code"># systemctl status speedtest</pre>
<p>Para verificar a versão use:</p>
<pre class="remontti-code">#  /usr/local/src/ooklaserver/OoklaServer -v</pre>
<p>Se você realizar o teste agora <a href="https://www.ookla.com/pt/host-tester" rel="noopener" target="_blank">https://www.ookla.com/pt/host-tester</a> você encontrará <strong>1 erros</strong>:<br />
É que você não tem certificado válido, a OoklaServer fala que você pode usar o certifica automatico que ela ira gerar, ao fazer o registro. <em>Nota: Este processo automatizado só começa depois que o servidor foi registrado e revisado por Ookla </em>. Você pode <a href="https://support.ookla.com/hc/en-us/articles/360001087752-How-do-I-enable-HTTPS-TLS-support-" rel="noopener" target="_blank">ler aqui mais sobre</a>.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/speedtest_erro_certificado.png" alt="" width="1030" height="770" class="alignnone size-full wp-image-6054" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/speedtest_erro_certificado.png 1030w, https://blog.remontti.com.br/wp-content/uploads/2021/11/speedtest_erro_certificado-300x224.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/speedtest_erro_certificado-1024x766.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/11/speedtest_erro_certificado-768x574.png 768w" sizes="auto, (max-width: 1030px) 100vw, 1030px" /></p>
<h4>Solução para o certificado</h4>
<p>Vamos instalar o <a href="https://certbot.eff.org/" rel="noopener" target="_blank"><strong>Certbot</strong></a>, que irá gerar os certificados com o  Let’s Encrypt.</p>
<pre class="remontti-code"># apt install certbot</pre>
<p>Geramos o certificado para teste.remontti.com.br, lembrando que seu servidor DNS deve estar apontando para o IP Publivo do seu servidor para poder gerar o certificado sem erro.</p>
<pre class="remontti-code"># certbot certonly --standalone</pre>
<p><strong>Reponda</strong>: email (null@remontti.com.br), Y, N, Seu Domínio</p>
<pre class="remontti-code-plain">Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices)
 (Enter &#039;c&#039; to cancel): null@remontti.com.br                            &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y                                                           &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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                                                           &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
Account registered.
Please enter in your domain name(s) (comma and/or space separated)  (Enter &#039;c&#039;
to cancel): teste.remontti.com.br                                       &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
Requesting a certificate for teste.remontti.com.br
Performing the following challenges:
http-01 challenge for teste.remontti.com.br
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/teste.remontti.com.br/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/teste.remontti.com.br/privkey.pem
   Your certificate will expire on 2022-02-03. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. To non-interactively renew *all* of your
   certificates, run &quot;certbot renew&quot;
 - 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>Os arquivos do certificado foram criados em <strong>/etc/letsencrypt/live/SUB.DOMINIO.XXX.XX/</strong> com validade de <strong>90 dias</strong>.</p>
<p>Edite o arquivo de configuração OoklaServer, para usar o nosso certificado gerado.</p>
<pre class="remontti-code"># vim /usr/local/src/ooklaserver/OoklaServer.properties</pre>
<p>Localize <strong>openSSL.server.certificateFile</strong> e <strong>openSSL.server.privateKeyFile</strong></p>
<pre class="remontti-code-plain"># openSSL.server.certificateFile = cert.pem
# openSSL.server.privateKeyFile = key.pem</pre>
<p>Descomente as linhas e e adicione o caminho para os seus.</p>
<pre class="remontti-code-plain">openSSL.server.certificateFile = /etc/letsencrypt/live/SUB.DOMINIO.XXX.XX/fullchain.pem
openSSL.server.privateKeyFile = /etc/letsencrypt/live/SUB.DOMINIO.XXX.XX/privkey.pem</pre>
<p>Sobreecreva OoklaServer.properties.default com o OoklaServer.properties novamente para em futuras atualizações.</p>
<pre class="remontti-code"># cp /usr/local/src/ooklaserver/OoklaServer.properties /usr/local/src/ooklaserver/OoklaServer.properties.default</pre>
<p>Reinicie o OoklaServer. (Pode levar ate 2min, tenha paciência)</p>
<pre class="remontti-code"># systemctl  restart ooklaserver.service</pre>
<p>Agora acesse com HTTPS em seu navegador: <strong>https://sub.dominio:8080</strong>, e o certificado agora deve ser válido.</p>
<p>Realizando os testes novamente em <a href="https://www.ookla.com/pt/host-tester" rel="noopener" target="_blank">https://www.ookla.com/pt/host-tester</a>, o erro de certificado estará resolvido.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/speedtest_sem_erro_certificado.png" alt="" width="1070" height="781" class="alignnone size-full wp-image-6057" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/speedtest_sem_erro_certificado.png 1070w, https://blog.remontti.com.br/wp-content/uploads/2021/11/speedtest_sem_erro_certificado-300x219.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/speedtest_sem_erro_certificado-1024x747.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/11/speedtest_sem_erro_certificado-768x561.png 768w" sizes="auto, (max-width: 1070px) 100vw, 1070px" /></p>
<p>Mais ao final deixarei um script para renovação automática do certificado, pois o mesmo é valido apenas por 90 dias.</p>
<h4>Cadastro Ookla</h4>
<p>Hora de criar sua conta no ookla.com e fazer a solicitação para virar um host! <a href="https://account.ookla.com/register/servers" rel="noopener" target="_blank">https://account.ookla.com/register/servers</a>, se você já tem acesse: <a href="https://account.ookla.com/servers/create" rel="noopener" target="_blank">https://account.ookla.com/servers/create</a><br />
Com sua conta criada e validada no e-mail de verificação logue: <a href="https://account.ookla.com/" rel="noopener" target="_blank">https://account.ookla.com/</a>, clique em <strong>Go To Servers</strong>, e aceite os Termos. <strong>Add Server</strong> preencha com os seus dados e do servidor.</p>
<p>Agora basta aguardar, pode levar alguns dias para aprovação, você receberá um e-mail lhe avisado (se não for aprovado eles lhe dirão porque). Boa sorte!</p>
<h4>Renovar o certificado automaticamente</h4>
<p>Para evitar que o certificado expire faremos um script colocando o certbot para renovar uma vez ao mês pelo cron do servidor.</p>
<pre class="remontti-code"># vim /usr/local/src/ooklaserver/renova-certificado</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">#!/bin/bash
# Renova o certificado
/usr/bin/certbot renew -q
# Aguarda o certificado renovar
sleep 30
# Reinicie o OoklaServer
/usr/bin/systemctl restart ooklaserver
</pre>
<p>De permissão para execução e adicione ao cron, para que ele rode o script toda a meia noite do dia 1º de cada mês.</p>
<pre class="remontti-code"># chmod +x /usr/local/src/ooklaserver/renova-certificado
# echo &#039;00 00   1 * *   root    /usr/local/src/ooklaserver/renova-certificado&#039; &gt;&gt; /etc/crontab</pre>
<p>Verifique se a última linha está nosso script.</p>
<pre class="remontti-code"># cat /etc/crontab</pre>
<pre class="remontti-code-plain"># /etc/crontab: system-wide crontab
# Unlike any other crontab you don&#039;t have to run the `crontab&#039;
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *    * * *   root    cd / &amp;&amp; run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / &amp;&amp; run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / &amp;&amp; run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / &amp;&amp; run-parts --report /etc/cron.monthly )
#
00 00   1 * *   root    /usr/local/src/ooklaserver/renova-certificado</pre>
<p>Reinici o cron para ele carregar a nova rotina.</p>
<pre class="remontti-code"># systemctl restart cron</pre>
<p>Se o certificado por venturar expirar e o script não renovar, basta você rodar na mão:</p>
<pre class="remontti-code"># certbot renew 
# systemctl restart ooklaserver</pre>
<h5>Parabéns seu servidor está pronto!</h5>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/rick-and-morthy-dance.gif" alt="" width="220" height="422" class="alignnone size-full wp-image-6062" /></p>
<h2>Atualização</h2>
<p>Para verificar a versão atual, execute o comando:</p>
<pre class="remontti-code"># /usr/local/src/ooklaserver/OoklaServer -v</pre>
<p>Hoje, dia 12/11/2024, a versão em uso é:<br />
<strong><em>2.11.1.2 2024-02-13.1456.91c4f93</em></strong></p>
<p>Para realizar a atualização, acesse o diretório e interrompa o serviço.</p>
<pre class="remontti-code"># cd /usr/local/src/ooklaserver
# ./ooklaserver.sh stop</pre>
<p>Remova o script de instalação e faça o download novamente:</p>
<pre class="remontti-code"># rm ooklaserver.sh
# wget https://install.speedtest.net/ooklaserver/ooklaserver.sh</pre>
<p>Dê permissão de execução e execute a instalação:</p>
<pre class="remontti-code"># chmod a+x ooklaserver.sh
# ./ooklaserver.sh install</pre>
<p>Pare novamente o serviço e inicie-o pelo systemd:</p>
<pre class="remontti-code"># ./ooklaserver.sh stop
# systemctl restart ooklaserver</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><br />
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>O post <a href="https://blog.remontti.com.br/6051">Instalação do SpeedTest (OoklaServer) no Debian 11/12 gerenciado pelo systemd</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6051/feed</wfw:commentRss>
			<slash:comments>52</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor DNS Bind9 &#8211; Recursivo + Autoritativo DNSSEC + Reverso + RPZ + Fail2ban + nftables + Zabbix no Debian 11/12</title>
		<link>https://blog.remontti.com.br/5958</link>
					<comments>https://blog.remontti.com.br/5958#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 26 Oct 2021 21:28:21 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Autoritativo]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[bind9]]></category>
		<category><![CDATA[bookworm]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[Debian 12 Bookworm]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Fail2ban]]></category>
		<category><![CDATA[Reverso]]></category>
		<category><![CDATA[rpz]]></category>
		<category><![CDATA[zabbix]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5958</guid>

					<description><![CDATA[<p>BIND (Berkeley Internet Name Domain ou, como chamado previamente, Berkeley Internet Name Daemon) é o servidor para o protocolo DNS mais utilizado na Internet, especialmente em sistemas do tipo Unix, onde ele pode ser&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/5958">Servidor DNS Bind9 &#8211; Recursivo + Autoritativo DNSSEC + Reverso + RPZ + Fail2ban + nftables + Zabbix no Debian 11/12</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p> <img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/bind9.16_debian_11_bullseye.png" alt="" width="750" height="375" class="alignnone size-full wp-image-5980" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/bind9.16_debian_11_bullseye.png 750w, https://blog.remontti.com.br/wp-content/uploads/2021/10/bind9.16_debian_11_bullseye-300x150.png 300w" sizes="auto, (max-width: 750px) 100vw, 750px" /><br />
<a href="https://pt.wikipedia.org/wiki/BIND" rel="noopener noreferrer" target="_blank">BIND</a> (Berkeley Internet Name Domain ou, como chamado previamente, Berkeley Internet Name Daemon) é o servidor para o protocolo DNS mais utilizado na Internet, especialmente em sistemas do tipo Unix, onde ele pode ser considerado um padrão de fato.</p>
<p>Ante de iniciar a instalação é preciso saber como funciona um DNS:</p>
<p><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/ACGuo26MswI" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/epWv0-eqRMw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><strong>DNS Recursivo</strong><br />
O DNS recursivo é responsável pela resolução de nomes, começando sempre com consultas recursivas nos servidores raízes. Para melhorar a eficiência, reduzir o tráfego DNS na Internet e aumentar o desempenho em aplicativos de usuário final, utilizamos o cache de DNS, armazenando resultados das consulta DNS por um período de tempo determinado na configuração (tempo de vida determinado pelo autoritativo do domínio consultado).</p>
<p><strong>DNS Autoritativo</strong><br />
É o serviço DNS que possui autoridade sob um domínio. Assim, como o servidor ns1.remontti.com.br é o DNS autoritativo de meu domínio remontti.com.br, é ele que sempre vai responder qualquer subdomínio ou “hosts” (por exemplo: blog.remontti.com.br).<br />
É nesse servidor que você vai apontar nas configurações de um domínio registrado no registro.br, por exemplo.</p>
<p><strong>DNS Reverso</strong><br />
DNS atua resolvendo o nome do domínio/subdomínio para um endereço IP correspondente. Já o DNS Reverso, como o próprio nome diz, resolve o endereço IP para o nome de domínio associado ao host. Ou seja, quando temos disponível o endereço IP de um host e não sabemos o endereço do domínio (nome dado à máquina ou outro equipamento que acesse uma rede), tentamos resolver o endereço IP através do DNS reverso que procura qual nome de domínio está associado aquele endereço.<br />
Os servidores que utilizam o DNS Reverso conseguem verificar a autenticidade de endereços, verificando se o endereço IP atual corresponde ao endereço IP informado pelo servidor DNS.<br />
Isto evita que alguém utilize um domínio que não lhe pertence para enviar spam, por exemplo (por isso que ele é importante para servidores de e-mail).</p>
<p><strong>Correção dos dados de geolocalização</strong><br />
É muito importante que sua geolocalização estaja correta no maxmind.com, verifique alguns de de seus IPs.<br />
<a href="https://www.maxmind.com/en/geoip-demo" rel="noopener" target="_blank">https://www.maxmind.com/en/geoip-demo </a></p>
<p><strong>Para correção temos dois formulários.</strong><br />
<em>Correct a GeoIP Location</em><br />
<a href="https://support.maxmind.com/geoip-data-correction-request/correct-a-geoip-location/" rel="noopener" target="_blank">https://support.maxmind.com/geoip-data-correction-request/correct-a-geoip-location/ </a><br />
<em>Correct a GeoIP ISP or Organization</em><br />
<a href="https://support.maxmind.com/geoip-data-correction-request/correct-a-geoip-isp-or-organization/" rel="noopener" target="_blank">https://support.maxmind.com/geoip-data-correction-request/correct-a-geoip-isp-or-organization/ </a></p>
<h2>Instalação do Debian</h2>
<p><strong>Requesitos:</strong><br />
<strong><a href="https://blog.remontti.com.br/7236" rel="noopener noreferrer" target="_blank">Debian 12 Bookworm &#8211; Instalação Limpa</a></strong> (Recomendado)<br />
<strong><a href="https://blog.remontti.com.br/5792" rel="noopener noreferrer" target="_blank">Debian 11 Bullseye &#8211; Instalação Limpa</a></strong></p>
<p><strong>Leitura obrigatória:</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>
<p>Vire root com o comando correto!</p>
<pre class="remontti-code"># su - </pre>
<p>No <strong>Debian 12 o rsyslog foi abandonado</strong> como sistema de logs e esta usando systemd-journald. Como o bind salva alguns logs em arquivo e o fail2ban lê os mesmo vamos precisar dele, para isso instale o mesmo:</p>
<pre class="remontti-code"># apt install rsyslog</pre>
<h2>Instalação fail2ban e nftables (Master/Slave)</h2>
<p><strong>Fail2Ban</strong> é uma estrutura de software de prevenção de intrusões que protege os servidores contra ataques de força bruta. Ele opera monitorando arquivos de logs, sendo o mais comum seu uso para bloquear endereços IPs que podem pertencer à hosts que estão tentando violar a segurança do seu servidor.<br />
<strong>nftables</strong> é um firewall baseado no iptables que agora no Debian 11 já vem instalado por padrão subistituindo o antigo iptables.</p>
<pre class="remontti-code"># apt install fail2ban</pre>
<p>Entendo o funcionamento do fail2ban:</p>
<pre class="remontti-code"># fail2ban-client status</pre>
<p>Por padrão o filtro de SSH já vem habilitado, então seu SSH (porta 22) já está &#8220;protegida&#8221;, se alguém errar a senha por 5 vezes terá seu IP bloqueado por 10 minutos.</p>
<pre class="remontti-code-plain">Status
|- Number of jail:      1
`- Jail list:   sshd</pre>
<p>Para alterar esses padrões de tempo e número de tentativas edite: (este arquivo é muito bem comentado o que cada variável faz!)</p>
<pre class="remontti-code"># vim /etc/fail2ban/jail.conf</pre>
<p>Localize as linhas, e ajuste de acordo com suas necessidades</p>
<pre class="remontti-code">bantime  = 10m
findtime  = 10m
maxretry = 5</pre>
<p>Se desejar desativar o filtro de SSH </p>
<pre class="remontti-code"># vim /etc/fail2ban/jail.d/defaults-debian.conf</pre>
<p>Altere para <strong>false</strong></p>
<pre class="remontti-code-plain">[sshd]
enabled = false</pre>
<p>Porém como eu sempre altero a porta do SSH de todo o servidor bem como tempo para digitar a senha, é natural que o fail2ban não ira poteger caso você tenha alterado a mesma. Inclusive recomendo você adotar essa boa pratica.</p>
<pre class="remontti-code"># vim /etc/ssh/sshd_config</pre>
<p>Em <strong>Port</strong> defina a nova porta, e <strong>LoginGraceTime</strong> defina o tempo em segundos para digitar a senha, e nunca seja ignorante de permitir o acesso root direto no SSH em <strong>PermitRootLogin</strong>, a não ser que tenha uma forte motivo para isso (Me conte nos comentários, até hoje não tive motivo para tal!)</p>
<pre class="remontti-code-plain">Port 60002
LoginGraceTime 10
#PermitRootLogin prohibit-password # Nao seja burro de colocar um yes aqui!</pre>
<p>Com a porta alterada do SSH (como no exemplo 60002) vamos ajusta no fail2ban para proteger essa nova porta</p>
<pre class="remontti-code"># vim /etc/fail2ban/jail.conf</pre>
<p>Localize e adicione 60002:</p>
<pre class="remontti-code-plain">[sshd]
Port = ssh,60002</pre>
<p>Por padrão de segurança do fail2ban usa o iptables e faz o bloquei apenas da porta do serviço que esta sofrendo o &#8220;ataque&#8221;, vamos subistituir o iptables pelo <strong>nftables</strong> ou por <strong>route</strong>. Vou deixar os dois modelos a baixo de exemplo. </p>
<p><strong>nftables:</strong> Em vez de usar o filtro multiport, vou setar allports e modificá-lo para que tentativas de violação crie uma regra de firewall de drop e não reject definitivamente o IP e não apenas fechando a porta do serviço. Para isso edite:</p>
<pre class="remontti-code"># vim /etc/fail2ban/jail.conf</pre>
<p>Localize <strong>banaction</strong> e <strong>banaction_allports</strong> e altere para <strong>nftables-allports</strong>:</p>
<pre class="remontti-code-plain">banaction = nftables-allports
banaction_allports = nftables-allports</pre>
<p>Para bloquear tudo e não apenas a porta do serviço atacada:</p>
<pre class="remontti-code"># vim /etc/fail2ban/action.d/nftables.conf</pre>
<p>Localize <strong>rule_match-allports</strong> e remova o <strong>meta l4proto \{ <protocol> \}</strong> ficando: </p>
<pre class="remontti-code-plain">rule_match-allports =</pre>
<p>Ainda no altere o <strong>blocktype</strong> de <strong>reject</strong> para <strong>drop</strong></p>
<pre class="remontti-code-plain">blocktype = drop</pre>
<p>Habilite o nftblaes para o boot do sistema, em seguida reinicie os serviços </p>
<pre class="remontti-code"># systemctl enable nftables
# systemctl restart nftables fail2ban</pre>
<p>Verifique se mesmo estão rodando sem nenhum erro:</p>
<pre class="remontti-code"># systemctl status nftables fail2ban</pre>
<p><strong>route:</strong> Com o método route iremos em vezes de criar uma regra de firewall para o IP que esta &#8220;atacando&#8221; vamos coloca-lo em blackhole, assim se você possuir algum roteamento já poderá exportar o IP para sua borda para matar lá já (gosto + dessa).</p>
<pre class="remontti-code"># vim /etc/fail2ban/jail.conf</pre>
<p>Localize <strong>banaction</strong> e <strong>banaction_allports</strong> e altere para <strong>route</strong>:</p>
<pre class="remontti-code-plain">banaction = route
banaction_allports = route</pre>
<p>Vamos ajustar agora para ação ser blackhole</p>
<pre class="remontti-code"># vim /etc/fail2ban/action.d/route.conf</pre>
<p>Em blocktype altere para blackhole</p>
<pre class="remontti-code-plain">blocktype = blackhole</pre>
<pre class="remontti-code"># systemctl restart fail2ban</pre>
<p>Se tiver acesso a outro servidor externo tente fazer uma conexão SSH, e erre varias vezes a senha para ser bloqueado, assim você pode validar seu fail2ban.</p>
<p>Para visualizar seu firewall <strong>nftables</strong> use o comando:</p>
<pre class="remontti-code"># nft list ruleset</pre>
<p>Ou se usou <strong>route</strong> para mostra a tabela de rotas: </p>
<pre class="remontti-code"># ip route list
# ip -6 route list</pre>
<p><strong>Alguns comandos úteis do fail2ban</strong><br />
Visulizar os filtros</p>
<pre class="remontti-code"># fail2ban-client status</pre>
<p>Visualizar detalhe de um filtro</p>
<pre class="remontti-code"># fail2ban-client status NOME_FILTRO
# fail2ban-client status sshd</pre>
<p>Remover um IP de um determinado filtro</p>
<pre class="remontti-code"># fail2ban-client set sshd unbanip IPADDRESS
# fail2ban-client set sshd unbanip 200.200.200.200</pre>
<p>Exemplo de script para remover todos os IPs banidos uma a um.</p>
<pre class="remontti-code-plain">#!/bin/bash
BANIDOS=`fail2ban-client status bind9 | grep &quot;Banned IP list&quot; | awk &#039;{$1=$2=$3=$4=$5=&quot;&quot;; print $0}&#039;`
IPS=$(echo $BANIDOS | tr &quot; &quot; &quot;\n&quot;)
for IP in $IPS
 do
  #echo &quot;Removendo: ${IP}&quot;
  fail2ban-client set bind9 unbanip ${IP} ;
  #ip route del ${IP}
done</pre>
<p>Se desejar adicionar algum prefixo a uma lista branca você pode editar: </p>
<pre class="remontti-code"># vim /etc/fail2ban/jail.conf</pre>
<p>Localize <strong>ignoreip</strong>, desomente a linha (remova o # da frete) e adicione os prefixo que deseja ignorar, para não cair bloqueio.</p>
<pre class="remontti-code-plain">ignoreip = 127.0.0.1/8 ::1 200.200.200.0/22 2000:2000::/32</pre>
<p>Reinicie o serviço</p>
<pre class="remontti-code"># systemctl restart fail2ban</pre>
<h2>Instalação do Bind9 (Master/Slave)</h2>
<p>Instalação dos pacotes</p>
<pre class="remontti-code"># apt install bind9 dnsutils</pre>
<p>Arquitetura de arquivos e diretórios do bind9 no Debian 11:</p>
<pre class="remontti-code-plain">/etc/bind/
├── bind.keys
├── db.0
├── db.127
├── db.255
├── db.empty
├── db.local
├── named.conf
├── named.conf.default-zones
├── named.conf.local
├── named.conf.options
├── rndc.key
└── zones.rfc1918
/usr/share/dns/
├── root.ds
├── root.hints
├── root.hints.sig
└── root.key
/var/cache/bind/
├── managed-keys.bind
└── managed-keys.bind.jnl</pre>
<h3>Configuração do Recursivo</h3>
<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>Para validar se seu servidor conseguer resolver nomes nele próprio, use o comando dig e host. Alguns comandos de Ex:</p>
<pre class="remontti-code"># dig @localhost google.com.br 
# dig @127.0.0.1 google.com.br 
# dig @::1 google.com.br +short
# host google.com.br</pre>
<p>Como identificar o problema com resoluções de nomes, famoso: <em>“Meu DNS não está resolvendo nomes!”</em>. Use o atributo +trace, assim o mesmo mostrará todo o caminho feito para a resolução, assim você ira identificar onde &#8220;parou&#8221; e não obteve a informação necessária. Ex:</p>
<pre class="remontti-code"># dig @localhost google.com.br +trace</pre>
<p>Observe as linhas em destaque.</p>
<pre class="remontti-code">; &lt;&lt;&gt;&gt; DiG 9.16.15-Debian &lt;&lt;&gt;&gt; @localhost google.com.br +trace
; (2 servers found)
;; global options: +cmd
.                       517911  IN      NS      b.root-servers.net.
.                       517911  IN      NS      c.root-servers.net.
.                       517911  IN      NS      m.root-servers.net.
.                       517911  IN      NS      a.root-servers.net.
.                       517911  IN      NS      l.root-servers.net.
.                       517911  IN      NS      k.root-servers.net.
.                       517911  IN      NS      e.root-servers.net.
.                       517911  IN      NS      i.root-servers.net.
.                       517911  IN      NS      d.root-servers.net.
.                       517911  IN      NS      f.root-servers.net.
.                       517911  IN      NS      g.root-servers.net.
.                       517911  IN      NS      h.root-servers.net.
.                       517911  IN      NS      j.root-servers.net.
.                       517911  IN      RRSIG   NS 8 0 518400 20211107...
;; Received 1137 bytes from ::1#53(localhost) in 0 ms

br.                     172800  IN      NS      f.dns.br.
br.                     172800  IN      NS      e.dns.br.
br.                     172800  IN      NS      b.dns.br.
br.                     172800  IN      NS      c.dns.br.
br.                     172800  IN      NS      d.dns.br.
br.                     172800  IN      NS      a.dns.br.
br.                     86400   IN      DS      2471 13 2 5E4F35...
br.                     86400   IN      RRSIG   DS 8 1 86400 202...
;; Received 741 bytes from 198.41.0.4#53(a.root-servers.net) in 140 ms

google.com.br.          3600    IN      NS      ns1.google.com.
google.com.br.          3600    IN      NS      ns2.google.com.
google.com.br.          3600    IN      NS      ns3.google.com.
google.com.br.          3600    IN      NS      ns4.google.com.
uh3thc9qu1qbt25pspmqnbuvm420ur2e.com.br. 900 IN NSEC3 1 1 10 A8A465B84D7...
uh3thc9qu1qbt25pspmqnbuvm420ur2e.com.br. 900 IN RRSIG NSEC3 13 3 900 202...
hekajlrgmga91msd4es7bmhol7dbtbbi.com.br. 900 IN NSEC3 1 1 10 A8A465B84D7...
hekajlrgmga91msd4es7bmhol7dbtbbi.com.br. 900 IN RRSIG NSEC3 13 3 900 202...
;; Received 507 bytes from 2001:12f8:a::10#53(c.dns.br) in 140 ms

google.com.br.          300     IN      A       142.250.219.195
;; Received 58 bytes from 2001:4860:4802:38::a#53(ns4.google.com) in 144 ms</pre>
<p>Primeiramente consultamos os root servers, que estão em nosso servidor essa info, logo perceba que ele fez a consulta dos root servers em localhost, em seguida um dos root servers falou para ele que é são os DNS responsáveis do <strong>.br</strong> e no exemplo ele escolheu o a.root-servers.net, que falou para ele quem são os DNS fo google, e o DNS do google, neste cado o c.dns.br falou qual é o IPv4 (A) do google.com.br = 42.250.219.195, o valor 300 é o tempo que seu servidor irá armazenar essa resposta em cache. Eu levaria muito tempo para explicar aqui, então quando tiver um curso meu de DNS não fique de fora <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>
<h4>Configurando Recursivo no DNS Master</h4>
<p>Nesse cenário vou usar os prefixos  45.80.48.0/22 e 2804:f123::/32 (desculpe caso seja de alguém)</p>
<p>Edite:</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<p>A explicação de todos os campos e variáveis estão nos comentários do arquivo:</p>
<pre class="remontti-code-plain">// ACL &quot;autorizados&quot; essa colocamos os IPs que são autorizados a fazer consultas recursivas neste servidor.
// Neste caso vou incluir os IPs que foram nos delegados bem como de localhost e todos IPs privados.
acl autorizados {
        127.0.0.1;
        ::1;
        192.168.0.0/16;
        172.16.0.0/12;
        100.64.0.0/10;
        10.0.0.0/8;
        2001:db8::/32; 
        fd00::/8; 
        fe80::/10; 
        fc00::/8;        
        45.80.48.0/22;
        2804:f123::/32;
}; 

options {
    // O diretório de trabalho do servidor
    // Quaisquer caminho não informado será tomado como padrão este diretório
    directory &quot;/var/cache/bind&quot;;
 
    //Suporte a DNSSEC
    dnssec-validation auto;
 
    // Conforme RFC1035
    // https://www.ietf.org/rfc/rfc1035.txt
    // Se o servidor deve responder negativamente (NXDOMAIN) para consultas de domínios que não existem.
    auth-nxdomain no;
 
    // Respondendo para IPv4 e IPv6
    // Porta 53 estará aberta para ambos v4 e v6 (pode ser informar apenas os IPs que ficarão ouvindo)
    // ex listen-on { 127.0.0.1; 45.80.48.2; }; 
    // ex listen-on-v6 { ::1; 2804:f123:bebe:cafe::2; };
    // ou any para todos os IPs das interfaces (recomendado, pricipalmente em anycast)
    listen-on { any; };
    listen-on-v6 { any; };
 
    // Serve como uma ferramenta de mitigação para o problema de ataques de amplificação de DNS
    // No momento, a implementação de RRL (Response Rate Limiting)é recomendada apenas para servidores autoritativos
    // Se seu servidor será apenas autoritativo descomente as linhas a baixo. (https://kb.isc.org/docs/aa-00994)
    //rate-limit {
    //    responses-per-second 15;
    //    window 5;
    //};
 
    // Informações adicionais em suas respostas DNS
    // Melhora o desempenho do servidor, reduzindo os volumes de dados de saída.
    // O padrão BIND é (no) não.
    minimal-responses yes;

    // Reduzir o tráfego da rede e aumentar o desempenho, o servidor armazena respostas negativas.
    // é usado para definir um tempo máximo de retenção para essas respostas no servidor. (segundos)
    // Determina por quanto tempo o servidor irá acreditar nas informações armazenadas em cache de 
    // respostas negativas (NXDOMAIN) antes de buscar novamente informações.
    max-ncache-ttl 300;

    // Desativar recursão. Por padrão já é yes.
    // recursion no;
 
    // Especifica quais hosts estão autorizados a fazer consultas
    // recursivas através deste servidor.
    // Aqui que você vai informar os IPs da sua rede que você irá permitir consultar os DNS.
    allow-recursion { autorizados; };
 
    // Endereço estão autorizados a emitir consultas ao cache local,
    // sem acesso ao cache local as consultas recursivas são inúteis.
    allow-query-cache { autorizados; };
 
    // Especifica quais hosts estão autorizados a “fazer perguntas” ao seu DNS. 
    // Se for apenas recursivo pode informa a ACL “autorizados” 
    // allow-query { autorizados; };
    allow-query { any; };
 
    // Especifica quais hosts estão autorizados a receber transferências de zona a partir do servidor.
    // Seu servidor Secundário, no nosso ex vou deixar então o ips dos dois servidores v4 e v6.
    allow-transfer {
        45.80.48.3;
        2804:f123:bebe:cafe::3;
    };
    also-notify {
        45.80.48.3;
        2804:f123:bebe:cafe::3;
    };
 
    // Esta opção faz com que o servidor slave ao fazer a transferência de zonas
    // mastes deste servidor no formato binário (raw) do arquivo ou texto (text)
    // text será legível por humanos, já raw formato é mais eficiente em termos de desempenho.
    // masterfile-format raw;
    masterfile-format text;

    // Para evitar que vase a versao do Bind, definimos um nome
    // Reza a lenda que deixar RR DNS Server seu servidor nunca sofrerá ataques.
    version &quot;RR DNS Server – Do good&quot;;

    // Define a quant. máxima de memória a ser usada para o cache do servidor (bytes ou porcentagem)
    // Por padrão no debian 10/bind9 ele reserva 90% da memoria física. Então não se apavore com log ex.:
    // Servidor com 2GB: none:106: &#039;max-cache-size 90%&#039; - setting to 1795MB (out of 1994MB)
    // Recomendo não alterar
    // max-cache-size 512M;
    // max-cache-size 50%;

    // Isso define o tempo mínimo para o qual o servidor armazena 
    // em cache as respostas positivas, em segundos.
    // Ex o tiktok.com manda tempo de ttl de 20 segundos, 
    // e você quer ignorar esse valor 20 e setar que o minimo seja 90.
    // que é o máximo permitido.
    min-cache-ttl 90;

    // Não recomendado alterar para menos que 24h.
    // Define o tempo máximo durante o qual o servidor armazena (informado pelo dono do domínio)
    // em cache as respostas positivas, em segundos. O max-cache-ttl padrão é 604800 (uma semana) 
    // max-cache-ttl 86400; // 24h 

};</pre>
<p><strong>Leitura recomendada: </strong><br />
<a href="https://bind9.readthedocs.io/en/latest/reference.html" rel="noopener" target="_blank">https://bind9.readthedocs.io/en/latest/reference.html</a><br />
<a href="https://downloads.isc.org/isc/bind9/9.11.24/doc/arm/Bv9ARM.ch06.html" rel="noopener" target="_blank">https://downloads.isc.org/isc/bind9/9.11.24/doc/arm/Bv9ARM.ch06.html </a></p>
<p>Para verificar se seu arquivo tem algum erro use o comando named-checkconf</p>
<pre class="remontti-code"># named-checkconf /etc/bind/named.conf.options</pre>
<p>Imprime todas as configurações</p>
<pre class="remontti-code"># named-checkconf -p</pre>
<p>Bem útil para você mandar suas conf quando esta com algum problema lá no grupo do telegram <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>Reinicie o bind9 para que as novas configurações sejam carregadas, e verifique se o serviço subiu sem erros.</p>
<pre class="remontti-code"># systemctl restart bind9
# systemctl status bind9</pre>
<pre class="remontti-code"># systemctl restart bind9
# systemctl status bind9</pre>
<h4>Configurando Recursivo (Slave)</h4>
<p>Não esqueça da parte do fail2ban e nftables.</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<p>Já explicado no master, a diferença aqui aqui não temos os campos allow-transfer e also-notify, já que ele é o servidor secundário.</p>
<pre class="remontti-code-plain">acl autorizados {
        127.0.0.1;
        ::1;
        192.168.0.0/16;
        172.16.0.0/12;
        100.64.0.0/10;
        10.0.0.0/8;
        2001:db8::/32; 
        fd00::/8; 
        fe80::/10; 
        fc00::/8;        
        45.80.48.0/22;
        2804:f123::/32;
}; 

options {
    directory &quot;/var/cache/bind&quot;;
    dnssec-validation auto;
    auth-nxdomain no;
    listen-on { any; };
    listen-on-v6 { any; };
    minimal-responses yes;
    max-ncache-ttl 300;
    allow-recursion { autorizados; };
    allow-query-cache { autorizados; };
    //allow-query { autorizados; }; //Se apenas for recursivo
    allow-query { any; };
    allow-transfer { none; };
    masterfile-format text;
    version &quot;RR DNS Server&quot;;
};</pre>
<p>Reinicie o bind9 para que as novas configurações sejam lidas, e verifique se o serviço subiu sem erros.</p>
<pre class="remontti-code"># systemctl restart bind9
# systemctl status bind9</pre>
<h4>Colocando o fail2ban para protege seu DNS (Master/Slave)</h4>
<p>Ele irá ler os logs do bind com tentativas de consultas negadas (denied), para isso precisamos configurar nosso bind para gerar tal logs.Faça isso no Mastere Slave.</p>
<pre class="remontti-code"># vim /etc/bind/named.conf</pre>
<p>Adicione logging { &#8230; }:</p>
<pre class="remontti-code-plain">// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the 
// structure of BIND configuration files in Debian, *BEFORE* you customize 
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local

logging {
 
    channel security_file {
        file &quot;/var/log/named/security.log&quot; versions 3 size 30m;
        severity dynamic;
        print-time yes;
    };
 
    channel file_log {
        file &quot;/var/log/named/bind.log&quot; versions 3 size 1m;
        severity info;
        #severity debug 3;
        print-time yes;
        print-severity yes;
        print-category yes;
    };
 
    channel dnssec_log {
        file &quot;/var/log/named/dnssec.log&quot; versions 3 size 1m;
        severity warning;
        print-time yes;
    };
 
    category security { security_file; };
    category default { file_log; };
    category dnssec { dnssec_log; };
    category lame-servers { null; };
    category edns-disabled { null; };
    category resolver { null; };
    category unmatched { null; };
 
};

include &quot;/etc/bind/named.conf.options&quot;;
include &quot;/etc/bind/named.conf.local&quot;;
include &quot;/etc/bind/named.conf.default-zones&quot;;</pre>
<p>Crie o diretório onde o bind vai registrar seus logs e dê permissão para que ele possa gravar nesta pasta.</p>
<pre class="remontti-code"># mkdir /var/log/named/
# chown bind: /var/log/named/</pre>
<p>Reinicie o serviço</p>
<pre class="remontti-code"># systemctl restart bind9</pre>
<p>Iremos criar um filtro para ler os logs do bind</p>
<pre class="remontti-code"># vim /etc/fail2ban/filter.d/bind9.conf</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain"># Fail2Ban filter file for named (bind9).
# v9.18.x

# This filter blocks attacks against named (bind9) however it requires special
# configuration on bind.
#
# By default, logging is off with bind9 installation.
#
# You will need something like this in your named.conf to provide proper logging.
#
# logging {
#     channel security_file {
#         file &quot;/var/log/named/security.log&quot; versions 3 size 30m;
#         severity dynamic;
#         print-time yes;
#     };
#     category security {
#         security_file;
#     };
# };

[Definition]

# Daemon name
_daemon=named(?:-\w+)?

# Shortcuts for easier comprehension of the failregex

__pid_re=(?:\[\d+\])
__daemon_re=\(?%(_daemon)s(?:\(\S+\))?\)?:?
__daemon_combs_re=(?:%(__pid_re)s?:\s+%(__daemon_re)s|%(__daemon_re)s%(__pid_re)s?:)

_category = (?!error|info)[\w-]+
_category_re = (?:%(_category)s: )?

#       hostname       daemon_id         spaces
# this can be optional (for instance if we match named native log files)
__line_prefix=\s*(?:\S+ %(__daemon_combs_re)s\s+)?%(_category_re)s

prefregex = ^%(__line_prefix)s(?:(?:error|info):\s*)?client(?: @\S*)? &lt;HOST&gt;#\S+(?: \([\S.]+\))?: &lt;F-CONTENT&gt;.+&lt;/F-CONTENT&gt;\s(?:denied|denied \(allow-query-cache did not match\)|\(NOTAUTH\))\s*$

failregex = ^(?:view (?:internal|external): )?query(?: \(cache\))?
            ^zone transfer
            ^bad zone transfer request: &#039;\S+/IN&#039;: non-authoritative zone

ignoreregex =

# DEV Notes: Debian 12
# Author: Rudimar Remontti</pre>
<p>Ativamos o filtro que criamos, e definimos o tempo de banimento para 12h, se você desejar pode ajustar para mais ou menos se achar necessário. E “maxretry” que é a quantidade de tentativas usaremos 1, limitando a 1 tentativa (não recomendo alterar) apenas para já ser bloqueado.</p>
<pre class="remontti-code"># vim /etc/fail2ban/jail.d/bind9.conf</pre>
<pre class="remontti-code-plain">[bind9]
enabled  = true
port     = domain,953
protocol = tcp
logpath  = /var/log/named/security.log
bantime  = 12h
maxretry = 1</pre>
<p>Em seguida ativamos reinciamos os serviços.</p>
<pre class="remontti-code"># systemctl restart fail2ban
# systemctl status fail2ban</pre>
<p>Consulte se o filtro bind9 foi carregado</p>
<pre class="remontti-code"># fail2ban-client status</pre>
<pre class="remontti-code-plain">Status
|- Number of jail:      2
`- Jail list:   bind9, sshd</pre>
<p>Para validar realize um teste de um servidor externo <strong>não autorizado</strong> à resolver nomes em seu servidor com o comando dig, ex:</p>
<pre class="remontti-code"># dig @ip_so_seu_dns google.com.br</pre>
<p>Deixe rodando o comando para visualizar os logs.</p>
<pre class="remontti-code"># tail -f /var/log/named/security.log</pre>
<p>Log como ira aparecer, onde 192.168.254.198 é o IP que tentou resolver nomes e google.com.br foi o dóminio.</p>
<pre class="remontti-code-plain">25-Oct-2021 17:57:09.284 client @0x7f79e80104c8 192.168.254.198#63239 (google.com.br): query (cache) &#039;google.com.br/A/IN&#039; denied</pre>
<p>Verificando agora o fail2ban vamos encontrar o IP 192.168.254.198 em <strong>Banned IP list</strong>.</p>
<pre class="remontti-code"># fail2ban-client status bind9</pre>
<pre class="remontti-code-plain">Status for the jail: bind9
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     1
|  `- File list:        /var/log/named/security.log
`- Actions
   |- Currently banned: 1
   |- Total banned:     1
   `- Banned IP list:   192.168.254.198</pre>
<p>Verificando as regras do firewall nftables também iremos encontra-lo.</p>
<pre class="remontti-code"># nft list ruleset</pre>
<pre class="remontti-code-plain">table inet filter {
        chain input {
                type filter hook input priority filter; policy accept;
        }

        chain forward {
                type filter hook forward priority filter; policy accept;
        }

        chain output {
                type filter hook output priority filter; policy accept;
        }
}
table inet f2b-table {
        set addr-set-bind9 {
                type ipv4_addr
                elements = { 192.168.254.198 }
        }

        chain f2b-chain {
                type filter hook input priority filter - 1; policy accept;
                ip saddr @addr-set-bind9 drop
        }
}</pre>
<p>Para remover o IP basta:</p>
<pre class="remontti-code"># fail2ban-client set bind9 unbanip 192.168.254.198</pre>
<h4>Atualização dos Roots servers</h4>
<p>Não é comum os Roots Servers terem alguma alteração, mas é algo que ao logo desses anos vi acontecer já, então caso um dia precise atualiza-los. Primeiramente renomei o arquivo atual <strong>root.hints</strong></p>
<pre class="remontti-code"># mv /usr/share/dns/root.hints /usr/share/dns/root.hints.`date +%Y%m%d`</pre>
<p>Agora vamos baixar a versão mais recente.</p>
<pre class="remontti-code"># apt install wget 
# wget https://www.internic.net/domain/named.root -O /usr/share/dns/root.hints</pre>
<p>Para visualizar se tem alguma diferença entre os arquivos execute o comando:</p>
<pre class="remontti-code"># diff /usr/share/dns/root.hints /usr/share/dns/root.hints.`date +%Y%m%d`</pre>
<p>Perceba que o que mudou apenas foi a data em <strong>last update</strong>. Resto do arquivo continua igual.</p>
<pre class="remontti-code-plain">11,13c11,13
&lt; ;
&lt; ;       last update:     October 14, 2021
&lt; ;       related version of root zone:     2021101401
---
&gt; ; 
&gt; ;       last update:     January 11, 2021 
&gt; ;       related version of root zone:     2021011101</pre>
<h4>Desativar IPv6 do bind <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h4>
<p>Se por algum motivo precisar desabilitar faça:</p>
<pre class="remontti-code"># vim /etc/default/named</pre>
<pre class="remontti-code-plain">OPTIONS=&quot;-u bind&quot;</pre>
<p>Para</p>
<pre class="remontti-code-plain">OPTIONS=&quot;-4 -u bind&quot;</pre>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<pre class="remontti-code-plain">listen-on-v6 { any; };</pre>
<p>Para</p>
<pre class="remontti-code-plain">listen-on-v6 { none; };</pre>
<p>Reinicie o serviço</p>
<pre class="remontti-code"># systemctl restart bind</pre>
<h4>Configurando um proxy do DNS recursivo</h4>
<p>Está confiuração deixará de usar os Root Serves e irá fazer as consultar em outros servidores DNS, e armazenar no seu cache local.</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<p>Adicione dentro de<strong> options { &#8230;.. } </strong></p>
<pre class="remontti-code-plain">  recursion yes;
  forwarders {
      8.8.8.8;
      1.1.1.1;
      1.0.0.1;
      8.8.4.4;
  };
  forward only;</pre>
<h4>Comando dig</h4>
<p>Algumas coisas que você precisa saber, ex:</p>
<pre class="remontti-code"># dig google.com.br @localhost</pre>
<pre class="remontti-code-plain">; &lt;&lt;&gt;&gt; DiG 9.16.15-Debian &lt;&lt;&gt;&gt; google.com.br @localhost
; &lt;&lt;&gt;&gt; DiG 9.16.15-Debian &lt;&lt;&gt;&gt; google.com.br @localhost
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 49083
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 9

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 595c2c7eb1d62205010000006177f1e2e08119b0ec4133aa (good)
;; QUESTION SECTION:
;google.com.br.                 IN      A

;; ANSWER SECTION:
google.com.br.          300     IN      A       172.217.173.67

;; 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.

;; 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

;; Query time: 1560 msec
;; SERVER: ::1#53(::1)
;; WHEN: ter out 26 09:17:38 -03 2021
;; MSG SIZE  rcvd: 344
</pre>
<p>O resultado retornará algumas seções, porém como configuramos no named.conf.options <strong>minimal-responses yes</strong>, iremos ter apenas 3. Isso deixa seu DNS mais otimizado, além do mais <strong>yes</strong> é o padrão agora na versão 9.16 do bind, caso queira testar experimente setar em: <strong>no</strong>.</p>
<pre class="remontti-code-plain">; &lt;&lt;&gt;&gt; DiG 9.16.15-Debian &lt;&lt;&gt;&gt; google.com.br @localhost
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 13858
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 38763b6c79757a2a010000006177f255c6a6a6d3e4833e77 (good)
;; QUESTION SECTION:
;google.com.br.                 IN      A

;; ANSWER SECTION:
google.com.br.          300     IN      A       172.217.173.67

;; Query time: 1524 msec
;; SERVER: ::1#53(::1)
;; WHEN: ter out 26 09:19:33 -03 2021
;; MSG SIZE  rcvd: 86</pre>
<p><strong>HEADER</strong>: Ela contém diversas informações a respeito da consulta. </p>
<pre class="remontti-code-plain">;; -&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>: que a query é recursiva, que as requisições devem ser encaminhadas a outros servidores até que o servidor autoritativo seja encontrado.<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, econtramos quantos resultados vieram nas sessões.</p>
<pre class="remontti-code-plain">QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 9</pre>
<p><strong>QUESTION </strong><br />
Replica a query que foi enviada para consulta, por padão quando não passa A = IPv4</p>
<pre class="remontti-code-plain">;; QUESTION SECTION:
;google.com.br.                 IN      A</pre>
<p>Outros exemplos:</p>
<pre class="remontti-code"># dig AAAA google.com.br @localhost
# dig MX google.com.br @localhost
# dig NS google.com.br @localhost
# dig TXT google.com.br @localhost
# dig ANY google.com.br @localhost</pre>
<p><strong>ANSWER </strong><br />
Contém a resposta para a consulta que foi enviada.</p>
<pre class="remontti-code-plain">;; 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-plain">;; 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-plain">;; 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>E na ultima sessão entrosamos podemos dizer mais 4 sub sessões:</p>
<pre class="remontti-code-plain">;; Query time: 1560 msec
;; SERVER: ::1#53(::1)
;; WHEN: ter out 26 09:17:38 -03 2021
;; MSG SIZE  rcvd: 344</pre>
<p>- <strong>QUERY TIME</strong>: vai informar o tempo que levou para realizar a consulta solicitada, quando esse tempo retora 0 é porque a consulta ele pegou do cache.<br />
- <strong>SERVER</strong>: Qual servidor ele realizou a consulta<br />
- <strong>WHEN</strong>: dara e hora da consulta + UTC<br />
- <strong>MSG SIZE</strong>: tamanho do pacote</p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Um pouquinho de dig para vocês!</p>
<p>Seu DNS recursivo já está pronto, se seu intuito é <strong>apenas um DNS recursivo</strong> pode pular a parte do autoritativo/reverso, e eu recomendo que você crie uma regra extra no seu nftables (firewall) para fechar a porta 53 externamente, então vou deixar um modelo dessa configuração:<br />
<strong>ISSO SÓ DEVER SER FEITO SE SEU DNS FOR APENAS RECURSIVO! </strong></p>
<pre class="remontti-code"># vim /etc/nftables.conf</pre>
<p>Em <strong>elements</strong>, altere para os seus IPs que terão permissão, o arquivo é quase que auto explicativo. Eu vou aproveitar e criar uma proteção para o SSH e o Zabbix agent </p>
<pre class="remontti-code-plain">#!/usr/sbin/nft -f
  
flush ruleset

table inet filter {

    set acesso-total4 {
        type ipv4_addr
        flags interval
        elements = { 200.200.200.0/26, 200.200.200.128/29 }
    }
    set acesso-total6 {
        type ipv6_addr
        flags interval
        elements = { 2001:db8:f0da::/48 }
    }
    set acesso-dns4 {
        flags interval
        type ipv4_addr
        elements = { 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, 200.200.200.0/22 }
    }
    set acesso-dns6 {
        flags interval
        type ipv6_addr
        elements = { ::1, 2001:db8::/32 }
    }
    chain input {
        type filter hook input priority 0;

        #ip saddr  @acesso-total4 accept
        #ip6 saddr @acesso-total6 accept

        # Permite acesso SSH na porta 22 (alterada para 60002), a 22 eu fecho só de sacanagem, para aparecer filtrada nos scanners
        ip saddr  @acesso-total4 tcp dport 22 counter accept
        ip6 saddr @acesso-total6 tcp dport 22 counter accept
        ip saddr  @acesso-total4 tcp dport 60002 counter accept
        ip6 saddr @acesso-total6 tcp dport 60002 counter accept
        tcp dport 22 counter drop
        tcp dport 60002 counter drop

        # Permite coleta de dados pelo Zabbix-Agent na porta 10050
        ip saddr  @acesso-total4 tcp dport 10050 counter accept
        ip6 saddr @acesso-total6 tcp dport 10050 counter accept
        tcp dport 10050 counter drop   

        # Permite Acesso DNS na porta 53
        ip saddr  @acesso-dns4 udp dport 53 counter accept
        ip saddr  @acesso-dns4 tcp dport 53 counter accept
        ip6 saddr @acesso-dns6 udp dport 53 counter accept
        ip6 saddr @acesso-dns6 tcp dport 53 counter accept
        udp dport 53 counter drop
        tcp dport 53 counter drop

        type filter hook input priority 0;
    }
    chain forward {
        type filter hook forward priority 0;
    }
    chain output {
        type filter hook output priority 0;
    }
}</pre>
<p>Reinicie os serviços</p>
<pre class="remontti-code"># systemctl restart nftables fail2ban</pre>
<h2>Autoritativo</h2>
<p>Valorize os domínios.br registrados no https://registro.br/ o memos financia todo o projeto NIC.BR, que na internet brasileira tem uma papel fundament</p>
<h4>Configuração do Autoritativo (Master)</h4>
<p>Para ficar organizado criaremos alguns diretórios em /var/cache/bind/. Primeiramente a pasta <strong>master-aut</strong> que se é referencia onde vai ficar nossa configuração do DNS Master autoritativo, e dentro desta pasta uma com o nome do nosso domínio no exemplo <strong>remontti.net.br</strong>, assim se você tiver vários dominios criamos uma pasta para cada ficando bem organizado.</p>
<pre class="remontti-code"># mkdir /var/cache/bind/master-aut
# mkdir /var/cache/bind/master-aut/remontti.net.br</pre>
<p>Agora vamos criar um em <strong>/var/cache/bind/master-aut/remontti.net.br/</strong> para que conter toda a configuração do mesmo,  e para ficar objetivo adotei em usar o nome do próprio domínio.hosts ex: <strong>remontti.net.br.hosts</strong></p>
<pre class="remontti-code"># vim /var/cache/bind/master-aut/remontti.net.br/remontti.net.br.hosts</pre>
<p>É importante que o serial (<strong>2021102601</strong>) seja alterado toda vez que for o aruquivo sofrer qualquer alteração, assim o servidor slave saberá que precisa importar novamente as configurações. Ele segue o padrão <strong>[ano-mes-dia-sequencial]</strong> não que seja uma regra.</p>
<pre class="remontti-code-plain">$ORIGIN .
$TTL 86400 ; 1 day
remontti.net.br        IN SOA  ns1.remontti.net.br. hostmaster.remontti.net.br. (
                            2023020101 ; serial
                            14400      ; refresh (4 hours)
                            3600       ; retry (1 hour)
                            2419200    ; expire (4 weeks)
                            300        ; minimum (5 minutes)
                            )
 
                        NS      ns1.remontti.net.br.
                        NS      ns2.remontti.net.br.
 
                        A       45.80.48.4
                        AAAA    2804:f123:bebe:cafe::4

$ORIGIN remontti.net.br.
$TTL 10800   ; 3 hours
 
ns1                     A       45.80.48.2
                        AAAA    2804:f123:bebe:cafe::2
hostmaster              A       45.80.48.2
                        AAAA    2804:f123:bebe:cafe::2

ns2                     A       45.80.48.3
                        AAAA    2804:f123:bebe:cafe::3

www                     A       45.80.48.4
                        AAAA    2804:f123:bebe:cafe::4</pre>
<p>No exemplo estou confiurando apenas alguns subdomínos básicos, como ns1, ns2, www e apontando ele para seus respectivos endereços IPv4 e IPv6, os ipos mais comuns de registros:<br />
- <strong>A</strong>: Associa um nome a um endereço IPv4.<br />
- <strong>AAAA</strong>: Associa um nome a um endereço IPv6.<br />
- <strong>NS</strong>: Name Server. Define quais servidores são os servidores autoritativos do domínio<br />
- <strong>SOA</strong>: Start-Of-Authority. Detalhes da autoridade do domínio. Descreve o servidor que tem autoridade sobre a zona, além do contato técnico, número serial e outros campos.<br />
- <strong>MX</strong>: Mail eXchanger. Define os servidores de e-mail.<br />
- <strong>PTR</strong>: Pointer. Retorna o nome associado a um endereço IP. (reverso)<br />
- <strong>CNAME</strong>: Canonical NAME. Usados para criar apelidos para o domínio.<br />
- <strong>TXT</strong>: TeXT. Usados para descrições, comentários, observações de um domínio. Também usado para definir configurações de SPF.</p>
<p>Vamos criar um diretório para gerar nossas keys do DNSSEC.</p>
<pre class="remontti-code"># mkdir /var/cache/bind/master-aut/remontti.net.br/keys</pre>
<p>Entre no diretório: </p>
<pre class="remontti-code"># cd /var/cache/bind/master-aut/remontti.net.br/keys</pre>
<p>Agora vamos a criação das chaves:</p>
<pre class="remontti-code"># dnssec-keygen -a ECDSAP256SHA256 remontti.net.br</pre>
<pre class="remontti-code-plain">Generating key pair.
Kremontti.net.br.+007+29298</pre>
<pre class="remontti-code"># dnssec-keygen -a ECDSAP256SHA256 -f KSK remontti.net.br</pre>
<pre class="remontti-code-plain">Generating key pair.
Kremontti.net.br.+007+26883</pre>
<p>Os comandos acima irão gerar 4 arquivos com extensões .key e .private</p>
<pre class="remontti-code-plain">├── Kremontti.net.br.+007+26883.key
├── Kremontti.net.br.+007+26883.private
├── Kremontti.net.br.+007+29298.key
└── Kremontti.net.br.+007+29298.private</pre>
<p>Altere as permissões de diretórios/arquivos para que o bind consiga criar as assinaturas de forma automaticamente.</p>
<pre class="remontti-code"># chown bind: /var/cache/bind/master-aut/ -R</pre>
<p>Em <strong>/etc/bind/named.conf.local</strong> "chamaremos" a zona remontti.net.br</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<p>Adicione ao final do arquivo:</p>
<pre class="remontti-code-plain">zone &quot;remontti.net.br&quot; {
        type master;
        file &quot;/var/cache/bind/master-aut/remontti.net.br/remontti.net.br.hosts&quot;;
        key-directory &quot;/var/cache/bind/master-aut/remontti.net.br/keys/&quot;;
        dnssec-policy default;
        inline-signing yes;
        serial-update-method unixtime;
};</pre>
<p>Para facilitar farei um atalho da pasta /var/cache/bind/master-aut em /etc/bind/master-aut.</p>
<p>Se você é da turma do mimi você pode subistiruir `type master` por `type primary` e `type slave` por `type secondary` bem como nome das pastas. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f61b.png" alt="😛" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<pre class="remontti-code"># ln -s /var/cache/bind/master-aut /etc/bind/master-aut</pre>
<p>Reinicie o serviço.</p>
<pre class="remontti-code"># systemctl restart bind9</pre>
<p>Certifique-se que o bind esta rodando sem erros</p>
<pre class="remontti-code"># systemctl status bind9</pre>
<p>Novos arquivos são gerados em /var/cache/bind/master-aut/remontti.net.br/ .jbk .signed .signed.jnl</p>
<pre class="remontti-code-plain">└── remontti.net.br
    ├── keys
    │   ├── Kremontti.net.br.+007+26883.key
    │   ├── Kremontti.net.br.+007+26883.private
    │   ├── Kremontti.net.br.+007+29298.key
    │   └── Kremontti.net.br.+007+29298.private
    ├── remontti.net.br.hosts
    ├── remontti.net.br.hosts.jbk
    ├── remontti.net.br.hosts.signed
    └── remontti.net.br.hosts.signed.jnl</pre>
<p>Precisaremos descobri nossa keytag e o digest que serão informados no registro.br, para isso rode o comando:</p>
<pre class="remontti-code"># (d=remontti.net.br; dig @127.0.0.1 +norecurse &quot;$d&quot;. DNSKEY | dnssec-dsfromkey -f - &quot;$d&quot; | head -1)</pre>
<pre class="remontti-code-plain">remontti.net.br. IN DS 26883 7 2 F8C2518674B22DB06B1EF38E030F9A238E4FA25D0E2FB80357496E92617FF841</pre>
<p>Sendo, <strong>keytag</strong>:<em>26883</em> e o <strong>digest</strong>: <em>F8C2518674B22DB06B1EF38E030F9A238E4FA25D0E2FB80357496E92617FF841</em></p>
<p>Possíveis bloqueios do fail2ban em caso de configuração errada, ao verificação de um domínios que seu servidor não é autoritativo, ou por um erro na configuração, a consulta será interpretada como recursiva, logo o IP de origem será bloqueado pelo fail2ban, e registrado no arquivo de logs /var/log/named/security.log.</p>
<p>Para evitar fail2ban bloquei seus IPs e pricnipalmente do registro.br, pois muitas pessoas acabam configurando errado seu DNS e na hora de verificar acabam sendo bloqueando. Para evitarmos isso vamos incluir seus IPs bem como os do registrobr na variável ignoreip do fail2ban:</p>
<pre class="remontti-code"># vim /etc/fail2ban/jail.conf</pre>
<p>Localize <strong>#ignoreip =</strong>, remova o comentário (#) e inclua os prefixo do registrobr <em>200.160.0.0/20 200.219.148.0/24 2001:12f8:6::/47 2001:12ff::/32</em> bem como altere <em>45.80.48.0/22 2804:f123::/32 </em>para IPs do seu AS</p>
<pre class="remontti-code-plain">ignoreip = 127.0.0.1/8 ::1 200.160.0.0/20 200.219.148.0/24 2001:12f8:6::/47 2001:12ff::/32 45.80.48.0/22 2804:f123::/32</pre>
<p>Reinicie o fail2ban</p>
<pre class="remontti-code"># systemctl restart fail2ban</pre>
<h4>Configuração do Autoritativo (Slave)</h4>
<p>A configuração do slave é bem simples, pois ele irá importar do master todas as configurações.<br />
Para organização vamos seguir o mesmo padrão de diretórios do master</p>
<pre class="remontti-code"># mkdir /var/cache/bind/slave-aut
# mkdir /var/cache/bind/slave-aut/remontti.net.br</pre>
<p>Informamos nossa zona do tipo slave e o IP do nosso servidor master.</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<pre class="remontti-code-plain">zone &quot;remontti.net.br&quot; {
        type slave;
        file &quot;/var/cache/bind/slave-aut/remontti.net.br/remontti.net.br.hosts.signed&quot;;
        masters { 45.80.48.2; };
        allow-notify { 45.80.48.2; };
};</pre>
<p>Alteramos a permissão do diretório para que o bind consiga criar os arquivos.</p>
<pre class="remontti-code"># chown  bind: /var/cache/bind/slave-aut -R</pre>
<p>Mais uma vez farei uma atalho dentro de /etc/bind para facilitar.</p>
<pre class="remontti-code"># ln -s /var/cache/bind/slave-aut /etc/bind/slave-aut</pre>
<p>E reiniciamos o serviço</p>
<pre class="remontti-code"># systemctl restart bind9</pre>
<p>Agora ao verificar o diretório /var/cache/bind/slave-aut/remontti.net.br/ encontraremos nosso arquivo criado automaticamente importado do servidor master.</p>
<pre class="remontti-code"># ls -lhs /var/cache/bind/slave-aut/remontti.net.br</pre>
<h4>Validando seu autoritativo no registro.br</h4>
<p>Vamos verificar se o servidor responde pelo nosso domínio, acesse: <a href="https://registro.br/tecnologia/ferramentas/verificacao-de-dns/" rel="noopener" target="_blank">https://registro.br/tecnologia/ferramentas/verificacao-de-dns/ </a> e preecha o formulário com o seu domínio "remontti.net.br" e o IP do seu servidor e clique em pesquisar.<br />
<strong>RESULTADO</strong></p>
<pre class="remontti-code-plain">DOMÍNIO           : remontti.net.br
DNS               : 45.80.48.2
STATUS            : Autoridade sobre o domínio
VERSÃ             : O2021102601
TEMPO DE RESPOSTA : 19.422 ms</pre>
<p>Se seu servidor DNS estiver respondedo pelo domínio solicitado uma resposta de sucesso ira apacer: <strong>Autoridade sobre o domínio</strong>. Repita o mesmo no seu servidor Slave<br />
Agora vamos fazer o mesmo para validade nosso DNSSEC, acesse: <a href="https://registro.br/tecnologia/ferramentas/verificacao-de-ds/" rel="noopener" target="_blank">https://registro.br/tecnologia/ferramentas/verificacao-de-ds/</a> e preecha o formulário com o seu domínio "remontti.net.br" e o IP do seu servidor e clique em pesquisar.<br />
<strong>RECORDS DS DAS CHAVES ENCONTRADAS</strong></p>
<pre class="remontti-code-plain">KEY TAG	  ALGORITMO	        DIGEST DS
26883	  RSA-SHA-1-NSEC3	F8C2518674B22DB06B1EF38E030F9A238E4FA25D0E2FB80357496E92617FF841</pre>
<p>Se tudo estiver OK, ira receber o resultado da sua KEYTAG e DISGEST bem como encontrado anteriormente.</p>
<p>Seu domínio já está pronto para ser configurado no registro.br, para isso <a href="https://registro.br/login/" rel="noopener" target="_blank">acesse sua conta</a> clique sobre seu domínio e clique em: ALTERAR SERVIDORES DNS, e preecha o formulário, exemplo:<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/DNS.png" alt="" width="846" height="795" class="alignnone size-full wp-image-5971" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/DNS.png 846w, https://blog.remontti.com.br/wp-content/uploads/2021/10/DNS-300x282.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/DNS-768x722.png 768w" sizes="auto, (max-width: 846px) 100vw, 846px" /></p>
<h5>Posso ter mais de um autoritativo no mesmo servidor?</h5>
<p>Sim, inclusive o reverso é um autoritavio, vamos falar dele em seguida. Não existe um limite, o limite é seu hardware.<br />
Veja mais um exemplo para um segundo domínio:</p>
<pre class="remontti-code"># mkdir /var/cache/bind/master-aut/cursodns.com.br
# vim /var/cache/bind/master-aut/cursodns.com.br/cursodns.com.br.hosts</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">$ORIGIN .
$TTL 86400 ; 1 day
cursodns.com.br           IN SOA  ns1.cursodns.com.br. hostmaster.cursodns.com.br. (
                            2023020101 ; serial
                            14400      ; refresh (4 hours)
                            3600       ; retry   (1 hour)
                            2419200    ; expire  (4 weeks)
                            300        ; minimum (5 minutes)
                            )
 
                        NS      ns1.cursodns.com.br.
                        NS      ns2.cursodns.com.br.
 
                        A       45.80.48.4
                        AAAA    2804:f123:bebe:cafe::4
                        MX      10 mail.cursodns.com.br.
                        TXT     &quot;v=spf1 a mx -all&quot;
                        SPF     &quot;v=spf1 a mx -all&quot;

$ORIGIN cursodns.com.br.
_dmarc                  TXT &quot;v=DMARC1; p=none&quot;
_domainkey              TXT &quot;t=y; o=~;&quot;

$ORIGIN _domainkey.cursodns.com.br.
mail                    TXT &quot;v=DKIM1; k=rsa; p=6B4EDqoi5l64qyxnenKx56IOIjPAnj350mq&quot;

$ORIGIN cursodns.com.br.
$TTL 10800   ; 3 hours
 
ns1                     A       45.80.48.2
                        AAAA    2804:f123:bebe:cafe::2
hostmaster              A       45.80.48.2
                        AAAA    2804:f123:bebe:cafe::2

ns2                     A       45.80.48.3
                        AAAA    2804:f123:bebe:cafe::3

www                     A       45.80.48.4
                        AAAA    2804:f123:bebe:cafe::4
ftp                     A       45.80.48.4
                        AAAA    2804:f123:bebe:cafe::4
imap                    A       45.80.48.4
                        AAAA    2804:f123:bebe:cafe::4
pop                     A       45.80.48.4
                        AAAA    2804:f123:bebe:cafe::4
smtp                    A       45.80.48.4
                        AAAA    2804:f123:bebe:cafe::4
mail                    A       45.80.48.4
                        AAAA    2804:f123:bebe:cafe::4</pre>
<p>Vamos criar um diretório para gerar nossas keys do DNSSEC.</p>
<pre class="remontti-code"># mkdir /var/cache/bind/master-aut/cursodns.com.br/keys</pre>
<p>Entre no diretório: </p>
<pre class="remontti-code"># cd /var/cache/bind/master-aut/cursodns.com.br/keys</pre>
<p>Agora vamos a criação das chaves:</p>
<pre class="remontti-code"># dnssec-keygen -a ECDSAP256SHA256 cursodns.com.br</pre>
<pre class="remontti-code-plain">Generating key pair.
Kcursodns.com.br.+007+00558</pre>
<pre class="remontti-code"># dnssec-keygen -a ECDSAP256SHA256 -f KSK cursodns.com.br</pre>
<pre class="remontti-code-plain">Generating key pair.
Kcursodns.com.br.+007+46491
</pre>
<p>Altere as permissões de diretórios/arquivos para que o bind consiga criar as assinaturas de forma automaticamente.</p>
<pre class="remontti-code"># chown bind: /var/cache/bind/master-aut/ -R</pre>
<p>Adicione a zona cursodns.com.br em named.conf.local</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<p>Adicione ao final do arquivo:</p>
<pre class="remontti-code-plain">zone &quot;cursodns.com.br&quot; {
        type master;
        file &quot;/var/cache/bind/master-aut/cursodns.com.br/cursodns.com.br.hosts&quot;;
        key-directory &quot;/var/cache/bind/master-aut/cursodns.com.br/keys/&quot;;
        dnssec-policy default;
        inline-signing yes;
        serial-update-method unixtime;
};</pre>
<p>Se desejar validar seu arquivo antes de reiniciar o serviço:</p>
<pre class="remontti-code"># cd /var/cache/bind/master-aut/
# named-checkzone cursodns.com.br cursodns.com.br.hosts</pre>
<p>Tudo ok, altere as permissões para não ter erro, e reinicie o bind:</p>
<pre class="remontti-code"># chown  bind: /var/cache/bind/master-aut -R
# systemctl restart bind9</pre>
<p><strong>Para o Slave</strong></p>
<pre class="remontti-code"># mkdir /var/cache/bind/slave-aut/cursodns.com.br
# vim /etc/bind/named.conf.local</pre>
<pre class="remontti-code-plain">zone &quot;cursodns.com.br&quot; {
        type slave;
        file &quot;/var/cache/bind/slave-aut/cursodns.com.br/cursodns.com.br.hosts.signed&quot;;
        masters { 45.80.48.2; };
        allow-notify { 45.80.48.2; };
};</pre>
<pre class="remontti-code"># chown  bind: /var/cache/bind/slave-aut -R
# systemctl restart bind9</pre>
<p>Posso ter domínios "fakes"?<br />
Sim, basta criar uma zona. Mas juridicamente você pode ter dor de cabeça. Recomendo a leitura do <a href="https://blog.remontti.com.br/3692" rel="noopener" target="_blank">DNS Response Policy Zone (RPZ)</a> para que retornem resultados modificados em grande escala de uma foma mais eficaz. Alguns administradores podem usar o DNS RPZ para impedir acessos indesejados, normalmente é usado em empresas para bloquear por exemplo hosts infectados por malwares, sites pornográficos, entre outros casos, bloqueando a resolução de nomes. Segue um modelo simples e rápido para montar seu RPZ.</p>
<pre class="remontti-code"># vim /var/cache/bind/master-aut/cursodns.com.br/cursodns.com.br.hosts</pre>
<p>Adicione mais uma entrada em para um novo subdominio "umbrella" apontando para um servidor, esse pode está rodando um serviço web qual pode ter uma tela com um aviso.</p>
<pre class="remontti-code-plain">//...
umbrella                        A       45.80.48.5
                                AAAA    2804:f123:bebe:cafe::5
//...</pre>
<p>Adicione uma nova zona chamada <strong>rpz.zone</strong></p>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<pre class="remontti-code-plain">zone &quot;rpz.zone&quot; {
    type master;
    file &quot;/var/cache/bind/rpz/db.rpz.zone&quot;;
    allow-query { none; };
};</pre>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<p>Dentro de options { ... } adcione: </p>
<pre class="remontti-code-plain">options {
//...
    response-policy {
      zone &quot;rpz.zone&quot; policy CNAME umbrella.cursodns.com.br;
    };
//...</pre>
<p>};<br />
Criaremos o diretório rpz, bem como o arquivos de hosts</p>
<pre class="remontti-code"># mkdir /var/cache/bind/rpz/
# ln -s /var/cache/bind/rpz/ /etc/bind/rpz
# vim /var/cache/bind/rpz/db.rpz.zone</pre>
<pre class="remontti-code-plain">$TTL 1H
@       IN      SOA LOCALHOST. umbrella.cursodns.com.br. (
                2023020101      ; Serial  
                1h              ; Refresh
                15m             ; Retry
                30d             ; Expire 
                2h              ; Negative Cache TTL
        )
        NS  umbrella.cursodns.com.br.
 
xvideos.com     IN CNAME .
*.xvideos       IN CNAME .
redtube.com     IN CNAME .
*.redtube.com   IN CNAME .
pornhub.com     IN CNAME .
*.pornhub.com   IN CNAME .</pre>
<p>Sendo que para cada dominio que você deseja apontar para resolver o mesmo IP do nosso umbrella.cursodns.com.br siga este padrão:</p>
<pre class="remontti-code-plain">
domino.com     IN CNAME .
*.domino.com       IN CNAME .</pre>
<p>Assim qualquer subidominio (*).domino.com seja traduzido sempre para o mesmo IP.</p>
<p>Altere as permissões e reinicie o serviço</p>
<pre class="remontti-code"># chown bind: /var/cache/bind/rpz/ -R
# systemctl restart bind9</pre>
<p>Agora faça um teste para ver o que seu servidor ira traduzir:</p>
<pre class="remontti-code"># dig xvideos.com @localhost</pre>
<pre class="remontti-code-plain">; &lt;&lt;&gt;&gt; DiG 9.16.15-Debian &lt;&lt;&gt;&gt; xvideos.com @localhost
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 1040
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: a060f744b32f2a4f01000000617842817ffcfff0a6b99fff (good)
;; QUESTION SECTION:
;xvideos.com.                   IN      A

;; ANSWER SECTION:
xvideos.com.            5       IN      CNAME   umbrella.cursodns.com.br.
umbrella.cursodns.com.br. 10800 IN      A       45.80.48.5

;; ADDITIONAL SECTION:
rpz.zone.               1       IN      SOA     LOCALHOST. umbrella.cursodns.com.br. 2020062400 3600 900 2592000 7200

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: ter out 26 15:01:37 -03 2021
;; MSG SIZE  rcvd: 175</pre>
<pre class="remontti-code"># dig qqrcoisa.xvideos.com @localhost
# dig pornhub.com @localhost
# dig www.pornhub.com @localhost
# dig redtube.com @localhost</pre>
<pre class="remontti-code-plain"></pre>
<p>Uma boa list de hosts você <a href="https://github.com/StevenBlack/hosts" rel="noopener" target="_blank">pode encontrar aqui</a>.<br />
<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;" /> Não esquece de mandar meu presente de natal!</p>
<h3>Reverso DNS Master - Para prefixos maiores ou igual a /24.</h3>
<p>Obs: Para fazer a Delegações de DNS reverso do seu bloco, é importante que você já tenha configurado no registro.br seu DNS autoritativo.</p>
<p>Para ficar organizado criaremos a pasta <strong>master-rev</strong> para salvar todos nossos arquivos</p>
<pre class="remontti-code"># mkdir /var/cache/bind/master-rev</pre>
<p>Para nosso cenários vou usar os prefixos 45.80.48.0/22 e 2804:f123::/32. O bloco 45.80.48.0/22 será necessário quebrar em 4 arquivos uma para cada prefixo /24 qual teremos nossos 1024 nome de hosts (IPs). </p>
<p>Lembra que anteriormente comentei que o reverso não passa de um domínio autoritativo? Então é isso mesmo, a forma de configuração é a mesma, porem já temos o nosso domínios para IPv4<strong> x.x.x.in-addr.arpa</strong> e <strong>x.x.x.x.x.x.x.x.ip6.arpa</strong> para IPv6.</p>
<p>Primeiro arquivo /24 farei com o nome de <strong>45.80.48.rev</strong>, poderia ser qualquer nome, mas assim fica bem sugestivo.</p>
<pre class="remontti-code"># vim /var/cache/bind/master-rev/45.80.48.rev</pre>
<p>Preste atenção em 48.80.45.in-addr.arpa. essa linha ela deve ser alterada com o inverso do seu IP, de trás para frente.<br />
Outra coisa importante é o serial (2021102601) ele está presente em todos os arquivos e deve ser alterado toda vez que for alterado. Ele segue o padrão [ano-mes-dia-sequencial]. É fundamental altera-lo para que o servidor slave copie sempre que tiver uma alteração.</p>
<p>Neste arquivo darei nomes personalizados apenas para o <strong>ns1 e ns2</strong> o resto usarei o GENERATE para gerar de forma automatica todos os mais de mil nomes, sengindo o padrão <strong>45-80-50-x.remontti.net.br.</strong></p>
<pre class="remontti-code-plain">$ORIGIN .
$TTL 86400      ; 1 day
48.80.45.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
                    2023020101 ; serial
                    14400      ; refresh (4 hours)
                    3600       ; retry (1 hour)
                    2419200    ; expire (4 weeks)
                    300        ; minimum (5 minutes)
                    )
                NS      ns1.remontti.net.br.
                NS      ns2.remontti.net.br.

$ORIGIN 48.80.45.in-addr.arpa.
2         PTR     ns1.remontti.net.br.
3         PTR     ns2.remontti.net.br.

$ORIGIN 48.80.45.in-addr.arpa.
$GENERATE 0-1     $  PTR  45-80-48-$.remontti.net.br.
$GENERATE 4-255   $  PTR  45-80-48-$.remontti.net.br.</pre>
<p>Proximo /24</p>
<pre class="remontti-code"># vim /var/cache/bind/master-rev/45.80.49.rev</pre>
<pre class="remontti-code-plain">$ORIGIN .
$TTL 86400      ; 1 day
49.80.45.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
                    2023020101 ; serial
                    14400      ; refresh (4 hours)
                    3600       ; retry (1 hour)
                    2419200    ; expire (4 weeks)
                    300        ; minimum (5 minutes)
                    )
                NS      ns1.remontti.net.br.
                NS      ns2.remontti.net.br.

$ORIGIN 49.80.45.in-addr.arpa.
$GENERATE 0-255 $ PTR 45-80-49-$.remontti.net.br.</pre>
<pre class="remontti-code"># vim /var/cache/bind/master-rev/45.80.50.rev</pre>
<pre class="remontti-code-plain">$ORIGIN .
$TTL 86400      ; 1 day
50.80.45.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
                    2023020101 ; serial
                    14400      ; refresh (4 hours)
                    3600       ; retry (1 hour)
                    2419200    ; expire (4 weeks)
                    300        ; minimum (5 minutes)
                    )
                NS      ns1.remontti.net.br.
                NS      ns2.remontti.net.br.

$ORIGIN 50.80.45.in-addr.arpa.
$GENERATE 0-255 $ PTR 45-80-50-$.remontti.net.br.</pre>
<pre class="remontti-code"># vim /var/cache/bind/master-rev/45.80.51.rev</pre>
<pre class="remontti-code-plain">$ORIGIN .
$TTL 86400      ; 1 day
51.80.45.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
                    2023020101 ; serial
                    14400      ; refresh (4 hours)
                    3600       ; retry (1 hour)
                    2419200    ; expire (4 weeks)
                    300        ; minimum (5 minutes)
                    )
                NS      ns1.remontti.net.br.
                NS      ns2.remontti.net.br.

$ORIGIN 51.80.45.in-addr.arpa.
$GENERATE 0-255 $ PTR 45-80-51-$.remontti.net.br.</pre>
<pre class="remontti-code"># vim /var/cache/bind/master-rev/2804.f123.rev</pre>
<p>Antenção no<strong> 3.2.1.f.4.0.8.2.ip6.arpa </strong> o site <a href="http://rdns6.com/hostRecord" rel="noopener" target="_blank">http://rdns6.com/hostRecord </a>pode ser bem útil para gerar seus PTRs.</p>
<pre class="remontti-code-plain">$ORIGIN .
$TTL 3600       ; 1 hour
3.2.1.f.4.0.8.2.ip6.arpa IN SOA ns1.remontti.net.br.3.2.1.f.4.0.8.2.ip6.arpa. hostmaster.remontti.net.br.3.2.1.f.4.0.8.2.ip6.arpa. (
                    2023020101 ; serial
                    14400      ; refresh (4 hours)
                    3600       ; retry (1 hour)
                    2419200    ; expire (4 weeks)
                    300        ; minimum (5 minutes)
                    )
            NS      ns1.remontti.net.br.
            NS      ns2.remontti.net.br.

2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.f.a.c.e.b.e.b.3.2.1.f.4.0.8.2.ip6.arpa.   PTR     ns1.remontti.net.br.
3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.f.a.c.e.b.e.b.3.2.1.f.4.0.8.2.ip6.arpa.   PTR     ns2.remontti.net.br.</pre>
<p>Ajustamos as permissões: </p>
<pre class="remontti-code"># chown bind: /var/cache/bind/master-rev/ -R</pre>
<p>Criamos uma atalho para facilitar:</p>
<pre class="remontti-code"># ln -s /var/cache/bind/master-rev/ /etc/bind/master-rev</pre>
<p>Agora nós precisamos informar nossas zonas reversas no named.conf.local, como estamos configurando nosso servidor master essas zonas serão do tipo (type) master. </p>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<p>Adicione ao final do arquivo:</p>
<pre class="remontti-code-plain">zone &quot;48.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.48.rev&quot;;
};
 
zone &quot;49.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.49.rev&quot;;
};
 
zone &quot;50.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.50.rev&quot;;
};
 
zone &quot;51.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.51.rev&quot;;
};

zone &quot;3.2.1.f.4.0.8.2.ip6.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/2804.f123.rev&quot;;
};</pre>
<p>Reinicie o serviço e verifique se o mesmo subiu sem erros.</p>
<pre class="remontti-code"># systemctl restart bind9
# systemctl status bind9</pre>
<p>Checando se nosso IP reverso está resolvendo os nomes setados, com o comando `dig -x IP @localhost +short`</p>
<pre class="remontti-code"># dig -x 45.80.48.0 @localhost +short
45-80-48-0.remontti.net.br.

# dig -x 45.80.48.255 @localhost +short
45-80-48-255.remontti.net.br.

# dig -x 45.80.48.2 @localhost +short
ns1.remontti.net.br.

# dig -x 45.80.48.3 @localhost +short
ns2.remontti.net.br.

# dig -x 45.80.49.0 @localhost +short
45-80-49-0.remontti.net.br.

# dig -x 45.80.49.255 @localhost +short
45-80-49-255.remontti.net.br.

# dig -x 45.80.50.0 @localhost +short
45-80-50-0.remontti.net.br.

# dig -x 45.80.50.255 @localhost +short
45-80-50-255.remontti.net.br.
 
# dig -x 45.80.51.0 @localhost +short
45-80-51-0.remontti.net.br.

# dig -x 45.80.51.255 @localhost +short
45-80-51-255.remontti.net.br.

# dig -x 2804:f123:bebe:cafe::2 @localhost +short
ns1.remontti.net.br.

# dig -x 2804:f123:bebe:cafe::3 @localhost +short
ns2.remontti.net.br.</pre>
<p>Como criamos nomes aos 1024 hosts/IPs (<em>x-x-x-x.remontti.net.br</em>) será necessário apontar cada nome desses no arquivo de autoritativo do domínio <em>remontti.net.br</em> para cada nome um IP. Para isso vamos voltar as configurações do domínio autoritativo que já configurado. Lembre-se de alterar o serial! </p>
<pre class="remontti-code"># host 45-80-50-0.remontti.net.br.</pre>
<p>Host 45-80-50-0.remontti.net.br. not found: 3(NXDOMAIN)<br />
Só para relembrar: <strong>NXDOMAIN</strong>: Significa que o domínio pesquisado não existe.</p>
<p>Para resolver isso então vamos criar todos nosso nomes.<br />
vamos adicionar ao final do arquivo /var/cache/bind/master-aut/remontti.net.br/remontti.net.br.hosts</p>
<pre class="remontti-code-plain">$ORIGIN remontti.net.br.
$GENERATE 0-1    45-80-48-$   A   45.80.48.$
$GENERATE 4-255  45-80-48-$   A   45.80.48.$
$GENERATE 0-255  45-80-49-$   A   45.80.49.$
$GENERATE 0-255  45-80-50-$   A   45.80.50.$
$GENERATE 0-255  45-80-51-$   A   45.80.51.$</pre>
<pre class="remontti-code"># vim /var/cache/bind/master-aut/remontti.net.br/remontti.net.br.hosts</pre>
<p>Ficando:</p>
<pre class="remontti-code-plain">$ORIGIN .
$TTL 86400 ; 1 day
remontti.net.br        IN SOA  ns1.remontti.net.br. hostmaster.remontti.net.br. (
                            2023020101 ; serial
                            14400      ; refresh (4 hours)
                            3600       ; retry (1 hour)
                            2419200    ; expire (4 weeks)
                            300        ; minimum (5 minutes)
                            )
 
                        NS      ns1.remontti.net.br.
                        NS      ns2.remontti.net.br.
 
                        A       45.80.48.4
                        AAAA    2804:f123:bebe:cafe::4

$ORIGIN remontti.net.br.
$TTL 10800   ; 3 hours
 
ns1                     A       45.80.48.2
                        AAAA    2804:f123:bebe:cafe::2
hostmaster              A       45.80.48.2
                        AAAA    2804:f123:bebe:cafe::2
ns2                     A       45.80.48.3
                        AAAA    2804:f123:bebe:cafe::3
www                     A       45.80.48.4
                        AAAA    2804:f123:bebe:cafe::4

$ORIGIN remontti.net.br.
$GENERATE 0-1    45-80-48-$   A   45.80.48.$
$GENERATE 4-255  45-80-48-$   A   45.80.48.$
$GENERATE 0-255  45-80-49-$   A   45.80.49.$
$GENERATE 0-255  45-80-50-$   A   45.80.50.$
$GENERATE 0-255  45-80-51-$   A   45.80.51.$</pre>
<p>Autoritativo ajustado, reinicie o serviço e verifique se o mesmo subiu sem erros.</p>
<pre class="remontti-code"># systemctl restart bind9
# systemctl status bind9</pre>
<p>Agora ao consultar nosso nomes temos uma resposta dizendo qual nosso endereço ip</p>
<pre class="remontti-code"># host 45-80-48-0.remontti.net.br.
45-80-48-0.remontti.net.br has address 45.80.48.0
 
# host 45-80-49-0.remontti.net.br.
45-80-49-0.remontti.net.br has address 45.80.49.0

# host 45-80-50-0.remontti.net.br.
45-80-50-0.remontti.net.br has address 45.80.50.0

# host 45-80-51-0.remontti.net.br.
45-80-51-0.remontti.net.br has address 45.80.51.0

# host ns1.remontti.net.br.
ns1.remontti.net.br has address 45.80.48.2
ns1.remontti.net.br has IPv6 address 2804:f123:bebe:cafe::2

# host ns2.remontti.net.br.
ns2.remontti.net.br has address 45.80.48.3
ns2.remontti.net.br has IPv6 address 2804:f123:bebe:cafe::3</pre>
<h5>Para o servidor Slave</h5>
<p>Crie o diretório onde irão ficar os arquivos e dê permissão</p>
<pre class="remontti-code"># mkdir /var/cache/bind/slave-rev
# chown bind: /var/cache/bind/slave-rev -R</pre>
<p>Em seguiga crie as zonas no arquivo named.conf.local, que serão do tipo (slave) e apontaremos o IP do DNS Master para que o servidor slave faça a transferência.</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<p>Adicione ao final:</p>
<pre class="remontti-code-plain">zone &quot;48.80.45.in-addr.arpa&quot; {
        type slave;
        file &quot;/var/cache/bind/slave-rev/45.80.48.rev&quot;;
        masters { 45.80.48.2; };
        allow-notify { 45.80.48.2; };
};
 
zone &quot;49.80.45.in-addr.arpa&quot; {
        type slave;
        file &quot;/var/cache/bind/slave-rev/45.80.49.rev&quot;;
        masters { 45.80.48.2; };
        allow-notify { 45.80.48.2; };
};
 
zone &quot;50.80.45.in-addr.arpa&quot; {
        type slave;
        file &quot;/var/cache/bind/slave-rev/45.80.50.rev&quot;;
        masters { 45.80.48.2; };
        allow-notify { 45.80.48.2; };
};
 
zone &quot;51.80.45.in-addr.arpa&quot; {
        type slave;
        file &quot;/var/cache/bind/slave-rev/45.80.51.rev&quot;;
        masters { 45.80.48.2; };
        allow-notify { 45.80.48.2; };
};

zone &quot;3.2.1.f.4.0.8.2.ip6.arpa&quot; {
        type slave;
        file &quot;/var/cache/bind/slave-rev/2804.f123.rev&quot;;
        masters { 45.80.48.2; };
        allow-notify { 45.80.48.2; };
};</pre>
<p>Crio o atalho, reinico o serviço e verifico se o mesmo subiu sem erros, em seguida olho se os arquivos foram criando nas pasta.</p>
<pre class="remontti-code"># ln -s /var/cache/bind/slave-rev /etc/bind/slave-rev
# systemctl restart bind9
# systemctl status bind9
# ls -lh /var/cache/bind/slave-rev/ </pre>
<p><strong>Validando seu reverso no registro.br</strong> <a href="https://registro.br/tecnologia/ferramentas/verificacao-de-dns/" rel="noopener" target="_blank">https://registro.br/tecnologia/ferramentas/verificacao-de-dns/ </a><br />
Vamos verificar pelos domínos .arpa</p>
<pre class="remontti-code-plain">48.80.45.in-addr.arpa
49.80.45.in-addr.arpa
50.80.45.in-addr.arpa
51.80.45.in-addr.arpa
3.2.1.f.4.0.8.2.ip6.arpa</pre>
<p><strong>RESULTADOS</strong></p>
<pre class="remontti-code-plain">DOMÍNIO            : 48.80.45.in-addr.arpa
DNS                : 45.80.48.2
STATUS             : Autoridade sobre o domínio
VERSÃ              : O2021102602
TEMPO DE RESPOSTA  : 23.990 ms

DOMÍNIO            : 49.80.45.in-addr.arpa
DNS                : 45.80.48.2
STATUS             : Autoridade sobre o domínio
VERSÃ              : O2021102602
TEMPO DE RESPOSTA  : 23.990 ms

DOMÍNIO            : 50.80.45.in-addr.arpa
DNS                : 45.80.48.2
STATUS             : Autoridade sobre o domínio
VERSÃ              : O2021102602
TEMPO DE RESPOSTA  : 23.990 ms

DOMÍNIO            : 51.80.45.in-addr.arpa
DNS                : 45.80.48.2
STATUS             : Autoridade sobre o domínio
VERSÃ              : O2021102602
TEMPO DE RESPOSTA  : 23.990 ms

DOMÍNIO            : 3.2.1.f.4.0.8.2.ip6.arpa
DNS                : 45.80.48.2
STATUS             : Autoridade sobre o domínio
VERSÃ              : O2021102602
TEMPO DE RESPOSTA  : 23.990 ms</pre>
<p>Se tudo estiver certo você terá <strong>Autoridade sobre o domínio</strong>, repita o mesmo no seu para o IP do servidor Slave.</p>
<p>Seu reverso está pronto para ser configurado no registro.br, <a href="https://registro.br/login/" rel="noopener" target="_blank">acesse sua conta</a> clique em <strong>NUMERAÇÃO</strong> em seguira sobre seu prefixo exemplo <strong>45.80.48.0/22</strong>, clique no "quadro azul" e clique em <strong>Configurar DNS</strong>, preencha o formulário <strong>Delegação DNS - 45.80.48.0/22</strong>  informado o <strong>Servidor 1</strong>: ns1.remontti.net.br e <strong>Servidor 2</strong>: ns2.remontti.net.br. Lembrando que o DNS do autoritativo "remontti.net.br" deve estar com os subdominios ns1 e ns2 apontando para o IP do seu servidor DNS, e o mesmo já deve ter propagado, se você tem acabou de alterar os DNS do remontti.net.br aguarde um tempo (até 24h) para fazer a configuração do reverso.</p>
<p><strong>Dúvida frequente:</strong><br />
- <em>Posso ter reversos de diferentes blocos usando o mesmo domínio autoritativo?</em><br />
Sim, como também pode para outros domínios, inclusive mesclados. </p>
<p>- É possível configurar o DNSSEC para os reversos? Sim basta seguir o mesmo padrão que usamos no exemplo com nosso propío domínio, lembrado que "não existe reverso" tudo é um dominio autoritativo que já existe chamado de xxxxxxxx.in-addr.arpa e xxxxxxx.ip6.arpa, para configurar no registro br é muito simples, basta você realizar a configuração do DNSSEC em cima de cada /24 seu e ir no painel do registro e clicar em DNSSEC e salvar, ele ira identificar sua configuração. </p>
<p>Um ótimo site para verificar seu DNSSEC é o <a href="https://dnsviz.net/" rel="noopener" target="_blank">https://dnsviz.net/</a></p>
<h4>Como configurar o reverso para prefixos menores que /24</h4>
<p>Vamos supor que você dono de um /22  e vai repassar um prefixo /28 para um provedor sem AS ou uma empresa que é seu cliente, e o mesmo deseja ter seu reverso respondendo em seus servidores DNS (<a href="https://datatracker.ietf.org/doc/html/rfc2317" rel="noopener" target="_blank">RFC2317</a>).</p>
<p>Primeiramente faça a delegação no registro.br do /28 para o CNPJ/Domínios do de seu cliente, <a href="https://registro.br/login/" rel="noopener" target="_blank">acesse sua conta</a> clique em <strong>NUMERAÇÃO</strong> em seguira sobre seu prefixo exemplo <strong>45.80.48.0/22</strong>, clique no "quadro azul" e clique em <strong>Expandir</strong> até chegar no prefixo /28, clieque sobre o quadro do prefixo desejado e em seguida em <strong>Configurar designação</strong> e preecha o formulário com o CNPJ/Domínios do seu cliente, se o mesmo não possuir solicite que faça seu cadastro.</p>
<p>Se ficar em dúvidas recomendo que assista: https://www.youtube.com/watch?v=VIa1dHtmQ4U DNS Reverso (~20min fala sobre isso)<br />
No exemplo vamos supor que o bloco seja o 45.80.49.64/28, como o mesmo fica no arquivo 45.80.49.rev vamos edita-lo.</p>
<pre class="remontti-code"># vim /var/cache/bind/master-rev/45.80.49.rev</pre>
<p>Iremos quebrar nosso GENERETE para pular os IPs finais 64 a 79, e vamos apontar ele para os DNS do cliente, logo é claro que ele precisa ter um domínio já configurado, e nesse DNS ele apontar exemplo ns1 e ns2 para o IP do servidor que ele estará fazendo a configuração. Explico já já como faz o lado dele.</p>
<pre class="remontti-code-plain">$ORIGIN .
$TTL 86400      ; 1 day
51.80.45.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
                    2023020101 ; serial
                    14400      ; refresh (4 hours)
                    3600       ; retry (1 hour)
                    2419200    ; expire (4 weeks)
                    300        ; minimum (5 minutes)
                    )
                NS      ns1.remontti.net.br.
                NS      ns2.remontti.net.br.

$ORIGIN 49.80.45.in-addr.arpa.
$GENERATE 0-63 $ PTR 45-80-51-$.remontti.net.br.

; Cliente delegado
;  &lt;&lt;64-79&gt;&gt; /28
; Aponte para os DNS do Servidor do José 
64/28     NS     ns1.provedordojose.com.br. 
64/28     NS     ns2.provedordojose.com.br. 
; 
64      CNAME    64.45/28.49.80.45.in-addr.arpa. 
65      CNAME    65.45/28.49.80.45.in-addr.arpa. 
66      CNAME    66.45/28.49.80.45.in-addr.arpa. 
67      CNAME    67.45/28.49.80.45.in-addr.arpa. 
68      CNAME    68.45/28.49.80.45.in-addr.arpa. 
69      CNAME    69.45/28.49.80.45.in-addr.arpa. 
70      CNAME    70.45/28.49.80.45.in-addr.arpa. 
71      CNAME    71.45/28.49.80.45.in-addr.arpa. 
72      CNAME    72.45/28.49.80.45.in-addr.arpa. 
73      CNAME    73.45/28.49.80.45.in-addr.arpa. 
74      CNAME    74.45/28.49.80.45.in-addr.arpa. 
75      CNAME    75.45/28.49.80.45.in-addr.arpa. 
76      CNAME    76.45/28.49.80.45.in-addr.arpa. 
77      CNAME    77.45/28.49.80.45.in-addr.arpa. 
78      CNAME    78.45/28.49.80.45.in-addr.arpa. 
79      CNAME    79.45/28.49.80.45.in-addr.arpa.

$ORIGIN 51.80.45.in-addr.arpa.
$GENERATE 80-255 $ PTR 45-80-51-$.remontti.net.br.</pre>
<p>Reinicie o serviço e verifique o mesmo</p>
<pre class="remontti-code"># systemctl restart bind9
# systemctl status bind9</pre>
<h5>Lado do "provedor do Jose"</h5>
<p>Como estamos falando de um outro provedor, é quase certo que ele fará seu DNS: Recursivo, autoritativo e reverso. Então faça a instalação do bind e todos os procedimentos das configurações de recursivo e autoritativo sobre o domínio “provedordojose.com.br”, porém a configuração do reverso irá mudar um pouco, ficando:</p>
<p><strong>Autoritativo</strong></p>
<pre class="remontti-code"># vim /var/cache/bind/master-aut/provedordojose.com/provedordojose.com.br.hosts</pre>
<pre class="remontti-code-plain">$ORIGIN .
$TTL 86400 ; 1 day
provedordojose.com.br        IN SOA  ns1.provedordojose.com.br. hostmaster.provedordojose.com.br. (
                            2023020101 ; serial
                            14400      ; refresh (4 hours)
                            3600       ; retry (1 hour)
                            2419200    ; expire (4 weeks)
                            300        ; minimum (5 minutes)
                            )

                        NS      ns1.provedordojose.com.br.
                        NS      ns2.provedordojose.com.br.

                        A       45.80.49.67

$ORIGIN provedordojose.com.br.
$TTL 10800   ; 3 hours

ns1                     A       45.80.49.66
hostmaster              A       45.80.49.66

ns2                     A       45.80.49.67

www                     A       45.80.49.67

$ORIGIN provedordojose.com.br.
$GENERATE 64-65  45-80-49-$    A   45.80.49.$

$ORIGIN provedordojose.com.br.
$GENERATE 68-79  45-80-49-$    A   45.80.49.$</pre>
<p><strong>Reverso</strong></p>
<pre class="remontti-code"># vim /var/cache/bind/master-rev/45.80.49.64-79.rev</pre>
<pre class="remontti-code-plain">$TTL 1h
@               IN      SOA     ns1.provedordojose.com.br. root.provedordojose.com.br. (
                    2020050101 ; serial
                    10800      ; refresh (3 hours)
                    3600       ; retry (1 hour)
                    2419200    ; expire (4 weeks)
                    300        ; minimum (5 minutes)
                    )

        IN      NS      ns1.provedordojose.com.br.
        IN      NS      ns2.provedordojose.com.br.

$ORIGIN 64/28.49.80.45.in-addr.arpa.
64      IN      PTR     45-80-49-64.provedordojose.com.br.
65      IN      PTR     45-80-49-65.provedordojose.com.br.
66      IN      PTR     ns1.provedordojose.com.br.
67      IN      PTR     ns2.provedordojose.com.br.
68      IN      PTR     45-80-49-68.provedordojose.com.br.
69      IN      PTR     45-80-49-69.provedordojose.com.br.
70      IN      PTR     45-80-49-70.provedordojose.com.br.
71      IN      PTR     45-80-49-71.provedordojose.com.br.
72      IN      PTR     45-80-49-72.provedordojose.com.br.
73      IN      PTR     45-80-49-73.provedordojose.com.br.
74      IN      PTR     45-80-49-74.provedordojose.com.br.
75      IN      PTR     45-80-49-75.provedordojose.com.br.
76      IN      PTR     45-80-49-76.provedordojose.com.br.
77      IN      PTR     45-80-49-77.provedordojose.com.br.
78      IN      PTR     45-80-49-78.provedordojose.com.br.
79      IN      PTR     45-80-49-79.provedordojose.com.br.</pre>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<pre class="remontti-code-plain">zone &quot;provedordojose.com.br&quot; {
        type master;
        file &quot;/var/cache/bind/master-aut/provedordojose.com.br/provedordojose.com.br.hosts&quot;;
        key-directory &quot;/var/cache/bind/master-aut/rprovedordojose.com.br/keys/&quot;;
        dnssec-policy default;
        inline-signing yes;
        serial-update-method unixtime;
};

zone &quot;64/28.49.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.49.64-79.rev&quot;;
};</pre>
<p>Reinicie o serviço</p>
<pre class="remontti-code"># systemctl restart bind9
# systemctl status bind9</pre>
<h5>Situação de reverso para cliente final sem ele ter servidor de DNS</h5>
<p>Meu cliente quer que eu aponto os nomes dos IPs reverso para o seu domínio, posso?<br />
Sim, pode! Em muitos casos de clientes corporativos que tem seu próprio servidor de e-mail é possível que o mesmo peça para fazer isso. Ex:</p>
<pre class="remontti-code"># vim /var/cache/bind/master-rev/45.80.49.rev</pre>
<pre class="remontti-code-plain">$ORIGIN .
$TTL 86400      ; 1 day
49.80.45.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
                    2023020101 ; serial
                    14400      ; refresh (4 hours)
                    3600       ; retry (1 hour)
                    2419200    ; expire (4 weeks)
                    300        ; minimum (5 minutes)
                    )
                NS      ns1.remontti.net.br.
                NS      ns2.remontti.net.br.

$ORIGIN 49.80.45.in-addr.arpa.
$GENERATE 0-63 $ PTR 45-80-49-$.remontti.net.br.

$ORIGIN 49.80.45.in-addr.arpa.
64      PTR     45-80-49-64.provedordojose.com.br.
65      PTR     45-80-49-65.provedordojose.com.br.
66      PTR     ns1.provedordojose.com.br.
67      PTR     ns2.provedordojose.com.br.
68      PTR     mail.provedordojose.com.br.
69      PTR     45-80-49-69.provedordojose.com.br.
70      PTR     45-80-49-70.provedordojose.com.br.
71      PTR     45-80-49-71.provedordojose.com.br.
72      PTR     45-80-49-72.provedordojose.com.br.
73      PTR     45-80-49-73.provedordojose.com.br.
74      PTR     45-80-49-74.provedordojose.com.br.
75      PTR     45-80-49-75.provedordojose.com.br.
76      PTR     45-80-49-76.provedordojose.com.br.
77      PTR     45-80-49-77.provedordojose.com.br.
78      PTR     45-80-49-78.provedordojose.com.br.
79      PTR     45-80-49-79.provedordojose.com.br.

$ORIGIN 49.80.45.in-addr.arpa.
$GENERATE 80-199 $ PTR 45-80-49-$.remontti.net.br.

$ORIGIN 49.80.45.in-addr.arpa.
200     PTR     mail.empresa.com.br.
201     PTR     mail.minhaempresa.com.br.
202     PTR     mail.algumaempresa.com.br.
203     PTR     www.algumchato.com.br.
204     PTR     maischatoainda.com.br.

$ORIGIN 49.80.45.in-addr.arpa.
$GENERATE 205-255 $ PTR 45-80-49-$.remontti.net.br.</pre>
<p>Reinicie os serviços</p>
<pre class="remontti-code"># systemctl restart bind9
# systemctl status bind9</pre>
<h3>Mais um pouco de DNS!</h3>
<p><strong>Posso configurar DNS reverso de IPs privados?</strong><br />
Sim pode, ajustes no named.conf.default-zones e zones.rfc1918<br />
Remova as linhas dos IPs privados que deseja configurar.</p>
<p><strong>Posso configurar DNS reverso de outro AS?</strong><br />
Sim. Basta configurar! (Conheço provedores pequenos que ambos tem 1 servidor DNS cada e um é o backup do outro)</p>
<h4>Estatísticas do DNS</h4>
<p><strong>Estatística web/http</strong> (statistics-channels)<br />
Para ativar edite o /etc/bind/named.conf</p>
<pre class="remontti-code"># vim /etc/bind/named.conf</pre>
<p>Adicione antes dos <em>include</em>, sendo que 45.80.48.2 é o IP público do DNS e 45.80.48.100 e 45.80.48.101 (Só aceita /32) são os IPs que poderão acessar no navegaro a porta  58053 para visualizar as informações. Porém perceba que também deixou um inet só para o IP de loopback (127.0.0.1 ) a ideiá aqui é que só o zabbix-agente acesse, eu particularmente não deixou o outro inet sendo ouvido, se deseja comente ele com <strong>//</strong> </p>
<pre class="remontti-code-plain">statistics-channels {
       inet 127.0.0.1  port 58053 allow { 127.0.0.1; ::1; };
       inet 45.80.48.2  port 58053 allow { 45.80.48.100; 45.80.48.101; };
};</pre>
<p>Para surtir efeito reinicie o serviço </p>
<pre class="remontti-code"># systemctl restart bind9</pre>
<p>Agora acesse <strong>http://IP_DNS:58053/</strong></p>
<p>Usaremos a seguir este método para coletar informações para o zabbix. </p>
<p>Outra forma é as<strong> estatística em arquivo </strong>(statistics-file), você pode definir um local especifico para gerar seu arquivo com as estatística, caso não especificado o mesmo é gerado em /var/cache/bind/named.stats</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<p>Adicione dentro de options { … }</p>
<pre class="remontti-code-plain">options {
//…
//…
    statistics-file &quot;/var/log/named/named.stats&quot;;
//…
//…
};</pre>
<p>Como sempre, em toda alteração reiniciamos o serviço</p>
<pre class="remontti-code"># systemctl restart bind9</pre>
<p>Porém para gere o arquivo de estatísticas é necessário o comando, e toda vez que deseja atualizar precisa executar o comando.</p>
<pre class="remontti-code"># rndc stats</pre>
<p>Exibe os dados do arquivo</p>
<pre class="remontti-code"># cat /var/log/named/named.stats
ou
# cat /var/cache/bind/named.stats</pre>
<p>Caso queira ver oque esta em cache pode usar o comando:</p>
<pre class="remontti-code"># rndc dumpdb -cache</pre>
<p>Ira gerar um arquivo named_dump.db em /var/cache/bind/</p>
<pre class="remontti-code"># cat /var/cache/bind/ | more
# cat /var/cache/bind/ | grep google</pre>
<h4>Criando Backup</h4>
<p>Basta salvar os diretórios  /etc/bind/* /var/cache/bind/* /usr/share/dns/* Gerar um arquivo de backup </p>
<pre class="remontti-code"># tar -czpf ns1.tar.gz /etc/bind/* /var/cache/bind/* /usr/share/dns/*</pre>
<p>Extrair arquivo de backup </p>
<pre class="remontti-code"># tar vxf ns1.tar.gz</pre>
<p>Recomendo a leitura do tutorial: <strong><a href="https://blog.remontti.com.br/4791" rel="noopener" target="_blank">Criando backups de forma simples e enviando para o Telegram ou servidor via SSH</a></strong></p>
<h3>Coletando dados dos bind e fail2ban para Zabbix 6 LTS</h3>
<p>Se você ainda não tem um zabbix server aqui tem um belo tutorial:<br />
<strong><a href="https://blog.remontti.com.br/6350" rel="noopener" target="_blank">Instalação do Zabbix 6 LTS + NGINX + PostgreSQL + Debian 11</a></strong><br />
<strong><a href="https://blog.remontti.com.br/6370" rel="noopener" target="_blank">Instalação do Grafana no Debian 11 Bullseye</a></strong></p>
<p>No nosso servidor DNS vamos precisar apenas do zabbix-agent, vamos adiciona o repositório do zabbix LTS para Debian 11 e em seguina intala-lo.</p>
<pre class="remontti-code"># cd /tmp
# apt install wget
# cd /tmp/
# wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-5+debian12_all.deb
# apt install ./zabbix-release_6.0-5+debian12_all.deb
# apt update; apt upgrade -y
# apt install zabbix-agent
# systemctl enable zabbix-agent</pre>
<p>Em seguida vamos precisar informar o IP do zabbix server:</p>
<pre class="remontti-code"># vim /etc/zabbix/zabbix_agentd.conf</pre>
<p>Localize e altere: </p>
<pre class="remontti-code-plain">Server=45.80.48.10 #IP Zabbix Server
ServerActive=45.80.48.10 #IP Zabbix Server
Hostname=ns1 #Nome exato cadastrado no Zabbix server</pre>
<p>Reinicie o serviço do zabbix agent</p>
<pre class="remontti-code"># systemctl restart zabbix-agent</pre>
<p>Não esqueça de ajustar statistics-channels named.conf:</p>
<pre class="remontti-code-plain">statistics-channels {
  inet 127.0.0.1 port 58053 allow { 127.0.0.1; };
};</pre>
<p>Vou usar o projeto <a href="https://github.com/remontti/Zabbix-Bind9-Statistics-Collection" rel="noopener" target="_blank"><strong>Zabbix-Bind9-Statistics-Collection</strong></a> compartilhado no meu gituhub</p>
<p>Copie o userparameter_rr_bind.conf no diretório (/etc/zabbix/zabbix_agentd.d) de inclusão dos agentes do Zabbix.</p>
<pre class="remontti-code"># cd /etc/zabbix/zabbix_agentd.d/
# wget https://raw.githubusercontent.com/remontti/Zabbix-Bind9-Statistics-Collection/master/userparameter_rr_bind.conf</pre>
<p>Copie o script bind-stats-rr.py para dentro de /etc/zabbix/script/ e ajustaremos os poderes e permissões.</p>
<pre class="remontti-code"># mkdir /etc/zabbix/script
# cd /etc/zabbix/script
# wget https://raw.githubusercontent.com/remontti/Zabbix-Bind9-Statistics-Collection/master/bind-stats-rr.py
# chmod a+x /etc/zabbix/script/bind-stats-rr.py
# chown zabbix: /etc/zabbix/script/ -R
# systemctl restart zabbix-agent</pre>
<p>Você pode receber estatísticas por zona (que serão descobertas automaticamente) adicionando a seguinte cláusula a cada definição de zona no seu named.conf.local: <strong>zone-statistics yes;</strong> Ex.: </p>
<pre class="remontti-code-plain">zone &quot;remontti.net.br&quot; {
        type master;
        file &quot;/var/cache/bind/master-aut/remontti.net.br/remontti.net.br.hosts&quot;;
        key-directory &quot;/var/cache/bind/master-aut/remontti.net.br/keys/&quot;;
        dnssec-policy default;
        inline-signing yes;
        serial-update-method unixtime;
        zone-statistics yes;
};

zone &quot;48.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.48.rev&quot;;
        zone-statistics yes;
};

zone &quot;49.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.49.rev&quot;;
        zone-statistics yes;
};

zone &quot;50.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.50.rev&quot;;
        zone-statistics yes;
};

zone &quot;51.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.51.rev&quot;;
        zone-statistics yes;
};

zone &quot;3.2.1.f.4.0.8.2.ip6.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/2804.f123.rev&quot;;
        zone-statistics yes;
};</pre>
<p>Não esqueça de restartar o serviço se editar o named.local.conf `systemctl restart zabbix-agent`</p>
<p>Baixe o arquivo <strong><a href="https://raw.githubusercontent.com/remontti/Zabbix-Bind9-Statistics-Collection/master/RR%20Bind9.xml" rel="noopener" target="_blank">RR Bind9.xml</a></strong> para seu computador e importe o mesmo para o seu Zabbix Server.<br />
Vamos ter 3 novos templates: </p>
<pre class="remontti-code-plain">- RR Servico Bind9 ==&gt; Irá verificar se os serviço esta UP
- RR Servico Bind9 - Estatisticas ==&gt; Diversas informações
- RR Servico Bind9 - Valida arquivos - Deb11 ==&gt; Notificará sempre que um arquivo named.conf* for modificado</pre>
<h4>Coletando dados das prisões do Fail2ban</h4>
<p>Projeto <a href="https://github.com/remontti/zabbix-fail2ban-discovery" rel="noopener" target="_blank"><strong>zabbix-fail2ban-discovery</strong></a> </p>
<p>Faça o download do arquivo userparameter_fail2ban.conf para o diretório /etc/zabbix/zabbix_agentd.d/</p>
<pre class="remontti-code"># cd /etc/zabbix/zabbix_agentd.d/
# wget https://raw.githubusercontent.com/remontti/zabbix-fail2ban-discovery/master/userparameter_fail2ban.conf</pre>
<p>O Fail2ban funciona apenas com root por padrão. Precisaremos conceder permissão ao Zabbix para acessar o Fail2ban. Não é uma boa ideia conceder permissão de root ao Zabbix em termos de segurança. Em vez disso, permitiremos que o usuário do Zabbix use esse soquete. O agente Zabbix é executado sob o usuário zabbix. Primeiro, precisamos criar um novo grupo chamado fail2ban. Todos os usuários pertencentes a este grupo poderão acessar o Fail2ban.</p>
<p>Criar um grupo:</p>
<pre class="remontti-code"># addgroup --group fail2ban</pre>
<p>Adicionar o usuário zabbix existente ao grupo fail2ban:</p>
<pre class="remontti-code"># usermod -a -G fail2ban zabbix</pre>
<p>Em seguida, devemos alterar o proprietário do grupo do soquete de root para fail2ban:</p>
<pre class="remontti-code"># chown root:fail2ban /var/run/fail2ban/fail2ban.sock</pre>
<p>Por fim, ajuste as permissões no soquete para que os membros do grupo possam acessá-lo:</p>
<pre class="remontti-code"># chmod g+rwx /var/run/fail2ban/fail2ban.sock</pre>
<p>Agora podemos testar que o agente Zabbix pode chamar Fail2ban:</p>
<pre class="remontti-code"># su - zabbix --shell=/bin/bash -c &#039;fail2ban-client status sshd&#039;</pre>
<pre class="remontti-code-plain">Status for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 0
   |- Total banned:     0
   `- Banned IP list:</pre>
<p>As instruções de instalação abrangem a alteração das permissões do soquete fail2ban para acesso como um usuário não root; no entanto, essas alterações são perdidas na próxima vez que o soquete é criado.</p>
<p>Para tornar as alterações permanentes em um sistema em que o fail2ban é gerenciado pelo systemd, adicione o seguinte ao arquivo de substituição de serviço fail2ban</p>
<pre class="remontti-code"># systemctl edit fail2ban</pre>
<p>Adicione: </p>
<pre class="remontti-code-plain">[Service]
ExecStartPost=/bin/sh -c &quot;while ! [ -S /run/fail2ban/fail2ban.sock ]; do sleep 1; done&quot;
ExecStartPost=/bin/chgrp fail2ban /run/fail2ban/fail2ban.sock
ExecStartPost=/bin/chmod g+w /run/fail2ban/fail2ban.sock
Restart Zabbix Agent</pre>
<p>Reinicie os serviços </p>
<pre class="remontti-code"># systemctl daemon-reload
# systemctl restart zabbix-agent fail2ban </pre>
<p>Consulte  se o grupo é o fail2ban</p>
<pre class="remontti-code"># ls -lh /var/run/fail2ban/fail2ban.sock</pre>
<pre class="remontti-code-plain">srwxrwx--- 1 root fail2ban 0 jun 18 11:47 /var/run/fail2ban/fail2ban.sock</pre>
<p>Faça download do template <strong><a href="https://raw.githubusercontent.com/remontti/zabbix-fail2ban-discovery/master/RR%20Servico%20Fail2ban%20-%20Monitor%20Filtros.xml" rel="noopener" target="_blank">RR Servico Fail2ban - Monitor Filtros</a></strong> e importe para o Zabbix Server.</p>
<p>Por hoje é "só" pessoal!<br />
Espero ter colaborado com uma pequena parcela em seu conhecimento.<br />
<font color="red">Esse tutorial levei <strong>dois dias</strong> escrevendo então conto com sua ajuda para poder manter o blog!</font></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><br />
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>Recomendado: </strong><br />
<a href="https://www.isc.org/download/" rel="noopener" target="_blank">https://www.isc.org/download/ </a><br />
<a href="https://downloads.isc.org/isc/bind9/9.16.15/doc/arm/Bv9ARM.pdf" rel="noopener" target="_blank">https://downloads.isc.org/isc/bind9/9.16.15/doc/arm/Bv9ARM.pdf</a><br />
<strong>Extensão para navegador:</strong><br />
<a href="https://chrome.google.com/webstore/detail/ipvfoo/ecanpcehffngcegjmadlcijfolapggal" rel="noopener" target="_blank">https://chrome.google.com/webstore/detail/ipvfoo/ecanpcehffngcegjmadlcijfolapggal</a><br />
<a href="https://addons.mozilla.org/en-US/firefox/addon/ipvfoo-pmarks/" rel="noopener" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/ipvfoo-pmarks/</a></p>
<p><strong>Ferramentas web: </strong><br />
<a href="https://dnschecker.org/" rel="noopener" target="_blank">https://dnschecker.org/</a><br />
<a href="https://zonemaster.net/" rel="noopener" target="_blank">https://zonemaster.net/</a></p>
<p>O post <a href="https://blog.remontti.com.br/5958">Servidor DNS Bind9 &#8211; Recursivo + Autoritativo DNSSEC + Reverso + RPZ + Fail2ban + nftables + Zabbix no Debian 11/12</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5958/feed</wfw:commentRss>
			<slash:comments>59</slash:comments>
		
		
			</item>
	</channel>
</rss>
