<?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 debian - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/debian/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/debian</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 debian - Remontti</title>
	<link>https://blog.remontti.com.br/tag/debian</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Como Aumentar o Disco de uma VM no Proxmox e Redimensionar a Partição no Debian</title>
		<link>https://blog.remontti.com.br/8164</link>
					<comments>https://blog.remontti.com.br/8164#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 03 Dec 2024 15:22:25 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[e2fsck]]></category>
		<category><![CDATA[Expandir Disco Virtual]]></category>
		<category><![CDATA[Expandir Partição]]></category>
		<category><![CDATA[Gestão de Servidores]]></category>
		<category><![CDATA[Linux VM]]></category>
		<category><![CDATA[Parted]]></category>
		<category><![CDATA[Partição Linux]]></category>
		<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[Redimensionar Disco]]></category>
		<category><![CDATA[Resize Disk]]></category>
		<category><![CDATA[Resize Filesystem]]></category>
		<category><![CDATA[resize2fs]]></category>
		<category><![CDATA[Sistemas Operacionais]]></category>
		<category><![CDATA[Tamanho do Disco]]></category>
		<category><![CDATA[Tutorial Proxmox]]></category>
		<category><![CDATA[virtualização]]></category>
		<category><![CDATA[VM]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=8164</guid>

					<description><![CDATA[<p>Muitas pessoas já me procuraram para esclarecer dúvidas sobre esse procedimento, e percebo que, por falta de conhecimento, algumas acabam optando por formatar o servidor, o que não é necessário. Com este tutorial, espero&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/8164">Como Aumentar o Disco de uma VM no Proxmox e Redimensionar a Partição no Debian</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/2024/12/Como-Aumentar-o-Disco-de-uma-VM-no-Proxmox-e-Redimensionar-a-Particao-no-Debian.webp" alt="" width="1792" height="1024" class="alignnone size-full wp-image-8175" srcset="https://blog.remontti.com.br/wp-content/uploads/2024/12/Como-Aumentar-o-Disco-de-uma-VM-no-Proxmox-e-Redimensionar-a-Particao-no-Debian.webp 1792w, https://blog.remontti.com.br/wp-content/uploads/2024/12/Como-Aumentar-o-Disco-de-uma-VM-no-Proxmox-e-Redimensionar-a-Particao-no-Debian-300x171.webp 300w, https://blog.remontti.com.br/wp-content/uploads/2024/12/Como-Aumentar-o-Disco-de-uma-VM-no-Proxmox-e-Redimensionar-a-Particao-no-Debian-1024x585.webp 1024w, https://blog.remontti.com.br/wp-content/uploads/2024/12/Como-Aumentar-o-Disco-de-uma-VM-no-Proxmox-e-Redimensionar-a-Particao-no-Debian-768x439.webp 768w, https://blog.remontti.com.br/wp-content/uploads/2024/12/Como-Aumentar-o-Disco-de-uma-VM-no-Proxmox-e-Redimensionar-a-Particao-no-Debian-1536x878.webp 1536w" sizes="(max-width: 1792px) 100vw, 1792px" /></p>
<p>Muitas pessoas já me procuraram para esclarecer dúvidas sobre esse procedimento, e percebo que, por falta de conhecimento, algumas acabam optando por formatar o servidor, o que não é necessário. Com este tutorial, espero simplificar o processo e mostrar que, com as ferramentas certas, é algo fácil de ser realizado.</p>
<p>Este guia mostra como aumentar o tamanho de um disco virtual no <strong>Proxmox</strong> e redimensionar a partição correspondente em uma VM com <strong>Debian</strong>.<br />
Todo o processo é realizado sem perda de dados e sem a necessidade de reinstalar o sistema operacional.</p>
<h3>1. Aumentando o Disco no Proxmox</h3>
<p> &#8211; Acesse o Proxmox pela interface web.<br />
 &#8211; Pare a VM que você deseja ajustar por segurança.<br />
 &#8211; Navegue até a aba <strong>Hardware</strong>.<br />
 &#8211; Selecione o disco que deseja redimensionar e clique em <strong>Disk Action >> Resize</strong>.<br />
 &#8211; Insira o tamanho em GB que deseja acrescentar.<br />
 &#8211; Confirme a operação e inicie a VM.</p>
<p><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2024/12/resize.png" alt="" width="1033" height="391" class="alignnone size-full wp-image-8166" srcset="https://blog.remontti.com.br/wp-content/uploads/2024/12/resize.png 1033w, https://blog.remontti.com.br/wp-content/uploads/2024/12/resize-300x114.png 300w, https://blog.remontti.com.br/wp-content/uploads/2024/12/resize-1024x388.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2024/12/resize-768x291.png 768w" sizes="(max-width: 1033px) 100vw, 1033px" /></p>
<h3>2. Verificando o Novo Tamanho do Disco na VM</h3>
<p>Após iniciar a VM, conecte-se ao terminal (via console ou SSH) e verifique o novo tamanho do disco:</p>
<pre class="remontti-code"># fdisk -l</pre>
<p>O disco agora deve mostrar o tamanho atualizado, mas a partição ainda estará com o tamanho antigo. O próximo passo é redimensioná-la. Exemplo:</p>
<pre class="remontti-code-blue">
Disco /dev/sda: 920 GiB, 987842478080 bytes, 1929379840 setores
Modelo de disco: QEMU HARDDISK   
Unidades: setor de 1 * 512 = 512 bytes
Tamanho de setor (lógico/físico): 512 bytes / 512 bytes
Tamanho E/S (mínimo/ótimo): 512 bytes / 512 bytes
Tipo de rótulo do disco: dos
Identificador do disco: 0xfebc1b65

Dispositivo Inicializar  Início       Fim   Setores Tamanho Id Tipo
/dev/sda1                  2046   7813119   7811074    3,7G  5 Estendida
/dev/sda2   *           7813120 251656191 243843072  116,3G 83 Linux
/dev/sda5                  2048   7813119   7811072    3,7G 82 Linux swap / Solaris
</pre>
<h3>3. Redimensionando a Partição</h3>
<p>Instale o <strong>parted</strong></p>
<pre class="remontti-code"># apt install parted</pre>
<p>Inicie o parted para editar o disco, no nosso caso é /dev/sda e a partição é a /dev/sda2 que está com 116,3G que queremos expandir para o total do disco.</p>
<pre class="remontti-code"># parted /dev/sda</pre>
<p>Dentro do parted, liste as partições:</p>
<pre class="remontti-code-green">print</pre>
<p>Redimensione a partição:</p>
<pre class="remontti-code-green">resizepart 2 100%</pre>
<p>Quando aparecer a mensagem de aviso, digite <strong>yes</strong>.<br />
Saia do parted:</p>
<pre class="remontti-code-green">quit</pre>
<p>Exemplo:</p>
<pre class="remontti-code-blue">
GNU Parted 3.5
Using /dev/sda
Welcome to GNU Parted! Type &#039;help&#039; to view a list of commands.
(parted) resizepart 2 100% <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f448.png" alt="👈" class="wp-smiley" style="height: 1em; max-height: 1em;" />
Warning: Partition /dev/sda2 is being used. Are you sure you want to continue?
Yes/No? yes <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f448.png" alt="👈" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 
(parted)
(parted) quit
Information: You may need to update /etc/fstab.</pre>
<h3>4. Expandindo o Sistema de Arquivos</h3>
<p>Após redimensionar a partição, você precisa expandir o sistema de arquivos para usar o novo espaço.</p>
<p>Verifique o sistema de arquivos</p>
<pre class="remontti-code"># e2fsck -f /dev/sda2</pre>
<p>Se a partição estiver montada, você verá uma mensagem de erro. Isso é esperado, pois /dev/sda2 geralmente é a partição raiz.</p>
<pre class="remontti-code-blue">e2fsck 1.47.0 (5-Feb-2023)
/dev/sda2 is mounted.
e2fsck: Cannot continue, aborting.</pre>
<p>Expanda o sistema de arquivos</p>
<pre class="remontti-code"># resize2fs /dev/sda2</pre>
<p>Após a execução, o sistema de arquivos será ajustado para usar todo o espaço disponível na partição.</p>
<pre class="remontti-code-blue">resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/sda2 is mounted on /; on-line resizing required
old_desc_blocks = 15, new_desc_blocks = 115
The filesystem on /dev/sda2 is now 240195840 (4k) blocks long.</pre>
<h3>5. Verifique o Novo Tamanho</h3>
<p>Após concluir o redimensionamento, confirme o espaço disponível.</p>
<p>Verifique a partição:</p>
<pre class="remontti-code"># fdisk -l</pre>
<pre class="remontti-code-blue">Disco /dev/sda: 920 GiB, 987842478080 bytes, 1929379840 setores
Modelo de disco: QEMU HARDDISK   
Unidades: setor de 1 * 512 = 512 bytes
Tamanho de setor (lógico/físico): 512 bytes / 512 bytes
Tamanho E/S (mínimo/ótimo): 512 bytes / 512 bytes
Tipo de rótulo do disco: dos
Identificador do disco: 0xfebc1b65

Dispositivo Inicializar  Início        Fim    Setores Tamanho Id Tipo
/dev/sda1                  2046    7813119    7811074    3,7G  5 Estendida
/dev/sda2   *           7813120 1929379839 1921566720  916,3G 83 Linux
/dev/sda5                  2048    7813119    7811072    3,7G 82 Linux swap / Solaris</pre>
<p>Confirme o sistema de arquivos:</p>
<pre class="remontti-code"># df -h /dev/sda2</pre>
<p>A saída mostrará o novo tamanho da partição e o espaço disponível:</p>
<pre class="remontti-code-blue">
Sist. Arq.      Tam. Usado Disp. Uso% Montado em
/dev/sda2       902G  3,8G  860G   1% /
</pre>
<h3>Conclusão</h3>
<p>Este método é uma solução prática e eficiente para expandir o espaço de disco de uma VM no Proxmox e redimensionar sua partição no Debian, tudo de forma segura e sem perda de dados, eliminando a necessidade de reinstalar o sistema operacional.</p>
<p>Se este guia foi útil para você, fico feliz em ter contribuído! </p>
<p>O post <a href="https://blog.remontti.com.br/8164">Como Aumentar o Disco de uma VM no Proxmox e Redimensionar a Partição no Debian</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/8164/feed</wfw:commentRss>
			<slash:comments>5</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 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="(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-TlOHQjmc" 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-TlOHQjmc" 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>Guia passo a passo para instalação do phpIPAM, um Software de Gerenciamento de Endereços IP</title>
		<link>https://blog.remontti.com.br/2401</link>
					<comments>https://blog.remontti.com.br/2401#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 12 Jun 2023 15:40:55 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[administração]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[aplicação]]></category>
		<category><![CDATA[Código Aberto]]></category>
		<category><![CDATA[Configuração]]></category>
		<category><![CDATA[configuração de endereços IPs]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[debain]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[documentação]]></category>
		<category><![CDATA[endereços IPs]]></category>
		<category><![CDATA[ferramenta]]></category>
		<category><![CDATA[gerenciamento]]></category>
		<category><![CDATA[gerenciamento de IP]]></category>
		<category><![CDATA[gerenciamento de rede]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[instalaçao]]></category>
		<category><![CDATA[instalação do phpIPAM]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[IPAM]]></category>
		<category><![CDATA[ipv4]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[php7]]></category>
		<category><![CDATA[phpIPAM]]></category>
		<category><![CDATA[rede]]></category>
		<category><![CDATA[servidor de DHCP]]></category>
		<category><![CDATA[servidor dns]]></category>
		<category><![CDATA[Servidor WEB]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[tutorial banco de dados]]></category>
		<category><![CDATA[tutorial de configuração]]></category>
		<category><![CDATA[tutorial de gerenciamento]]></category>
		<category><![CDATA[tutorial de instalação]]></category>
		<category><![CDATA[tutorial Debian]]></category>
		<category><![CDATA[tutorial MariaDB.]]></category>
		<category><![CDATA[tutorial MySQL]]></category>
		<category><![CDATA[tutorial passo a passo]]></category>
		<category><![CDATA[tutorial phpIPAM]]></category>
		<category><![CDATA[tutorial servidor web]]></category>
		<category><![CDATA[tutorial software de gerenciamento]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=2401</guid>

					<description><![CDATA[<p>O phpIPAM é um aplicação de gerenciamento de endereço IPs de código aberto (IPAM). Seu objetivo é fornecer gerenciamento de endereços IP leve, moderno e útil. É uma aplicação baseada em php com backend&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/2401">Guia passo a passo para instalação do phpIPAM, um Software de Gerenciamento de Endereços IP</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/2018/05/phpipam_debian.jpg" alt="" width="720" height="340" class="alignnone size-full wp-image-7493" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian.jpg 720w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian-520x245.jpg 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></center></p>
<p>O phpIPAM é um aplicação de gerenciamento de endereço IPs de código aberto (IPAM). Seu objetivo é fornecer gerenciamento de endereços IP leve, moderno e útil. É uma aplicação baseada em php com backend de banco de dados MySQL/MariaDB, usando bibliotecas jQuery, ajax e recursos HTML5 / CSS3.</p>
<p><strong><font color="red">Recomendado Debian 12 Bookworm:</font></strong><br />
1 &#8211; <a href="https://blog.remontti.com.br/7236" rel="noopener noreferrer" target="_blank">Debian 12 Bookworm / Instalação Limpa</a><br />
2.a &#8211; <a href="https://blog.remontti.com.br/7460" rel="noopener" target="_blank">Servidor WEB NGINX + PHP 8.2 + MariaDB + phpMyAdmin</a><br />
2.b &#8211; <a href="https://blog.remontti.com.br/7496" rel="noopener" target="_blank">Servidor WEB Apache2 + PHP 8.2 + MariaDB + phpMyAdmin</a><br />
<font size="2"><b><em>phpMyAdmin é opcional</em></b></font></p>
<p><strong><font color="red">Recomendado Debian 11 Bullseye:</font></strong><br />
1- <a href="https://blog.remontti.com.br/5792" rel="noopener noreferrer" target="_blank">Debian 11 Bullseye / Instalação Limpa</a><br />
2- <a href="https://blog.remontti.com.br/5893" rel="noopener noreferrer" target="_blank">Servidor WEB Apache2 + PHP7.4 + MariaDB + phpMyAdmin</a><br />
<font size="2"><b><em>phpMyAdmin é opcional</em></b></font></p>
<p><strong><font color="red">Recomendado Debian 10 Stretch:</font></strong><br />
1- <a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Debian 10 Stretch / Instalação Limpa</a><br />
2.a &#8211; <a href="https://blog.remontti.com.br/3006" rel="noopener noreferrer" target="_blank">Servidor WEB Apache2 + PHP7.3 + MariaDB + phpMyAdmin</a><br />
2.b &#8211; <a href="https://blog.remontti.com.br/5465" rel="noopener" target="_blank">Servidor WEB NGINX + PHP7.3 + MariaDB + phpMyAdmin</a><br />
<font size="2"><b><em>phpMyAdmin é opcional</em></b></font></p>
<p><strong><font color="red">Recomendado Debian 9 Buster:</font></strong><br />
<a href="https://blog.remontti.com.br/1152" rel="noopener noreferrer" target="_blank">Instalação Limpa Debian 9 Buster</a><br />
<a href="https://blog.remontti.com.br/2024" rel="noopener noreferrer" target="_blank">Servidor web Apache2, PHP 7.0, MariaDB, PHPMyAdmin</a><br />
<font size="2"><b><em>phpMyAdmin é opcional</em></b></font></p>
<p>Após instalação do servidor WEB+MariaDB, vamos criar nossa base de dados para o phpipam</p>
<pre class="remontti-code"># mariadb -p</pre>
<pre class="remontti-code">
CREATE DATABASE phpipam;
GRANT ALL PRIVILEGES ON phpipam.* TO &#039;phpipam&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA_SENHA&#039;;
FLUSH PRIVILEGES;
quit;</pre>
<p>Download phpIPAM<br />
Instalação estável: (Nesta data é 1.5.2) <a href="https://github.com/phpipam/phpipam/releases" rel="noopener noreferrer" target="_blank">https://github.com/phpipam/phpipam/releases</a> </p>
<pre class="remontti-code"># cd /tmp
# wget https://github.com/phpipam/phpipam/releases/download/v1.5.2/phpipam-v1.5.2.tgz
# tar vxf phpipam-v1.5.2.tgz
# mv phpipam /var/www/html/phpipam
&lt;pre&gt;# cd /var/www/html/phpipam</pre>
<p>Agora precisamos inserir os dados para o phpipam conectar ao banco de dados. Primeiro copie config.dist.php para config.php e insira os detalhes necessários.</p>
<pre class="remontti-code"># cp config.dist.php config.php
# vim config.php</pre>
<p>Encontre a linha <em>$db['pass'] = 'phpipamadmin';</em> e altere para sua senha, caso tenha utilizado outro usuário e nome de base altere também.</p>
<pre class="remontti-code">
...
$db[&#039;host&#039;] = &quot;localhost&quot;;
$db[&#039;user&#039;] = &quot;phpipam&quot;;
$db[&#039;pass&#039;] = &quot;SUA_SENHA&quot;;
$db[&#039;name&#039;] = &quot;phpipam&quot;;
...</pre>
<p>Se estas utilizando debian 12, sua versão do php é a 8.2 que na versão atual 1.5.2 ainda parece não ter sido testado, para resolver entre no diretório do phpipam e adicione <strong>$allow_untested_php_versions=true;</strong> ao final do arquivo:</p>
<pre class="remontti-code"># cd /var/www/html/phpipam
# echo &#039;$allow_untested_php_versions=true;&#039; &gt;&gt; config.php</pre>
<p>Além disso, nós extraímos o diretório do phpipam fora pasta raiz (/var/www/html), será necessário definir isso (<em>define('BASE', "/");</em>) em config.php, se você colocou no diretório raiz ou configurou um <a href="https://blog.remontti.com.br/3464" rel="noopener noreferrer" target="_blank">domínio virtual (recomendo)</a> para o phpipam não é necessário :</p>
<pre class="remontti-code"># vim config.php</pre>
<p>Altere :</p>
<pre class="remontti-code-plain">define(&#039;BASE&#039;, &quot;/&quot;);</pre>
<p>para:</p>
<pre class="remontti-code-plain">define(&#039;BASE&#039;, &quot;/phpipam/&quot;);</pre>
<p>Instale a extensão gmp do php que é necessária para o funcionamento do phpipam e restarte o apache ou nginx de acordo com seu servidor.</p>
<pre class="remontti-code"># apt install php-gmp -y
# systemctl restart apache2
ou
# systemctl restart nginx</pre>
<p>Agora acesse seu servidor em seu navegado: http://ip-server.ou.dominio/phpipam/</p>
<p>Clique em <strong>[New phpipam installation]</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_1.png" data-rel="lightbox-gallery-HmyXmVRR" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_1.png" alt="" width="1280" height="709" class="alignnone size-full wp-image-7482" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_1.png 1280w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_1-300x166.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_1-1024x567.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_1-768x425.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></a></p>
<p>Clique em <strong>[Automatic database installation]</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_2.png" data-rel="lightbox-gallery-HmyXmVRR" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_2.png" alt="" width="1280" height="832" class="alignnone size-full wp-image-7483" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_2.png 1280w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_2-300x195.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_2-1024x666.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_2-768x499.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></a></p>
<p>Entre com seu usuario: phpipam e senha senha de conexão do banco de dados (SUA_SENHA), clique em [Show advanced options], e <strong>DESMARQUE</strong> as opções: <strong>Create new database</strong> e <strong>Set permissions to tables</strong> e após em <strong>[Install phpipam database]</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_3.png" data-rel="lightbox-gallery-HmyXmVRR" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_3.png" alt="" width="1280" height="878" class="alignnone size-full wp-image-7484" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_3.png 1280w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_3-300x206.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_3-1024x702.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_3-768x527.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></a></p>
<p>Uma mensagem "<strong>Database installed successfully!</strong>" será exibida, informado que o banco de dados foi criado com sucesso. Clique em <strong>[Continue]</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_4.png" data-rel="lightbox-gallery-HmyXmVRR" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_4.png" alt="" width="1280" height="940" class="alignnone size-full wp-image-7485" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_4.png 1280w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_4-300x220.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_4-1024x752.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_4-768x564.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></a>  </p>
<p>Defina a senha do usuário admin, e clique em <strong>[Save settings]</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_5.png" data-rel="lightbox-gallery-HmyXmVRR" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_5.png" alt="" width="1280" height="709" class="alignnone size-full wp-image-7486" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_5.png 1280w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_5-300x166.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_5-1024x567.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_5-768x425.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></a></p>
<p>Uma mensagem <strong>"Settings updated, installation complete!"</strong> informado que a instalação foi completada! Clique em [<strong>Procced to login</strong>]<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_6.png" data-rel="lightbox-gallery-HmyXmVRR" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_6.png" alt="" width="1280" height="798" class="alignnone size-full wp-image-7487" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_6.png 1280w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_6-300x187.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_6-1024x638.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_6-768x479.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></a></p>
<p>Entre com o usuário admin e sua senha:<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_7.png" data-rel="lightbox-gallery-HmyXmVRR" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_7.png" alt="" width="1280" height="709" class="alignnone size-full wp-image-7488" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_7.png 1280w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_7-300x166.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_7-1024x567.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_7-768x425.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></a></p>
<p>Prontinho para seu uso!<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_8.png" data-rel="lightbox-gallery-HmyXmVRR" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_8.png" alt="" width="1280" height="1387" class="alignnone size-full wp-image-7489" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_8.png 1280w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_8-277x300.png 277w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_8-945x1024.png 945w, https://blog.remontti.com.br/wp-content/uploads/2018/05/phpipam_debian_12_8-768x832.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></a></p>
<p>Gostou?</p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong></p>
<p><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/2401">Guia passo a passo para instalação do phpIPAM, um Software de Gerenciamento de Endereços IP</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/2401/feed</wfw:commentRss>
			<slash:comments>40</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor de virtualização Web com Debian 11 bullseye + Virtualbox 7.0</title>
		<link>https://blog.remontti.com.br/7142</link>
					<comments>https://blog.remontti.com.br/7142#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 07 Feb 2023 16:21:03 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[debina bullseye]]></category>
		<category><![CDATA[hypervisor]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[phpvirtualbox7]]></category>
		<category><![CDATA[vbox]]></category>
		<category><![CDATA[Virtual]]></category>
		<category><![CDATA[virtualbo7]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[virtualização]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7142</guid>

					<description><![CDATA[<p>Com VirtualBox é possível executar diversos sistemas operacionais (Windows, Linux, UNIX, BSD) simultaneamente no mesmo hardware, que são chamados de máquinas virtuais. Uma das características é o mascaramento dos recursos físicos (incluindo processadores, quantidade&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7142">Servidor de virtualização Web com Debian 11 bullseye + Virtualbox 7.0</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div id="attachment_7150" style="width: 730px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7150" src="https://blog.remontti.com.br/wp-content/uploads/2023/02/phpvirtualbox7.0.jpg" alt="" width="720" height="340" class="size-full wp-image-7150" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/02/phpvirtualbox7.0.jpg 720w, https://blog.remontti.com.br/wp-content/uploads/2023/02/phpvirtualbox7.0-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2023/02/phpvirtualbox7.0-520x245.jpg 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /><p id="caption-attachment-7150" class="wp-caption-text">CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 82</p></div><br />
Com VirtualBox é possível executar diversos sistemas operacionais (Windows, Linux, UNIX, BSD) simultaneamente no mesmo hardware, que são chamados de máquinas virtuais. Uma das características é o mascaramento dos recursos físicos (incluindo processadores, quantidade de memória, interfaces de rede), o que permite diminuir a administração de drivers nas máquinas virtuais, e transferir uma máquina virtual entre servidores físicos diferentes.</p>
<p>Existem várias ferramentas de virtualização disponíveis.</p>
<p><strong>Microsoft Virtual Server 2005 R2</strong> &#8211; disponível para plataforma x86 e x86_64 bits. Suporte: Somente Windows.<br />
<strong>Qemu</strong> &#8211; ferramenta de virtualização de código aberto disponível para windows, mac e Linux.<br />
<strong>Vmware </strong>&#8211; Disponível para Windows e Linux.<br />
<strong>VirtualBox </strong>&#8211; Aplicativo de código aberto disponível para Windows, Mac, Linux e Solaris.<br />
<strong>Xen </strong>&#8211; Suporta Windows, bem como distribuições Linux.</p>
<p>O <strong>VirtualBox </strong> inicialmente foi lançado sob licença proprietária, mas mais tarde (2007) a Oracle Corporation começou a lançá-lo sob GNU General Public License. Escrito completamente em C, C ++ e Assembly Language está disponível para Windows, OS X, Linux e Solaris.</p>
<p>Recomendo já baixar a ISO nonfree: <a href="https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/" target="_blank" rel="noopener noreferrer">https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/</a></p>
<h3>Requerimentos</h3>
<p>Debian 11 (Bullseye) 64 bits <strong><a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank">instalação mínima</a></strong> pronta</p>
<p>Acesse seu servidor e vire root.</p>
<pre class="remontti-code"># su - </pre>
<p>Certifique-se que seu repositório esteja usando os repositórios <strong>nonfree e contrib</strong>.</p>
<pre class="remontti-code"># vim /etc/apt/sources.list</pre>
<p>Ao final de cada linha verifique se consta:  <strong>nonfree e contrib</strong>, se não tiver adicione, ficando assim:</p>
<pre class="remontti-code">deb http://deb.debian.org/debian/ bullseye main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye main contrib non-free

deb http://security.debian.org/debian-security bullseye/updates main contrib non-free
deb-src http://security.debian.org/debian-security bullseye/updates main contrib non-free

# bullseye-updates, previously known as &#039;volatile&#039;
deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free</pre>
<p>Atualize o repositório</p>
<pre class="remontti-code"># apt update
# apt install firmware-linux firmware-linux-free firmware-linux-nonfree</pre>
<p>Vamos fazer uns ajustes nas parametrizações do kernel para otimizar algumas coisas.</p>
<pre class="remontti-code"># echo &quot;vm.swappiness=10&quot; &gt;&gt; /etc/sysctl.conf
# 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
# echo &quot;vm.max_map_count=262144&quot; &gt;&gt; /etc/sysctl.d/70-vbox.conf
# echo &quot;fs.file-max=3263776&quot; &gt;&gt; /etc/sysctl.d/70-vbox.conf
# echo &quot;fs.aio-max-nr=3263776&quot; &gt;&gt; /etc/sysctl.d/70-vbox.conf

# cat &lt;&lt;EOF &gt;/etc/sysctl.d/60-net.conf
net.core.netdev_max_backlog=4096
net.core.rmem_default=262144
net.core.rmem_max=67108864
net.ipv4.udp_rmem_min=131072
net.ipv4.udp_mem=2097152 4194304 8388608
net.core.default_qdisc = fq
net.core.somaxconn = 16384
EOF</pre>
<p>Se desejar que seu servidor tenha os nomes de interfaces como: eth0 eth1&#8230; wlan0 wlan1&#8230; faça um ajuste no grub:<br />
OBS: Será necessário que você <a href="https://blog.remontti.com.br/5848" rel="noopener" target="_blank">reconfigure a placa de rede</a> (/etc/network/interfaces) </p>
<pre class="remontti-code"># vim /etc/default/grub</pre>
<p>Ajuste GRUB_CMDLINE_LINUX_DEFAULT</p>
<pre class="remontti-code-plain">GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet net.ifnames=0 biosdevname=0&quot;</pre>
<pre class="remontti-code"># update-grub</pre>
<p>Adicione o repositório do <a href="https://www.virtualbox.org/" target="_blank" rel="noopener noreferrer">virtualbox</a></p>
<pre class="remontti-code"># apt install wget vim apt-transport-https gnupg
# echo &#039;deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian bullseye contrib&#039; &gt; /etc/apt/sources.list.d/virtualbox.list
# wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | gpg --dearmor --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg</pre>
<p>Reinicia a máquina para carregar os novos módulos do kernel.</p>
<pre class="remontti-code"># apt update
# apt install virtualbox-7.0
# reboot</pre>
<p>Acesse seu servidor novamente e vire root.</p>
<pre class="remontti-code"># su - </pre>
<p>Faça download dos pacotes extras:</p>
<pre class="remontti-code"># cd /tmp/ 
# wget https://download.virtualbox.org/virtualbox/7.0.8/Oracle_VM_VirtualBox_Extension_Pack-7.0.8.vbox-extpack</pre>
<p>Caso esteja atualizando remova as versões mais antigas:</p>
<pre class="remontti-code"># VBoxManage extpack uninstall &quot;Oracle VM VirtualBox Extension Pack&quot;</pre>
<p>Instale os pacotes extras</p>
<pre class="remontti-code"># VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-7.0.8.vbox-extpack</pre>
<p>Responta Yes <strong>(y)</strong></p>
<p>Vamos executá-lo como o nosso usuário <strong>vbox</strong>, porque ele não precisa acessar o resto do seu sistema.</p>
<pre class="remontti-code"># useradd -d /home/vbox -m -g vboxusers -s /bin/bash vbox</pre>
<p>Defina uma senha para seu usuario vbox</p>
<pre class="remontti-code"># passwd vbox</pre>
<p>Diga ao seu sistema qual usuário vai executar o VirtualBox.</p>
<pre class="remontti-code"># echo &#039;VBOXWEB_USER=vbox&#039; &gt; /etc/default/virtualbox 
# echo &#039;VBOXWEB_HOST=127.0.0.1&#039; &gt;&gt; /etc/default/virtualbox</pre>
<p>Faça com que o vboxweb-service inicie no boot. Como dito acima nosso usuário não precisa ter acesso total ao sistema. Adicione no /etc/rc.local o comando para iniciar junto com o boot.</p>
<pre class="remontti-code"># vim /etc/rc.local</pre>
<p>Adicione</p>
<pre class="remontti-code">#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will &quot;exit 0&quot; on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#
# Solução para inicialização automatica:
# use o comando la listar as VMs criadas
# su - vbox --shell=/bin/bash -c &#039;VBoxManage list vms&#039;
# Colete as ID
# &quot;Debian&quot; {d288884d-a3d4-4903-b84e-5c6039af13b5}
# Pegue o &quot;ID&quot; da VM e use o Comando a baixo descomentando a linha:
#
# Adicione um sleep para aguardar 30seg para dar tempo do modulo do kernel ter tempo de iniciar
# sleep 30
# su - vbox --shell=/bin/bash -c &#039;VBoxHeadless -s d288884d-a3d4-4903-b84e-5c6039af13b5 &amp;&#039;
#
#
exit 0</pre>
<p>Alterare as permissões:</p>
<pre class="remontti-code"># chmod +x /etc/rc.local
# ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service</pre>
<p>Vamos instalar o serviço web + php</p>
<p>Será necessário PHP8, Para isso adicione ao repositório:</p>
<pre class="remontti-code"># wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -
# echo &quot;deb https://packages.sury.org/php/ bullseye main&quot; | tee /etc/apt/sources.list.d/sury-php.list
# apt update</pre>
<p>Instale o Apache+PHP</p>
<pre class="remontti-code"># apt install apache2 libapache2-mod-php\
 php-cli php-bcmath php-gmp php-mbstring php-zip php-curl\
 php php-common php-soap php-gd unzip php-pear php-xml php-soap</pre>
<p>Por segurança recomendo remover a assinatura do servidor, para isso:</p>
<pre class="remontti-code"># sed -i &#039;s/ServerTokens OS/ServerTokens Prod/&#039; /etc/apache2/conf-available/security.conf
# sed -i &#039;s/ServerSignature On/ServerSignature Off/&#039; /etc/apache2/conf-available/security.conf</pre>
<p>Vamos também configurar nosso <a href="https://blog.remontti.com.br/3464" rel="noopener noreferrer" target="_blank">domínio virtual</a> para acessar o servidor via domínio (ex vbox.remontti.com.br) e restringir ele apenas para nossos IP de gerencia. </p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/000-default.conf</pre>
<p>Faça as devidas alterações, não esqueça de alterar em <strong>Require ip</strong> para os IPs que você vai autorizar as conexões.</p>
<pre class="remontti-code">&lt;virtualhost *:80&gt;
        Protocols h2 http/1.1
        ServerName vm.remontti.com.br
        ServerAdmin noc@remontti.com.br
        ErrorDocument 403 http://www.remontti.com.br/
 
        DocumentRoot /var/www/html
 
        &lt;Directory /var/www/html/&gt;
                Options FollowSymLinks
                AllowOverride All
                Require ip 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 250.0.0.0/22 2000:000::/32
        &lt;/Directory&gt;
 
        LogLevel warn 
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
&lt;/virtualhost&gt;</pre>
<p>Habilite os módulos</p>
<pre class="remontti-code"># a2enmod http2
# systemctl restart apache2</pre>
<h3>phpVirtualbox</h3>
<p>O phpVirtualbox oficial até a data desta publicação (abril/2022) a versão 5.2, porém ela já não é mais instalável no Debian 11, então iremos utilizar um <a href="https://github.com/phpvirtualbox/phpvirtualbox/network/members" rel="noopener" target="_blank">fork</a> compatível com o phpVirtualbox 7.0</p>
<p>Vamos configurar o projeto <a href="https://github.com/BartekSz95/phpvirtualbox/releases/" target="_blank" rel="noopener noreferrer">phpvirtualbox</a> by <a href="https://github.com/BartekSz95/phpvirtualbox" rel="noopener" target="_blank">Bartek Sz.</a>, dentro do diretório padrão do apache.</p>
<pre class="remontti-code"># cd /var/www/
# mv /var/www/html/ /var/www/html_old
# wget https://github.com/BartekSz95/phpvirtualbox/archive/main.zip -O phpvirtualbox.zip
# apt install zip unzip
# unzip phpvirtualbox.zip
# mv phpvirtualbox-main html
# rm phpvirtualbox.zip
# chown vbox:vboxusers html  -R
# cd /var/www/html/
# cp config.php-example config.php
# vim config.php</pre>
<pre class="remontti-code"> // ... //
var $username = &#039;vbox&#039;;
var $password = &#039;pass&#039;;
// ... //
var $language = &#039;pt_br&#039;;
var $vrdeports = &#039;9000-9100&#039;;
var $vrdeaddress = &#039;0.0.0.0&#039;;
// ... //
var $enableAdvancedConfig = true; </pre>
<p>É altamente recomendado que você tenha um firewall em cima da range de portas 9000 a 9100, pois é onde será possível fazer acesso remoto, e recomendo que depois da instalação sempre desative o acesso remoto a VM, segue um exemplo de firewall com nftables que já é o padrão no Debian 11 substituindo o antigo iptables, no exemplo já irei proteger também a porta do SSH, lembre-se de deixar seus IPs na ACL de permissões.</p>
<pre class="remontti-code"># systemctl enable nftables</pre>
<p>Modelo fechando as portas do SSH [22] e a range de acesso remoto [9000-9100], você pode personalizar de acordo com sua instalação.</p>
<pre class="remontti-code"># vim /etc/nftables.conf</pre>
<pre class="remontti-code">#!/usr/sbin/nft -f
  
flush ruleset

table inet filter {
    # IPv4 que terao acesso 
    set acesso-total4 {
        type ipv4_addr
        flags interval
        elements = { 200.200.200.16/28, 200.200.200.0/28}
    }
    # IPv6 que terao acesso 
    set acesso-total6 {
        type ipv6_addr
        flags interval
        elements = { 2804:1234:bebe::48, 2804:4321:bebe::/48  }
    }
    chain input {
        type filter hook input priority 0;

        # Permite acesso SSH na porta 22
        ip saddr  @acesso-total4 tcp dport 22 counter accept
        ip6 saddr @acesso-total6 tcp dport 22 counter accept
        tcp dport 22 counter drop

        # Permite acesso tela remota portas padões Vbox
        ip saddr  @acesso-total4 tcp dport { 9000-9100 } counter accept
        ip6 saddr @acesso-total6 tcp dport { 9000-9100 } counter accept
        tcp dport { 9000-9100 } 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 o nftables e verifique se o mesmo foi carregado:</p>
<pre class="remontti-code"># systemctl restart nftables
# nft list ruleset</pre>
<p>Adicione o usuario vbox ao grupo, inicialize o servi web service e reinicie a máquina. </p>
<pre class="remontti-code"># usermod -a -G vboxusers vbox
# su - vbox --shell=/bin/bash -c &#039;vboxwebsrv &amp;&#039;
# reboot</pre>
<p>Agora acesse:<br />
<strong>https://DOMINIO/</strong><br />
<strong>Usuário:</strong> admin<br />
<strong>Senha: </strong>admin</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2023/02/vbox-web7.png" data-rel="lightbox-gallery-cOahVbw0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/02/vbox-web7.png" alt="" width="1123" height="557" class="alignnone size-full wp-image-7146" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/02/vbox-web7.png 1123w, https://blog.remontti.com.br/wp-content/uploads/2023/02/vbox-web7-300x149.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/02/vbox-web7-1024x508.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/02/vbox-web7-768x381.png 768w" sizes="auto, (max-width: 1123px) 100vw, 1123px" /></a></p>
<p><strong>Não esqueça de alterar a senha do usuário admin!</strong></p>
<p>O mais legal que você está usando quase nada do hardware da máquina para &#8220;subir&#8221; seu sistema de virtualização.</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/10/htop.png" data-rel="lightbox-gallery-cOahVbw0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/10/htop-1024x539.png" alt="" width="1024" height="539" class="alignnone size-large wp-image-3675" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/10/htop-1024x539.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/10/htop-300x158.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/10/htop-768x404.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/10/htop.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>Virtulabox peca em não dar uma solução para inicialização automática, mas é muito fácil fazer isso incluindo no rc.local. Use o comando:</p>
<pre class="remontti-code">#  su - vbox --shell=/bin/bash -c &#039;VBoxManage list vms&#039;</pre>
<p>Vai ser listado os ID das suas VMs. Ex:<br />
<em>&#8220;DNS-SERVER&#8221; {d288884d-a3d4-4903-b84e-5c6039af13b5}<br />
&#8220;ZABBIX-SERVER&#8221; {a2893475-atd4-4973-b81e-6039af13bss5}</em></p>
<p>Agora que você ja tem as IDs adicione em <strong>/etc/rc.local:</strong> da seguinte forma, alterando pelas suas ID.</p>
<pre class="remontti-code">sleep 30 #  sleep para aguardar 30seg para dar tempo do modulo do kernel ter tempo de iniciar
su - vbox --shell=/bin/bash -c &#039;VBoxHeadless -s d288884d-a3d4-4903-b84e-5c6039af13b5 &amp;&#039;
su - vbox --shell=/bin/bash -c &#039;VBoxHeadless -s a2893475-atd4-4973-b81e-6039af13bss5 &amp;&#039;</pre>
<p>Agora quando o servidor reiniciar suas VMs vão iniciar automaticamente, (Não esqueça de quando for desligar o servidor fazer o processo de desligamento de cada VM)</p>
<p>Uma das vantagens deste servidor é que é o virtualbox é muito simples!!! Dentro de /home/vbox/ vão estar suas imagens sendo muito facil de fazer uma copia e migrada para algum outro servidor em caso de &#8220;pau&#8221;. É claro tenha sempre redundância de hardware em seu servidor, faça sempre pelo menos um RAID1 (espelhamento de disco) eu gosto de fazer RAID10 com pelo menos 5 SSDs, onde 1 dos SSDs eu instalo o sistema e os outros 4 (ou 6 ou 8 &#8230;) somo ex 2 (RAID0) e espelho nos outros 2 (RAID1) logo temos o RAID10.</p>
<p><strong>Acesso remoto</strong><br />
No windows você pode usar o famoso <strong>mstsc</strong> e informar seu IP:PORTA, no linux tem um pacote chamado <strong>vinagre</strong> basta instala-lo.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote.png" alt="" width="1173" height="495" class="alignnone size-full wp-image-5460" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote.png 1173w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-300x127.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-1024x432.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-768x324.png 768w" sizes="auto, (max-width: 1173px) 100vw, 1173px" /><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a.png" alt="" width="1308" height="704" class="alignnone size-full wp-image-5461" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a.png 1308w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a-300x161.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a-1024x551.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a-768x413.png 768w" sizes="auto, (max-width: 1308px) 100vw, 1308px" /></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>BÔNUS COMANDOS TERMINAL</p>
<pre class="remontti-code">
# Listar todos os tipos de sistemas operacionais 
VBoxManage list ostypes

# Criar uma VM
VBoxManage createvm --name &quot;Debian&quot; --ostype Debian_64 --register

# Definir memória (RAM) e CPUs**:
VBoxManage modifyvm &quot;Debian&quot; --memory 2048
VBoxManage modifyvm &quot;Debian&quot; --cpus 4
VBoxManage modifyvm &quot;Debian&quot; --memory 2048 --cpus 4

# Criar um disco rígido virtual (VDI) de 80GB com controladora NVMe
# Primeiro, crie o disco:
VBoxManage createmedium disk --filename ~/VirtualBox\ VMs/Debian/DebianDisk.vdi --size 81920 --format VDI
# Em seguida, crie o controlador NVMe e anexe o disco a ele:
VBoxManage storagectl &quot;Debian&quot; --name &quot;SATAController&quot; --add sata --controller IntelAhci --portcount 1 --bootable on
VBoxManage storageattach &quot;Debian&quot; --storagectl &quot;SATAController&quot; --port 0 --device 0 --type hdd --medium ~/VirtualBox\ VMs/Debian/DebianDisk.vdi

# Configurar a placa de rede em modo bridge, utilizando eth0
VBoxManage modifyvm &quot;Debian&quot; --nic1 bridged --bridgeadapter1 eth0

# Adicionando mais interfaces
VBoxManage modifyvm &quot;Debian&quot; --nic2 bridged
VBoxManage modifyvm &quot;Debian&quot; --bridgeadapter2 eth0

# Desligar o áudio:
VBoxManage modifyvm &quot;Debian&quot; --audio none

# Define momoria de video:
VBoxManage modifyvm &quot;Debian&quot; --vram 16

# Alterar a controladora gráfica
VBoxManage modifyvm &quot;Debian&quot; --graphicscontroller vmsvga

# Listar VMS
VBoxManage list vms
&quot;Debian&quot; {941d837d-b357-4d19-bd06-b4a7750e321b}

# Iniciar VM
VBoxHeadless --startvm &quot;Debian&quot;
VBoxHeadless --startvm 9bee8518-37ab-492f-b8c5-4989e87bed9b

# Desligar VM
VBoxManage controlvm &quot;Debian&quot; acpipowerbutton
VBoxManage controlvm &quot;Debian&quot; poweroff

# Lista VMs ligadas
VBoxManage list runningvms

# Tirar um snapshot: 
VBoxManage snapshot &quot;Debian&quot; take &quot;nome_snap&quot;
VBoxManage snapshot &quot;Debian&quot; take `date +&#039;%Y-%m-%d_%H-%M-%S&#039;`

# Listar snapshots: 
VBoxManage snapshot &quot;Debian&quot; list
VBoxManage snapshot &quot;941d837d-b357-4d19-bd06-b4a7750e321b&quot; list 
   Name: 2024-02-14_09-54-25 (UUID: 23c1301a-7017-4763-aded-44516d9668b0)
      Name: 2024-02-14_09-54-59 (UUID: 70fc34e7-54dc-493f-af15-6b0858c1dadb)
         Name: 2024-02-14_09-55-09 (UUID: 19cf9f02-dc46-45fb-b22a-c133cfea9f78) *

# Restaurar um snapshot: 
VBoxManage snapshot &quot;Debian&quot; restore &quot;nome_snap&quot;
VBoxManage snapshot &quot;Debian&quot; restore &quot;2024-02-14_09-54-25&quot;

# Deletar um snapshot: 
VBoxManage snapshot &quot;Debian&quot; delete &quot;nome_snap&quot;
VBoxManage snapshot &quot;Debian&quot; delete &quot;2024-02-14_09-54-59&quot;

# Recuperando uma VM pelos arquivos (incluído os SNAPS, estrutura completa)
VBoxManage registervm ~/VirtualBox\ VMs/Debian.vbox

# Exportando (OVA)
VBoxManage export &quot;Debian_12&quot; -o /caminho/Debian_12.ova

# Mais comandos

# Exemplo bridged
VBoxManage modifyvm &quot;RouterOS&quot; --nic5 bridged
VBoxManage modifyvm &quot;RouterOS&quot; --bridgeadapter5 eth0

# Exemplo intnet
VBoxManage modifyvm &quot;RouterOS&quot; --nic5 intnet
VBoxManage modifyvm &quot;RouterOS&quot; --intnet5 &quot;switch_lab&quot;
VBoxManage modifyvm &quot;RouterOS&quot; --cableconnected5 on

# Modo Promíscuo
# deny: Não permite que a interface de rede opere em modo promíscuo.
# allow-vms: Permite que a interface de rede comunique com outras máquinas virtuais.
# allow-all: Permite que a interface de rede comunique com todas as máquinas virtuais e com 
VBoxManage modifyvm &quot;RouterOS&quot; --nicpromisc5 allow-all

# Definir o tipo de placa de rede para o quinto adaptador 
# Am79C970A: AMD PCNet PCI II (Am79C970A);
#  Am79C973: AMD PCNet FAST III (Am79C973, a opção padrão);
#   82540EM: Intel PRO/1000 MT Desktop (82540EM);
#   82543GC: Intel PRO/1000 T Server (82543GC);
#   82545EM: Intel PRO/1000 MT Server (82545EM);
#    virtio: Paravirtualized network adapter (virtio-net).

VBoxManage modifyvm &quot;RouterOS&quot; --nictype5 82543GC

# Definir um endereço MAC específico para o quinto adaptador
VBoxManage modifyvm &quot;RouterOS&quot; --macaddress5 0800000000A4

# Ver informações da VM por comando
VBoxManage showvminfo &quot;RouterOS&quot;
VBoxManage showvminfo &quot;RouterOS&quot; | grep &quot;NIC&quot; 

# Para adaptadores adicionais, substitua --nic5 por --nic6, --nic7, ou --nic8, conforme necessário. 

# Precisa mais que 8? Ativa 36 slot para interfaces.
VBoxManage modifyvm &quot;RouterOS&quot; --chipset ich9 --ioapic on

VBoxManage modifyvm &quot;RouterOS&quot; --nic9 intnet
VBoxManage modifyvm &quot;RouterOS&quot; --intnet9 &quot;switch_amarelo&quot;
VBoxManage modifyvm &quot;RouterOS&quot; --cableconnected9 on
VBoxManage modifyvm &quot;RouterOS&quot; --nictype9 82543GC
VBoxManage modifyvm &quot;RouterOS&quot; --macaddress9 0800000000B1

# Definir uma mac aleatório
VBoxManage modifyvm &quot;RouterOS&quot; --macaddress1 auto
VBoxManage modifyvm &quot;RouterOS&quot; --macaddress2 auto
VBoxManage modifyvm &quot;RouterOS&quot; --macaddress3 auto
</pre>
<p>O post <a href="https://blog.remontti.com.br/7142">Servidor de virtualização Web com Debian 11 bullseye + Virtualbox 7.0</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7142/feed</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>Como criar um servidor FTP (Pure-FTPd) com usuário no banco de dados MariaDB/MySQL com Debian 11 Bullseye</title>
		<link>https://blog.remontti.com.br/6975</link>
					<comments>https://blog.remontti.com.br/6975#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 07 Dec 2022 18:47:28 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[certificado]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debina bullseye]]></category>
		<category><![CDATA[Fail2ban]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[ftp ftp]]></category>
		<category><![CDATA[ftpd]]></category>
		<category><![CDATA[guro seguro]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[pure-ftpd]]></category>
		<category><![CDATA[ssl ssl]]></category>
		<category><![CDATA[tls tls]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6975</guid>

					<description><![CDATA[<p>Neste tutorial vamos montar um servidor FTP utilizando o PureFTPd com usuários no banco de dados Mysql ao invés de usar usuários do sistema, vamos ainda poder configurar quotas e limites de upload e download. Requisito: Debian 11&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6975">Como criar um servidor FTP (Pure-FTPd) com usuário no banco de dados MariaDB/MySQL com Debian 11 Bullseye</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: left;">Neste tutorial vamos montar um servidor FTP utilizando o PureFTPd com usuários no banco de dados Mysql ao invés de usar usuários do sistema, vamos ainda poder configurar quotas e limites de upload e download.</p>
<p><span id="more-6975"></span><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd.jpg" alt="" width="1000" height="474" class="alignnone size-full wp-image-6981" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd.jpg 1000w, https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd-768x364.jpg 768w, https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd-520x245.jpg 520w, https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd-720x340.jpg 720w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></p>
<p><strong>Requisito:</strong><br />
<a href="https://blog.remontti.com.br/5792" rel="noopener noreferrer" target="_blank">Debian 11 Instalação Limpa</a></p>
<p>Vire root de maneira correta no Debian 11!</p>
<pre class="remontti-code"># su -</pre>
<h3>Instalação do banco de dados MariaDB</h3>
<pre class="remontti-code"># apt install mariadb-server mariadb-client </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.</p>
<p><strong>Definindo senha para o root do mariaDB</strong><br />
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>Instalação do Pure FTP</h3>
<pre class="remontti-code"># apt install pure-ftpd-mysql</pre>
<p>Agora criaremos nosso grupo FTP (<em>grupoftp</em>) e usuário (<em>pureftpd</em>) para que nosso usuários virtuais sejam mapeados.</p>
<pre class="remontti-code"># groupadd -g 2001 ftpgroup
# useradd -u 2001 -s /bin/false -d /bin/null -c &quot;pureftpd user&quot; -g ftpgroup ftpuser</pre>
<pre class="remontti-code"># vim /etc/default/pure-ftpd-common</pre>
<p>altere</p>
<pre class="remontti-code">UPLOADUID=
UPLOADGID=</pre>
<p>para </p>
<pre class="remontti-code">UPLOADUID=2001
UPLOADGID=2001</pre>
<p>Próximo passo criar a nossa base de dados, onde ficaram armazenado as informações dos nossos usuários.</p>
<pre class="remontti-code"># mariadb -u root -p</pre>
<p>Entre com a senha de root criada anteriormente.  Não esqueça de alterar senha <strong>(SENHA_FTP_USER)</strong>.</p>
<pre class="remontti-code">CREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO &#039;pureftpd&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SENHA_FTP_USER&#039;;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO &#039;pureftpd&#039;@&#039;localhost.localdomain&#039; IDENTIFIED BY &#039;SENHA_FTP_USER&#039;;
FLUSH PRIVILEGES;
</pre>
<p>Crie a tabela</p>
<pre class="remontti-code">USE pureftpd;

CREATE TABLE ftpd (
User varchar(16) NOT NULL default &#039;&#039;,
status enum(&#039;0&#039;,&#039;1&#039;) NOT NULL default &#039;0&#039;,
Password varchar(64) NOT NULL default &#039;&#039;,
Uid varchar(11) NOT NULL default &#039;-1&#039;,
Gid varchar(11) NOT NULL default &#039;-1&#039;,
Dir varchar(128) NOT NULL default &#039;&#039;,
ULBandwidth smallint(5) NOT NULL default &#039;0&#039;,
DLBandwidth smallint(5) NOT NULL default &#039;0&#039;,
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default &#039;*&#039;,
QuotaSize smallint(5) NOT NULL default &#039;0&#039;,
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
);

EXIT;
</pre>
<p>Salve o arquivo original /etc/pure-ftpd/db/mysql.conf e crie um novo com novas configurações, mais uma vez preste atenção a senha [SENHA_FTP_USER].</p>
<pre class="remontti-code"># mv /etc/pure-ftpd/db/mysql.conf /etc/pure-ftpd/db/mysql.conf_orig
# vim /etc/pure-ftpd/db/mysql.conf</pre>
<p>Adicione:</p>
<pre class="remontti-code">MYSQLSocket /var/run/mysqld/mysqld.sock
MYSQLUser pureftpd
MYSQLPassword SENHA_FTP_USER
MYSQLDatabase pureftpd
MYSQLCrypt md5
MYSQLGetPW SELECT Password FROM ftpd WHERE User=&quot;\L&quot; AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MYSQLGetUID SELECT Uid FROM ftpd WHERE User=&quot;\L&quot; AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MYSQLGetGID SELECT Gid FROM ftpd WHERE User=&quot;\L&quot;AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MYSQLGetDir SELECT Dir FROM ftpd WHERE User=&quot;\L&quot;AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User=&quot;\L&quot;AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User=&quot;\L&quot;AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User=&quot;\L&quot;AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User=&quot;\L&quot;AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)</pre>
<p>Esteja certo que você mudou o campo MYSQLPassword &#8216;SENHA_FTP_USER&#8217;</p>
<p>A configuração <strong>ChrootEveryone</strong> fará com que o PureFTPd faça chroot em todos os usuários virtuais em seu diretório pessoal, para que ele não consiga procurar diretórios e arquivos fora do diretório pessoal. A linha <strong>CreateHomeDir</strong> fará com que o PureFTPd crie o diretório inicial de um usuário quando o usuário efetuar login e o diretório inicial ainda não existir.</p>
<pre class="remontti-code"># echo yes &gt; /etc/pure-ftpd/conf/ChrootEveryone
# echo yes &gt; /etc/pure-ftpd/conf/CreateHomeDir
# echo 1 &gt; /etc/pure-ftpd/conf/TLS
# echo HIGH &gt; /etc/pure-ftpd/conf/TLSCipherSuite</pre>
<p>Gere os certificados.</p>
<pre class="remontti-code"># openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048
# openssl req -x509 -nodes -newkey rsa:2048 -sha256 -keyout \
  /etc/ssl/private/pure-ftpd.pem \
  -out /etc/ssl/private/pure-ftpd.pem
# chmod 600 /etc/ssl/private/*.pem</pre>
<p>Vamos criar agora um usuário, Qual ficará dentro do diretório <strong>/var/pure-ftpd/ </strong> onde vou deixar todos meus usuários criado, porém você pode escolher qualquer diretório, usarei a pasta /var/ pois seria o &#8220;lugar correto&#8221;.</p>
<p>Entre no mariadb com seu usuario pureftpd e senha para fazer a criação do usuário ftp, no meu ex vou criar o usuário chamado remontti.</p>
<pre class="remontti-code"># mysql -u pureftpd -p</pre>
<pre class="remontti-code">USE pureftpd;

INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) 
VALUES (&#039;remontti&#039;, &#039;1&#039;, MD5(&#039;SUA_SENHA&#039;), &#039;2001&#039;, &#039;2001&#039;, &#039;/var/pure-ftpd/remontti&#039;, &#039;100&#039;, &#039;100&#039;, &#039;&#039;, &#039;*&#039;, &#039;50&#039;, &#039;0&#039;);

SELECT * FROM ftpd;
EXIT;</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd-mysql-mariadb.png" data-rel="lightbox-gallery-5XnR5BNx" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd-mysql-mariadb.png" alt="" width="2076" height="896" class="alignnone size-full wp-image-6984" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd-mysql-mariadb.png 2076w, https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd-mysql-mariadb-300x129.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd-mysql-mariadb-1024x442.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd-mysql-mariadb-768x331.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd-mysql-mariadb-1536x663.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2022/12/pure-ftpd-mysql-mariadb-2048x884.png 2048w" sizes="auto, (max-width: 2076px) 100vw, 2076px" /></a><br />
Limpe o histórico do mariadb. Não queremos ninguém vendo o q digitamos lá <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"># &gt; /root/.mysql_history</pre>
<p>Ao fazer login o diretório /var/pure-ftpd/USUARIO será criado automaticamente.</p>
<p>Restarte o serviço e verifique o status do mesmo</p>
<pre class="remontti-code"># systemctl restart pure-ftpd-mysql
# systemctl status pure-ftpd-mysql</pre>
<p>Sempre que você queira criar um novo usuário, você tem que criar uma entrada na tabela ftpd.<br />
Explicando a estrutura da tabela:</p>
<p><strong>User:</strong> Seu usuário (ex. como no nosso usuário acima: teste).<br />
<strong>Status: </strong>0 ou 1. 0 deixará sua conta inativa, e o usuário não pode logar.<br />
<strong>Password:</strong> A senha do usuário. A senha está encriptada com MD5.<br />
<strong>UID:</strong> O userid do usuário ftp que você criou (ex: 2001)<br />
<strong>GID: </strong>O groupid do grupo ftp que você criou (ex: 2001).<br />
<strong>Dir:</strong> Diretório home do usuário (ex: /home/teste). Se não existir será criado quando logar pela primeira vez via FTP. O usuário será preso neste diretório home.<br />
<strong>ULBandwidth: </strong>Controle de Upload em KB/Sec. Use 0 para que seja ilimitado.<br />
<strong>DLBandwidth: </strong>Controle de Download em KB/sec. Use 0 para que seja ilimitado.<br />
<strong>Comment: </strong>Você pode inserir qualquer comentário (ex: Usuário da administração). Você deixa este campo limpo.<br />
<strong>Ipaccess: </strong>Você pode definir o ip que serão permitidos para conectar nesta conta FTP. Ou &#8216;*&#8217; para qualquer endereço IP.<br />
<strong>QuotaSize: </strong>Espaço de armazenamento em MB (não KB, como em ULBandwidth eDLBandwidth) Defina 0 como ilimitado.<br />
<strong>QuotaFiles:</strong> Número total de arquivos que este usuário poderá salvar. Defina 0 para ilimitado.</p>
<h3>Protegendo com Fail2ban</h3>
<pre class="remontti-code"># apt install fail2ban
# echo yes &gt; /etc/pure-ftpd/conf/DontResolve
# vim /etc/fail2ban/jail.d/defaults-debian.conf</pre>
<p>Adicione o filtro pure-ftpd.</p>
<pre class="remontti-code">[sshd]
enabled = true
[pure-ftpd]
enabled = true</pre>
<p>Restarte o fail2ban</p>
<pre class="remontti-code"># systemctl restart fail2ban</pre>
<p>Se você tiver interesse em ter uma interface web para gerenciamento recomendo:<br />
<a href="https://blog.remontti.com.br/5893" rel="noopener noreferrer" target="_blank">Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin + Let’s Encrypt no Debian 11 bullseye “LAMP”</a></p>
<p>Gostou?</p>
<p>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!<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>Fonte:<a href="http://download.pureftpd.org/pub/pure-ftpd/doc/README.MySQL" rel="noopener noreferrer" target="_blank"> http://download.pureftpd.org/pub/pure-ftpd/doc/README.MySQL</a></p>
<p>O post <a href="https://blog.remontti.com.br/6975">Como criar um servidor FTP (Pure-FTPd) com usuário no banco de dados MariaDB/MySQL com Debian 11 Bullseye</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6975/feed</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
		<item>
		<title>Sistema de software de vigilância por vídeo de código aberto: ZoneMinder</title>
		<link>https://blog.remontti.com.br/6786</link>
					<comments>https://blog.remontti.com.br/6786#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Thu, 15 Sep 2022 19:14:51 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[cctv]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[vigilância]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6786</guid>

					<description><![CDATA[<p>ZoneMinder é um conjunto integrado de aplicativos que fornecem uma solução completa de vigilância que permite a captura, análise, gravação e monitoramento de qualquer CCTV ou câmeras de segurança conectadas a uma máquina baseada&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6786">Sistema de software de vigilância por vídeo de código aberto: ZoneMinder</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://zoneminder.com/" rel="noopener" target="_blank">ZoneMinder</a> é um conjunto integrado de aplicativos que fornecem uma solução completa de vigilância que permite a captura, análise, gravação e monitoramento de qualquer CCTV ou câmeras de segurança conectadas a uma máquina baseada em Linux. Ele foi projetado para ser executado em distribuições que suportam a interface Vídeo para Linux (V4L) e foi testado com câmeras de vídeo conectadas a placas BTTV, várias câmeras USB e também suporta a maioria das câmeras de rede IP.</p>
<p><strong>Distribuição utilizada neste tutorial:</strong><br />
Debian 11 (Bullseye) 64 bits <a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank">instalação mínima</a><br />
<a href="https://blog.remontti.com.br/5867" rel="noopener" target="_blank">Como melhorar a produtividade no seu Debian após instalação</a> (Recomendado)</p>
<p><strong>Atualize e instale os pacotes necessários</strong></p>
<pre class="remontti-code"># apt update -y 
# apt upgrade -y 
# apt install vim wget apache2 mariadb-server php libapache2-mod-php php-mysql lsb-release gnupg2 sudo -y</pre>
<p><strong>Adicione o repositório do Zoneminder</strong></p>
<pre class="remontti-code"># echo &quot;deb https://zmrepo.zoneminder.com/debian/release-1.36 &quot;`lsb_release -c -s`&quot;/&quot; &gt; /etc/apt/sources.list.d/zoneminder.list
# wget -O - https://zmrepo.zoneminder.com/debian/archive-keyring.gpg | apt-key add -
# apt update</pre>
<h4>Instalação</h4>
<pre class="remontti-code"># apt install zoneminder</pre>
<p>Ajustando o timezone do PHP</p>
<pre class="remontti-code"># sed -i &quot;s/;date.timezone =/date.timezone = $(sed &#039;s/\//\\\//&#039; /etc/timezone)/g&quot; /etc/php/7.4/apache2/php.ini</pre>
<p>Habilitaremos as configurações do zoneminder para o apache bem como ativar alguns mods. </p>
<pre class="remontti-code"># a2enconf zoneminder
# a2enmod rewrite headers expires cgi</pre>
<p>Reinicie o apache</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>Crie um banco de dados para o zoneminder</p>
<pre class="remontti-code"># mariadb -u root</pre>
<p>Altere ALTERE_3ST4_SENHA para sua senha.</p>
<pre class="remontti-code-plain">CREATE DATABASE zm;
GRANT ALL PRIVILEGES ON zm.* TO &#039;zm&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;ALTERE_3ST4_SENHA&#039;;
FLUSH PRIVILEGES;
quit;</pre>
<p>Altere em /etc/zm/zm.conf ZM_DB_USER e ZM_DB_PASS para os calores criados.</p>
<pre class="remontti-code"># vim /etc/zm/zm.conf</pre>
<pre class="remontti-code-plain">ZM_DB_USER=zm
ZM_DB_PASS=ALTERE_3ST4_SENHA</pre>
<p>Habilite o zoneminder para iniciar no boot e start o mesmo.</p>
<pre class="remontti-code"># systemctl enable zoneminder
# systemctl start zoneminder</pre>
<p>Por segurança recomendo definir uma senha para o root do mariaDB<br />
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.</p>
<pre class="remontti-code"># mariadb -u root</pre>
<pre class="remontti-code-plain">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!</p>
<pre class="remontti-code"># &gt; /root/.mysql_history</pre>
<p>Abra o Zoneminder em seu navegador acessando<strong> http://___IP___/zm </strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_start.png" data-rel="lightbox-gallery-eFVA0Jwr" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_start-300x206.png" alt="" width="300" height="206" class="alignnone size-medium wp-image-6792" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_start-300x206.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_start-1024x703.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_start-768x528.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_start-1536x1055.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_start.png 1680w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Clique em <strong>APPLY</strong></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_01.png" data-rel="lightbox-gallery-eFVA0Jwr" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_01-300x75.png" alt="" width="300" height="75" class="alignnone size-medium wp-image-6793" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_01-300x75.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_01-1024x255.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_01-768x191.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_01-1536x382.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_01.png 1680w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Para alterar para Portugues acesse o menu <strong>Options</strong> localize <strong>LANG_DEFAULT</strong> e altere para <strong>pt_br</strong> e clique em <strong>SAVE</strong>. Recarregue a pagina para atualiza.</p>
<p>Para mais ajuda acesse: <strong><a href="https://zoneminder.readthedocs.io/en/stable/userguide/index.html" rel="noopener" target="_blank">Guia do Usuário</a></strong></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_02.png" data-rel="lightbox-gallery-eFVA0Jwr" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_02-300x120.png" alt="" width="300" height="120" class="alignnone size-medium wp-image-6801" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_02-300x120.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_02-1024x411.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_02-768x308.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_02-1536x617.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2022/09/zoneminder_debian_11_bullseye_02.png 1666w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>FONTES:<br />
<a href="https://zoneminder.readthedocs.org/" rel="noopener" target="_blank">https://zoneminder.readthedocs.org/</a><br />
<a href="https://wiki.zoneminder.com/Debian_11_Bullseye_with_Zoneminder_1.36.x" rel="noopener" target="_blank">https://wiki.zoneminder.com/Debian_11_Bullseye_with_Zoneminder_1.36.x</a><br />
<a href="https://github.com/ZoneMinder/ZoneMinder" rel="noopener" target="_blank">https://github.com/ZoneMinder/ZoneMinder</a><br />
RECOMENDADO:<br /><a href="https://github.com/pliablepixels/zmeventnotification" rel="noopener" target="_blank">https://github.com/pliablepixels/zmeventnotification</a><br /><a href="https://github.com/pliablepixels/zmMagik" rel="noopener" target="_blank">https://github.com/pliablepixels/zmMagik</a><br /><a href="https://github.com/manupap1/libzoneminder-plugin-openalpr" rel="noopener" target="_blank">https://github.com/manupap1/libzoneminder-plugin-openalpr</a></p>
<p>O post <a href="https://blog.remontti.com.br/6786">Sistema de software de vigilância por vídeo de código aberto: ZoneMinder</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6786/feed</wfw:commentRss>
			<slash:comments>19</slash:comments>
		
		
			</item>
		<item>
		<title>BGP Monitoring Protocol (BMP) aprenda a instalar o OpenBMP</title>
		<link>https://blog.remontti.com.br/6723</link>
					<comments>https://blog.remontti.com.br/6723#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Thu, 04 Aug 2022 23:47:18 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[bgp]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[grafana]]></category>
		<category><![CDATA[Huawei]]></category>
		<category><![CDATA[juniper]]></category>
		<category><![CDATA[junos]]></category>
		<category><![CDATA[monitoramento]]></category>
		<category><![CDATA[openbmp]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6723</guid>

					<description><![CDATA[<p>openBMP é um sistema de monitoramento BGP. Compatível com protocolo de monitoramento BGP (BMP). Os dados BGP são armazenados no banco de dados PostgreSQL. Os RIBs são mantidos pelo estado, bem como o histórico&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6723">BGP Monitoring Protocol (BMP) aprenda a instalar o OpenBMP</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.openbmp.org/"><strong>openBMP</strong></a> é um sistema de monitoramento BGP. Compatível com protocolo de monitoramento BGP (BMP). Os dados BGP são armazenados no banco de dados PostgreSQL. Os RIBs são mantidos pelo estado, bem como o histórico completo para cada atualização do BGP.</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/08/openbmp-flow.png" alt="" width="640" height="565" class="alignnone size-full wp-image-6727" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/08/openbmp-flow.png 640w, https://blog.remontti.com.br/wp-content/uploads/2022/08/openbmp-flow-300x265.png 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></p>
<p>&#8211; Dispositivos BMP (por exemplo, roteadores) enviam mensagens BMP para um coletor/daemon OpenBMP. Um daemon OpenBMP pode lidar com muitos roteadores e peers bgp, mas em uma rede grande com links de trânsito e tabelas de roteamento de internet completas, vários coletores OpenBMP são recomendados. Basta configurar no dispositivo BMP (roteador) qual servidor BMP deve ser utilizado.</p>
<p>&#8211; O Kafka permite que muitos aplicativos acessem os feeds BMP existentes de qualquer número de roteadores. Um único feed BMP via OpenBMP pode alimentar centenas de aplicativos de consumo, como MySQL, Cassandra, monitores em tempo real, arquivo simples, ELK, Apache Spark, etc.</p>
<p>&#8211; Administradores, engenheiros de rede, programas/scripts automatizados, etc. interagem com a API OpenBMP ou qualquer outro aplicativo de consumo</p>
<h5>Casos de uso</h5>
<p><em>(Tradução de: <a href="https://www.openbmp.org">https://www.openbmp.org</a>)</em><br />
Existem muitas razões para usar o OpenBMP, mas para destacar algumas comuns:</p>
<p>&#8211; Coletor BMP Centralizado &#8211; OpenBMP é um produtor para Kafka. Você pode escrever seu próprio consumidor ou usar um existente. Outros produtos podem interagir com o OpenBMP via Apache Kafka para fluxos RAW BMP ou as mensagens analisadas. Consulte Especificação da API do Barramento de Mensagens para obter mais detalhes.</p>
<p>&#8211; Monitoramento de topologia em tempo real &#8211; Pode monitorar e alertar sobre alterações de topologia, alterações de política ou falta de aplicação, vazamento de rota, seqüestro, etc.</p>
<p>&#8211; Segurança de BGP/Rota &#8211; Vazamento de rota, seqüestro por origem, por melhores caminhos de trânsito ou desvio da linha de base</p>
<p>&#8211; Espelhos &#8211; IPv4, IPv6 e VPN4</p>
<p>&#8211; Route Analytics &#8211; Rastreie tempos de convergência, histórico de prefixos conforme eles mudam ao longo do tempo, monitore e rastreie mudanças de política BGP, etc…</p>
<p>&#8211; Análise de Engenharia de Tráfego &#8211; Adapte-se dinamicamente às mudanças e saiba qual é a melhor mudança</p>
<p>&#8211; Hipóteses pré-políticas de BGP &#8211; As informações de roteamento pré-políticas fornecem informações sobre todos os atributos de caminho de vários pontos na rede, permitindo visualizações de topologia hipotéticas não intrusivas para novas validações de políticas</p>
<p>&#8211; Topologia IGP &#8211; BGP-LS (link-state) fornece a topologia completa do IGP (OSPF e/ou IS-IS). A topologia IGP fornece informações de nível de nó, link e prefixo. Isso inclui todos os próximos saltos do BGP. Agora é possível fazer uma seleção de melhor caminho BGP com métrica IGP para informações Adj-In-RIB. Também é possível monitorar o próprio IGP no que se refere a links, nós, prefixos e BGP.</p>
<p>Quem desejar se aprofundar mais tem um lindo artigo no <a href="https://wiki.brasilpeeringforum.org/w/Solucoes_para_o_gerenciamento_efetivo_do_bgp_em_um_sistema_autonomo" rel="noopener" target="_blank">Brasil Peering Fórum</a> escrito pelo <a href="https://www.linkedin.com/in/leofurtadonyc/" rel="noopener" target="_blank">Leonardo Furtado</a>. Agradeço ao <a href="https://www.linkedin.com/in/rudsoncosta/" rel="noopener" target="_blank">Rudson Costa</a> por me apresentar a ferramenta e me instigar a escrever este tutorial.</p>
<p><strong>Distribuição utilizada neste tutorial:</strong><br />
Debian 11 (Bullseye) 64 bits <a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank">instalação mínima</a><br />
<a href="https://blog.remontti.com.br/5867" rel="noopener" target="_blank">Como melhorar a produtividade no seu Debian após instalação</a> (Recomendado)</p>
<p>Atualize e instale os pacotes necessários</p>
<pre class="remontti-code"># apt update -y 
# apt upgrade -y 
# apt install wget git vim nano docker-compose htop tree -y </pre>
<p>Crie o diretório qual iremos baixar o projeto OpenBMP</p>
<pre class="remontti-code"># mkdir /root/obmp-install
# cd /root/obmp-install
# wget https://raw.githubusercontent.com/OpenBMP/obmp-docker/main/docker-compose.yml 
# git clone https://github.com/OpenBMP/obmp-grafana.git</pre>
<p>Crie todos os diretórios e de as devidas permissões <em>(segui a documentação, antes de vir me criticar do 777)</em></p>
<pre class="remontti-code"># export OBMP_DATA_ROOT=/var/openbmp
# mkdir -p $OBMP_DATA_ROOT
# mkdir -p ${OBMP_DATA_ROOT}/config
# chmod -R 777 ${OBMP_DATA_ROOT}/config
# mkdir -p ${OBMP_DATA_ROOT}/zk-data
# mkdir -p ${OBMP_DATA_ROOT}/zk-log
# chown -R 1000:1000 ${OBMP_DATA_ROOT}/zk-*/
# mkdir -p ${OBMP_DATA_ROOT}/postgres/data
# mkdir -p ${OBMP_DATA_ROOT}/postgres/ts
# chown -R 1000:1000 ${OBMP_DATA_ROOT}/postgres/
# mkdir -p ${OBMP_DATA_ROOT}/kafka-data
# chown -R 1000:1000 ${OBMP_DATA_ROOT}/kafka-data/
# chmod 777 ${OBMP_DATA_ROOT}/kafka-data
# mkdir -p ${OBMP_DATA_ROOT}/grafana
# cp -r obmp-grafana/dashboards obmp-grafana/provisioning ${OBMP_DATA_ROOT}/grafana/
# chmod -R 777 ${OBMP_DATA_ROOT}/grafana</pre>
<p>Verifique se tudo foi criado</p>
<pre class="remontti-code"># tree $OBMP_DATA_ROOT</pre>
<p>Ajuste a memória Psql-App leia mais <a href="https://www.openbmp.org/getting_started.html#vm-sizing" rel="noopener" target="_blank">aqui</a> sobre requisitos de hardware</p>
<pre class="remontti-code"># sed -i &#039;s/- MEM=3/- MEM=4/&#039; docker-compose.yml</pre>
<p>Agora iremos subir todos os containes:</p>
<pre class="remontti-code"># OBMP_DATA_ROOT=/var/openbmp docker-compose -f ./docker-compose.yml -p obmp up -d</pre>
<p>Verifique se todos os containes estão Ups</p>
<pre class="remontti-code">docker ps</pre>
<pre class="remontti-code-plain">#CONTAINER ID   IMAGE                             COMMAND                  CREATED          STATUS          PORTS                                        NAMES
#079afaaba23f   confluentinc/cp-kafka:7.1.1       &quot;/etc/confluent/dock…&quot;   24 minutes ago   Up 24 minutes   0.0.0.0:9092-&gt;9092/tcp                       obmp-kafka
#fc2f5a316138   openbmp/whois:2.2.0               &quot;/bin/sh -c &#039;/usr/lo…&quot;   24 minutes ago   Up 24 minutes   0.0.0.0:4300-&gt;43/tcp                         obmp-whois
#47d8776c4fc9   openbmp/psql-app:2.2.1            &quot;/usr/sbin/run&quot;          24 minutes ago   Up 23 minutes   0.0.0.0:9005-&gt;9005/tcp                       obmp-psql-app
#9b97cc146ff7   openbmp/postgres:2.2.0            &quot;/docker-entrypoint.…&quot;   24 minutes ago   Up 24 minutes   8008/tcp, 0.0.0.0:5432-&gt;5432/tcp, 8081/tcp   obmp-psql
#dc694dd40972   openbmp/collector:2.2.0           &quot;/usr/sbin/run&quot;          24 minutes ago   Up 24 minutes   0.0.0.0:5000-&gt;5000/tcp                       obmp-collector
#305a1f316ba8   confluentinc/cp-zookeeper:7.1.1   &quot;/etc/confluent/dock…&quot;   24 minutes ago   Up 24 minutes   2181/tcp, 2888/tcp, 3888/tcp                 obmp-zookeeper
#949272653acb   grafana/grafana:8.5.4             &quot;/run.sh&quot;                24 minutes ago   Up 24 minutes   0.0.0.0:3000-&gt;3000/tcp                       obmp-grafana</pre>
<p>Acesse o grafana na porta 3000 deslogue e logue novamente com usuário <strong>admin</strong> e senha <strong>openbmp</strong> e faça a alteração do mesmo.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/08/openbmp-grafana.png" alt="" width="1580" height="870" class="alignnone size-full wp-image-6734" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/08/openbmp-grafana.png 1580w, https://blog.remontti.com.br/wp-content/uploads/2022/08/openbmp-grafana-300x165.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/08/openbmp-grafana-1024x564.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/08/openbmp-grafana-768x423.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/08/openbmp-grafana-1536x846.png 1536w" sizes="auto, (max-width: 1580px) 100vw, 1580px" /></p>
<h3>Criando um firewall para proteger</h3>
<p>Podemos consultar com o comando ss várias portas abertas, por segurança vamos fecha-las.</p>
<pre class="remontti-code"># ss -putan | grep LIST</pre>
<pre class="remontti-code-plain">tcp   LISTEN 0      128          0.0.0.0:22          0.0.0.0:*     users:((&quot;sshd&quot;,pid=441,fd=3))                        
tcp   LISTEN 0      4096         0.0.0.0:5432        0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=5651,fd=4))               
tcp   LISTEN 0      4096         0.0.0.0:3000        0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=5547,fd=4))               
tcp   LISTEN 0      4096         0.0.0.0:9092        0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=6188,fd=4))               
tcp   LISTEN 0      4096         0.0.0.0:5000        0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=5576,fd=4))               
tcp   LISTEN 0      4096       127.0.0.1:42315       0.0.0.0:*     users:((&quot;containerd&quot;,pid=429,fd=13))                 
tcp   LISTEN 0      4096         0.0.0.0:4300        0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=5756,fd=4))               
tcp   LISTEN 0      4096         0.0.0.0:9005        0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=6559,fd=4))               
tcp   LISTEN 0      128             [::]:22             [::]:*     users:((&quot;sshd&quot;,pid=441,fd=4))  </pre>
<p>O nftablesjá vem por padrão instalado no Debian 11. </p>
<pre class="remontti-code"># vim /etc/nftables.conf</pre>
<p>Neste exemplo (quase q auto explicativo) vou deixar apenas a porta do Grafana aberta, as demais restritas a variável <strong>ACESSO_EXTERNO</strong>.</p>
<pre class="remontti-code">#!/usr/sbin/nft -f

flush ruleset

define PORTAS_RESTRITAS = { 22,4300,5000,5432,9092,9005 }
define PORTAS_ABERTAS = { 3000 }

define ACESSO_EXTERNO_IPv4 = { 172.16.0.0/12, 10.0.0.0/8, 200.200.200.0/24 }
define ACESSO_EXTERNO_IPv6 = { 2001:db8:1::/64 }

define ACESSO_LOCALHOST_IPv4 = { 127.0.0.0/8 }
define ACESSO_LOCALHOST_IPv6 = { ::1/128 }

table inet filter {
    set src_ipv4 {
        type ipv4_addr
        flags interval
        elements = { $ACESSO_LOCALHOST_IPv4, $ACESSO_EXTERNO_IPv4 }
    }
    set src_ipv6 {
        type ipv6_addr
        flags interval
        elements = { $ACESSO_LOCALHOST_IPv6, $ACESSO_EXTERNO_IPv6 }
    }
    chain input {
        type filter hook input priority 0;
        ip saddr  != @src_ipv4 tcp dport { $PORTAS_RESTRITAS } counter drop
        ip6 saddr != @src_ipv6 tcp dport { $PORTAS_RESTRITAS } counter drop

        tcp dport { $PORTAS_ABERTAS } counter accept
        
    }
    chain forward {
        type filter hook forward priority 0;
    }
    chain output {
        type filter hook output priority 0;
    }
}</pre>
<p>Habilite para o boot e reinicie o nftables </p>
<pre class="remontti-code"># systemctl enable nftables 
# systemctl restart nftables </pre>
<p>Se desejar matar todos os containes rode:</p>
<pre class="remontti-code"># cd /root/obmp-install
OBMP_DATA_ROOT=/var/openbmp docker-compose -p obmp down</pre>
<p>Para apagar tudo:</p>
<pre class="remontti-code"># rm -rf /var/openbmp</pre>
<h4>Integração com Huawei</h4>
<pre class="remontti-code">bmp
 #
 bmp-session __IP_SERVIDOR__ alias meuprovedor
 tcp connect port 5000
 #
 monitor public
  route-mode ipv4-family unicast adj-rib-in pre-policy
 #
 monitor peer __IP_SERVIDOR__
#
bgp xxxx
 ipv4-family unicast
 peer __IP_PEER_MONITORADO__ keep-all-routes
</pre>
<p><strong>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>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> <a href="https://www.openbmp.org/" rel="noopener" target="_blank">https://www.openbmp.org/</a></p>
<p>O post <a href="https://blog.remontti.com.br/6723">BGP Monitoring Protocol (BMP) aprenda a instalar o OpenBMP</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6723/feed</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>ONLYOFFICE Workspace &#8211; A suíte office mais completa e poderosa open source</title>
		<link>https://blog.remontti.com.br/6627</link>
					<comments>https://blog.remontti.com.br/6627#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Thu, 23 Jun 2022 23:31:27 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[ms office]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[onlyoffice]]></category>
		<category><![CDATA[suite]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6627</guid>

					<description><![CDATA[<p>ONLYOFFICE Workspace é um pacote de escritório completo multiplataforma gratuito para pessoas que buscam uma alternativa ao Microsoft Office. Você ira ter uma plataforma foda online! 🙂 Gerenciar todos os seus processos empresariais &#8211;&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6627">ONLYOFFICE Workspace &#8211; A suíte office mais completa e poderosa open source</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong><a href="https://www.onlyoffice.com/pt/workspace.aspx" rel="noopener" target="_blank">ONLYOFFICE Workspace</a></strong> é um pacote de escritório completo multiplataforma gratuito para pessoas que buscam uma alternativa ao Microsoft Office. Você ira ter uma plataforma <del datetime="2022-06-23T19:44:25+00:00">foda</del> online! <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><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian.png" alt="" width="1250" height="387" class="alignnone size-full wp-image-6642" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian.png 1250w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian-300x93.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian-1024x317.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian-768x238.png 768w" sizes="auto, (max-width: 1250px) 100vw, 1250px" /></p>
<p>Gerenciar todos os seus processos empresariais<br />
<strong>&#8211; Editor de documentos<br />
&#8211; Gerenciador de projetos.<br />
&#8211; Painel CRM<br />
&#8211; Cliente de e-mail<br />
&#8211; Lista de contatos<br />
&#8211; Agenda</strong></p>
<p>Neste tutorial irei ensinar instalar a versão Community <em>(faça você mesmo)</em>, existe <a href="https://www.onlyoffice.com/pt/download-workspace.aspx?from=workspace#workspace-community" rel="noopener" target="_blank">várias forma de instalação</a>, mas como somos os cara do Debian bora lá montar nosso servidor!</p>
<p><strong>Requisitos mínimos de sistema:</strong><br />
&#8211; CPU dual core 2 GHz<br />
&#8211; RAM 6 GB<br />
&#8211; 6 GB SWAP<br />
&#8211; HDD 40 GB<br />
&#8211; OS amd64</p>
<p><strong>Distribuição utilizada neste tutorial:</strong><br />
Debian 11 (Bullseye) 64 bits <a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank">instalação mínima</a><br />
<a href="https://blog.remontti.com.br/5867" rel="noopener" target="_blank">Como melhorar a produtividade no seu Debian após instalação</a> (Recomendado)</p>
<pre class="remontti-code"># apt install wget
# wget https://download.onlyoffice.com/install/workspace-install.sh</pre>
<p>Temos varias opções de instalação, execute o script com parâmetro <strong>-h</strong> para conhece-las.</p>
<pre class="remontti-code"># bash workspace-install.sh -h</pre>
<p>Vou deixar aqui duas opções que serão provavelmente a de sua escolha: </p>
<h3>Instale todos os componentes da solução:</h3>
<h5>Configurando um domínio para o serviço de e-mail</h5>
<p>No Debian necessitamos habilitar o <strong>vsyscall</strong> que vem desabilitado no kernel, o vsyscall é um mecanismo que é usado para acelerar certas chamadas de sistema e necessário para que ONLYOFFICE Mail funcione corretamente. OBS: Para instalação em contêiner do ONLYOFFICE.<br />
Para verificar se vsyscall esta ativo execute o comando:</p>
<pre class="remontti-code"># cat /proc/self/maps | egrep &#039;vdso|vsyscall&#039;</pre>
<p>Se o resultado for o a baixo será necessário ativar ele.</p>
<pre class="remontti-code-plain">7fffa9dd3000-7fffa9dd5000 r-xp 00000000 00:00 0             [vdso]</pre>
<pre class="remontti-code"># nano /etc/default/grub</pre>
<p>Altere:</p>
<pre class="remontti-code-plain">GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet&quot;</pre>
<p>Por:</p>
<pre class="remontti-code-plain">GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet vsyscall=emulate&quot;</pre>
<p>Atualize o grub e reinicie</p>
<pre class="remontti-code"># update-grub
# reboot</pre>
<p>Agora ao executar o comando, o retorno será:</p>
<pre class="remontti-code-plain"># cat /proc/self/maps | egrep &#039;vdso|vsyscall&#039;
7ffe7f381000-7ffe7f383000 r-xp 00000000 00:00 0                [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0        [vsyscall]</pre>
<p>Vamos a instalação, informando seu domínio utilizando o parâmetro -md. <em>(ou pule para o próximo comando para não instalar o servidor de e-mail)</em></p>
<pre class="remontti-code"># bash workspace-install.sh -md onlyoffice.remontti.com.br</pre>
<h5>Sem servidor de e-mail</h5>
<pre class="remontti-code"># bash workspace-install.sh -ims false</pre>
<p>Com sua escolha, agora ao executar o script será lhe solicitados o forma de instalação: <strong>Install with Docker [Y/N/C]?</strong><br />
&#8211; <strong>Y</strong> Irá instalar o Onlyoffice usando docker. (Recomendado)<br />
&#8211; <strong>N</strong> Irá instalar o Onlyoffice usando pacotes deb.<br />
&#8211; <strong>C</strong> Cancelar.</p>
<p>Irei utilizar <strong>opção recomendada</strong> pela Onlyoffice, com docker <strong>[Y]</strong>, se você é mais ninja e quer ter total gerencia de forma direta pode fazer a instalação pelos pacotes debian utilizando opção [N].</p>
<p>A instalação ira levar alguns minutos&#8230; (Depende do seu hardware e velocidade da conexão)</p>
<p>Ao finalizar podemos verificar quais as portas foram abertas com o comando:</p>
<pre class="remontti-code"># ss -putan | grep LIST</pre>
<pre class="remontti-code-plain">
tcp   LISTEN 0      4096           0.0.0.0:4190         0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=7370,fd=4))             
tcp   LISTEN 0      4096           0.0.0.0:993          0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=7417,fd=4))             
tcp   LISTEN 0      4096           0.0.0.0:995          0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=7393,fd=4))             
tcp   LISTEN 0      4096           0.0.0.0:5222         0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=15682,fd=4))            
tcp   LISTEN 0      4096           0.0.0.0:587          0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=7439,fd=4))             
tcp   LISTEN 0      4096           0.0.0.0:143          0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=7483,fd=4))             
tcp   LISTEN 0      4096           0.0.0.0:80           0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=15724,fd=4))            
tcp   LISTEN 0      4096           0.0.0.0:465          0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=7462,fd=4))             
tcp   LISTEN 0      128            0.0.0.0:22           0.0.0.0:*     users:((&quot;sshd&quot;,pid=407,fd=3))                      
tcp   LISTEN 0      4096           0.0.0.0:25           0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=7504,fd=4))             
tcp   LISTEN 0      4096           0.0.0.0:443          0.0.0.0:*     users:((&quot;docker-proxy&quot;,pid=15704,fd=4))            
tcp   LISTEN 0      4096              [::]:4190            [::]:*     users:((&quot;docker-proxy&quot;,pid=7380,fd=4))             
tcp   LISTEN 0      4096              [::]:993             [::]:*     users:((&quot;docker-proxy&quot;,pid=7425,fd=4))             
tcp   LISTEN 0      4096              [::]:995             [::]:*     users:((&quot;docker-proxy&quot;,pid=7401,fd=4))             
tcp   LISTEN 0      4096              [::]:5222            [::]:*     users:((&quot;docker-proxy&quot;,pid=15690,fd=4))            
tcp   LISTEN 0      4096              [::]:587             [::]:*     users:((&quot;docker-proxy&quot;,pid=7446,fd=4))             
tcp   LISTEN 0      4096              [::]:143             [::]:*     users:((&quot;docker-proxy&quot;,pid=7489,fd=4))             
tcp   LISTEN 0      4096              [::]:80              [::]:*     users:((&quot;docker-proxy&quot;,pid=15731,fd=4))            
tcp   LISTEN 0      4096              [::]:465             [::]:*     users:((&quot;docker-proxy&quot;,pid=7468,fd=4))             
tcp   LISTEN 0      128               [::]:22              [::]:*     users:((&quot;sshd&quot;,pid=407,fd=4))                      
tcp   LISTEN 0      4096              [::]:25              [::]:*     users:((&quot;docker-proxy&quot;,pid=7511,fd=4))             
tcp   LISTEN 0      4096              [::]:443             [::]:*     users:((&quot;docker-proxy&quot;,pid=15712,fd=4))</pre>
<p>Podemos verificas os containers dockers:</p>
<pre class="remontti-code"># docker ps -a -s</pre>
<pre class="remontti-code-plain">
CONTAINER ID   IMAGE             COMMAND                  PORTS                        SIZE

779b13c4376b   communityserver   &quot;/app/run-community-…&quot;   0.0.0.0:80-&gt;80/tcp,          76MB (virtual 4.54GB)
                                                          :::80-&gt;80/tcp, 
                                                          0.0.0.0:443-&gt;443/tcp, 
                                                          :::443-&gt;443/tcp, 
                                                          3306/tcp, 
                                                          5280/tcp, 
                                                          9865-9866/tcp, 
                                                          9871/tcp, 
                                                          9882/tcp, 
                                                          0.0.0.0:5222-&gt;5222/tcp, 
                                                          :::5222-&gt;5222/tcp, 
                                                          9888/tcp

6e408504e7b0   controlpanel      &quot;/var/www/onlyoffice…&quot;   80/tcp, 443/tcp              909kB (virtual 520MB)

3beaea4df31e   mailserver        &quot;/bin/sh -c &#039;export …&quot;   0.0.0.0:25-&gt;25/tcp,          3.3MB (virtual 1.9GB)
                                                          :::25-&gt;25/tcp, 
                                                          0.0.0.0:143-&gt;143/tcp, 
                                                          :::143-&gt;143/tcp, 
                                                          0.0.0.0:465-&gt;465/tcp, 
                                                          :::465-&gt;465/tcp, 
                                                          0.0.0.0:587-&gt;587/tcp, 
                                                          :::587-&gt;587/tcp, 
                                                          0.0.0.0:993-&gt;993/tcp, 
                                                          :::993-&gt;993/tcp, 
                                                          0.0.0.0:995-&gt;995/tcp, 
                                                          :::995-&gt;995/tcp, 
                                                          3306/tcp, 
                                                          0.0.0.0:4190-&gt;4190/tcp, 
                                                          :::4190-&gt;4190/tcp, 
                                                          8081/tcp
9cf6e70c156f   documentserver    &quot;/app/ds/run-documen…&quot;   80/tcp, 443/tcp              498MB (virtual 3.43GB

a33ae4057009   elasticsearch     &quot;/tini -- /usr/local…&quot;   9200/tcp, 9300/tcp           149kB (virtual 812MB)

ba2fd3132277   mysql             &quot;docker-entrypoint.s…&quot;   3306/tcp, 33060/tcp          6B (virtual 524MB)

</pre>
<p>Acesse seu domínio em seu navegado (ou endereço IP), ao acessar pela primeira vez será feito o cadastro do administrador.</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_1.png" alt="" width="1235" height="675" class="alignnone size-full wp-image-6650" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_1.png 1235w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_1-300x164.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_1-1024x560.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_1-768x420.png 768w" sizes="auto, (max-width: 1235px) 100vw, 1235px" /></p>
<p>Plataforma instalada com sucesso!<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_2.png" alt="" width="1254" height="678" class="alignnone size-full wp-image-6649" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_2.png 1254w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_2-300x162.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_2-1024x554.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_2-768x415.png 768w" sizes="auto, (max-width: 1254px) 100vw, 1254px" /></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_5.png" alt="" width="1681" height="987" class="alignnone size-full wp-image-6658" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_5.png 1681w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_5-300x176.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_5-1024x601.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_5-768x451.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_5-1536x902.png 1536w" sizes="auto, (max-width: 1681px) 100vw, 1681px" /></p>
<p>Para convidar outros usuários a plataforma basta acessar as <strong>Configurações</strong> e clicar em: <strong>Convidar usuário para o portal</strong>, e enviar o link para ele.</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_6.png" alt="" width="1676" height="696" class="alignnone size-full wp-image-6660" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_6.png 1676w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_6-300x125.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_6-1024x425.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_6-768x319.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_6-1536x638.png 1536w" sizes="auto, (max-width: 1676px) 100vw, 1676px" /></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_7.png" alt="" width="1277" height="625" class="alignnone size-full wp-image-6662" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_7.png 1277w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_7-300x147.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_7-1024x501.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_7-768x376.png 768w" sizes="auto, (max-width: 1277px) 100vw, 1277px" /></p>
<p>Um e-mail será enviado para você também de confirmação, e  após outro com algumas instruções.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_3.png" alt="" width="727" height="432" class="alignnone size-full wp-image-6654" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_3.png 727w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_3-300x178.png 300w" sizes="auto, (max-width: 727px) 100vw, 727px" /></p>
<p>As principais configurações são feitas em <strong>Control Panel</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_4.png" alt="" width="1161" height="952" class="alignnone size-full wp-image-6657" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_4.png 1161w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_4-300x246.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_4-1024x840.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_4-768x630.png 768w" sizes="auto, (max-width: 1161px) 100vw, 1161px" /></p>
<p>Que tal conectar ao &#8220;<a href="https://blog.remontti.com.br/3557" rel="noopener" target="_blank">nosso nextcloud</a>&#8220;?<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_8.png" alt="" width="1679" height="620" class="alignnone size-full wp-image-6665" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_8.png 1679w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_8-300x111.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_8-1024x378.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_8-768x284.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/06/onlyoffice_debian_11_8-1536x567.png 1536w" sizes="auto, (max-width: 1679px) 100vw, 1679px" /></p>
<p>Te muita coisa mas muita coisa, que se fosse escrever um tutorial levaria dias. A central de ajuda é muito completa, tem muito material na documentação, então não vou ficar criando novamente a roda <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>Meu objetivo era apresentar o projeto e realizar a instalação do mesmo. Espero que tenha gostado! </p>
<p>E não esqueça de realizar atualizações executando o script:</p>
<pre class="remontti-code"># bash workspace-install.sh -u true</pre>
<p><strong>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>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>Fonte:<br />
<a href="https://helpcenter.onlyoffice.com/administration/workspace.aspx" rel="noopener" target="_blank">https://helpcenter.onlyoffice.com</a></p>
<p>O post <a href="https://blog.remontti.com.br/6627">ONLYOFFICE Workspace &#8211; A suíte office mais completa e poderosa open source</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6627/feed</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Instalação do Nginx Proxy Manager</title>
		<link>https://blog.remontti.com.br/6561</link>
					<comments>https://blog.remontti.com.br/6561#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Sat, 18 Jun 2022 19:07:54 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[administração web]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[autenticação HTTP]]></category>
		<category><![CDATA[cgnat]]></category>
		<category><![CDATA[configuração de rede]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[Debian 12 Bookworm]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[Docker Compose]]></category>
		<category><![CDATA[gerenciamento de certificados]]></category>
		<category><![CDATA[instalação de software]]></category>
		<category><![CDATA[letsencrypt]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[Nginx Proxy Manager]]></category>
		<category><![CDATA[otimização de servidor]]></category>
		<category><![CDATA[proxy reverso]]></category>
		<category><![CDATA[proxy-cache]]></category>
		<category><![CDATA[segurança de aplicação]]></category>
		<category><![CDATA[SSL grátis]]></category>
		<category><![CDATA[tutorial de tecnologia]]></category>
		<category><![CDATA[webserver]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6561</guid>

					<description><![CDATA[<p>O que é o Nginx Proxy Manager? É um sistema que possui uma interface web limpa, eficiente e fácil de configurar, sem precisar saber muito sobre Nginx ou Letsencrypt. Característica &#8211; Interface de administração&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6561">Instalação do Nginx Proxy Manager</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/2022/06/nginx_proxy_manager_cover.png" alt="" width="720" height="340" class="alignnone size-full wp-image-6588" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_cover.png 720w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_cover-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_cover-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>O que é o <a href="https://nginxproxymanager.com/guide/#project-goal"><strong>Nginx Proxy Manager</strong></a>?<br />
É um sistema que possui uma interface web limpa, eficiente e fácil de configurar, sem precisar saber muito sobre Nginx ou Letsencrypt.</p>
<p><b>Característica</b><br />
 &#8211; Interface de administração bonita e segura baseada<br />
 &#8211; Crie facilmente domínios de encaminhamento, redirecionamentos, streams e hosts 404 sem saber nada sobre Nginx<br />
 &#8211; SSL grátis usando Let&#8217;s Encrypt ou forneça seus próprios certificados SSL personalizados<br />
 &#8211; Listas de acesso e autenticação HTTP básica para seus hosts<br />
 &#8211; Configuração avançada do Nginx disponível para superusuários<br />
 &#8211; Gerenciamento de usuários, permissões e log de auditoria</p>
<p><strong>Distribuição testadas:</strong><br />
<a href="https://blog.remontti.com.br/7236" rel="noopener" target="_blank">Debian 12 Bookworm</a><br />
<a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank"><del datetime="2024-08-23T13:04:44+00:00">Debian 11 Bullseye</del></a></p>
<p><a href="https://blog.remontti.com.br/5867" rel="noopener" target="_blank">Como melhorar a produtividade no seu Debian após instalação</a> (Recomendado)</p>
<p><strong>Porta Utilizadas</strong><br />
81  &#8211; Porta de administração do Nginx Proxy Manager<br />
80  &#8211; Porta HTTP pública<br />
443 &#8211; Porta HTTP pública</p>
<h4>Configurações de interface de Rede</h4>
<p>Para a configuração da interface de rede vou usar uma configuração <strong>Pointopoint</strong> (Ponto a ponto) assim utilizando de apenas um endereço IP público, você pode (deve) <a href="https://blog.remontti.com.br/5848" rel="noopener" target="_blank">ler este tutorial</a> para conhecer varias possibilidades de configuração de rede pensa em como economizar endereços IPs.</p>
<pre class="remontti-code"># vim /etc/network/interfaces</pre>
<p>No meu exemplo vamos pesar que esse servidor esteja conectado ao RouterOS/Mikrotik ether2 e meu endereço de IP publico será o <em>200.200.200.255</em></p>
<pre class="remontti-code-plain">allow-hotplug enp0s3
iface enp0s3 inet static
        address 200.200.200.255
        pointopoint 192.168.171.171
        netmask 255.255.255.255
        gateway 192.168.171.171
</pre>
<p>Agora no seu RouterOS vamos criar nosso Pointopoint gatewai 192.168.171.171 tendo como network o endereço IP público.</p>
<pre class="remontti-code-plain">RouterOS# /ip address
RouterOS# add address=192.168.171.171 comment=Pointopoint interface=ether2 network=200.200.200.255</pre>
<p>Se você não tem IP publico para colocar em seu servidor, então fixe um endereço IP Privado e redirecione as potas 80,81 e 443 para ele, utilizando seu IP público que está em seu router. Exemplo:</p>
<pre class="remontti-code-plain">allow-hotplug enp0s3
iface enp0s3 inet static
        address 10.10.10.2/24
        gateway 10.10.10.1</pre>
<p>E é clario se você conter endereço IPv6, não deixe de configurar sua placa! Exemplo:</p>
<pre class="remontti-code-plain">iface enp0s3 inet6 static
        pre-up modprobe ipv6
        address 2804:bebe:cafe::2
        netmask 64
        gateway 2804:bebe:cafe::1</pre>
<h4>Instalação Docker</h4>
<p>Iremos instalar os pacotes necessários, bem como adicionar o repositório oficial do Docker</p>
<pre class="remontti-code"># apt install ca-certificates curl gnupg2 apt-transport-https lsb-release
# curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
# echo &quot;deb https://download.docker.com/linux/debian $(lsb_release -cs) stable&quot; &gt; /etc/apt/sources.list.d/docker.list</pre>
<p>Atualize o repositório e instale-o</p>
<pre class="remontti-code"># apt update
# apt install docker-ce docker-ce-cli containerd.io</pre>
<h4>Instalação Docker Compose</h4>
<p>Vamos fazer download do Docker Compose, e adicionar aos binários do nosso servidor como um executável. </p>
<pre class="remontti-code"># curl -L &quot;https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)&quot; -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose</pre>
<p>Versão baixada foi a 2.24.5, mas você pode consultar uma mais recente em: <a href="https://github.com/docker/compose/releases/" rel="noopener" target="_blank">https://github.com/docker/compose/releases/</a>, para verificar qual versão instalado use:</p>
<pre class="remontti-code"># docker-compose --version</pre>
<pre class="remontti-code-plain">Docker Compose version v2.24.5</pre>
<h4>Instação Nginx Proxy Manager</h4>
<p>Crie os diretórios quais ficarão todas as configurações:</p>
<pre class="remontti-code"># mkdir /etc/nginx-proxy
# mkdir /etc/nginx-proxy/{data,letsencrypt}</pre>
<p>Crie seu arquivo de composição do Docker com as configuração, para realizar a instalação dos containers do Nginx Proxy Manager e MariaDB com o Docker Compose. (Ajustes as senhas)</p>
<pre class="remontti-code"># vim /etc/nginx-proxy/docker-compose.yml</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">version: &quot;3&quot;
services:
  app:
    image: &#039;jc21/nginx-proxy-manager:latest&#039;
    restart: unless-stopped
    ports:
      # These ports are in format &lt;host-port&gt;:&lt;container-port&gt;
      - &#039;80:80&#039;       # Porta HTTP pública
      - &#039;443:443&#039;     # Porta HTTPS pública
      - &#039;81:81&#039; # Porta de administracao do Nginx Proxy
      # Adicione qualquer outra porta Stream que você queira expor, ex
      # - &#039;21:21&#039; # FTP
    environment:
      DB_MYSQL_HOST: &quot;db&quot;
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: &quot;nginxproxy&quot;
      DB_MYSQL_PASSWORD: &quot;S3NHA_NGINX_PR0XY&quot;
      DB_MYSQL_NAME: &quot;nginxproxy&quot;
      # Remova o comentário se você não tem o IPv6 em seu host
      # DISABLE_IPV6: &#039;true&#039;
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db

  db:
    image: &#039;jc21/mariadb-aria:latest&#039;
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: &#039;S3NHA_D3_R00T&#039;
      MYSQL_DATABASE: &#039;nginxproxy&#039;
      MYSQL_USER: &#039;nginxproxy&#039;
      MYSQL_PASSWORD: &#039;S3NHA_NGINX_PR0XY&#039;
    volumes:
      - ./mysql:/var/lib/mysql</pre>
<p>Execute o comando Docker Compose</p>
<pre class="remontti-code"># cd /etc/nginx-proxy
# docker-compose up -d</pre>
<p>Aguarde finalizar&#8230; em seguida visualize se os containers que foram criados</p>
<pre class="remontti-code"># docker ps -a</pre>
<pre class="remontti-code-plain">
CONTAINER ID   IMAGE                             COMMAND             CREATED          STATUS         PORTS                                                                                  NAMES
6b796a07af22   jc21/nginx-proxy-manager:latest   &quot;/init&quot;             9 seconds ago    Up 7 seconds   0.0.0.0:80-81-&gt;80-81/tcp, :::80-81-&gt;80-81/tcp, 0.0.0.0:443-&gt;443/tcp, :::443-&gt;443/tcp   nginx-proxy-app-1
4c93d3b8a544   jc21/mariadb-aria:latest          &quot;/scripts/run.sh&quot;   13 seconds ago   Up 8 seconds   3306/tcp                                                                               nginx-proxy-db-1
</pre>
<p>Abra em navegador <strong>http://IP_SERVIDOR/</strong> se tudo ocorreu bem você verá:<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_1.png" alt="" width="1274" height="666" class="alignnone size-full wp-image-6566" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_1.png 1274w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_1-300x157.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_1-1024x535.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_1-768x401.png 768w" sizes="auto, (max-width: 1274px) 100vw, 1274px" /></p>
<p>Agora abra na porta 81 <strong>http://IP_SERVIDOR:81/</strong> e entre com:</p>
<pre class="remontti-code-plain">Email: admin@example.com 
Password: changeme</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_2a.png" alt="" width="1255" height="661" class="alignnone size-full wp-image-6576" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_2a.png 1255w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_2a-300x158.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_2a-1024x539.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_2a-768x405.png 768w" sizes="auto, (max-width: 1255px) 100vw, 1255px" /><br />
Ao entrar pela primeira vez um formulário com informações será exibido para você alterar seus dados, <strong>altere seus e-mail e senha</strong>.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_3_a.png" alt="" width="1257" height="664" class="alignnone size-full wp-image-6575" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_3_a.png 1257w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_3_a-300x158.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_3_a-1024x541.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_3_a-768x406.png 768w" sizes="auto, (max-width: 1257px) 100vw, 1257px" /></p>
<h4>Configurações de DNS Autoritativa</h4>
<p>Para que possamos encaminhar os acessos iremos necessitar configurar um subdomínios para cada situação em nosso servidor <a href="https://blog.remontti.com.br/5958" rel="noopener" target="_blank">DNS autoritativo</a>. </p>
<p>Vamos criar um cenário fictício para ilustrar melhor. Temos 1 clientes recebendo IPs privados da classe de um CGNAT, e o mesmo solicita um redirecionamento de portas para seu DVR. O cliente recebe o endereço IP privado 100.64.0.71 (Fixado) seu DVR esta na porta 80 na rede local 192.168.0.7. Para cada situação irei criar um novo subdomínio, exemplo &#8220;dvrudi&#8221; no servidor DNS autoritativo apontando para o IP Público do seu servidor Nginx Proxy, assim eu acesso <em>&#8220;dvrudi.remontti.com.br&#8221;</em>. Agora ao acessar o roteato e criar o redirecionamento provavelmente não iremos poder usar a porta 80, pois ela já é a porta de acesso do roteador 100.64.0.71, e é bem possível que você tenha fechado ela em seu firewall também para se proteger de ataques, neste caso use outra porta exemplos 60080 para fazer o direcionamento para a porta 80 do DVR, o cliente nem precisa saber desta porta 60080 ela é a penas a porta de entrada do Nginx Proxy. Agora volte ao Admin do NPM, no menu <strong>Hosts</strong> >> <strong>Proxy Hosts</strong> >> <strong>Add Proxy Host</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_4_a.png" alt="" width="1256" height="593" class="alignnone size-full wp-image-6571" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_4_a.png 1256w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_4_a-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_4_a-1024x483.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_4_a-768x363.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_4_a-520x245.png 520w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_4_a-720x340.png 720w" sizes="auto, (max-width: 1256px) 100vw, 1256px" /></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_6.png" alt="" width="1257" height="449" class="alignnone size-full wp-image-6577" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_6.png 1257w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_6-300x107.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_6-1024x366.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_6-768x274.png 768w" sizes="auto, (max-width: 1257px) 100vw, 1257px" /></p>
<p>Se desejar pode ativar certificado grátis com Lets Encrypt.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_5_a.png" alt="" width="1253" height="595" class="alignnone size-full wp-image-6572" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_5_a.png 1253w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_5_a-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_5_a-1024x486.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager_5_a-768x365.png 768w" sizes="auto, (max-width: 1253px) 100vw, 1253px" /></p>
<p>Agora ao acessar <em>&#8220;dvrudi.remontti.com.br&#8221;</em> ele estará acessando diretamente o DVR. #clientefeliz</p>
<p>Legal não? Agora você pode ter um painel administrativo para redirecionamento de serviços web, no exemplo sitei o caso de CGNAT, mas você pode usar para qualquer outra situação, bem como até apontar para um subdiretório, e restringir o acesso do mesmo, sabe esses ERP <del datetime="2022-06-18T18:45:32+00:00">porco</del> que você acessar com /admin, daria para restringir. Bom o painel do NPM é bem intuitivo, para quem já conhece o Nginx sabe das suas enumeras possibilidades vai achar um doce.</p>
<h4>Atualizando do NPM</h4>
<pre class="remontti-code"># cd /etc/nginx-proxy/
# docker-compose down
# docker-compose pull
# docker-compose up -d</pre>
<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>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><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/nginx_proxy_manager.png" alt="" width="261" height="90" class="alignnone size-full wp-image-6583" /><br />
<strong>Fonte: </strong><br />
<a href="https://nginxproxymanager.com/guide/" rel="noopener" target="_blank">https://nginxproxymanager.com/guide/</a><br />
<a href="https://github.com/NginxProxyManager/nginx-proxy-manager" rel="noopener" target="_blank">https://github.com/NginxProxyManager/nginx-proxy-manager</a></p>
<p>O post <a href="https://blog.remontti.com.br/6561">Instalação do Nginx Proxy Manager</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6561/feed</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Rodando servidor proxy-cache DNS com Unbound</title>
		<link>https://blog.remontti.com.br/6506</link>
					<comments>https://blog.remontti.com.br/6506#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 01 Jun 2022 20:21:32 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[bind9]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[proxy-cache]]></category>
		<category><![CDATA[Unbound]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6506</guid>

					<description><![CDATA[<p>Autor: Patrick Brandão Motivação: ao rodar qualquer software no Linux, a resolução de DNS e feita pela libresolv, que faz a leitura do /etc/host.conf e /etc/resolv.conf para obter o IP do servidor DNS. Assim,&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6506">Rodando servidor proxy-cache DNS com Unbound</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/2022/06/unbound.png" alt="" width="720" height="340" class="alignnone size-full wp-image-6540" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/unbound.png 720w, https://blog.remontti.com.br/wp-content/uploads/2022/06/unbound-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/unbound-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-6530 alignright" src="https://blog.remontti.com.br/wp-content/uploads/2022/06/patrick-150x150.jpg" alt="" width="150" height="150" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/06/patrick-150x150.jpg 150w, https://blog.remontti.com.br/wp-content/uploads/2022/06/patrick-300x300.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2022/06/patrick-80x80.jpg 80w, https://blog.remontti.com.br/wp-content/uploads/2022/06/patrick-320x320.jpg 320w, https://blog.remontti.com.br/wp-content/uploads/2022/06/patrick.jpg 640w" sizes="auto, (max-width: 150px) 100vw, 150px" /><br />
<strong>Autor</strong>:  <a href="https://t.me/patrickbrandao" rel="noopener" target="_blank">Patrick Brandão</a></p>
<p><strong>Motivação</strong>: ao rodar qualquer software no Linux, a resolução de DNS e feita pela <strong>libresolv</strong>, que faz a leitura do /etc/host.conf e /etc/resolv.conf para obter o IP do servidor DNS.</p>
<p>Assim, a resolução de nomes requer envio de pacotes para fora do host e aguarda pela resposta, que pode demorar (latência alta) ou não ser respondida por problemas na rede entre o host e o servidor DNS (remoto)</p>
<p>A <strong>libresolv</strong> não possui suporte a cache, ou seja, se você precisar consultar um domínio (www.google.com) dezenas de vezes em um segundo, todas as vezes ela terá que enviar a pergunta ao servidor DNS para obter a mesma resposta.</p>
<p>Rodando um servidor proxy-cache DNS no host linux você garante que a libresolv envie os pedidos para um software <strong>rodando no mesmo host</strong> mas que ficará por conta de consultar 1 ou mais servidores,<strong> e salvando os resultados obtidos em cache</strong>, economizando banda e tempo nas próximas requisições aos mesmos nomes.</p>
<p>O resultado dessa implementação é uma maior velocidade no inicio das conexões do servidor.</p>
<p><strong>OBS:</strong><br />
<em><font color="red">Você não está criando um servidor recursivo, pare resoluções de nomes para sua rede!</font><br />
<font color="blue">Mas ao final Rudimar Remontti vai explicar como tornar ele recursivo.</font></em></p>
<p><strong>Distribuição utilizada: </strong><br />
Debian 11 (Bullseye) 64 bits <a href="https://blog.remontti.com.br/5792" target="_blank" rel="noopener">instalação mínima</a></p>
<h3>Instalando Unbound</h3>
<pre class="remontti-code"># apt update; apt upgrade
# apt install unbound</pre>
<p><strong>Configurando</strong><br />
A configuração abaixo visa consumir recursos mínimos e atender somente os softwares do próprio host.</p>
<pre class="remontti-code"># cat &gt; /etc/unbound/unbound.conf.d/root-auto-trust-anchor-file.conf &lt;&lt; EOF
server:
    auto-trust-anchor-file: &quot;/var/lib/unbound/root.key&quot;
    verbosity: 1
    statistics-interval: 20
    extended-statistics: yes
    num-threads: 2

    # Caso seja necessário fixar o IP de origem:
    #outgoing-interface: x.x.x.x

    # Abrir a porta apenas nos endereços loopback (!!segurança!!)
    interface: 127.0.0.1
    interface: ::1

    # Permitir todos os IPs pois abrimos a porta apenas para a loopback
    access-control: 127.0.0.1/8 allow
    access-control: ::1 allow

    outgoing-range: 512
    num-queries-per-thread: 128

    msg-cache-size: 2m
    rrset-cache-size: 1m

    msg-cache-slabs: 4
    rrset-cache-slabs: 4

    cache-max-ttl: 1200
    infra-host-ttl: 60
    infra-lame-ttl: 60

    infra-cache-numhosts: 128
    infra-cache-lame-size: 2k

    do-ip4: yes
    do-ip6: yes
    do-udp: yes
    do-tcp: yes
    do-daemonize: yes

    username: &quot;unbound&quot;
    directory: &quot;/etc/unbound&quot;
    logfile: &quot;/var/log/unbound.log&quot;
    use-syslog: yes
    pidfile: &quot;/run/unbound.pid&quot;

    identity: &quot;Unbound-LocalCache&quot;
    version: &quot;1.0&quot;
    hide-identity: yes
    hide-version: yes
    harden-glue: yes
    do-not-query-address: 127.0.0.1/8
    do-not-query-localhost: yes
    module-config: &quot;iterator&quot;

    #zone localhost
    local-zone: &quot;localhost.&quot; static
    local-data: &quot;localhost. 10800 IN NS localhost.&quot;
    local-data: &quot;localhost. 10800 IN SOA localhost. nobody.invalid. 1 3600 1200 604800 10800&quot;
    local-data: &quot;localhost. 10800 IN A 127.0.0.1&quot;

    local-zone: &quot;127.in-addr.arpa.&quot; static
    local-data: &quot;127.in-addr.arpa. 10800 IN NS localhost.&quot;
    local-data: &quot;127.in-addr.arpa. 10800 IN SOA localhost. nobody.invalid. 2 3600 1200 604800 10800&quot;
    local-data: &quot;1.0.0.127.in-addr.arpa. 10800 IN PTR localhost.&quot;

remote-control:
    control-enable: yes
    control-interface: 127.0.0.1
    control-port: 8953
    control-use-cert: &quot;no&quot;


# Operar 100% em modo forward, informe o ip dos servidores DNSs reais:
forward-zone:
    name: &quot;.&quot;
    forward-addr: 8.8.8.8
    forward-addr: 8.8.4.4

# Encaminhar dominio especifico para servidor DNS especifico:
forward-zone:
    name: &quot;slack.com&quot;
    forward-addr: 1.1.1.1
    forward-addr: 1.0.0.1
EOF
</pre>
<p>Acima criamos um forward do domínio slack.com indo para um DNS diferente (1.1.1.1 e 1.0.0.1) do padrão 8.8.8.8 e 8.8.4.4</p>
<p>Reinicie o serviço para carregar as novas configurações</p>
<pre class="remontti-code"># systemctl restart unbound</pre>
<p>Instale o pacote dnsutils para ter ferramentas de testes</p>
<pre class="remontti-code"># apt install dnsutils</pre>
<p>Testando IPv4</p>
<pre class="remontti-code"># host google.com 127.0.0.1</pre>
<pre class="remontti-code-plain">Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases: 

google.com has address 142.250.218.78
google.com has IPv6 address 2800:3f0:4001:81d::200e
google.com mail is handled by 10 smtp.google.com.</pre>
<pre class="remontti-code"># dig ANY google.com @127.0.0.1</pre>
<pre class="remontti-code-plain">; &lt;&lt;&gt;&gt; DiG 9.16.27-Debian &lt;&lt;&gt;&gt; ANY google.com @127.0.0.1
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 893
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;google.com.			IN	ANY

;; ANSWER SECTION:
google.com.		129	IN	A	142.250.218.78
google.com.		129	IN	AAAA	2800:3f0:4001:81d::200e
google.com.		51	IN	MX	10 smtp.google.com.

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Jun 01 15:59:35 -03 2022
;; MSG SIZE  rcvd: 104</pre>
<p>Testando IPv6</p>
<pre class="remontti-code"># host google.com ::1</pre>
<pre class="remontti-code-plain">Using domain server:
Name: ::1
Address: ::1#53
Aliases: 

google.com has address 142.250.218.78
google.com has IPv6 address 2800:3f0:4001:81d::200e
google.com mail is handled by 10 smtp.google.com.
</pre>
<pre class="remontti-code"># dig ANY google.com @::1</pre>
<pre class="remontti-code-plain">; &lt;&lt;&gt;&gt; DiG 9.16.27-Debian &lt;&lt;&gt;&gt; ANY google.com @::1
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 56485
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;google.com.			IN	ANY

;; ANSWER SECTION:
google.com.		106	IN	A	142.250.218.78
google.com.		281	IN	AAAA	2800:3f0:4001:81d::200e
google.com.		281	IN	MX	10 smtp.google.com.

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Wed Jun 01 16:03:30 -03 2022
;; MSG SIZE  rcvd: 104
</pre>
<p>Configurando o Linux para usar o servidor DNS na loopback como servidor DNS</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>
<h3>Tornando recursivo</h3>
<p><strong>Contribuição extra por:</strong> <a href="https://t.me/remontti" rel="noopener" target="_blank">Rudimar Remontti</a><br />
Caso deseje tornar recursivo para os demais hosts da sua rede este servidor, primeira coisa que você deve ter em mente que se este servidor conter IPs públicos o mesmo será responsivo para todo o planeta terra e alguns "ali<em>G</em>enigenas". Então o mínimo que você deve ter é um firewall, protegendo a porta 53 tcp/udp para responder apenas para sua rede.</p>
<pre class="remontti-code"># vim /etc/unbound/unbound.conf.d/root-auto-trust-anchor-file.conf</pre>
<p>Abaixo de:</p>
<pre class="remontti-code-plain">
    # abrir a porta apenas nos enderecos loopback (seguranca)
    interface: 127.0.0.1
    interface: ::1</pre>
<p>Adicione</p>
<pre class="remontti-code-plain">
    # abrir a porta para os ips de interface (risco)
    interface: 200.200.200.200
    interface: 2000:bebe:cafe::f07e</pre>
<p>Abaixo de:</p>
<pre class="remontti-code-plain">
    # Permitir todos os IPs pois abrimos a porta apenas para a loopback
    access-control: 127.0.0.1/8 allow
    access-control: ::1 allow</pre>
<p>Adicione os prefixos da sua rede</p>
<pre class="remontti-code-plain">
    access-control: 192.168.0.0/16 allow
    access-control: 172.16.0.0/12 allow
    access-control: 100.64.0.0/10 allow
    access-control: 10.0.0.0/8 allow
    access-control: 200.200.0.0/22 allow
    access-control: 2001:db8::/32 allow</pre>
<p>Desta forma abrindo conexão para os IPs da interface <em>"200.200.200.200" e "2000:bebe:cafe::f07e"</em></p>
<p>Reinicie o serviço para carregar as alterações</p>
<pre class="remontti-code"># systemctl restart unbound</pre>
<p>Pode consultar se as porta estão sendo ouvidas:</p>
<pre class="remontti-code"># ss -putan  | grep LISTEN | grep :53</pre>
<pre class="remontti-code-plain">
tcp   LISTEN 0      256           200.200.200.200:53           0.0.0.0:*     users:((&quot;unbound&quot;,pid=6079,fd=16))                 
tcp   LISTEN 0      256                 127.0.0.1:53           0.0.0.0:*     users:((&quot;unbound&quot;,pid=6079,fd=12))                 
tcp   LISTEN 0      256           200.200.200.200:53           0.0.0.0:*     users:((&quot;unbound&quot;,pid=6079,fd=8))                  
tcp   LISTEN 0      256                 127.0.0.1:53           0.0.0.0:*     users:((&quot;unbound&quot;,pid=6079,fd=4))                  
tcp   LISTEN 0      256                     [::1]:53              [::]:*     users:((&quot;unbound&quot;,pid=6079,fd=6))                  
tcp   LISTEN 0      256    [2000:bebe:cafe::f07e]:53              [::]:*     users:((&quot;unbound&quot;,pid=6079,fd=10))                 
tcp   LISTEN 0      256                     [::1]:53              [::]:*     users:((&quot;unbound&quot;,pid=6079,fd=14))                 
tcp   LISTEN 0      256    [2000:bebe:cafe::f07e]:53              [::]:*     users:((&quot;unbound&quot;,pid=6079,fd=18))</pre>
<p><strong>Firewall</strong><br />
Porém mesmo que você tenha setados seus prefixos em <strong>access-control</strong> a porta 53 estará respondendo para todo o mundo. Para fechar elas use o nfttables que por padrão já vem no Debian 11 no lugar do iptables. Você pode instalar o mesmo com apt se necessário.</p>
<p>Edite o arquivo do nftables</p>
<pre class="remontti-code"># vim /etc/nftables.conf</pre>
<p>Ajuste para ficar assim e em <strong>elements</strong> insira todos seus prefixos autorizados.</p>
<pre class="remontti-code">#!/usr/sbin/nft -f
  
flush ruleset

table inet filter {

    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;

        # 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>Habilite o mesmo para iniciar com o boot e reinicie.</p>
<pre class="remontti-code"># systemctl enable nftables
# systemctl restart nftables</pre>
<p>Consulte se seu firewall foi carregado com o comando:</p>
<pre class="remontti-code"># nft list ruleset</pre>
<p>Retorno:</p>
<pre class="remontti-code-plain">table inet filter {
	set acesso-dns4 {
		type ipv4_addr
		flags interval
		elements = { 10.0.0.0/8, 100.64.0.0/10,
			     127.0.0.1, 172.16.0.0/12,
			     192.168.0.0/16, 200.200.200.0/22 }
	}

	set acesso-dns6 {
		type ipv6_addr
		flags interval
		elements = { ::1,
			     2001:db8::/32 }
	}

	chain input {
		type filter hook input priority filter; policy accept;
		ip saddr @acesso-dns4 udp dport 53 counter packets 0 bytes 0 accept
		ip saddr @acesso-dns4 tcp dport 53 counter packets 0 bytes 0 accept
		ip6 saddr @acesso-dns6 udp dport 53 counter packets 0 bytes 0 accept
		ip6 saddr @acesso-dns6 tcp dport 53 counter packets 0 bytes 0 accept
		udp dport 53 counter packets 0 bytes 0 drop
		tcp dport 53 counter packets 0 bytes 0 drop
	}

	chain forward {
		type filter hook forward priority filter; policy accept;
	}

	chain output {
		type filter hook output priority filter; policy accept;
	}
}</pre>
<p>Pronto espero que tenha gostado! Agradeço ao meu parceiro Patrick!</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/6506">Rodando servidor proxy-cache DNS com Unbound</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6506/feed</wfw:commentRss>
			<slash:comments>21</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor de virtualização super leve com Debian 11 bullseye + Virtualbox WEB</title>
		<link>https://blog.remontti.com.br/6471</link>
					<comments>https://blog.remontti.com.br/6471#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Sat, 02 Apr 2022 15:40:01 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[virtualização]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6471</guid>

					<description><![CDATA[<p>Com VirtualBox é possível executar diversos sistemas operacionais (Windows, Linux, UNIX, BSD) simultaneamente no mesmo hardware, que são chamados de máquinas virtuais. Uma das características é o mascaramento dos recursos físicos (incluindo processadores, quantidade&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6471">Servidor de virtualização super leve com Debian 11 bullseye + Virtualbox WEB</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/2022/04/phpvirtualbox_6.1_debian11.png" alt="" width="720" height="340" class="alignnone size-full wp-image-6476" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/04/phpvirtualbox_6.1_debian11.png 720w, https://blog.remontti.com.br/wp-content/uploads/2022/04/phpvirtualbox_6.1_debian11-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/04/phpvirtualbox_6.1_debian11-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>Com VirtualBox é possível executar diversos sistemas operacionais (Windows, Linux, UNIX, BSD) simultaneamente no mesmo hardware, que são chamados de máquinas virtuais. Uma das características é o mascaramento dos recursos físicos (incluindo processadores, quantidade de memória, interfaces de rede), o que permite diminuir a administração de drivers nas máquinas virtuais, e transferir uma máquina virtual entre servidores físicos diferentes.</p>
<p>Existem várias ferramentas de virtualização disponíveis.</p>
<p><strong>Microsoft Virtual Server 2005 R2</strong> &#8211; disponível para plataforma x86 e x86_64 bits. Suporte: Somente Windows.<br />
<strong>Qemu</strong> &#8211; ferramenta de virtualização de código aberto disponível para windows, mac e Linux.<br />
<strong>Vmware </strong>&#8211; Disponível para Windows e Linux.<br />
<strong>VirtualBox </strong>&#8211; Aplicativo de código aberto disponível para Windows, Mac, Linux e Solaris.<br />
<strong>Xen </strong>&#8211; Suporta Windows, bem como distribuições Linux.</p>
<p>O <strong>VirtualBox </strong> inicialmente foi lançado sob licença proprietária, mas mais tarde (2007) a Oracle Corporation começou a lançá-lo sob GNU General Public License. Escrito completamente em C, C ++ e Assembly Language está disponível para Windows, OS X, Linux e Solaris.</p>
<p>Recomendo já baixar a ISO nonfree: <a href="https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/" target="_blank" rel="noopener noreferrer">https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/</a></p>
<h3>Requerimentos</h3>
<p>Debian 11 (Bullseye) 64 bits <strong><a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank">instalação mínima</a></strong> pronta</p>
<p>Adicione o repositório do <a href="https://www.virtualbox.org/" target="_blank" rel="noopener noreferrer">virtualbox</a><br />
Acesse seu servidor e vire root.</p>
<pre class="remontti-code"># su - </pre>
<pre class="remontti-code"># apt install wget vim apt-transport-https gnupg
# echo &#039;deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian bullseye contrib&#039; &gt; /etc/apt/sources.list.d/virtualbox.list
# wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | apt-key add -
# wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | apt-key add -</pre>
<p>Certifique-se que seu repositório esteja usando os repositórios <strong>nonfree e contrib</strong>.</p>
<pre class="remontti-code"># vim /etc/apt/sources.list</pre>
<p>Ao final de cada linha verifique se consta:  <strong>nonfree e contrib</strong>, se não tiver adicione, ficando assim:</p>
<pre class="remontti-code">deb http://deb.debian.org/debian/ bullseye main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye main contrib non-free

deb http://security.debian.org/debian-security bullseye/updates main contrib non-free
deb-src http://security.debian.org/debian-security bullseye/updates main contrib non-free

# bullseye-updates, previously known as &#039;volatile&#039;
deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free</pre>
<p>Atualize o repositório</p>
<pre class="remontti-code"># apt update
# apt install firmware-linux firmware-linux-free firmware-linux-nonfree</pre>
<p>Vamos fazer uns ajustes nas parametrizações do kernel para otimizar algumas coisas.</p>
<pre class="remontti-code"># echo &quot;vm.swappiness=10&quot; &gt;&gt; /etc/sysctl.conf
# 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
# echo &quot;vm.max_map_count=262144&quot; &gt; /etc/sysctl.d/70-vbox.conf
# echo &quot;fs.file-max=3263776&quot; &gt; /etc/sysctl.d/70-vbox.conf
# echo &quot;fs.aio-max-nr=3263776&quot; &gt; /etc/sysctl.d/70-vbox.conf

# cat &lt;&lt;EOF &gt;/etc/sysctl.d/60-net.conf
net.core.netdev_max_backlog=4096
net.core.rmem_default=262144
net.core.rmem_max=67108864
net.ipv4.udp_rmem_min=131072
net.ipv4.udp_mem=2097152 4194304 8388608
net.core.default_qdisc = fq
net.core.somaxconn = 16384
EOF</pre>
<p>Reinicia a máquina para carregar os novos módulos do kernel.</p>
<pre class="remontti-code"># apt install virtualbox-6.1
# reboot</pre>
<p>Acesse seu servidor novamente e vire root.</p>
<pre class="remontti-code"># su - </pre>
<p>Faça download dos pacotes extras:</p>
<pre class="remontti-code"># cd /tmp/ 
# wget https://download.virtualbox.org/virtualbox/6.1.32/Oracle_VM_VirtualBox_Extension_Pack-6.1.32.vbox-extpack</pre>
<p>Instale os pacotes extras</p>
<pre class="remontti-code"># VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.1.32.vbox-extpack</pre>
<p>Responta Yes <strong>(y)</strong></p>
<p>Vamos executá-lo como o nosso usuário <strong>vbox</strong>, porque ele não precisa acessar o resto do seu sistema.</p>
<pre class="remontti-code"># useradd -d /home/vbox -m -g vboxusers -s /bin/bash vbox</pre>
<p>Defina uma senha para seu usuario vbox</p>
<pre class="remontti-code"># passwd vbox</pre>
<p>Diga ao seu sistema qual usuário vai executar o VirtualBox.</p>
<pre class="remontti-code"># echo &#039;VBOXWEB_USER=vbox&#039; &gt; /etc/default/virtualbox 
# echo &#039;VBOXWEB_HOST=127.0.0.1&#039; &gt;&gt; /etc/default/virtualbox</pre>
<p>Faça com que o vboxweb-service inicie no boot. Como dito acima nosso usuário não precisa ter acesso total ao sistema. Adicione no /etc/rc.local o comando para iniciar junto com o boot.</p>
<pre class="remontti-code"># vim /etc/rc.local</pre>
<p>Adicione</p>
<pre class="remontti-code">#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will &quot;exit 0&quot; on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#
# Solução para inicialização automatica:
# use o comando la listar as VMs criadas
# su - vbox --shell=/bin/bash -c &#039;VBoxManage list vms&#039;
# Colete as ID
# &quot;Debian&quot; {d288884d-a3d4-4903-b84e-5c6039af13b5}
# Pegue o &quot;ID&quot; da VM e use o Comando a baixo descomentando a linha:
#
# Adicione um sleep para aguardar 30seg para dar tempo do modulo do kernel ter tempo de iniciar
# sleep 30
# su - vbox --shell=/bin/bash -c &#039;VBoxHeadless -s d288884d-a3d4-4903-b84e-5c6039af13b5 &amp;&#039;
#
#
exit 0</pre>
<p>Alterare as permissões:</p>
<pre class="remontti-code"># chmod +x /etc/rc.local
# ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service</pre>
<p>Vamos instalar o serviço web + php</p>
<pre class="remontti-code"># apt install apache2 libapache2-mod-php\
 php-cli php-bcmath php-gmp php-mbstring php-zip php-curl\
 php php-common php-soap php-gd unzip php-pear php-mysql php-xml php-soap</pre>
<p>Por segurança recomendo remover a assinatura do servidor, para isso:</p>
<pre class="remontti-code"># sed -i &#039;s/ServerTokens OS/ServerTokens Prod/&#039; /etc/apache2/conf-available/security.conf
# sed -i &#039;s/ServerSignature On/ServerSignature Off/&#039; /etc/apache2/conf-available/security.conf</pre>
<p>Vamos também configurar nosso <a href="https://blog.remontti.com.br/3464" rel="noopener noreferrer" target="_blank">domínio virtual</a> para acessar o servidor via domínio (ex vbox.remontti.com.br) e restringir ele apenas para nossos IP de gerencia. </p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/000-default.conf</pre>
<p>Faça as devidas alterações, não esqueça de alterar em <strong>Require ip</strong> para os IPs que você vai autorizar as conexões.</p>
<pre class="remontti-code">&lt;virtualhost *:80&gt;
        Protocols h2 http/1.1
        ServerName vm.remontti.com.br
        ServerAdmin noc@remontti.com.br
        ErrorDocument 403 http://www.remontti.com.br/
 
        DocumentRoot /var/www/html
 
        &lt;Directory /var/www/html/&gt;
                Options FollowSymLinks
                AllowOverride All
                Require ip 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 250.0.0.0/22 2000:000::/32
        &lt;/Directory&gt;
 
        LogLevel warn 
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
&lt;/virtualhost&gt;</pre>
<p>Habilite os módulos</p>
<pre class="remontti-code"># a2enmod http2
# systemctl restart apache2</pre>
<h3>phpVirtualbox</h3>
<p>O phpVirtualbox oficial até a data desta publicação (abril/2022) a versão 5.2, porém ela já não é mais instalável no Debian 11, então iremos utilizar um <a href="https://github.com/phpvirtualbox/phpvirtualbox/network/members" rel="noopener" target="_blank">fork</a> compatível com o phpVirtualbox 6.1.</p>
<p>Vamos configurar o projeto <a href="https://phpvirtualbox.github.io/" target="_blank" rel="noopener noreferrer">phpvirtualbox</a>, dentro do diretório padrão do apache.</p>
<pre class="remontti-code"># cd /var/www/
# mv /var/www/html/ /var/www/html_old
# wget https://github.com/remontti/phpvirtualbox-6.1/archive/refs/heads/develop.zip -O phpvirtualbox.zip
# apt install zip unzip
# unzip phpvirtualbox.zip
# mv phpvirtualbox-6.1-develop html
# rm phpvirtualbox.zip
# chown vbox:vboxusers html  -R
# cd /var/www/html/
# cp config.php-example config.php
# vim config.php</pre>
<pre class="remontti-code"> // ... //
var $username = &#039;vbox&#039;;
var $password = &#039;pass&#039;;
// ... //
var $language = &#039;pt_br&#039;;
var $vrdeports = &#039;9000-9100&#039;;
var $vrdeaddress = &#039;0.0.0.0&#039;;
// ... //
var $enableAdvancedConfig = true; </pre>
<p>É altamente recomendado que você tenha um firewall em cima da range de portas 9000 a 9100, pois é onde será possível fazer acesso remoto, e recomendo que depois da instalação sempre desative o acesso remoto a VM, segue um exemplo de firewall com nftables que já é o padrão no Debian 11 substituindo o antigo iptables, no exemplo já irei proteger também a porta do SSH, lembre-se de deixar seus IPs na ACL de permissões.</p>
<pre class="remontti-code"># systemctl enable nftables</pre>
<p>Modelo fechando as portas do SSH [22] e a range de acesso remoto [9000-9100], você pode personalizar de acordo com sua instalação.</p>
<pre class="remontti-code"># vim /etc/nftables.conf</pre>
<pre class="remontti-code">#!/usr/sbin/nft -f
  
flush ruleset

table inet filter {
    # IPv4 que terao acesso 
    set acesso-total4 {
        type ipv4_addr
        flags interval
        elements = { 200.200.200.16/28, 200.200.200.0/28}
    }
    # IPv6 que terao acesso 
    set acesso-total6 {
        type ipv6_addr
        flags interval
        elements = { 2804:1234:bebe::48, 2804:4321:bebe::/48  }
    }
    chain input {
        type filter hook input priority 0;

        # Permite acesso SSH na porta 22
        ip saddr  @acesso-total4 tcp dport 22 counter accept
        ip6 saddr @acesso-total6 tcp dport 22 counter accept
        tcp dport 22 counter drop

        # Permite acesso tela remota portas padões Vbox
        ip saddr  @acesso-total4 tcp dport { 9000-9100 } counter accept
        ip6 saddr @acesso-total6 tcp dport { 9000-9100 } counter accept
        tcp dport { 9000-9100 } 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 o nftables e verifique se o mesmo foi carregado:</p>
<pre class="remontti-code"># systemctl restart nftables
# nft list ruleset</pre>
<p>Adicione o usuario vbox ao grupo, inicialize o servi web service e reinicie a máquina. </p>
<pre class="remontti-code"># usermod -a -G vboxusers vbox
# su - vbox --shell=/bin/bash -c &#039;vboxwebsrv &amp;&#039;
# reboot</pre>
<p>Agora acesse:<br />
<strong>https://DOMINIO/</strong><br />
<strong>Usuário:</strong> admin<br />
<strong>Senha: </strong>admin</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/04/phpvirtualbox_6.1_debian_11_bullseye.png" alt="" width="1061" height="570" class="alignnone size-full wp-image-6474" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/04/phpvirtualbox_6.1_debian_11_bullseye.png 1061w, https://blog.remontti.com.br/wp-content/uploads/2022/04/phpvirtualbox_6.1_debian_11_bullseye-300x161.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/04/phpvirtualbox_6.1_debian_11_bullseye-1024x550.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/04/phpvirtualbox_6.1_debian_11_bullseye-768x413.png 768w" sizes="auto, (max-width: 1061px) 100vw, 1061px" /></p>
<p><strong>Não esqueça de alterar a senha do usuário admin!</strong></p>
<p>O mais legal que você está usando quase nada do hardware da máquina para &#8220;subir&#8221; seu sistema de virtualização.</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/10/htop.png" data-rel="lightbox-gallery-0n9cX4tX" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/10/htop-1024x539.png" alt="" width="1024" height="539" class="alignnone size-large wp-image-3675" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/10/htop-1024x539.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/10/htop-300x158.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/10/htop-768x404.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/10/htop.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>Virtulabox peca em não dar uma solução para inicialização automática, mas é muito fácil fazer isso incluindo no rc.local. Use o comando:</p>
<pre class="remontti-code">#  su - vbox --shell=/bin/bash -c &#039;VBoxManage list vms&#039;</pre>
<p>Vai ser listado os ID das suas VMs. Ex:<br />
<em>&#8220;DNS-SERVER&#8221; {d288884d-a3d4-4903-b84e-5c6039af13b5}<br />
&#8220;ZABBIX-SERVER&#8221; {a2893475-atd4-4973-b81e-6039af13bss5}</em></p>
<p>Agora que você ja tem as IDs adicione em <strong>/etc/rc.local:</strong> da seguinte forma, alterando pelas suas ID.</p>
<pre class="remontti-code">sleep 30 #  sleep para aguardar 30seg para dar tempo do modulo do kernel ter tempo de iniciar
su - vbox --shell=/bin/bash -c &#039;VBoxHeadless -s d288884d-a3d4-4903-b84e-5c6039af13b5 &amp;&#039;
su - vbox --shell=/bin/bash -c &#039;VBoxHeadless -s a2893475-atd4-4973-b81e-6039af13bss5 &amp;&#039;</pre>
<p>Agora quando o servidor reiniciar suas VMs vão iniciar automaticamente, (Não esqueça de quando for desligar o servidor fazer o processo de desligamento de cada VM)</p>
<p>Uma das vantagens deste servidor é que é o virtualbox é muito simples!!! Dentro de /home/vbox/ vão estar suas imagens sendo muito facil de fazer uma copia e migrada para algum outro servidor em caso de &#8220;pau&#8221;. É claro tenha sempre redundância de hardware em seu servidor, faça sempre pelo menos um RAID1 (espelhamento de disco) eu gosto de fazer RAID10 com pelo menos 5 SSDs, onde 1 dos SSDs eu instalo o sistema e os outros 4 (ou 6 ou 8 &#8230;) somo ex 2 (RAID0) e espelho nos outros 2 (RAID1) logo temos o RAID10.</p>
<p><strong>Acesso remoto</strong><br />
No windows você pode usar o famoso <strong>mstsc</strong> e informar seu IP:PORTA, no linux tem um pacote chamado <strong>vinagre</strong> basta instala-lo.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote.png" alt="" width="1173" height="495" class="alignnone size-full wp-image-5460" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote.png 1173w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-300x127.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-1024x432.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-768x324.png 768w" sizes="auto, (max-width: 1173px) 100vw, 1173px" /><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a.png" alt="" width="1308" height="704" class="alignnone size-full wp-image-5461" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a.png 1308w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a-300x161.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a-1024x551.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/10/vbox-remote-a-768x413.png 768w" sizes="auto, (max-width: 1308px) 100vw, 1308px" /></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/6471">Servidor de virtualização super leve com Debian 11 bullseye + Virtualbox WEB</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6471/feed</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>Instalação do Zabbix 6 LTS + NGINX + PostgreSQL + Debian 11 Bullseye</title>
		<link>https://blog.remontti.com.br/6350</link>
					<comments>https://blog.remontti.com.br/6350#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 21 Feb 2022 21:21:50 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[zabbix]]></category>
		<category><![CDATA[zabbix 6]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6350</guid>

					<description><![CDATA[<p>O Zabbix é uma solução de nível enterprise, de código aberto. O Zabbix é um software que monitora vários parâmetros da rede, dos servidores e da saúde dos serviços. Utiliza-se de um mecanismo flexível&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6350">Instalação do Zabbix 6 LTS + NGINX + PostgreSQL + Debian 11 Bullseye</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/2022/02/zabbix_6_instalacao_how_to.png" alt="" width="720" height="340" class="alignnone size-full wp-image-6388" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_instalacao_how_to.png 720w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_instalacao_how_to-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_instalacao_how_to-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>O <strong>Zabbix</strong> é uma solução de nível enterprise, de código aberto. O Zabbix é um software que monitora vários parâmetros da rede, dos servidores e da saúde dos serviços. Utiliza-se de um mecanismo flexível de notificação que permite configurar alertas por e-mail entre outros como Telegram, para praticamente qualquer evento. As notificações permitem que se reaja rapidamente à problemas no ambiente. O Zabbix oferece excelentes recursos de relatórios e visualização de dados armazenados. Isso faz com que o Zabbix seja a ferramenta ideal para planejamento de capacidade.</p>
<h4>Requisitos Debian 11 Bullseye </h4>
<p>&#8211; <a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank">Instalação do Debian 11 Bullseye limpa passo-a-passo</a><br />
&#8211; <a href="https://blog.remontti.com.br/5915" rel="noopener" target="_blank">Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 11 Bullseye (LNPP)</a></p>
<h1>Instalação do Zabbix 6</h1>
<p>Para instalação do Zabbix vamos incluir o repositório do oficial do Zabbix.</p>
<pre class="remontti-code"># su -
# cd /tmp
# apt install wget</pre>
<p><strong>Repositório  Debian 11</strong></p>
<pre class="remontti-code"># cd /tmp/
# wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-4+debian11_all.deb
# apt install ./zabbix-release_6.0-4+debian11_all.deb
# apt update; apt upgrade -y</pre>
<pre class="remontti-code"># apt install zabbix-server-pgsql zabbix-frontend-php php-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent</pre>
<p>Vamos criar uma base de dados chamada <strong>zabbix</strong> e um usuário também chamado de zabbix no PostgreSQL.<br />
Não esqueça de alterar a senha: Use o gerador de senha: <a href="https://senhasegura.remontti.com.br/" rel="noopener noreferrer" target="_blank">https://senhasegura.remontti.com.br/</a></p>
<pre class="remontti-code"># su - postgres
$ createuser --pwprompt zabbix
Digite a senha para a nova role:  &lt;SENHA ZABBIX&gt;
Digite-a novamente: &lt;SENHA ZABBIX&gt;
Senha: &lt;SENHA POSTGRES CASO TENHA DEFINIDO NA INSTALAÇÃO DO MESMO&gt;

$ createdb -O zabbix zabbix
Senha: &lt;SENHA POSTGRES&gt;</pre>
<p>Importe o esquema inicial e os dados. Você será solicitado a inserir a senha que foi criada anteriormente.</p>
<pre class="remontti-code">$ zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | psql -U zabbix -d zabbix &amp;&gt;/dev/null
Senha para usuário zabbix: : &lt;SENHA ZABBIX&gt;
$ exit</pre>
<p>Edite o arquivo zabbix_server.conf para informar os dados para conexão com do PostgreSQL.</p>
<pre class="remontti-code"># vim /etc/zabbix/zabbix_server.conf</pre>
<p>Procure por <strong># DBPassword=</strong> descomente e sete sua senha.</p>
<pre class="remontti-code">#...
DBPassword=&lt;SENHA ZABBIX&gt;
#...</pre>
<p>Ajuste o arquivo /etc/zabbix/php-fpm.conf, descomente e defina o fuso horário correto. <a href="https://secure.php.net/manual/pt_BR/timezones.america.php" rel="noopener noreferrer" target="_blank">timezone</a> Sua região</a>.</p>
<pre class="remontti-code"># vim /etc/zabbix/php-fpm.conf</pre>
<p>Adicione:</p>
<pre class="remontti-code">php_value[date.timezone] = America/Sao_Paulo</pre>
<p>Ajuste as configurações do nginx.</p>
<pre class="remontti-code"># vim /etc/nginx/conf.d/zabbix.conf </pre>
<p>Deixei algumas linhas comentadas como exemplo, faça de acordo com sua necessidade.</p>
<pre class="remontti-code">server {
        listen 80;
        listen [::]:80;
        server_name    zabbix.remontti.com.br localhost;
        #server_name   OU_SEU_IP;

        # Metodo simples para quem quer rodar em uma determinada porta
        #listen 8181;
        #listen [::]:8181;
        #server_name     _;

        root    /usr/share/zabbix;
        index   index.php;

        # Desmomente para deixar restringido apenas para determinados prefixos
        #allow  192.168.87.0/24;
        #allow  127.0.0.1;
        #allow  2001:0db8::/32;
        #allow  ::1;
        #deny   all;
        #error_page  403   http://www.remontti.com.br;

        client_max_body_size 100M;
 
        location = /favicon.ico {
                log_not_found   off;
        }

        location / {
                try_files       $uri $uri/ =404;
        }

        location /assets {
                access_log      off;
                expires         10d;
        }

        location ~ /\.ht {
                deny            all;
        }

        location ~ /(api\/|conf[^\.]|include|locale) {
                deny            all;
                return          404;
        }

        location ~ [^/]\.php(/|$) {
                fastcgi_pass    unix:/var/run/php/zabbix.sock;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_index   index.php;

                fastcgi_param   DOCUMENT_ROOT   /usr/share/zabbix;
                fastcgi_param   SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
                fastcgi_param   PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;

                include fastcgi_params;
                fastcgi_param   QUERY_STRING    $query_string;
                fastcgi_param   REQUEST_METHOD  $request_method;
                fastcgi_param   CONTENT_TYPE    $content_type;
                fastcgi_param   CONTENT_LENGTH  $content_length;

                fastcgi_intercept_errors        on;
                fastcgi_ignore_client_abort     off;
                fastcgi_connect_timeout         60;
                fastcgi_send_timeout            180;
                fastcgi_read_timeout            180;
                fastcgi_buffer_size             128k;
                fastcgi_buffers                 4 256k;
                fastcgi_busy_buffers_size       256k;
                fastcgi_temp_file_write_size    256k;
        }
}
</pre>
<p>Inicie o servidor Zabbix e os processos do agente e configure-os para que sejam iniciados durante o boot do sistema.</p>
<pre class="remontti-code"># systemctl enable zabbix-server zabbix-agent</pre>
<p><strong>Debian 11</strong></p>
<pre class="remontti-code"># vim /etc/php/7.4/fpm/php.ini</pre>
<p>Localize <strong>max_execution_time</strong> e altere de 30 para 600</p>
<pre class="remontti-code">max_execution_time = 600</pre>
<pre class="remontti-code"># systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm</pre>
<p>Acesse em seu navegador <strong>http://seu_ip:porta</strong> ou <strong>http://zabbix.seudominio.com.br</strong></p>
<p><strong>Selecione o Edioma, e Próximo passo</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_1.png" alt="" width="1562" height="827" class="alignnone size-full wp-image-6360" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_1.png 1562w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_1-300x159.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_1-1024x542.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_1-768x407.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_1-1536x813.png 1536w" sizes="auto, (max-width: 1562px) 100vw, 1562px" /></p>
<p>Se tudo estiver ok: <strong>Próximo passo</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_2.png" alt="" width="1562" height="1275" class="alignnone size-full wp-image-6361" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_2.png 1562w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_2-300x245.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_2-1024x836.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_2-768x627.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_2-1536x1254.png 1536w" sizes="auto, (max-width: 1562px) 100vw, 1562px" /></p>
<p>Selecione <strong>PostgreSQL</strong> e informe a <strong>senha do usuário zabbix </strong>criada anteriormente, clique em <strong>Próximo passo</strong>.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_3.png" alt="" width="1562" height="804" class="alignnone size-full wp-image-6362" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_3.png 1562w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_3-300x154.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_3-1024x527.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_3-768x395.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_3-1536x791.png 1536w" sizes="auto, (max-width: 1562px) 100vw, 1562px" /></p>
<p><strong>Defina um nome, e selecione o Tema padrão e clique em Próximo passo</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_4.png" alt="" width="1562" height="766" class="alignnone size-full wp-image-6363" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_4.png 1562w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_4-300x147.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_4-1024x502.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_4-768x377.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_4-1536x753.png 1536w" sizes="auto, (max-width: 1562px) 100vw, 1562px" /></p>
<p><strong>Se tudo estiver ok, Próximo passo</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_5.png" alt="" width="1562" height="766" class="alignnone size-full wp-image-6364" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_5.png 1562w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_5-300x147.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_5-1024x502.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_5-768x377.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_5-1536x753.png 1536w" sizes="auto, (max-width: 1562px) 100vw, 1562px" /></p>
<p><strong>Fim</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_6.png" alt="" width="1562" height="766" class="alignnone size-full wp-image-6365" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_6.png 1562w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_6-300x147.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_6-1024x502.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_6-768x377.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_6-1536x753.png 1536w" sizes="auto, (max-width: 1562px) 100vw, 1562px" /></p>
<p>Entre com Usuário <strong>Admin</strong> e senha <strong>zabbix</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_7.png" alt="" width="1562" height="766" class="alignnone size-full wp-image-6366" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_7.png 1562w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_7-300x147.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_7-1024x502.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_7-768x377.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_7-1536x753.png 1536w" sizes="auto, (max-width: 1562px) 100vw, 1562px" /></p>
<p><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;" /><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_8.png" alt="" width="1562" height="1151" class="alignnone size-full wp-image-6367" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_8.png 1562w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_8-300x221.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_8-1024x755.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_8-768x566.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/zabbix_6_install_8-1536x1132.png 1536w" sizes="auto, (max-width: 1562px) 100vw, 1562px" /></p>
<p>Simples né? Gostou e quer me ajudar? <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>Fontes:<br />
<a href="https://www.zabbix.com/documentation/" rel="noopener" target="_blank">https://www.zabbix.com/documentation/</a></p>
<p>O post <a href="https://blog.remontti.com.br/6350">Instalação do Zabbix 6 LTS + NGINX + PostgreSQL + Debian 11 Bullseye</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6350/feed</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
			</item>
		<item>
		<title>Como se proteger de ataques DDoS com FastNetMon de graça &#8211; Integração FRR vs NE-Huawei &#8211; Bonus Gráficos Grafana</title>
		<link>https://blog.remontti.com.br/6278</link>
					<comments>https://blog.remontti.com.br/6278#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 16 Feb 2022 20:00:18 +0000</pubDate>
				<category><![CDATA[Huawei]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[ataques]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[ccr]]></category>
		<category><![CDATA[ddos]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[dos]]></category>
		<category><![CDATA[fastnemon]]></category>
		<category><![CDATA[grafana]]></category>
		<category><![CDATA[influxdb]]></category>
		<category><![CDATA[mitigação]]></category>
		<category><![CDATA[ne8000]]></category>
		<category><![CDATA[ne8000f1a]]></category>
		<category><![CDATA[Netflow]]></category>
		<category><![CDATA[telegram]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6278</guid>

					<description><![CDATA[<p>Existe um tutorial mais atualizado acesse: Fortalecendo a Resiliência da Rede: Detecção de Ataques DDoS com FastNetMon, FRRouting, Grafana e Implementação em Debian 12 com Huawei &#038; RouterOS 👆 👆 👆 👆 👆 👆&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6278">Como se proteger de ataques DDoS com FastNetMon de graça &#8211; Integração FRR vs NE-Huawei &#8211; Bonus Gráficos Grafana</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><font color="red">Existe um tutorial mais atualizado acesse:</font></h2>
<p><a href="https://blog.remontti.com.br/7322">Fortalecendo a Resiliência da Rede: Detecção de Ataques DDoS com FastNetMon, FRRouting, Grafana e Implementação em Debian 12 com Huawei &#038; RouterOS</a><br />
 <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f446.png" alt="👆" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f446.png" alt="👆" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f446.png" alt="👆" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f446.png" alt="👆" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f446.png" alt="👆" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f446.png" alt="👆" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f446.png" alt="👆" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f446.png" alt="👆" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f446.png" alt="👆" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f446.png" alt="👆" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f446.png" alt="👆" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<pre class="remontti-code">#
#
#
#
#
#
#
#
</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_huawei-1.png" alt="" width="720" height="340" class="alignnone size-full wp-image-6341" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_huawei-1.png 720w, https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_huawei-1-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_huawei-1-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>Neste tutorial vamos aprender como identificar os ataques Dos/DDoS e anunciar os prefixo atacados (ou atacantes) <strong>de seu AS</strong> em envia-los para uma blackhole, e repassar os mesmo para sua operadora. (Acordo)</p>
<p>Vamos utilizar o <a href="https://github.com/pavel-odintsov/fastnetmon/" rel="noopener noreferrer" target="_blank"><strong>FastNetMon</strong></a> (<strong>Community Edition</strong>) que é um analisador de carga DoS/DDoS de alto desempenho, construído sobre vários mecanismos de captura de pacotes (NetFlow, IPFIX, sFlow, AF_PACKET, SnabbSwitch, netmap, PF_RING, PCAP). </p>
<p>Farei a instalação no <a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank"><strong>Debian 11 (Instalação Limpa)</strong></a>. O hardware utilizado por ser bem generoso, 1CPU e 1GB de memoria. </p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_hardware.png" alt="" width="1212" height="383" class="alignnone size-full wp-image-6312" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_hardware.png 1212w, https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_hardware-300x95.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_hardware-1024x324.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_hardware-768x243.png 768w" sizes="auto, (max-width: 1212px) 100vw, 1212px" /><br />
Nesse gráfico podemos ver um servidor analisando 10GB via Netflow e quase nada sendo usado de recursos. Mais ao final irei configurar o Graphith para termos gráficos qual irá abusar mais do hardware, porém para muitos gráficos não são necessários, e sim algo que o proteja.  </p>
<p><strong>Cenário fictício de exemplo:</strong><br />
Seu AS: 260072 <em>(Madruga Telecom)</em><br />
Operadora AS: 71 <em>(BrUxa71 Telecom)</em><br />
10.100.0.1/30 &#8211; Huawei NE<br />
10.100.0.2/30 &#8211; Servidor</p>
<h3>Configurando a interface de Rede</h3>
<p>Antes de iniciar a instalação do seu do seu servidor em meu exemplo estou usando o IP 10.100.0.2/30, porém eu NUNCA faria um NAT no roteador de borda então porque utilizar o IP privado? Simples por que ele não é acessível logo não pode ser atacado, mas por outro lado se ele não tiver internet você não poderá fazer a instalação e ele não poderá te notificar pelo telegram. Solução que eu gosto muito de aplicar em servidores é a seguinte (falo muito de como configurar interface de redes <a href="https://blog.remontti.com.br/5848" rel="noopener" target="_blank">nesse tutorial</a>, recomendo uma leitura). </p>
<p>Vamos supor que seu prefixo seja 72.72.72.0/22 e você vai alocar o ip 72.72.72.255<strong>/32</strong> para ser o IP de &#8220;loopback&#8221;. <em>Dica que esse IP não seja próximo a do prefixo público que utiliza em seus servidores</em>.</p>
<pre class="remontti-code"># vim /etc/network/interfaces</pre>
<pre class="remontti-code-plain">allow-hotplug eno1
iface eno1 inet static
    address 72.72.72.255/32

iface enp0s3 inet static
    address 10.100.0.2/30
    post-up /usr/sbin/ip route add default via 10.100.0.1 src 72.72.72.255</pre>
<p>Perceba que nós estaremos conversando com nosso roteador de borda pelo prefixo privado 10.100.0.0/30 porém todo o pacote de origem do servidor sai pelo o IP público. Caso este ip seja atacado o mesmo poderá cair em blackhole que o nosso servidor ainda terá comunicação com a borda. </p>
<p>Mas para que seu IP publico tenha rota será necessário criar um rota em seu roteador de borda apontando o IP público para o privado.</p>
<pre class="remontti-code">&lt;NE-SEUMADRUGA&gt; system-view
Enter system view, return user view with return command.
[~NE-SEUMADRUGA] ip route-static 72.72.72.255 255.255.255.255 10.100.0.2 description FASTNETMON
[*NE-SEUMADRUGA] commit</pre>
<p>É claro que neste caso ficará sem internet, mas podemos aplicar um firewall para enviar que ele fique respondendo, apenas para deixar ele &#8220;escondidinho&#8221;. E para isso vamos usar o nftables (Que já vem instalado por padrão no Debian 11 substituindo o iptables)<br />
Habilite o mesmo para iniciar com o sistema:</p>
<pre class="remontti-code"># systemctl enable nftables</pre>
<p>Vamos montar nosso firewall de forma que apenas conexoes que forem abertas pelo servidor seja respondidas.</p>
<pre class="remontti-code"># vim /etc/nftables.conf</pre>
<pre class="remontti-code-plain">#!/usr/sbin/nft -f

flush ruleset

table inet filter {

        chain input {
                type filter hook input priority 0;

                # Permite que apenas conexoes que foram aberta pelo servidor seja respondidas
                ip daddr 72.72.72.255 ct state related,established counter accept
                ip daddr 72.72.72.255 counter drop

        }
        chain forward {
                type filter hook forward priority 0;
        }
        chain output {
                type filter hook output priority 0;
        }
}</pre>
<p>Inicie o nftables</p>
<pre class="remontti-code"># systemctl start nftables</pre>
<p>Você pode simplesmente rodar um scanner de porta no seu IP público bem como um ping, o mesmo não deve responde. </p>
<h3>Instalação FastNetMon (Edição da comunidade)</h3>
<p>Para ver o comparativo da versão gratuita <a href="https://fastnetmon.com/compare-community-and-advanced/" rel="noopener" target="_blank">acesse aqui</a>. Já antemão o que não teremos suporte é ao IPv6 e alguns recursos extras.<br />
Conversando com <a href="https://www.linkedin.com/in/podintsov">Pavel Odintsov</a> entendeu que no Brasil os planos da versão paga ficam muito pesada para a grande maioria devido a alto do dólar, então ele criou um cupom com <strong>50%</strong> de desconto para os brasileiros. <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;" /><br />
Segue os lins com o desconto:<br />
<a href="https://fastnetmon.chargebee.com/hosted_pages/plans/fastnetmon-10g?subscription[coupon]=BRAZIL_PROMO" rel="noopener" target="_blank">Licença 10Gb</a><br />
<a href="https://fastnetmon.chargebee.com/hosted_pages/plans/fastnetmon-40g?subscription[coupon]=BRAZIL_PROMO" rel="noopener" target="_blank">Licença 40GB</a><br />
<a href="https://fastnetmon.chargebee.com/hosted_pages/plans/fastnetmon-100g?subscription[coupon]=BRAZIL_PROMO" rel="noopener" target="_blank">Licença 100GB</a></p>
<p>Vamos a instalação <a href="https://fastnetmon.com/install/" rel="noopener" target="_blank">[Doc Oficial]</a></p>
<pre class="remontti-code"># apt install wget tcpdump net-tools zip curl
# cd /tmp/
# wget https://install.fastnetmon.com/installer -Oinstaller
# chmod +x installer
# ./installer -install_community_edition</pre>
<p>É necessário que vc informe seu e-mail durante a instalação. <em>(Para usar a Comunidade FastNetMon você deve fornecer seu e-mail corporativo válido e aceitar receber informações sobre nossa edição comercial e atualizações de segurança)</em></p>
<pre class="remontti-code-plain">18:13:33 Will log all installation process details into file: /tmp/fastnetmon_install_1170.log
18:13:33 Installer build git version is: b21331ee349eaf0bc2abc71a466802cd26ee2347 build time is: 2022-01-17T16:17:51
18:13:33 Install FastNetMon Community edition

We offer significantly improved FastNetMon Advanced edition: 
&lt;blockquote class=&quot;wp-embedded-content&quot; data-secret=&quot;ghCHMDUZME&quot;&gt;&lt;a href=&quot;https://fastnetmon.com/fastnetmon-advanced/&quot;&gt;FastNetMon Advanced&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe class=&quot;wp-embedded-content&quot; sandbox=&quot;allow-scripts&quot; security=&quot;restricted&quot; style=&quot;position: absolute; clip: rect(1px, 1px, 1px, 1px);&quot; title=&quot;&#8220;FastNetMon Advanced&#8221; &#8212; FastNetMon DDoS Detection Tool&quot; src=&quot;https://fastnetmon.com/fastnetmon-advanced/embed/#?secret=9HRlASbAu2#?secret=ghCHMDUZME&quot; data-secret=&quot;ghCHMDUZME&quot; width=&quot;500&quot; height=&quot;282&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt;
You could order free one-month trial for Advanced edition here: 
&lt;blockquote class=&quot;wp-embedded-content&quot; data-secret=&quot;zdVTqp3qpj&quot;&gt;&lt;a href=&quot;https://fastnetmon.com/trial/&quot;&gt;Order trial&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe class=&quot;wp-embedded-content&quot; sandbox=&quot;allow-scripts&quot; security=&quot;restricted&quot; style=&quot;position: absolute; clip: rect(1px, 1px, 1px, 1px);&quot; title=&quot;&#8220;Order trial&#8221; &#8212; FastNetMon DDoS Detection Tool&quot; src=&quot;https://fastnetmon.com/trial/embed/#?secret=kKLHfdm2fM#?secret=zdVTqp3qpj&quot; data-secret=&quot;zdVTqp3qpj&quot; width=&quot;500&quot; height=&quot;282&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt;

To use FastNetMon Community you must provide your valid corporate email and accept 
to receive information about our commercial edition and security updates.
You can find our privacy policy here https://fastnetmon.com/privacy-policy/

Provide your corporate email here, personal emails are not allowed: seu@email.com.br
18:13:41 Apply sysctl configuration changes
18:13:41 Disable rp_filter for all interfaces
18:13:41 Installing on Debian 11.2 platform
18:13:41 Download binary package
18:15:27 Successfully installed FastNetMon Community edition</pre>
<p>Adicione todos os prefixos do seu AS, são esses os IPs serão feito analise.</p>
<pre class="remontti-code"># vim /etc/networks_list</pre>
<p>Exemplo:</p>
<pre class="remontti-code">72.72.72.0/22</pre>
<p>Ajustando as configurações do /etc/fastnetmon.conf.<br />
Habilitamos o serviço de netflow: `netflow = off` para `netflow = on`</p>
<pre class="remontti-code"># sed -i &#039;s/netflow = off/netflow = on/&#039; /etc/fastnetmon.conf</pre>
<p>Ajustes de tempo</p>
<pre class="remontti-code"># sed -i &#039;s/average_calculation_time = 5/average_calculation_time = 15/&#039; /etc/fastnetmon.conf
# sed -i &#039;s/average_calculation_time_for_subnets = 5/average_calculation_time_for_subnets = 15/&#039; /etc/fastnetmon.conf
# sed -i &#039;s/netflow_sampling_ratio = 1/netflow_sampling_ratio = 1024/&#039; /etc/fastnetmon.conf</pre>
<p>Defina por quanto tempo em segundos um IP ficará em blackhole o padrão é 1900 seg. No comando estou alterando para 10min: </p>
<pre class="remontti-code"># sed -i &#039;s/ban_time = 1900/ban_time = 600/&#039; /etc/fastnetmon.conf</pre>
<p>Ative medidores de velocidade por sub-rede, para listar a velocidade da faixa em bps e pps para ambas as direções. (Parece que removeram na última versão)</p>
<pre class="remontti-code"># sed -i &#039;s/enable_subnet_counters = off/enable_subnet_counters = on/&#039; /etc/fastnetmon.conf</pre>
<p>Altera o top 7 para o top 10 ao usar o comando fastnetmon_client</p>
<pre class="remontti-code"># sed -i &#039;s/max_ips_in_list = 7/max_ips_in_list = 10/&#039; /etc/fastnetmon.conf</pre>
<p>Temos diferentes abordagens para detecção dos ataques: Pacotes por segundos, largura de banda e por fluxo (flows).</p>
<pre class="remontti-code-plain">ban_for_pps = on
ban_for_bandwidth = on
ban_for_flows = off

ban_for_tcp_bandwidth = off
ban_for_udp_bandwidth = off
ban_for_icmp_bandwidth = off

ban_for_tcp_pps = off
ban_for_udp_pps = off
ban_for_icmp_pps = off
</pre>
<p>Vamos ativar todos os filtros:</p>
<pre class="remontti-code"># sed -i &#039;s/ban_for_flows = off/ban_for_flows = on/&#039; /etc/fastnetmon.conf
# sed -i &#039;s/ban_for_tcp_bandwidth = off/ban_for_tcp_bandwidth = on/&#039; /etc/fastnetmon.conf
# sed -i &#039;s/ban_for_udp_bandwidth = off/ban_for_udp_bandwidth = on/&#039; /etc/fastnetmon.conf
# sed -i &#039;s/ban_for_icmp_bandwidth = off/ban_for_icmp_bandwidth = on/&#039; /etc/fastnetmon.conf
# sed -i &#039;s/ban_for_tcp_pps = off/ban_for_tcp_pps = on/&#039; /etc/fastnetmon.conf
# sed -i &#039;s/ban_for_udp_pps = off/ban_for_udp_pps = on/&#039; /etc/fastnetmon.conf
# sed -i &#039;s/ban_for_icmp_pps = off/ban_for_icmp_pps = on/&#039; /etc/fastnetmon.conf</pre>
<p>Como temos todas as detecções ativas, precisamos ajustar cada situação para sua realidade. Você precisa ter em mente qual é o maior tráfego que pode atingir por um IP da sua rede (seu maior plano) com base nisso tenha em mente que a cada 100MB gera em torno de 10.000 pps por segundo, <strong>isso não é regra</strong> mas pode ser uma base inicial. Vamos imaginar então que meu maior plano seja 900MB, farei uma ajuste no <strong>threshold_pps</strong> para 90.000 pps.</p>
<pre class="remontti-code"># sed -i &#039;s/threshold_pps = 20000/threshold_pps = 90000/&#039; /etc/fastnetmon.conf</pre>
<p>Agora em <strong>threshold_mbps</strong> seria o maior tráfego que você irá permitir, eu normalmente não altero e deixo no padrão 1gb. E em <strong>threshold_flows</strong> o fluxos de limite qual também mantenho o mesmo valor 3500.</p>
<pre class="remontti-code-plain">threshold_mbps = 1050
threshold_flows = 3500</pre>
<p>O netflow ouve a porta padrão 2055 se desejar alterar basta alterar o valor de <strong>netflow_port</strong>. Irei alterar para 52055.</p>
<pre class="remontti-code"># sed -i &#039;s/netflow_port = 2055/netflow_port = 52055/&#039; /etc/fastnetmon.conf</pre>
<p>Por o serviço ira ficar ouvindo em todos os endereços IPs do seu servidor (<strong>netflow_host = 0.0.0.0</strong>), logo o mais correto seria deixa-lo apenas para o IP privado.</p>
<pre class="remontti-code"># sed -i &#039;s/netflow_host = 0.0.0.0/netflow_host = 10.100.0.2/&#039; /etc/fastnetmon.conf</pre>
<p>Ainda em /etc/fastnetmon.conf temos <strong>notify_script_path</strong> que sempre que o fastnetmon identificar um ataque irá executar o script <strong>/usr/local/bin/notify_about_attack.sh</strong>, identificando o IP da sua rede que está sofrendo <strong>(incoming)</strong> o ataque ou que está atacando <strong>(outgoing)</strong> alguém. <strong>Ele NÃO irá identificar os IPs de origem</strong>, pois em um ataque quase sempre as origens são alteradas por milhares de IPs aleatórios.  </p>
<p>Habilite e reinicie o fastnetmon para carregar as novas configurações.</p>
<pre class="remontti-code"># systemctl enable fastnetmon
# systemctl restart fastnetmon</pre>
<p>Verifique se a porta 52055/udp esta ouvindo:</p>
<pre class="remontti-code"># netstat -putan  | grep 52055</pre>
<pre class="remontti-code-plain">udp        0      0 10.100.0.2:52055           0.0.0.0:*                           1599/fastnetmon </pre>
<p>Bom mas antes de criarmos nosso script notify_about_attack.sh, precisamos preparar algumas coisas, e antes de mais nada vamos configurar nosso Huawei para enviar os dados.</p>
<p>Acesse seu roteador Huawei:</p>
<pre class="remontti-code">&lt;NE-SEUMADRUGA&gt; system-view
[~NE-SEUMADRUGA] ip netstream export version ipfix peer-as bgp-nexthop ttl
[*NE-SEUMADRUGA] ip netstream export template sequence-number fixed
[*NE-SEUMADRUGA] ip netstream export index-switch 32
[*NE-SEUMADRUGA] ip netstream as-mode 32
[*NE-SEUMADRUGA] ip netstream timeout active 1
[*NE-SEUMADRUGA] ip netstream timeout inactive 15
[*NE-SEUMADRUGA] ip netstream export template timeout-rate 1
[*NE-SEUMADRUGA] ip netstream export template option sampler
[*NE-SEUMADRUGA] ip netstream export template option application-label
[*NE-SEUMADRUGA] ip netstream sampler fix-packets 1024 inbound
[*NE-SEUMADRUGA] ip netstream sampler fix-packets 1024 outbound
[*NE-SEUMADRUGA] ip netstream export source 10.100.0.1
[*NE-SEUMADRUGA] ip netstream export host 10.100.0.2 52055</pre>
<p>slot 0 NE8000F1A / slot 10 ou 9 NE8000 M8 / slot 3 NE40</p>
<pre class="remontti-code">[*NE-SEUMADRUGA] slot &lt;0-10&gt;
[*NE-SEUMADRUGA] ip netstream sampler to slot self
[*NE-SEUMADRUGA]  ipv6 netstream sampler to slot self</pre>
<p>Será necessário adicionar em todas suas interfaces de Uplink: </p>
<pre class="remontti-code-plain"> ip netstream inbound
 ip netstream outbound</pre>
<p>Exemplo:</p>
<pre class="remontti-code">
interface 40GE0/1/49.71
 vlan-type dot1q 71
 description BruxaDo71Telecom
 ip address 71.71.71.2 255.255.255.252
 statistic enable
 ip netstream inbound
 ip netstream outbound
</pre>
<p>Com o tcpdump vamos monitorar a interface para ver o que esta chegando na porta.</p>
<pre class="remontti-code"># tcpdump -i ens192 -n udp port 52055 -T cnfp -c 10</pre>
<p>Se seu NE estiver mandado os pacotes você terá um resultado como:</p>
<pre class="remontti-code-plain">tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes
14:25:19.601113 IP 10.100.0.1.40000 &gt; 10.100.0.2.52055: NetFlow v9
14:25:19.608068 IP 10.100.0.1.40000 &gt; 10.100.0.2.52055: NetFlow v9
14:25:19.668054 IP 10.100.0.1.40000 &gt; 10.100.0.2.52055: NetFlow v9
14:25:19.691123 IP 10.100.0.1.40000 &gt; 10.100.0.2.52055: NetFlow v9
14:25:19.768055 IP 10.100.0.1.40000 &gt; 10.100.0.2.52055: NetFlow v9
14:25:19.781129 IP 10.100.0.1.40000 &gt; 10.100.0.2.52055: NetFlow v9
14:25:19.831133 IP 10.100.0.1.40000 &gt; 10.100.0.2.52055: NetFlow v9
14:25:19.858054 IP 10.100.0.1.40000 &gt; 10.100.0.2.52055: NetFlow v9
14:25:19.941124 IP 10.100.0.1.40000 &gt; 10.100.0.2.52055: NetFlow v9
14:25:19.958060 IP 10.100.0.1.40000 &gt; 10.100.0.2.52055: NetFlow v9
10 packets captured
10 packets received by filter
0 packets dropped by kernel</pre>
<p>Agora com o comando: </p>
<pre class="remontti-code"># fastnetmon_client</pre>
<p>Iremos visualizar os TOP IPs</p>
<pre class="remontti-code-plain">FastNetMon 1.1.3 master git- Pavel Odintsov: stableit.ru
IPs ordered by: packets
Incoming traffic       724347 pps   6998 mbps    161 flows
72.72.72.238            51973 pps    569 mbps      0 flows  *banned*
72.72.72.112            14390 pps    154 mbps      0 flows
72.72.72.93             14000 pps    150 mbps      0 flows
72.72.72.161            11705 pps    129 mbps      0 flows
72.72.72.118             8797 pps     86 mbps      0 flows
72.72.72.43              7602 pps     84 mbps      0 flows
72.72.72.111             6669 pps     64 mbps      0 flows

Outgoing traffic       291008 pps    705 mbps    101 flows
72.72.72.238            18009 pps     14 mbps      0 flows  *banned*
72.72.72.112             7929 pps      5 mbps      0 flows
72.72.72.93              7110 pps     10 mbps      0 flows
72.72.72.14              4910 pps     40 mbps      0 flows
72.72.72.43              4887 pps      2 mbps      0 flows
72.72.72.161             4537 pps      2 mbps      0 flows
72.72.72.111             3933 pps     14 mbps      0 flows

Internal traffic             0 pps      0 mbps

Other traffic              420 pps      0 mbps

Screen updated in:              0 sec 331 microseconds
Traffic calculated in:          0 sec 854 microseconds
Total amount of IPv6 packets related to our own network: 0
Not processed packets: 0 pps 

Subnet load:
72.72.72.0/22      pps in: 256000   out: 52000    mbps in: 9630  out: 1077
100.100.0.6/32     pps in: 0        out: 0        mbps in: 0     out: 0
</pre>
<p>Perceba que o IP <strong>72.72.72.238</strong> foi banido, pois o mesmo excedeu os pps de 50.000, no entanto este é um dos IPs que então em meu CGNAT, e vai ser natural este ter um comportamento diferente. Para que o <strong>fastnetmon ignore o mesmo</strong> você pode cria uma <strong>lista branca</strong>. Não se preocupe se isso acontecer com você o fastnetmon não ira fazer nenhuma ação, pois não configuramos nada ainda.<br />
Para criar a lista branca <strong>networks_whitelist</strong> com os IPs ou prefixo que deseja ignorar.</p>
<pre class="remontti-code"># &gt; /etc/networks_whitelist
# vim /etc/networks_whitelist</pre>
<p>Exemplo</p>
<pre class="remontti-code-plain">72.72.72.224/28
72.72.73.224/28</pre>
<p>Reinicie para carregar as novas configurações.</p>
<pre class="remontti-code"># systemctl restart fastnetmon</pre>
<h3>Bot Telegram</h3>
<p>Para receber notificações pelo Telegram juntamente com o arquivo de log, vai ser necessário criar um bot do telegram para o uso do mesmo. Se você não sabe como criar um Bot para telegram basta você falar com o <a href="https://telegram.me/BotFather" rel="noopener" target="_blank">@BotFather</a> e enviar para ele <strong>/newbot</strong>, ele irá pedir qual nome você gostaria de dar a seu bot, e em seguida ira gera um token que vamos precisar a seguir. </p>
<p>Para o Telegram vamos usar um scriptzinho que criei.</p>
<pre class="remontti-code"># cd /tmp/
# wget https://github.com/remontti/TelegramCMD/archive/master.zip
# unzip /tmp/master.zip
# chmod a+x /tmp/TelegramCMD-master/telegram
# mv /tmp/TelegramCMD-master/telegram* /usr/local/bin/
# ln -s /usr/local/bin/telegram /bin/telegram</pre>
<p>Edite o token.conf e altere para o seu TOKEN.</p>
<pre class="remontti-code"># vim /usr/local/bin/telegram.conf/token.conf</pre>
<pre class="remontti-code">######################################
# Telegram bot                       #
# Create a new bot with @BotFather   #
# get TOKEN                          #
######################################

TOKEN=&quot;123456789:FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF&quot;</pre>
<p>Esse script você pode usar para diversas coisas, ele será capaz de zipar um diretorio e lhe enviar o arquivo bem como enviar apenas uma mensagem. Como usar? É importante você saber que o IDs de grupos tem um &#8220;-&#8221; no inicio do ID, já usuários não. Para descobrir o ID do seu usuário fale com o bot <a href="https://telegram.me/myidbot" rel="noopener" target="_blank"><strong>@myidbot</strong></a> e envie para ele <strong>/getid</strong>, para saber de um grupo adicione <strong>@myidbot</strong> ao seu grupo e envie <strong>/getgroupid@myidbot</strong>. Realize um teste com um dos comandos: (Não esqueça de alterar pelo seu ID)</p>
<pre class="remontti-code-plain">Uso: telegram [Opções]
  -m: Para enviar uma mensagem
     ex: telegram -m &quot;ID Chat&quot; &quot;Meu assunto&quot; &quot;Minha mensagem...&quot;
     ex: telegram -m &quot;-123456789&quot; &quot;Notificação&quot; &quot;Mensagem para um grupo ID&quot;
     ex: telegram -m &quot;123456789&quot; &quot;Notificação&quot; &quot;Mensagem para direta/privado&quot;

  -f: Para enviar um arquivo
     ex: telegram -f &quot;ID Chat&quot; &quot;/diretorio/arquivo&quot; &quot;nome do arquivo zip&quot; &quot;Comentário&quot;
     ex: telegram -f &quot;12345689&quot; /var/log/syslog syslog &quot;Logs do sistema para user privado&quot;
     ex: telegram -f &quot;-12345689&quot; /var/log/syslog syslog &quot;Logs do sistema para um grupo&quot;</pre>
<h3>FRR</h3>
<p>Vamos realizar a instalação do <a href="http://frrouting.org/" rel="noopener" target="_blank">FRRouting</a> (FRR) para fechar sessão BGP entre o roteador de borda e servidor.</p>
<pre class="remontti-code">
# apt install curl apt-transport-https gnupg2 tree net-tools
# curl -s https://deb.frrouting.org/frr/keys.asc | apt-key add -
# echo deb https://deb.frrouting.org/frr bullseye frr-8 | tee -a /etc/apt/sources.list.d/frr.list
# apt update
# apt install frr frr-doc</pre>
<p>Parâmetros kernel</p>
<pre class="remontti-code"># echo &#039;net.ipv4.ip_forward = 1&#039; &gt;&gt; /etc/sysctl.conf
# echo &quot;net.ipv4.conf.all.rp_filter = 0&quot; &gt;&gt; /etc/sysctl.conf
# echo &quot;net.ipv4.conf.default.rp_filter = 0&quot; &gt;&gt; /etc/sysctl.conf
# echo &quot;net.ipv4.conf.lo.rp_filter = 0&quot; &gt;&gt; /etc/sysctl.conf
# echo &quot;net.ipv4.conf.`ip -br link |awk &#039;{print $1}&#039; |grep -v lo`.rp_filter = 0&quot; &gt;&gt; /etc/sysctl.conf
# sysctl -p</pre>
<p>Ative o modulo BGP</p>
<pre class="remontti-code"># sed -i &#039;s/bgpd=no/bgpd=yes/&#039; /etc/frr/daemons</pre>
<p>Reinicie o FRR</p>
<pre class="remontti-code"># systemctl restart frr</pre>
<p>Entre no shell VTY do FRR.</p>
<pre class="remontti-code"># vtysh</pre>
<p>Rode o comando: `show running-config`</p>
<pre class="remontti-code-plain">deb11# show running-config 
Building configuration...

Current configuration:
!
frr version 8.3.1
frr defaults traditional
hostname deb11
log syslog informational
no ip forwarding
no ipv6 forwarding
service integrated-vtysh-config
!
line vty
!
end</pre>
<p>Agora entre no modo de configuração, e vamos preparar nosso peer com o router de borda. No exemplo está praticamente auto explicativo, vamos fechar o peer e <strong>deixar</strong> ser anunciado <strong>apenas nossos prefixos</strong> e aplicaremos a <strong>community 65001:666</strong></p>
<pre class="remontti-code-plain">configure terminal
!
ip prefix-list FASTNETMON_EXPORT seq 5 permit 72.72.72.0/23 le 32
ip prefix-list FASTNETMON_EXPORT seq 10 permit 72.72.74.0/23 le 32
!
!
route-map MARK_FASTNETMON_IMPORT deny 10
!
route-map MARK_FASTNETMON_EXPORT permit 10
 match ip address prefix-list FASTNETMON_EXPORT
 set community 65001:666
!
router bgp 65001
 bgp router-id 10.100.0.2
 neighbor 10.100.0.1 remote-as 260072
 neighbor 10.100.0.1 description &quot;NE8K_BORDA&quot;
# neighbor 10.100.0.1 ebgp-multihop 255 # (Caso seja multihop)
 !
 address-family ipv4 unicast
  neighbor 10.100.0.1 route-map MARK_FASTNETMON_IMPORT in
  neighbor 10.100.0.1 route-map MARK_FASTNETMON_EXPORT out
 exit-address-family
!
line vty
!
end
write memory
exit</pre>
<p>Vamos ao <strong>Huawei</strong></p>
<pre class="remontti-code">&lt;NE-SEUMADRUGA&gt; system-view
Enter system view, return user view with return command.</pre>
<p>Crie uma rota estática de Blackhole</p>
<pre class="remontti-code">[~NE-SEUMADRUGA] ip route-static 192.0.2.1 255.255.255.255 NULL0 description BLACKHOLE</pre>
<p>Crie um filtro que irá aceitar qualquer rota /32</p>
<pre class="remontti-code">[*NE-SEUMADRUGA] ip ip-prefix  ACCEP_PREFIX_MASK32_FASTNETMON_IPV4 index 10 permit 0.0.0.0 0 greater-equal 32</pre>
<p>Crie os prefixos publico para rejeitar e não cair em blackhole mesmo quando atacado, caso você deixar o fastnetmon anúnciar seu NE pode rejeitar (Ex IP Servidores ou CGNAT)</p>
<pre class="remontti-code">[*NE-SEUMADRUGA] ip ip-prefix  IGNORE_PREFIX_FASTNETMON_IPV4 index 10 permit 72.72.72.224 28 greater-equal 28 less-equal 32
[*NE-SEUMADRUGA] ip ip-prefix  IGNORE_PREFIX_FASTNETMON_IPV4 index 20 permit 72.72.73.224 28 greater-equal 28 less-equal 32</pre>
<p>Crie um filtro para a community 65001:666</p>
<pre class="remontti-code">[*NE-SEUMADRUGA] ip community-filter basic COMM_FASTNETMON_BLACKHOLE index 10 permit 65001:666</pre>
<p>Vamos montar agora nosso route policy de import (rotas que iremos receber). A 1ª é ignorar os prefixos <strong>IGNORE_PREFIX_FASTNETMON_IPV4</strong></p>
<pre class="remontti-code">[*NE-SEUMADRUGA] route-policy FASTNETMON_IMPORT_IPV4 deny node 1000
[*NE-SEUMADRUGA]  if-match ip-prefix IGNORE_PREFIX_FASTNETMON_IPV4</pre>
<p>A 2º é o que vir marcado do fastnetmon com 65001:666 (COMM_FASTNETMON_BLACKHOLE) jogar para blackhole e aplicar uma community nova <strong>65444:666</strong>, como no exemplo aqui meu AS é de 32bits vou usar um AS privado, mas onde seu AS é de 16bits o mais comum de se encontrar é AS:666. Assim se você for trânsito de outro AS você pode montar em suas route policy para aceitar prefixos do AS dele com /32 marcados com AS:666 e jogar para blackhole também fica dica!</p>
<pre class="remontti-code">[*NE-SEUMADRUGA] route-policy FASTNETMON_IMPORT_IPV4 permit node 1010
[*NE-SEUMADRUGA]  if-match community-filter COMM_FASTNETMON_BLACKHOLE 
[*NE-SEUMADRUGA]  apply local-preference 999
[*NE-SEUMADRUGA]  apply ip-address next-hop 192.0.2.1
[*NE-SEUMADRUGA]  apply community 65444:666
[*NE-SEUMADRUGA]  if-match ip-prefix ACCEP_PREFIX_MASK32_FASTNETMON_IPV4</pre>
<p>E a 3ª ignoramos o resto como boas praticas.</p>
<pre class="remontti-code">[*NE-SEUMADRUGA] route-policy FASTNETMON_IMPORT_IPV4 deny node 9999</pre>
<p>Para as route policy de export (Rotas que o NE irá ensinar) colocarei apenas um Deny pois ele não precisa ensinar nada.</p>
<pre class="remontti-code">[*NE-SEUMADRUGA] route-policy FASTNETMON_EXPORT_IPV4 deny node 9999
[*NE-SEUMADRUGA] commit</pre>
<p>Vamos ao peer</p>
<pre class="remontti-code">[*NE-SEUMADRUGA] bgp 260072
[~NE-SEUMADRUGA] undo peer 10.100.0.2
[*NE-SEUMADRUGA]  peer 10.100.0.2 as-number 65001
[*NE-SEUMADRUGA]  peer 10.100.0.2 description BORDA_VS_FASTNETMON_IPV4
[*NE-SEUMADRUGA]  peer 10.100.0.2 timer connect-retry 1
[*NE-SEUMADRUGA]  peer 10.100.0.2 connect-interface 10.100.0.1
[*NE-SEUMADRUGA]  peer 10.100.0.2 timer keepalive 10 hold 30 
[*NE-SEUMADRUGA]  ipv4-family unicast
[*NE-SEUMADRUGA]   peer 10.100.0.2 enable
[*NE-SEUMADRUGA]   peer 10.100.0.2 public-as-only
[*NE-SEUMADRUGA]   peer 10.100.0.2 route-policy FASTNETMON_IMPORT_IPV4 import
[*NE-SEUMADRUGA]   peer 10.100.0.2 route-policy FASTNETMON_EXPORT_IPV4 export
[*NE-SEUMADRUGA]   peer 10.100.0.2 next-hop-local
[*NE-SEUMADRUGA]   peer 10.100.0.2 advertise-community
[*NE-SEUMADRUGA]   peer 10.100.0.2 advertise-ext-community
[*NE-SEUMADRUGA] commit
[~NE-SEUMADRUGA] run save </pre>
<p>Em caso de alguma <strong>emergência</strong>, para <strong>baixar</strong> a sessão use:</p>
<pre class="remontti-code">[~NE-SEUMADRUGA] bgp 260072
[*NE-SEUMADRUGA] peer 10.100.0.2 ignore
[*NE-SEUMADRUGA] commit</pre>
<p>Para <strong>subir</strong> novamente:</p>
<pre class="remontti-code">[~NE-SEUMADRUGA] bgp 260072
[*NE-SEUMADRUGA] undo peer 10.100.0.2 ignore
[*NE-SEUMADRUGA] commit</pre>
<p>Verifique se sua sessão subiu:</p>
<pre class="remontti-code">[*NE-SEUMADRUGA] display bgp peer | include 10.100.0.2</pre>
<pre class="remontti-code-plain"> BGP local router ID : x.x.x.x
 Local AS number : 260072
 Total number of peers : 13                 Peers in established state : 13

  Peer                             V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State  PrefRcv
  10.100.0.2                       4       65001   897801  1088107     0 2496h26m Established        0</pre>
<p>No FRR use `show bgp summary`</p>
<pre class="remontti-code"># vtysh</pre>
<pre class="remontti-code-plain"># show bgp summary
IPv4 Unicast Summary:
BGP router identifier 10.100.0.2, local AS number 65001 vrf-id 0
BGP table version 0
RIB entries 0, using 0 bytes of memory
Peers 1, using 21 KiB of memory

Neighbor        V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt
10.100.0.1      4     260072         5         5        0    0    0 00:02:52            0        0

Total number of neighbors 1
# exit</pre>
<p>Para repassar os prefixos marcados como blackhole para sua operadora você precisará saber qual é a community que a mesma utiliza e se ela lhe oferece esse recurso, em seguida você irá adiciar a route policy da sua operadora uma nova regra:</p>
<p>No exemplo tudo que recebemos do fastnetmon passamos a aplicar a community 65444:666, logo tudo que for marcado com a mesma irei repassar para operadora com a commnunity da operadora. Para isso crie então primeiro a community-filter de Blackhole sua.</p>
<pre class="remontti-code">[~NE-SEUMADRUGA] ip community-filter basic COMM_BLACKHOLE index 10 permit 65444:666</pre>
<p>Agora na route policy da operadora crie algo semelhante ao exemplo, sendo que a community de blackhole que sua operadora passou fosse &#8220;71:666&#8221;:</p>
<pre class="remontti-code">[~NE-SEUMADRUGA] route-policy UPSTREAM_OP_BRUXADO71_EXPORT_IPV4 permit node 2070
[~NE-SEUMADRUGA]  if-match community-filter COMM_BLACKHOLE
[~NE-SEUMADRUGA]  apply community 71:666</pre>
<p>Pronto agora que ja temos nosso peer Up entre router e servidor, nosso Bot mandando mensagem, iremos criar o script que será executado sempre que um ataque for identificado <strong>BAN</strong> ou <strong>UNBAN</strong>. Irei criar um diretório /var/log/fastnetmon_attacks/ataques qual irá ficar os ataques finalizados.</p>
<pre class="remontti-code"># mkdir /var/log/fastnetmon_attacks/ataques -p
# vim /usr/local/bin/notify_about_attack.sh</pre>
<p>Altere <strong>ID_CHAT=&#8217;-1000000000000&#8242;</strong> pelo ID do seu usuário ou grupo.</p>
<pre class="remontti-code">#!/usr/bin/env bash
  
# Este script receberá os seguintes parâmetros:
#  $1 IP do cliente
#  $2 INCOMING -&gt; Vindo de fora da rede | OUTGOING -&gt; Saindo da sua rede
#  $3 Pacotes por seguncoes
#  $4 Ação (ban ou unban)

# Defina o ID do Chat ou Grupo (Grupos sempre começam com &quot;-&quot; )
ID_CHAT=&#039;-1000000000000&#039;

if [ &quot;$2&quot; = &quot;incoming&quot; ]; then
  TIPO=&quot;Sendo atacado&quot;
else 
  TIPO=&quot;Realizando um ataque&quot;
fi

# Desbanindo um IP
if [ &quot;$4&quot; = &quot;unban&quot; ]; then
  /usr/local/bin/telegram -m &quot;$ID_CHAT&quot; &quot;UNBAN IP: &lt;code&gt;$1&lt;/code&gt;&quot; &quot;&lt;code&gt;-&gt;&gt;&lt;/code&gt; Removido da blackhole&quot;
  # Remove IP do anuncio para o FRR
  vtysh --command &quot;configure terminal
  no ip route $1/32 lo
  router bgp 65001
   address-family ipv4 unicast
    no network $1/32
  &quot;
  # Movemos os logs para pasta ataques pois não queremos mais receber elas.
  mv /var/log/fastnetmon_attacks/$1* /var/log/fastnetmon_attacks/ataques
  exit 0
fi

# Banindo um IP
if [ &quot;$4&quot; = &quot;ban&quot; ]; then
  /usr/local/bin/telegram -m &quot;$ID_CHAT&quot; &quot;BAN IP: &lt;code&gt;$1&lt;/code&gt; $TIPO &lt;b&gt;[$3 pps]&lt;/b&gt;&quot; &quot;&lt;code&gt;-&gt;&gt;&lt;/code&gt; Anunciado em blackhole&quot;
  /usr/local/bin/telegram -f &quot;$ID_CHAT&quot; /var/log/fastnetmon_attacks/$1* $1 &quot;Logs do ataque ao IP $1&quot;
  # Anuncia IP ao FRR
  vtysh --command &quot;configure terminal
  ip route $1/32 lo
  router bgp 65001
   address-family ipv4 unicast
    network $1/32
  &quot;
    exit 0
fi

if [ &quot;$4&quot; == &quot;attack_details&quot; ]; then
  #/usr/local/bin/telegram -m &quot;$ID_CHAT&quot; &quot;BAN&quot; &quot;&lt;code&gt;FastNetMon: IP $1 blocked because $2 attack with power $3 pps&lt;/code&gt;&quot;
  exit 0
fi</pre>
<p>De permissão para execução</p>
<pre class="remontti-code"># chmod a+x /usr/local/bin/notify_about_attack.sh</pre>
<p>Restarte o fastnetmon</p>
<pre class="remontti-code"># systemctl restart fastnetmon</pre>
<p>Se quiser fazer um teste manual anunciando um IP (um que não esteja em uso né!!! rsrsrs) exemplo: 72.72.73.255/32<br />
Adicionando:</p>
<pre class="remontti-code"># vtysh --command &quot;configure terminal
  ip route 72.72.73.255/32 lo
  router bgp 65001
   address-family ipv4 unicast
    network 72.72.73.255/32&quot;</pre>
<p>Verificando se esta enviando:</p>
<pre class="remontti-code"># vtysh --command &quot; show ip bgp neighbors 10.100.0.1 advertised-routes&quot;</pre>
<pre class="remontti-code-plain">BGP table version is 3, local router ID is 10.100.0.2, vrf id 0
Default local pref 100, local AS 65001
Status codes:  s suppressed, d damped, h history, * valid, &gt; best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop&#039;s vrf id, &lt; announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

   Network          Next Hop            Metric LocPrf Weight Path
*&gt; 72.72.73.255/32  0.0.0.0                  0         32768 i

Total number of prefixes 1</pre>
<p>Removendo:</p>
<pre class="remontti-code"># vtysh --command &quot;configure terminal
  no ip route 72.72.73.255/32 lo
  router bgp 65001
   address-family ipv4 unicast
    no network 72.72.73.255/32&quot;</pre>
<p>Finalizamos a primeira parte sem fazer nenhum estrago ao servidor (CPU) <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>Seria interessante fazer alguns testes de ataques (coisa pequena) mas com características reais de dentro da sua rede e de fora, escolha uma IP que não esteja em uso para tal! Para realizar esse ataque user o a ferramenta criada pelo ekovegeance: <a href="https://github.com/ekovegeance/DDOS" rel="noopener noreferrer" target="_blank">https://github.com/ekovegeance/DDOS</a></p>
<p>Em um servidor/desktop linux vai precisar ter instalado os pacotes bash sudo curl netcat hping3 openssl stunnel nmap whois dnsutils.<br />
<a href="https://github.com/ekovegeance/DDOS/archive/v1.2.4.zip">Baixe os arquivos</a>, extraia entre em sua pasta e execute o arquivo ddos.</p>
<pre class="remontti-code">$ wget https://github.com/ekovegeance/DDOS/archive/v1.2.4.zip
$ unzip v1.2.4.zip 
$ cd DDOS-1.2.4/
$ ./ddos</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2020/01/ddos.png" data-rel="lightbox-gallery-R074Fqjx" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/ddos.png" alt="" width="676" height="881" class="alignnone size-full wp-image-3988" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/ddos.png 676w, https://blog.remontti.com.br/wp-content/uploads/2020/01/ddos-230x300.png 230w" sizes="auto, (max-width: 676px) 100vw, 676px" /></a></p>
<h3>Gráficos Grafana</h3>
<p>Habilite o graphite no fastnetmon</p>
<pre class="remontti-code"># sed -i &#039;s/graphite = off/graphite = on/&#039; /etc/fastnetmon.conf</pre>
<p>Vamos instalar o <strong>influxdb</strong> para ser a base de dados</p>
<pre class="remontti-code"># apt install lsb-release gnupg2 curl wget
# wget -q https://repos.influxdata.com/influxdata-archive_compat.key
# echo &#039;393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key&#039; \
  | sha256sum -c &amp;&amp; cat influxdata-archive_compat.key \
  | gpg --dearmor \
  | tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg &gt; /dev/null
# echo &#039;deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main&#039;\
  | tee /etc/apt/sources.list.d/influxdata.list
# apt update
# apt install influxdb</pre>
<p>Edite o influxdb.conf</p>
<pre class="remontti-code"># vim /etc/influxdb/influxdb.conf</pre>
<p>Localize [[graphite]] e abaixo adicione:</p>
<pre class="remontti-code-plain">[[graphite]]
  enabled = true
  bind-address = &quot;:2003&quot;
  protocol = &quot;tcp&quot;
  consistency-level = &quot;one&quot;
  separator = &quot;.&quot;
  batch-size = 5000 # will flush if this many points get buffered
  batch-timeout = &quot;1s&quot; # will flush at least this often even if we haven&#039;t hit buffer limit
  templates = [
    &quot;fastnetmon.hosts.* app.measurement.cidr.direction.function.resource&quot;,
    &quot;fastnetmon.networks.* app.measurement.cidr.direction.resource&quot;,
    &quot;fastnetmon.total.* app.measurement.direction.resource&quot;
  ]</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/influxdb_graphite.png" alt="" width="1038" height="639" class="alignnone size-full wp-image-6314" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/influxdb_graphite.png 1038w, https://blog.remontti.com.br/wp-content/uploads/2022/02/influxdb_graphite-300x185.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/influxdb_graphite-1024x630.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/influxdb_graphite-768x473.png 768w" sizes="auto, (max-width: 1038px) 100vw, 1038px" /></p>
<p>Reinicie o influxdb</p>
<pre class="remontti-code"># systemctl restart influxdb</pre>
<p>Em seguida o fastnetmon</p>
<pre class="remontti-code"># systemctl restart fastnetmon</pre>
<p>Agora vamos acessar o o influxdb para ver se o banco graphite foi criado.</p>
<pre class="remontti-code"># influx</pre>
<pre class="remontti-code-plain">Connected to http://localhost:8086 version 1.8.10
InfluxDB shell version: 1.8.10</pre>
<pre class="remontti-code">&gt; use graphite</pre>
<pre class="remontti-code-plain">Using database graphite</pre>
<pre class="remontti-code">&gt; show measurements</pre>
<pre class="remontti-code-plain">name: measurements
name
----
hosts
networks
total</pre>
<pre class="remontti-code">&gt; exit</pre>
<h4> Grafana</h3>
<p>Adicione o repositório do grafana e instale-o</p>
<pre class="remontti-code"># wget -q -O - https://packages.grafana.com/gpg.key | apt-key add -
# echo &quot;deb https://packages.grafana.com/oss/deb stable main&quot; | tee -a /etc/apt/sources.list.d/grafana.list
# apt update; apt install grafana</pre>
<p>Habilite serviço para inicialização e inicie o mesmo</p>
<pre class="remontti-code"># systemctl enable grafana-server
# systemctl start grafana-server</pre>
<p>Acesse em seu navegador <strong>http://ip_privado:3000</strong> e entre com <strong>usuário e senha admin</strong> em seguida defina uma nova senha.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_01.png" alt="" width="1384" height="769" class="alignnone size-full wp-image-6318" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_01.png 1384w, https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_01-300x167.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_01-1024x569.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_01-768x427.png 768w" sizes="auto, (max-width: 1384px) 100vw, 1384px" /></p>
<p>No menu <strong>Configuration</strong> e vá em  <strong>Data sources</strong>, clique em <strong>Add data source</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_02.png" alt="" width="1113" height="564" class="alignnone size-full wp-image-6319" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_02.png 1113w, https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_02-300x152.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_02-1024x519.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_02-768x389.png 768w" sizes="auto, (max-width: 1113px) 100vw, 1113px" /></p>
<p>Localize influxDB e selecione<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_03.png" alt="" width="1370" height="366" class="alignnone size-full wp-image-6320" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_03.png 1370w, https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_03-300x80.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_03-1024x274.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_03-768x205.png 768w" sizes="auto, (max-width: 1370px) 100vw, 1370px" /></p>
<p>Preencha apenas:<br />
URL:<strong> http://localhost:8086</strong><br />
Database: <strong>graphite</strong><br />
E clique em <strong>Save &#038; test</strong>, você deve ter a resposta <strong>Data source is working</strong>.</p>
<p>Faça <strong><a href="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon-Dash.zip" rel="noopener" target="_blank">download aqui</a> </strong>das Dashs e importe.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_04.png" alt="" width="207" height="187" class="alignnone size-full wp-image-6321" /><br />
Não esqueça de definir o banco InfluxDB<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_05.png" alt="" width="859" height="590" class="alignnone size-full wp-image-6323" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_05.png 859w, https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_05-300x206.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/grafana_fastnetmon_05-768x527.png 768w" sizes="auto, (max-width: 859px) 100vw, 859px" /></p>
<p>Você pode pesquisar por mais dashs em: <a href="https://grafana.com/grafana/dashboards/?search=fastnetmon" rel="noopener" target="_blank">https://grafana.com/grafana/dashboards/?search=fastnetmon</a></p>
<p><strong>Fastnetmon</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon.png" alt="" width="1920" height="1480" class="alignnone size-full wp-image-6329" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon.png 1920w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon-300x231.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon-1024x789.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon-768x592.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon-1536x1184.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /><br />
<strong>Fastnetmon PAINEL GERAL</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_PAINEL_GERAL.png" alt="" width="1920" height="984" class="alignnone size-full wp-image-6328" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_PAINEL_GERAL.png 1920w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_PAINEL_GERAL-300x154.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_PAINEL_GERAL-1024x525.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_PAINEL_GERAL-768x394.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_PAINEL_GERAL-1536x787.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></p>
<p><strong>Fastnetmon TOP HOSTS (+100MB)</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_HOSTS_100MB.png" alt="" width="1920" height="1478" class="alignnone size-full wp-image-6331" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_HOSTS_100MB.png 1920w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_HOSTS_100MB-300x231.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_HOSTS_100MB-1024x788.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_HOSTS_100MB-768x591.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_HOSTS_100MB-1536x1182.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></p>
<p><strong>Fastnetmon TOP HOSTS (+300MB)</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_HOSTS_300MB.png" alt="" width="1920" height="984" class="alignnone size-full wp-image-6332" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_HOSTS_300MB.png 1920w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_HOSTS_300MB-300x154.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_HOSTS_300MB-1024x525.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_HOSTS_300MB-768x394.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_HOSTS_300MB-1536x787.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></p>
<p><strong>Fastnetmon TOP NETWORKS</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_NETWORKS.png" alt="" width="1920" height="984" class="alignnone size-full wp-image-6333" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_NETWORKS.png 1920w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_NETWORKS-300x154.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_NETWORKS-1024x525.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_NETWORKS-768x394.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_NETWORKS-1536x787.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></p>
<p><strong>Fastnetmon TOP TRÁFEGO DE SAÍDA</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_TRAFEGO_DE_SAIDA.png" alt="" width="1920" height="984" class="alignnone size-full wp-image-6334" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_TRAFEGO_DE_SAIDA.png 1920w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_TRAFEGO_DE_SAIDA-300x154.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_TRAFEGO_DE_SAIDA-1024x525.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_TRAFEGO_DE_SAIDA-768x394.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TOP_TRAFEGO_DE_SAIDA-1536x787.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></p>
<p><strong>Fastnetmon TRÁFEGO REDE ESPECIFICADA</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TRAFEGO_REDE_ESPECIFICADA.png" alt="" width="1920" height="912" class="alignnone size-full wp-image-6335" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TRAFEGO_REDE_ESPECIFICADA.png 1920w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TRAFEGO_REDE_ESPECIFICADA-300x143.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TRAFEGO_REDE_ESPECIFICADA-1024x486.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TRAFEGO_REDE_ESPECIFICADA-768x365.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TRAFEGO_REDE_ESPECIFICADA-1536x730.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></p>
<p><strong>Fastnetmon TRÁFEGO POR IP ESPECIFICO</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TRAFEGO_POR_IP_ESPECIFICO.png" alt="" width="1920" height="912" class="alignnone size-full wp-image-6336" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TRAFEGO_POR_IP_ESPECIFICO.png 1920w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TRAFEGO_POR_IP_ESPECIFICO-300x143.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TRAFEGO_POR_IP_ESPECIFICO-1024x486.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TRAFEGO_POR_IP_ESPECIFICO-768x365.png 768w, https://blog.remontti.com.br/wp-content/uploads/2022/02/Fastnetmon_TRAFEGO_POR_IP_ESPECIFICO-1536x730.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></p>
<p>E como ficou o hardware agora?<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_hardware_grafana.png" alt="" width="1340" height="458" class="alignnone size-full wp-image-6338" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_hardware_grafana.png 1340w, https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_hardware_grafana-300x103.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_hardware_grafana-1024x350.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2022/02/fastnetmon_hardware_grafana-768x262.png 768w" sizes="auto, (max-width: 1340px) 100vw, 1340px" /></p>
<p>Gostou? Se sentindo mais seguro agora? É consultor e ganha $ com isso!?</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>Fontes:<br />
<a href="https://fastnetmon.com/install/" rel="noopener" target="_blank">https://fastnetmon.com/install/</a><br />
<a href="https://docs.frrouting.org/en/latest/bgp.html" rel="noopener" target="_blank">https://docs.frrouting.org/en/latest/bgp.html</a><br />
<a href="https://deb.frrouting.org/" rel="noopener" target="_blank">https://deb.frrouting.org/</a><br />
<a href="https://fastnetmon.com/docs/influxdb_integration/" rel="noopener" target="_blank">https://fastnetmon.com/docs/influxdb_integration/</a><br />
<a href="https://grafana.com/docs/grafana/latest/installation/debian/" rel="noopener" target="_blank">https://grafana.com/docs/grafana/latest/installation/debian/</a></p>
<h4>BÔNUS PEGANDO PREFIXO /24 DO IP ATACADO E ANUNCIANDO COM OUTRA COMMUNITY PARA MITIGAR</h4>
<pre class="remontti-code-plain">
#####################
# SCRIPT FASTNETMON
#####################

#!/usr/bin/env bash
  
# Este script receberá os seguintes parâmetros:
#  $1 IP do cliente
#  $2 INCOMING -&gt; Vindo de fora da rede | OUTGOING -&gt; Saindo da sua rede
#  $3 Pacotes por seguncoes
#  $4 Ação (ban ou unban)

# Pegando prefixo 24
ip32=$1
prefixo24=&quot;${ip32%.*}.0/24&quot;

# Defina o ID do Chat ou Grupo (Grupos sempre começam com &quot;-&quot; )
ID_CHAT=&#039;-1000000000000&#039;
 
if [ &quot;$2&quot; = &quot;incoming&quot; ]; then
  TIPO=&quot;Sendo atacado&quot;
else 
  TIPO=&quot;Realizando um ataque&quot;
fi
 
# Desbanindo um IP
if [ &quot;$4&quot; = &quot;unban&quot; ]; then
  /usr/local/bin/telegram -m &quot;$ID_CHAT&quot; &quot;UNBAN IP: &lt;code&gt;$1&lt;/code&gt;&quot; &quot;&lt;code&gt;-&gt;&gt;&lt;/code&gt; Removido da blackhole&quot;
  # Remove IP do anuncio para o FRR
  vtysh --command &quot;configure terminal
  no ip route $1/32 lo
  no ip route $prefixo24 lo
  router bgp 65001
   address-family ipv4 unicast
    no network $1/32
    no network $prefixo24
  &quot;
  # Movemos os logs para pasta ataques pois não queremos mais receber elas.
  mv /var/log/fastnetmon_attacks/$1* /var/log/fastnetmon_attacks/ataques
  exit 0
fi
 
# Banindo um IP
if [ &quot;$4&quot; = &quot;ban&quot; ]; then
  /usr/local/bin/telegram -m &quot;$ID_CHAT&quot; &quot;BAN IP: &lt;code&gt;$1&lt;/code&gt; $TIPO &lt;b&gt;[$3 pps]&lt;/b&gt;&quot; &quot;&lt;code&gt;-&gt;&gt;&lt;/code&gt; Anunciado em blackhole&quot;
  /usr/local/bin/telegram -f &quot;$ID_CHAT&quot; /var/log/fastnetmon_attacks/$1* $1 &quot;Logs do ataque ao IP $1&quot;
  # Anuncia IP ao FRR
  vtysh --command &quot;configure terminal
  ip route $1/32 lo
  ip route $prefixo24 lo
  router bgp 65001
   address-family ipv4 unicast
    network $1/32
    network $prefixo24
  &quot;
    exit 0
fi
 
if [ &quot;$4&quot; == &quot;attack_details&quot; ]; then
  #/usr/local/bin/telegram -m &quot;$ID_CHAT&quot; &quot;BAN&quot; &quot;&lt;code&gt;FastNetMon: IP $1 blocked because $2 attack with power $3 pps&lt;/code&gt;&quot;
  exit 0
fi


#####################
# FRR
#####################


!
frr version 8.5.1
frr defaults traditional
hostname fnm
log syslog informational
no ipv6 forwarding
service integrated-vtysh-config
!
router bgp 65001
 bgp router-id 172.16.1.2
 neighbor 172.16.1.1 remote-as 12345
 neighbor 172.16.1.1 description &quot;BORDA&quot;
 !
 address-family ipv4 unicast
  neighbor 172.16.1.1 route-map MARK_FASTNETMON_IMPORT in
  neighbor 172.16.1.1 route-map MARK_FASTNETMON_EXPORT out
 exit-address-family
exit
!
ip prefix-list FASTNETMON_EXPORT_32 seq 5 permit 200.0.0.0/22 le 32
!
ip prefix-list FASTNETMON_EXPORT_24 seq 5 permit 200.0.0.0/22 le 24
!
route-map MARK_FASTNETMON_IMPORT deny 10
exit
!
route-map MARK_FASTNETMON_EXPORT permit 10
 match ip address prefix-list FASTNETMON_EXPORT_24
 set community 65001:777
exit
! 
route-map MARK_FASTNETMON_EXPORT permit 20
 match ip address prefix-list FASTNETMON_EXPORT_32
 set community 65001:666
exit
!
end
write memory


#####################
# HUAWEI
#####################


#Configurando filtros e sessão BGP
ip route-static 192.0.2.1 255.255.255.255 NULL0 description BLACKHOLE

# Aceitas os prefixos 32 do AS para blackhole
ip ip-prefix  ACCEP_PREFIX_MASK32_FASTNETMON_IPV4 index 10 permit 200.0.0.0 22 greater-equal 32

# Aceitas os prefixos 24 do AS para mitigar
ip ip-prefix  ACCEP_PREFIX_MASK24_FASTNETMON_IPV4 index 10 permit 200.0.0.0 22 greater-equal 24

#Iginora Prefixos do CGNAT/Servidores
ip ip-prefix  IGNORE_PREFIX_FASTNETMON_IPV4 index 10 permit 200.0.1.0 28 greater-equal 28 less-equal 32
ip ip-prefix  IGNORE_PREFIX_FASTNETMON_IPV4 index 20 permit 200.0.2.0 26 greater-equal 26 less-equal 32

# community que o FRR ira enviar
ip community-filter basic COMM_FASTNETMON_BLACKHOLE_32 index 10 permit 65001:666
ip community-filter basic COMM_FASTNETMON_BLACKHOLE_24 index 10 permit 65001:777

# Define comm para usar nos RP das operadoras
ip community-filter basic COMM_BLACKHOLE_32 index 10 permit 65444:666
ip community-filter basic COMM_BLACKHOLE_24 index 10 permit 65444:777

# RP
route-policy FASTNETMON_IMPORT_IPV4 deny node 1000
 if-match ip-prefix IGNORE_PREFIX_FASTNETMON_IPV4

route-policy FASTNETMON_IMPORT_IPV4 permit node 1010
 if-match community-filter COMM_FASTNETMON_BLACKHOLE_32 
 apply local-preference 999
 apply ip-address next-hop 192.0.2.1
 apply community 65444:666
 if-match ip-prefix ACCEP_PREFIX_MASK32_FASTNETMON_IPV4
 
route-policy FASTNETMON_IMPORT_IPV4 permit node 1020
 if-match community-filter COMM_FASTNETMON_BLACKHOLE_24
 apply local-preference 999
 apply ip-address next-hop 192.0.2.1
 apply community 65444:777
 if-match ip-prefix ACCEP_PREFIX_MASK24_FASTNETMON_IPV4
 
route-policy FASTNETMON_IMPORT_IPV4 deny node 9999
route-policy FASTNETMON_EXPORT_IPV4 deny node 9999

# FILTRO OPERADORA

# Envia para community de blackhole da operadora 
route-policy UPSTREAM_OP_BRUXADO71_EXPORT_IPV4 permit node 2070
 if-match community-filter COMM_BLACKHOLE_32
 apply community 71:666

# Envia para community de blackhole de mitigraçação
route-policy UPSTREAM_OP_BRUXADO71_EXPORT_IPV4 permit node 2070
 if-match community-filter COMM_BLACKHOLE_24
 apply community 71:999
</pre>
<p>O post <a href="https://blog.remontti.com.br/6278">Como se proteger de ataques DDoS com FastNetMon de graça &#8211; Integração FRR vs NE-Huawei &#8211; Bonus Gráficos Grafana</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6278/feed</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
		<item>
		<title>Aprenda a instalar um Jump Server com Apache Guacamole um gateway de desktop remoto Web</title>
		<link>https://blog.remontti.com.br/6204</link>
					<comments>https://blog.remontti.com.br/6204#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 17 Jan 2022 20:51:38 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[guacamole]]></category>
		<category><![CDATA[rdp]]></category>
		<category><![CDATA[remote]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[telnet]]></category>
		<category><![CDATA[vlc]]></category>
		<category><![CDATA[vnc]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6204</guid>

					<description><![CDATA[<p>Introdução: vivemos em uma época onde “segurança” deixou de ser uma palavra qualquer, citada e questionada por alguns profissionais a diversos gestores, para se tornar algo realmente em evidência nas mídias. Segurança é um&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6204">Aprenda a instalar um Jump Server com Apache Guacamole um gateway de desktop remoto Web</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/2022/01/guacamole.png" alt="" width="720" height="340" class="alignnone size-full wp-image-6233" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/01/guacamole.png 720w, https://blog.remontti.com.br/wp-content/uploads/2022/01/guacamole-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/01/guacamole-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /><br />
<strong>Introdução:</strong> vivemos em uma época onde “segurança” deixou de ser uma palavra qualquer, citada e questionada por alguns profissionais a diversos gestores, para se tornar algo realmente em evidência nas mídias. Segurança é um quesito importantíssimo para a continuidade de um negócio e muito ampla em diversos aspectos.<br />
Aqui abordaremos um conceito e uma ferramenta que serão muito úteis para uma Organização. Vamos começar com algumas perguntas simples?</p>
<ul>
<li>Você necessita de acessar remotamente ativos dentro da empresa em que trabalha?</li>
<li>Costuma deixar seus ativos acessíveis publicamente só para conectar de qualquer lugar?</li>
<li>Você restringe esse acesso por pessoas e/ou grupos?</li>
<li>Quando alguém com privilégios é demitido. Você tem que ir em diversos sistemas e equipamentos rapidamente, para remover os acessos?</li>
<li>Você sente falta de um local centralizado e único, que contenha a definição de seus sistemas para trabalhar remotamente?</li>
</ul>
<p>Se a resposta para essas perguntas foi um “<strong>SIM</strong>”, então esse artigo pode lhe ajudar a melhorar a forma como você acessa determinados ativos em sua rede.</p>
<p><iframe loading="lazy" src="https://player.vimeo.com/video/116207678?h=34d3bc7d02" width="640" height="428" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe></p>
<p>Primeiramente vamos a um conceito que muitos acham que VPN (Virtual Private Network) é a forma mais segura de acessar uma Intranet e assim prestar suporte remotamente de qualquer lugar. Bem, não queria destruir seu conceito mas; a VPN sem determinados cuidados com o seu sistema pessoal, de nada vai te proteger de um incidente que possa parar sua empresa. Imagine uma situação em que você esteja conectado remotamente via VPN corporativa, acessando um compartilhamento de arquivos da empresa e em algum momento durante o trabalho você adquiriu um bem sucedido ransomware. Esse malware causará grande prejuízo para a empresa e para a sua reputação, mesmo estando usando a tal VPN.  </p>
<p>Outros preferem usar recursos como os Jump Servers. Equipamentos com sistemas, por exemplo Windows, rodando serviços como RDP (Remote Desktop Protocol), ou Anydesk, ou Teamviewer, ou qualquer outro equivalente para permitir o acesso local e a partir dele conectar em outros sistemas dentro da empresa. Nada contra o sistema da Microsoft ou qualquer produto citado mas não me sinto confortável em deixá-los públicos na Internet. Lembrando que não existem sistemas 100% seguros. Em algum momento falhas podem surgir e alguém pode explorá-las. Pense em uma vulnerabilidade <strong>Zero Day</strong>.</p>
<p>Então o que venho sugerir nesse artigo é que juntem as duas soluções <strong>VPN</strong> e <strong>Jump Server</strong> mas de uma maneira, que na minha opinião, seria mais segura que ambas as soluções acima, construídas isoladamente.</p>
<p>Continuem usando a VPN mas também pensando na segurança dos sistemas pessoais de quem utiliza a VPN, para trabalhar remotamente. Não usem VPN PPTP em suas soluções corporativas, é insegura, obsoleta e não funciona bem com CGNAT, em sistemas que não possuem suporte ao ALG (Application Layer Gateway) PPTP.</p>
<p>Ao invés de deixarem públicos seus Jump Servers, mantenha-os com IPs privados RFC1918 e acessíveis somente através da VPN. Assim chegaremos a dois níveis de autenticação pelo menos. Crie um ou mais servidores Jump e crie ACLs nos equipamentos e sistemas que só permitam acesso dos IPs privados dos Jump Servers.</p>
<p>Dessa forma vai conseguir resolver boa parte daquelas perguntas que fiz, mas ainda não é o objetivo principal deste artigo. Esse artigo vai focar na ferramenta Apache Guacamole que é uma aplicação para construirmos um Jump Server mais inteligente e seguro.  </p>
<p>Mas o que seria o Apache Guacamole? Ele é um clientless remote desktop gateway, ou seja, você não precisa de um programa cliente instalado no seu desktop de trabalho ou pessoal, para acessar sistemas que usem os protocolos: RDP, VNC e SSH. Isso é feito através de um browser apenas e usando HTML5.</p>
<p>O Guacamole é uma aplicação Java que roda embaixo do Apache Tomcat. É dividido em duas partes, o server e os clients que fazem a conexão propriamente dita usando RDP, VNC ou SSH, de acordo com o tipo de acesso. Possui suporte a diversas bases de dados como MySQL, MariaDB, PostgreSQL e também LDAP.</p>
<p>Sua arquitetura funciona assim:<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/01/guacamole_arquitetura.png" alt="" width="300" height="529" class="alignnone size-full wp-image-6248" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/01/guacamole_arquitetura.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/01/guacamole_arquitetura-170x300.png 170w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<h3>Requisitos para o nosso artigo</h3>
<p> Debian 11 (Bullseye) 64 bits. <a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank">Instalação mínima</a>. Sistema deve restringir o acesso apenas via VPN e/ou Rede de Gerência da empresa (utilize regras de firewall iptables ou nftables para essa tarefa).<br />
&#8211; VM com 2 cores ou mais. Dependerá da quantidade de acessos simultâneos.<br />
&#8211; 2Gb de ram. Sugiro 4Gb.<br />
&#8211; 10G de disco. Dependerá do crescimento da base de dados, se for local.<br />
&#8211; Interface de rede com IP privado e liberado para acesso aos sistemas remotos.</p>
<h3>:: Instalação do MariaDB 10.5 ::</h3>
<pre class="remontti-code"># apt install mariadb-server mariadb-client </pre>
<p>Por padrão o pacote MariaDB 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.<br />
Assim, você pode logar diretamente sem fornecer a senha root do MariaDB, para aumentar a seguraça vamos definir uma senha para o usuário root do MariaDB, 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;;</pre>
<p>Ainda logado no MariaDB vamos criar nossa base de dados para o Guacamole, não esqueça de alterar <strong>S3NHA_GUACAMOL3_US3R</strong> por sua senha.</p>
<pre class="remontti-code">CREATE DATABASE guacamole;
CREATE USER &#039;guacamole&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;S3NHA_GUACAMOL3_US3R&#039;;
GRANT ALL PRIVILEGES ON guacamole.* TO &#039;guacamole&#039;@&#039;localhost&#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>:: Instalação Java JDK ::</h3>
<pre class="remontti-code"># apt install openjdk-11-jdk libmariadb-java</pre>
<p>Precisaremos configurar a variável de ambiente JAVA_HOME. No final do arquivo <strong>/etc/environment</strong> adicione o seguinte parâmetro <em>JAVA_HOME=&#8221;/usr/lib/jvm/java-11-openjdk-amd64&#8243;</em> </p>
<pre class="remontti-code">echo &#039;JAVA_HOME=&quot;/usr/lib/jvm/java-11-openjdk-amd64&quot;&#039; &gt;&gt;  /etc/environment</pre>
<p>Em seguida carregamos o /etc/environment:</p>
<pre class="remontti-code"># source /etc/environment</pre>
<h3>:: Instalação Tomcat::</h3>
<pre class="remontti-code"># apt install tomcat9 tomcat9-admin tomcat9-docs tomcat9-examples tomcat9-user</pre>
<p>Feito isso vamos criar um usuário de acesso ao Tomcat Web Application Manager. Vamos editar o arquivo <strong>/etc/tomcat9/tomcat-users.xml</strong> e no final antes de <strong></tomcat-users></strong> adicionar adicionar as 2 linhas, não esqueça de alterar <strong>S3NHA_FORT3</strong>:</p>
<pre class="remontti-code"># vim /etc/tomcat9/tomcat-users.xml</pre>
<pre class="remontti-code-plain">  &lt;role rolename=&quot;manager-gui&quot;/&gt;
  &lt;user username=&quot;admin&quot; password=&quot;S3NHA_FORT3&quot; roles=&quot;manager-gui&quot;/&gt;
</pre>
<p>Arquivo /etc/tomcat9/tomcat-users.xml sem os comentários ficará:</p>
<pre class="remontti-code">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;tomcat-users xmlns=&quot;http://tomcat.apache.org/xml&quot;
              xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
              xsi:schemaLocation=&quot;http://tomcat.apache.org/xml tomcat-users.xsd&quot;
              version=&quot;1.0&quot;&gt;

  &lt;role rolename=&quot;manager-gui&quot;/&gt;
  &lt;user username=&quot;admin&quot; password=&quot;S3NHA_FORT3&quot; roles=&quot;manager-gui&quot;/&gt;
&lt;/tomcat-users&gt;</pre>
<h3>:: Instalação Guacamole::</h3>
<pre class="remontti-code"># apt install guacd</pre>
<p>Os pacotes não criam os diretórios de configuração do Guacamole, então faremos conforme abaixo. Neles ficarão as extensions e o connector e que juntos integrarão o Java às bases de dados para funcionar a nossa autenticação e administração do Jump Server.</p>
<pre class="remontti-code-plain">/etc/guacamole/
├── extensions
└── lib</pre>
<pre class="remontti-code"># mkdir -p /etc/guacamole/lib /etc/guacamole/extensions</pre>
<p>Crie um link simbólico do connector java do MariaDB no Guacamole:</p>
<pre class="remontti-code"># ln -s /usr/share/java/mariadb-java-client.jar /etc/guacamole/lib/</pre>
<p>Vamos baixar e descompactar o pacote de extensão, para criação das tabelas e autenticação na base de dados. Detalhe que a versão tem que ser a mesma do pacote guacd que instalamos acima. Nesse caso é a versão 1.3.0 que vem no repositório do Debian 11.</p>
<pre class="remontti-code"># apt install wget
# cd /tmp
# wget -c https://archive.apache.org/dist/guacamole/1.3.0/binary/guacamole-auth-jdbc-1.3.0.tar.gz
# tar -xzvf guacamole-auth-jdbc-1.3.0.tar.gz</pre>
<p>Mova a extensão de autenticação via MySQL, para o lugar correto:</p>
<pre class="remontti-code"># mv /tmp/guacamole-auth-jdbc-1.3.0/mysql/guacamole-auth-jdbc-mysql-1.3.0.jar /etc/guacamole/extensions/</pre>
<p>Populando a base de dados <strong>guacamole</strong> com as tabelas e algumas informações iniciais:</p>
<pre class="remontti-code"># cat /tmp/guacamole-auth-jdbc-1.3.0/mysql/schema/*.sql | mysql -u root -p guacamole</pre>
<p>Informe a senha do usuário MariaDB root no nosso ex.: &#8220;ALTERE_3ST4_SENHA&#8221;</p>
<p>Se desejar certificar que as tabelas foram criadas acesse o terminal do MariaDB com o usuário e senha do guacamole</p>
<pre class="remontti-code"># mariadb -u guacamole -p</pre>
<p>Enter password: <em>S3NHA_GUACAMOL3_US3R</em><br />
Use o comando <strong>show tables;</strong> para ver as tabelas.</p>
<pre class="remontti-code-plain">Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.5.12-MariaDB-0+deb11u1 Debian 11

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 [guacamole]&gt; show tables; 
+---------------------------------------+
| Tables_in_guacamole                   |
+---------------------------------------+
| guacamole_connection                  |
| guacamole_connection_attribute        |
| guacamole_connection_group            |
| guacamole_connection_group_attribute  |
| guacamole_connection_group_permission |
| guacamole_connection_history          |
| guacamole_connection_parameter        |
| guacamole_connection_permission       |
| guacamole_entity                      |
| guacamole_sharing_profile             |
| guacamole_sharing_profile_attribute   |
| guacamole_sharing_profile_parameter   |
| guacamole_sharing_profile_permission  |
| guacamole_system_permission           |
| guacamole_user                        |
| guacamole_user_attribute              |
| guacamole_user_group                  |
| guacamole_user_group_attribute        |
| guacamole_user_group_member           |
| guacamole_user_group_permission       |
| guacamole_user_history                |
| guacamole_user_password_history       |
| guacamole_user_permission             |
+---------------------------------------+
23 rows in set (0.000 sec)

MariaDB [guacamole]&gt; exit;
Bye</pre>
<p>Criando o arquivo /etc/guacamole/guacamole.properties com as configurações de porta de acesso e os dados de conexão ao MariaDB.</p>
<pre class="remontti-code"># vim /etc/guacamole/guacamole.properties</pre>
<p>Não esqueça de alterar <em>S3NHA_GUACAMOL3_US3R</em></p>
<pre class="remontti-code"># Hostname and port of guacamole proxy
guacd-hostname: localhost
guacd-port:    4822

# MySQL properties
mysql-driver: mariadb
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole
mysql-username: guacamole
mysql-password: S3NHA_GUACAMOL3_US3R</pre>
<p><em>OBS: Embora MariaDB e MySQL tenham algumas coisas em comum (MariaDB é um fork do Mysql), mas nesse caso eles são diferentes aqui. Em muitos artigos espalhados pela Internet se fala no pacote libmysql-java mas este não existe mais no Debian 11. No lugar dele usamos o libmariadb-java.</em></p>
<h5>Baixando e habilitando o Guacamole Web Application</h5>
<pre class="remontti-code"># ln -s /etc/guacamole/ /var/lib/tomcat9/.quacamole
# wget https://downloads.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war -O /var/lib/tomcat9/webapps/guacamole.war
# systemctl restart tomcat9 guacd</pre>
<p>Se parássemos por aqui, já teríamos o Guacamole rodando e funcional em HTTP, mas vamos adicionar uma camada de criptografia nisso. Vamos habilitar o SSL no Apache Tomcat:</p>
<p>Vamos criar uma chave e uma senha com o próximo comando. Só seguir as instruções e preencher as perguntas:</p>
<pre class="remontti-code"># keytool -genkey -alias tomcat -keyalg RSA</pre>
<pre class="remontti-code-plain">Informe a senha da área de armazenamento de chaves:  S3NHA_USADA_K3YTOOL
Informe novamente a nova senha: S3NHA_USADA_K3YTOOL
Qual é o seu nome e o seu sobrenome?
  [Unknown]:  Marcelo Gondim
Qual é o nome da sua unidade organizacional?
  [Unknown]:  AMA
Qual é o nome da sua empresa?
  [Unknown]:  LinuxInfo
Qual é o nome da sua Cidade ou Localidade?
  [Unknown]:  Araruama
Qual é o nome do seu Estado ou Município?
  [Unknown]:  RJ
Quais são as duas letras do código do país desta unidade?
  [Unknown]:  BR
CN=Marcelo Gondim, OU=AMA, O=LinuxInfo, L=Araruama, ST=RJ, C=BR Está correto?
  [não]:  sim</pre>
<p>Concluído precisaremos movê-la para o local certo e com as devidas permissões:</p>
<pre class="remontti-code"># mv /root/.keystore /var/lib/tomcat9/
# chown tomcat. /var/lib/tomcat9/.keystore
# chmod 640 /var/lib/tomcat9/.keystore</pre>
<p>Em /etc/tomcat9/server.xml:</p>
<pre class="remontti-code"># vim /etc/tomcat9/server.xml</pre>
<p>Troque isso:</p>
<pre class="remontti-code">    &lt;Connector port=&quot;8080&quot; protocol=&quot;HTTP/1.1&quot;
               connectionTimeout=&quot;20000&quot;
               redirectPort=&quot;8443&quot; /&gt;
</pre>
<p>Por: <em>(Não esqueça de alterar S3NHA_USADA_K3YTOOL)</em></p>
<pre class="remontti-code">
    &lt;Connector port=&quot;8080&quot; protocol=&quot;HTTP/1.1&quot;
               connectionTimeout=&quot;20000&quot;
               redirectPort=&quot;8443&quot;
               maxThreads=&quot;200&quot;
               scheme=&quot;https&quot;
               secure=&quot;true&quot;
               SSLEnabled=&quot;true&quot;
               keystoreFile=&quot;/var/lib/tomcat9/.keystore&quot;
               keystorePass=&quot;S3NHA_USADA_K3YTOOL&quot;
               clientAuth=&quot;false&quot;
               sslProtocol=&quot;TLS&quot; /&gt;
</pre>
<pre class="remontti-code"># systemctl restart tomcat9 guacd</pre>
<p>Para acessarmos nosso Jump Server:<br />
<strong>https://[servidor]:8080/guacamole/</strong></p>
<p>O usuário e senha são <strong>guacadmin</strong>. Crie um novo usuário com permissões de administrador e em seguida remova este usuário padrão.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole.png" alt="" width="924" height="441" class="alignnone size-full wp-image-6214" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole.png 924w, https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole-300x143.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole-768x367.png 768w" sizes="auto, (max-width: 924px) 100vw, 924px" /></p>
<p><strong>Autor:</strong> Marcelo Gondim <gondim at linuxinfo.com.br><br />
Brasil Peering Fórum: <a href="https://wiki.brasilpeeringforum.org/w/Usuário:Gondim" rel="noopener" target="_blank">https://wiki.brasilpeeringforum.org/w/Usuário:Gondim</a><br />
Linkedin: <a href="https://www.linkedin.com/in/marcelo-gondim-sysadmin/" rel="noopener" target="_blank">https://www.linkedin.com/in/marcelo-gondim-sysadmin/</a><br />
Telegram: <a href="https://telegram.me/Marcelo_Gondim" rel="noopener" target="_blank">@Marcelo_Gondim</a></p>
<h3> Dicas extra do Remontti</h3>
<p>Para complementar, tem algumas coisas que eu acho que podem serem aplicadas ao nosso Guacamole apresentado pelo nosso parceiro <a href="https://telegram.me/Marcelo_Gondim" rel="noopener" target="_blank">Marcelo Gondim</a></p>
<p>&#8211; Nginx fazendo Proxy reverso para acessar a aplicação com um subdomínio.<br />
&#8211; Utilização do Let&#8217;s Encrypt para um certificado válido.<br />
&#8211; Port knocking com Nftables, para não deixar totalmente exposto.</p>
<h4>Proxy Nginx</h4>
<p>Como a aplicação será acessada apenas pelo Nginx podemos deixar o tomcat9 ouvindo apenas em localhost, se você segui o procedimento anterio qual criou o certificado privado agora ele não é mais necessarios vamos desfazer para o que era antes porem vamos colocar  o connector ouvindo apenas 127.0.0.1.</p>
<pre class="remontti-code"># vim /etc/tomcat9/server.xml</pre>
<p>Altere para:</p>
<pre class="remontti-code">    &lt;Connector address=&quot;127.0.0.1&quot; port=&quot;8080&quot; protocol=&quot;HTTP/1.1&quot;
               connectionTimeout=&quot;20000&quot;
               redirectPort=&quot;8443&quot; /&gt;
</pre>
<p>Reinicie o tomcat para que o mesmo rode apenas em localhost, assim não será mais possivel acesso pelo seu IP:8080</p>
<pre class="remontti-code"># systemctl restart tomcat9</pre>
<p>Instalaremos o nginx e vamos remover a assinatura do nginx onde ele exibe a versão do mesmo.</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>Irei alterar direto no arquivo default do nginx as configurações, se achar melhor você pode criar um novo arquivo.</p>
<pre class="remontti-code"># mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original
# vim /etc/nginx/sites-available/default</pre>
<p>Adcione: <em>(Altere server_name para seu subdomínio)</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;
 
    server_name guacamole.remontti.com.br;

    location / {
        proxy_pass http://127.0.0.1:8080/guacamole/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        proxy_cookie_path /guacamole/ /;
    }
}</pre>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<h3>Let&#8217;s Encrypt</h3>
<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>
<pre class="remontti-code">Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices)
 (Enter &#039;c&#039; to cancel): noc@remontti.com.br

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
Account registered.

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: guacamole.remontti.com.br
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter &#039;c&#039; to cancel): 1
Requesting a certificate for guacamole.remontti.com.br
Performing the following challenges:
http-01 challenge for guacamole.remontti.com.br
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/default
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/default

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled
https://guacamole.remontti.com.br
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/guacamole.remontti.com.br/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/guacamole.remontti.com.br/privkey.pem
   Your certificate will expire on 2022-04-17. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again with the &quot;certonly&quot; option. 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>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>Exemplo:</p>
<pre class="remontti-code"># echo &#039;00 00   1 * *   root    certbot -q renew&#039; &gt;&gt; /etc/crontab
# systemctl restart cron</pre>
<h4>Port knocking</h4>
<p>Nftables já vem por padrão no Debian 11 então basta habilitá-lo. Temos um tutorial do se <a href="https://blog.remontti.com.br/5390" rel="noopener" target="_blank">Port knocking</a> </p>
<pre class="remontti-code"># systemctl enable nftables</pre>
<p>O arquivo de configuração padrão do nftables fica em /etc/nftables.conf, então vamos edita-lo:</p>
<pre class="remontti-code"># vim /etc/nftables.conf</pre>
<p>Neste exemplo vou estar liberando as portas 80 e 443 após “batermos” nas portas 52341, 28001, 60541, 30951, e por 2h (7200s) após bater nas portas teremos acesso as mesmas, caso fique mais que tempo definido será necessário bater novamente.</p>
<pre class="remontti-code">#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0;
    }
    chain forward {
        type filter hook forward priority 0;
    }
    chain output {
        type filter hook output priority 0;
    }
}

define protege_portas = {80,443}

table inet portknock {
   set clientes_ipv4 {
      type ipv4_addr
      flags timeout
   }

   set clientes_ipv6 {
      type ipv6_addr
      flags timeout
   }

   set toctoc_aberta_ipv4 {
      type ipv4_addr . inet_service
      flags timeout
   }

   set toctoc_aberta_ipv6 {
      type ipv6_addr . inet_service
      flags timeout
   }

   chain input {
      type filter hook input priority -10; policy accept;

      iifname &quot;lo&quot; return

      tcp dport 52341 add @toctoc_aberta_ipv4 {ip  saddr . 28001 timeout 60s}
      tcp dport 52341 add @toctoc_aberta_ipv6 {ip6 saddr . 28001 timeout 60s}
      tcp dport 28001 ip  saddr . tcp dport @toctoc_aberta_ipv4 add @toctoc_aberta_ipv4 {ip  saddr . 60541 timeout 60s}
      tcp dport 28001 ip6 saddr . tcp dport @toctoc_aberta_ipv6 add @toctoc_aberta_ipv6 {ip6 saddr . 60541 timeout 60s}
      tcp dport 60541 ip  saddr . tcp dport @toctoc_aberta_ipv4 add @toctoc_aberta_ipv4 {ip  saddr . 30951 timeout 60s}
      tcp dport 60541 ip6 saddr . tcp dport @toctoc_aberta_ipv6 add @toctoc_aberta_ipv6 {ip6 saddr . 30951 timeout 60s}
      tcp dport 30951 ip  saddr . tcp dport @toctoc_aberta_ipv4 add @clientes_ipv4 {ip  saddr timeout 7200s} log prefix &quot;Portknock bem-sucedido: &quot;
      tcp dport 30951 ip6 saddr . tcp dport @toctoc_aberta_ipv6 add @clientes_ipv6 {ip6 saddr timeout 7200s} log prefix &quot;Portknock bem-sucedido: &quot;

      tcp dport { $protege_portas } ip  saddr @clientes_ipv4 counter accept
      tcp dport { $protege_portas } ip6 saddr @clientes_ipv6 counter accept
      tcp dport { $protege_portas } ct state established,related counter accept
      tcp dport { $protege_portas } counter reject with tcp reset
   }
}</pre>
<p>Reinicie o nftables</p>
<pre class="remontti-code"># systemctl restart nftables</pre>
<p>Neste tutorial de <a href="https://blog.remontti.com.br/5390" rel="noopener" target="_blank">Port knocking</a> tenho um modelinho web qual você pode usar, existe alguns clientes para celular <strong><a href="https://play.google.com/store/apps/details?id=com.xargsgrep.portknocker&#038;hl=pt_BR&#038;gl=US" rel="noopener" target="_blank">Android</a></strong>, <strong><a href="https://apps.apple.com/us/app/knockond/id333206277" rel="noopener" target="_blank">iPhone</a></strong> e <strong><a href="http://gregsowell.com/?p=2020" rel="noopener" target="_blank">Windows</a></strong>.</p>
<p>Agora deixamos mais seguro nosso servidor.</p>
<h5>Exemplo de como adicionar um Windows Server ao seu guacamole</h5>
<p>No canto superior direito, clique no nome de <strong>usuário</strong> e em seguida <strong>Settings</strong>.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole_add_windows.png" alt="" width="376" height="234" class="alignnone size-full wp-image-6223" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole_add_windows.png 376w, https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole_add_windows-300x187.png 300w" sizes="auto, (max-width: 376px) 100vw, 376px" /><br />
Click em Connections em seguida New Connection<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole_add_windows_1.png" alt="" width="675" height="210" class="alignnone size-full wp-image-6224" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole_add_windows_1.png 675w, https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole_add_windows_1-300x93.png 300w" sizes="auto, (max-width: 675px) 100vw, 675px" /></p>
<p><strong>EDIT CONNECTION</strong><br />
<strong>Name:</strong> Insira um nome de identificação para a conexão<br />
<strong>Location:</strong> Use o ROOT padrão se não houver requisitos específicos<br />
<strong>Protocol:</strong> RDP</p>
<p><strong>PARAMETERS</strong><br />
<em>Network</em><br />
<strong>Hostname:</strong> IP o Domínio do seu Servidor<br />
<strong>Port:</strong> Podemos deixá-lo vazio se usar a porta padrão 3389, ou informe a porta alterada do RDP<br />
<em>Authentication</em><br />
<strong>Username:</strong> Usuário<br />
<strong>Password:</strong> Senha<br />
<strong>Domain:</strong> Deixe em branco ou use o nome de domínio local do dispositivo Windows<br />
<strong>Ignore server certificate:</strong> Marque esta opção se o certificado for autoassinado</p>
<p>Role para baixo até o final da página e clique no botão <strong>Save</strong>.</p>
<p>A interface é bem intuitiva, acredito que não terá dificuldades, você pode criar grupos e usuarios e restrigir o acesso apenas a alguns servidores. </p>
<p>Espero que tenha gostado! E mais uma vez deixo meu agradecimento ao parceio <strong>Marcelo Gondim</strong>. Para trocar uma ideia chega lá no telegram <a href="https://telegram.me/remontticombr" rel="noopener" target="_blank">@remontticombr</a></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>Referências: </strong><br />
&#8211; <a href="https://wiki.debian.org/Guacamole" rel="noopener" target="_blank">https://wiki.debian.org/Guacamole</a><br />
&#8211; <a href="https://computingforgeeks.com/install-and-use-guacamole-remote-desktop-on-debian/" rel="noopener" target="_blank">https://computingforgeeks.com/install-and-use-guacamole-remote-desktop-on-debian/</a><br />
&#8211; <a href="https://wiki.brasilpeeringforum.org/w/Configurando_um_gateway_de_acesso_remoto_com_Guacamole" rel="noopener" target="_blank">https://wiki.brasilpeeringforum.org/w/Configurando_um_gateway_de_acesso_remoto_com_Guacamole</a><br />
&#8211; <a href="https://receitasdecodigo.com.br/web/configurando-ssl-no-tomcat-8" rel="noopener" target="_blank">https://receitasdecodigo.com.br/web/configurando-ssl-no-tomcat-8</a></p>
<p>O post <a href="https://blog.remontti.com.br/6204">Aprenda a instalar um Jump Server com Apache Guacamole um gateway de desktop remoto Web</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6204/feed</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>Instalação FreeRadius no Debian 11 Bullseye (Extra sqlippool)</title>
		<link>https://blog.remontti.com.br/6129</link>
					<comments>https://blog.remontti.com.br/6129#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 26 Nov 2021 20:11:30 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[freeradius]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6129</guid>

					<description><![CDATA[<p>Esse tutorial é ideal para provedores que desejam criar seu próprio sistema de autenticação com freeradius, fazendo autenticação do tipo PPPoE, hotspot, Wireless (PSK/EAP) entre outras. Neste tutorial iremos instalar e configurar o FreeRadius&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6129">Instalação FreeRadius no Debian 11 Bullseye (Extra sqlippool)</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/freeradius-3-debian11.png" alt="" width="900" height="428" class="alignnone size-full wp-image-6136" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/freeradius-3-debian11.png 900w, https://blog.remontti.com.br/wp-content/uploads/2021/11/freeradius-3-debian11-300x143.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/freeradius-3-debian11-768x365.png 768w" sizes="auto, (max-width: 900px) 100vw, 900px" /><br />
Esse tutorial é ideal para provedores que desejam criar seu próprio sistema de autenticação com freeradius, fazendo autenticação do tipo PPPoE, hotspot, Wireless (PSK/EAP)  entre outras.</p>
<p>Neste tutorial iremos instalar e configurar o FreeRadius 3.0.x. </p>
<p><strong>REQUISITOS</strong><br />
1 – <a href="https://blog.remontti.com.br/5792" rel="noopener noreferrer" target="_blank">Debian 11 Bullseye &#8211; Instalação limpa</a><br />
2 – <a href="https://blog.remontti.com.br/5893" rel="noopener noreferrer" target="_blank">WEB Apache + PHP + MariaDB + phpMyAdmin “LAMP”</a> (Opcional)</p>
<p><strong>Instalação do FreeRadius 3.0.`>21`</strong><br />
Tenha primeiramente o MariaDB instalado <a href="https://blog.remontti.com.br/5893" rel="noopener" target="_blank">(Tutorial LAMP)</a>, então crie o banco de dados e usuário quais iremos utilizar para a integração com o Freeradius.</p>
<p>Abra o terminal de comando do MariaDB e crie a base e o usuario chamados de radius e defina a senha para este usuário.</p>
<pre class="remontti-code"># mariadb -u root -p</pre>
<p>Altere <strong>SENHA_USER_RADIUS</strong>. Você pode gerar uma senha forte e segura em <a href="https://senhasegura.remontti.com.br/" rel="noopener noreferrer" target="_blank">https://senhasegura.remontti.com.br</a></p>
<pre class="remontti-code">CREATE DATABASE radius;
GRANT ALL PRIVILEGES ON radius.* TO &#039;radius&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SENHA_USER_RADIUS&#039;;
FLUSH PRIVILEGES;
quit;</pre>
<p>Instale os pacotes do <strong>freeradius</strong></p>
<pre class="remontti-code"># apt install freeradius freeradius-mysql freeradius-utils</pre>
<p>Com o o banco de dados radius criado iremos importar as tabelas padrões do freeradius:</p>
<pre class="remontti-code"># mariadb -u radius -p radius &lt; /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql
# mariadb -u radius -p radius &lt; /etc/freeradius/3.0/mods-config/sql/ippool/mysql/schema.sql</pre>
<p>Após comando será solicitado a senha do usuario radius (SENHA_USER_RADIUS).</p>
<p>Caso deseje logs mais detalhados (recomendo) edite o arquivo /etc/freeradius/3.0/radiusd.conf, mas antes faça um backup do mesmo.</p>
<pre class="remontti-code"># cp /etc/freeradius/3.0/radiusd.conf /etc/freeradius/3.0/radiusd.conf.orig
# vim /etc/freeradius/3.0/radiusd.conf</pre>
<p>Localize as variáveis e altere para yes  </p>
<pre class="remontti-code">[...]
log {
    [...]
        stripped_names = yes
        auth = yes
        auth_badpass = yes
        auth_goodpass = yes
    [...]
}
[...]</pre>
<p>Ajustaremos o <a href="https://wiki.freeradius.org/guide/SQL-HOWTO-for-freeradius-3.x-on-Debian-Ubuntu" rel="noopener noreferrer" target="_blank">mod SQL</a> para trabalhar com conexão do tipo mysql, e informamos os dados para conexão com o banco de dados. Arquivo /etc/freeradius/3.0/mods-available/sql.orig</p>
<pre class="remontti-code"># cp /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-available/sql.orig</pre>
<p>Usarei o comando <strong>sed</strong> para facilitar sua vida <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;" /> mas preste atenção nos comandos, se desejar pode editar o arquivo manualmente e alterar as entradas.</p>
<pre class="remontti-code"># sed -i &#039;s/driver = &quot;rlm_sql_null&quot;/driver = &quot;rlm_sql_mysql&quot;/&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;s/dialect = &quot;sqlite&quot;/dialect = &quot;mysql&quot;/&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;/server = &quot;localhost&quot;/s/^#//g&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;/port = 3306/s/^#//g&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;/login = &quot;radius&quot;/s/^#//g&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;/password = &quot;radpass&quot;/s/^#//g&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;/read_clients = yes/s/^#//g&#039; /etc/freeradius/3.0/mods-available/sql</pre>
<p>No próximo comando altere <strong>SENHA_USER_RADIUS</strong> para a senha de conexão do usuário radius.</p>
<pre class="remontti-code"># sed -i &#039;s/radpass/SENHA_USER_RADIUS/&#039; /etc/freeradius/3.0/mods-available/sql</pre>
<p>Habilite o mod:</p>
<pre class="remontti-code"># ln -s /etc/freeradius/3.0/mods-available/sql /etc/freeradius/3.0/mods-enabled/sql</pre>
<p>Desativando o TLS do Mysql</p>
<pre class="remontti-code"># sed -i &#039;84,102 {s/^/##/}&#039; /etc/freeradius/3.0/mods-available/sql
# sed -i &#039;s/disable_tlsv1_1 = yes/disable_tlsv1_1 = no/&#039; /etc/freeradius/3.0/mods-available/eap 
# sed -i &#039;s/disable_tlsv1 = yes/disable_tlsv1 = no/&#039; /etc/freeradius/3.0/mods-available/eap
# sed -i &#039;s/tls_min_version = &quot;1.2&quot;/tls_min_version = &quot;1.0&quot;/&#039; /etc/freeradius/3.0/mods-available/eap</pre>
<p>Agora no arquivo /etc/freeradius/3.0/sites-enabled/default vamos comentar alguns componentes que não nos interessa (Se você entrar no arquivo e editar manualmente ele está todo comentado, auto explicativo.) e incluir alguns componentes como o SQL.</p>
<pre class="remontti-code"># cp /etc/freeradius/3.0/sites-available/default  /etc/freeradius/3.0/sites-available/default.org</pre>
<pre class="remontti-code"># sed -i &#039;/digest/s/^/#/g&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/suffix/s/^/#/g&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/files/s/^/#/g&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/ldap/s/^/#/g&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/exec/s/^/#/g&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/detail/s/^/#/g&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/unix/s/^/#/g&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;/attr_filter.accounting_response/s/^/#/g&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;s/-sql/sql/&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;689 s/# *//&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;854,874 {s/^/##/}&#039; /etc/freeradius/3.0/sites-available/default</pre>
<p>Habilitando o mod <strong> <a href="http://sqlippool" rel="noopener noreferrer" target="_blank">sqlippool</a></strong><br />
Como o mod sqlippool você poderá ter sua pool de IPs direto no banco de dados.</p>
<pre class="remontti-code"># ln -s /etc/freeradius/3.0/mods-available/sqlippool /etc/freeradius/3.0/mods-enabled/sqlippool</pre>
<p>Vou alterar (Descomentando e comentado) a chave pool_key = "<strong>%{NAS-Port}</strong>" por "<strong>%{Calling-Station-Id}</strong>", desta forma a chave será o MAC, e "allow_duplicates = no" para não termos duplicidades de IPs. Mais adiante iremos também ajustar o allocate_clear.</p>
<pre class="remontti-code"># sed -i &#039;74 {s/^/#/}&#039; /etc/freeradius/3.0/mods-available/sqlippool
# sed -i &#039;75 s/# *//&#039; /etc/freeradius/3.0/mods-available/sqlippool
# sed -i &#039;67 s/# *//&#039; /etc/freeradius/3.0/mods-available/sqlippool</pre>
<p>Precisamos adicionar o mod sqlippool no nosso arquivo default, você acrescentará sqlippool em <strong>accounting</strong> {...} e <strong>post-auth</strong> {...} logo abaixo de <strong>sql</strong>: </p>
<pre class="remontti-code"># sed -i &#039;642i\    sqlippool&#039; /etc/freeradius/3.0/sites-available/default
# sed -i &#039;734i\    sqlippool&#039; /etc/freeradius/3.0/sites-available/default</pre>
<p>Verifique com o comando abaixo se a saída do seu arquivo ficou assim:</p>
<pre class="remontti-code"># cat /etc/freeradius/3.0/sites-enabled/default |grep -v &quot;#&quot; |awk &#039;NF&gt;0&#039;</pre>
<pre class="remontti-code-plain">server default {
listen {
        type = auth
        ipaddr = *
        port = 0
        limit {
              max_connections = 16
              lifetime = 0
              idle_timeout = 30
        }
}
listen {
        ipaddr = *
        port = 0
        type = acct
        limit {
        }
}
listen {
        type = auth
        port = 0
        limit {
              max_connections = 16
              lifetime = 0
              idle_timeout = 30
        }
}
listen {
        ipv6addr = ::
        port = 0
        type = acct
        limit {
        }
}
authorize {
        filter_username
        preprocess
        chap
        mschap
        eap {
                ok = return
        }
        sql
        expiration
        logintime
        pap
}
authenticate {
        Auth-Type PAP {
                pap
        }
        Auth-Type CHAP {
                chap
        }
        Auth-Type MS-CHAP {
                mschap
        }
        mschap
        eap
}
preacct {
        preprocess
        acct_unique
}
accounting {
    sqlippool
        sql
}
session {
        sql
}
post-auth {
        if (session-state:User-Name &amp;&amp; reply:User-Name &amp;&amp; request:User-Name &amp;&amp; (reply:User-Name == request:User-Name)) {
                update reply {
                        &amp;User-Name !* ANY
                }
        }
        update {
                &amp;reply: += &amp;session-state:
        }
    sqlippool
        sql
        remove_reply_message_if_eap
}
pre-proxy {
}
post-proxy {
        eap
}
}</pre>
<p>Faremos os ajustes no arquivo <strong>inner-tunnel</strong></p>
<pre class="remontti-code"># cp /etc/freeradius/3.0/sites-available/inner-tunnel /etc/freeradius/3.0/sites-available/inner-tunnel.org</pre>
<pre class="remontti-code"># sed -i &#039;/suffix/s/^/#/g&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;/files/s/^/#/g&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;/-ldap/s/^/#/g&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;s/-sql/sql/&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;s/radutmp/#radutmp/&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;266 s/# *//&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;336,361 {s/^/##/}&#039; /etc/freeradius/3.0/sites-available/inner-tunnel
# sed -i &#039;370,381 {s/^/##/}&#039; /etc/freeradius/3.0/sites-available/inner-tunnel</pre>
<p>Verifique com o comando abaixo se a saída do seu arquivo ficou assim:</p>
<pre class="remontti-code"># cat /etc/freeradius/3.0/sites-enabled/inner-tunnel |grep -v &quot;#&quot; |awk &#039;NF&gt;0&#039;</pre>
<pre class="remontti-code-plain">server inner-tunnel {
listen {
       ipaddr = 127.0.0.1
       port = 18120
       type = auth
}
authorize {
        filter_username
        chap
        mschap
        update control {
                &amp;Proxy-To-Realm := LOCAL
        }
        eap {
                ok = return
        }
        sql
        expiration
        logintime
        pap
}
authenticate {
        Auth-Type PAP {
                pap
        }
        Auth-Type CHAP {
                chap
        }
        Auth-Type MS-CHAP {
                mschap
        }
        mschap
        eap
}
session {
        sql
}
post-auth {
        sql
}
pre-proxy {
}
post-proxy {
        eap
}</pre>
<p>Uma alteração que acho válida é para que para cada alocação de <strong>IP</strong> ela seja <strong>randômica</strong>, isso pode solucionar alguns problemas como o balanceamento dos prefixo no seu BGP, ou daqueles clientes que jogam online, fazem download e até mesmo que estão sofrendo algum ataque. Assim ao reiniciar seu equipamento o mesmo irá receber um novo endereço IP. Para que funcione desta forma iremos apenas comentar algumas linhas e descomentar outras, pois em /etc/freeradius/3.0/mods-config/sql/ippool/mysql/queries.conf variável <strong>allocate_find</strong> já vem com o modelo pronto <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>Comentar:</p>
<pre class="remontti-code"># sed -i &#039;41,53 {s/^/##/}&#039; /etc/freeradius/3.0/mods-config/sql/ippool/mysql/queries.conf</pre>
<pre class="remontti-code-plain">##allocate_find = &quot;\
##  SELECT framedipaddress FROM ${ippool_table} \
##  WHERE pool_name = &#039;%{control:${pool_name}}&#039; \
##  AND ( \
##      expiry_time &lt; NOW() OR expiry_time IS NULL OR expiry_time = 0 \
##      OR ( nasipaddress = &#039;%{NAS-IP-Address}&#039; AND pool_key = &#039;${pool_key}&#039; ) \
##  ) \
##  ORDER BY \
##      (username &lt;&gt; &#039;%{User-Name}&#039;), \
##      (callingstationid &lt;&gt; &#039;%{Calling-Station-Id}&#039;), \
##      expiry_time \
##  LIMIT 1 \
##  FOR UPDATE&quot;</pre>
<p>Descomentar:</p>
<pre class="remontti-code"># sed -i &#039;74,81 s/# *//&#039; /etc/freeradius/3.0/mods-config/sql/ippool/mysql/queries.conf</pre>
<pre class="remontti-code-plain">allocate_find = &quot;\
    SELECT framedipaddress FROM ${ippool_table} \
    WHERE pool_name = &#039;%{control:${pool_name}}&#039; \
    AND expiry_time IS NULL \
    ORDER BY \
        RAND() \
    LIMIT 1 \
    FOR UPDATE&quot;
</pre>
<p>Como alteramos a pool_key para Calling-Station-Id  em /etc/freeradius/3.0/mods-enabled/sqlippool vamos ajustar o <strong>allocate_clear</strong> para quando for liberar um IP use a chave pool_key e não a NAS, caso contrário ira liberar IPs indevidos que estão sendo utilizado por usuários ativos e assim evitamos que surjam IPs duplicados, para isso:</p>
<p>Comentar:</p>
<pre class="remontti-code"># sed -i &#039;26,35 {s/^/##/}&#039; /etc/freeradius/3.0/mods-config/sql/ippool/mysql/queries.conf</pre>
<pre class="remontti-code-plain">##allocate_clear = &quot;\
##      UPDATE ${ippool_table} \
##      SET \
##              nasipaddress = &#039;&#039;, \
##              pool_key = 0, \
##              callingstationid = &#039;&#039;, \
##              username = &#039;&#039;, \
##              expiry_time = NULL \
##      WHERE expiry_time &lt;= NOW() - INTERVAL 1 SECOND \
##      AND nasipaddress = &#039;%{%{Nas-IP-Address}:-%{Nas-IPv6-Address}}&#039;&quot;</pre>
<p>Descomentar</p>
<pre class="remontti-code"># sed -i &#039;10,18 s/# *//&#039; /etc/freeradius/3.0/mods-config/sql/ippool/mysql/queries.conf</pre>
<pre class="remontti-code-plain">allocate_clear = &quot;\
        UPDATE ${ippool_table} \
        SET \
                nasipaddress = &#039;&#039;, \
                pool_key = 0, \
                callingstationid = &#039;&#039;, \
                username = &#039;&#039;, \
                expiry_time = NULL \
        WHERE pool_key = &#039;${pool_key}&#039;&quot;</pre>
<p>É interessante você ajustar o tempo <strong>lease_duration = 1200</strong> no arquivo /etc/freeradius/3.0/mods-available/sqlippool talvez para um menor intervalo,porém sempre respeitando que o <strong>Acct-Interim-Interval</strong> seja um tempo menor, para não ter duplicidades de ips. Falo sobre isso no tutorial <a href="https://blog.remontti.com.br/4085" rel="noopener noreferrer" target="_blank">https://blog.remontti.com.br/4085</a> recomendo a leitura!</p>
<p>Caso você tenha uma alta demanda de requisições você pode fazer algumas alterações no radiusd.conf.<br />
Altere conforme sua necessidade, e hardware de seu servidor. Vale lembrar que fazendo essas alterações pode ser necessário alterar o limite de conexões ao MariaDB. Não abuse nessas configurações recomendo ler a documentação.</p>
<pre class="remontti-code"># vim /etc/freeradius/3.0/radiusd.conf</pre>
<p>Você pode começar dobrando os valores, ex.:</p>
<pre class="remontti-code">[...]
thread pool {
        start_servers = 10
        max_servers = 64
        min_spare_servers = 6
        max_spare_servers = 20
        max_queue_size = 131072
        max_requests_per_server = 0
        auto_limit_acct = no
}
[...]</pre>
<h3>Finalizando</h3>
<p>Habilite o freeradius para começar junto com a inicialização do sistema</p>
<pre class="remontti-code"># systemctl enable freeradius</pre>
<p>Pare o serviço e inicie em modo debug</p>
<pre class="remontti-code"># systemctl stop freeradius
# freeradius -X</pre>
<p>Se nenhum erro acontecer uma mensagem com: <strong>Ready to process requests</strong> aparecer parabéns seu freeradius está funcionando. Através do comando debug você consegue acompanhar as ações que o freeradius irá fazer, ótimo para estudos e entendimento. Para encerrar o modo debig use Crtl+c, e então inicie o serviço de forma normal.</p>
<pre class="remontti-code"># systemctl start freeradius</pre>
<p>Para <strong>integrar</strong> seu servidor freeradius para fazer autenticações PPPoE, Hotspot, Wireless PSK/EAP entre outras, você precisa aprender mais sobre as <strong>tabelas</strong> do <strong>banco de dados</strong> e quais <strong>atributos</strong> usar em cada situação sempre pensando na segurança. Você pode acessar <a href="https://blog.remontti.com.br/4085" rel="noopener noreferrer" target="_blank">https://blog.remontti.com.br/4085</a> onde irá encontra alguns modelos de autenticação que atente praticamente todos os cenários de provedores. </p>
<p>Gostou? Quer me ajudar? <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>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>Abraço!</p>
<p><strong>Resolução de problema:</strong></p>
<p>Se seu login conter @ no entanto não terminar como domínio padrão exemplo user@dom.xxx.yy user@dom.xxx, e sim apenas user@dom edite:</p>
<pre class="remontti-code"># vim /etc/freeradius/3.0/policy.d/filter</pre>
<p>Altere para accept o seguinte filtro:</p>
<pre class="remontti-code">
        if ((&amp;User-Name =~ /@/) &amp;&amp; (&amp;User-Name !~ /@(.+)\.(.+)$/))  {
            update request {
                &amp;Module-Failure-Message += &#039;Rejected: Realm does not have at least one dot separator&#039;
            }
            #reject
            accept
        }
</pre>
<p>Fonte:<br />
<a href="https://wiki.freeradius.org/guide/SQL-HOWTO" rel="noopener noreferrer" target="_blank">https://wiki.freeradius.org/guide/SQL-HOWTO</a><br />
<a href="https://wiki.freeradius.org/modules/Rlm_sql" rel="noopener noreferrer" target="_blank">https://wiki.freeradius.org/modules/Rlm_sql</a><br />
<a href="https://wiki.freeradius.org/modules/Rlm_sqlippool" rel="noopener noreferrer" target="_blank">https://wiki.freeradius.org/modules/Rlm_sqlippool</a></p>
<p>O post <a href="https://blog.remontti.com.br/6129">Instalação FreeRadius no Debian 11 Bullseye (Extra sqlippool)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6129/feed</wfw:commentRss>
			<slash:comments>4</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-NjeHEA9V" 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>Instalando WordPress em seu Servidor LAMP</title>
		<link>https://blog.remontti.com.br/6029</link>
					<comments>https://blog.remontti.com.br/6029#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 01 Nov 2021 14:58:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sites]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6029</guid>

					<description><![CDATA[<p>O WordPress é um projeto de código aberto que você pode usar para criar sites, blogs ou aplicativos. O blog.remontti.com.br é feito com wordpress! Requisitos usados neste tutorial: &#8211; Distribuição: Instalação do Debian 11&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6029">Instalando WordPress em seu Servidor LAMP</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/WordPress-Logo-300x169.png" alt="" width="300" height="169" class="alignnone size-medium wp-image-6032" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/WordPress-Logo-300x169.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/WordPress-Logo-1024x576.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/11/WordPress-Logo-768x432.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/11/WordPress-Logo-1536x864.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2021/11/WordPress-Logo-2048x1152.png 2048w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>O <a href="https://br.wordpress.org/" rel="noopener" target="_blank"><strong>WordPress</strong></a> é um projeto de código aberto que você pode usar para criar sites, blogs ou aplicativos. O <a href="https://blog.remontti.com.br/" rel="noopener" target="_blank">blog.remontti.com.br</a> é feito com wordpress!</p>
<h4>Requisitos usados neste tutorial:</h4>
<p><strong>&#8211; Distribuição:</strong><br />
<a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank">Instalação do Debian 11 ou 10</a></p>
<p><strong>&#8211; Aplicações Web Apache + PHP7.x + MariaDB:</strong><br />
<a href="https://blog.remontti.com.br/5893" rel="noopener" target="_blank">Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin + Let’s Encrypt no Debian 11 bullseye “LAMP”</a></p>
<p><strong>&#8211; Conhecimento em domínios virtuais:</strong><br />
<a href="https://blog.remontti.com.br/3464" rel="noopener" target="_blank">Como ter diversos sub/domínios no mesmo servidor? (Domínios virtuais com Apache2)</a></p>
<p><strong>&#8211; Aponte seu domínio/subdomínio no seu servidor DNS </strong><br />
<a href="https://blog.remontti.com.br/5958" rel="noopener" target="_blank">Servidor DNS Bind9 – Recursivo + Autoritativo DNSSEC + Reverso + RPZ + Fail2ban + nftables + Zabbix no Debian 11 Bullseye</a></p>
<h4>Modelo de configuração Apache</h4>
<p>Como exemplo usarei: <em>blog.remontti.com.br</em></p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/blog.remontti.com.br.conf</pre>
<pre class="remontti-code-plain">&lt;virtualhost *:80&gt;
        ServerName blog.remontti.com.br
        ServerAdmin noc@remontti.com.br
 
        DocumentRoot /var/www/blog.remontti.com.br
 
        &lt;directory /var/www/blog.remontti.com.br/ &gt;
                Options FollowSymLinks
                AllowOverride All
        &lt;/directory&gt; 
 
        LogLevel warn 
        ErrorLog ${APACHE_LOG_DIR}/error_blog.remontti.com.br.conf.log
        CustomLog ${APACHE_LOG_DIR}/access_blog.remontti.com.br.conf.log combined
&lt;/virtualhost&gt;</pre>
<pre class="remontti-code"># mkdir /var/www/blog.remontti.com.br/
# a2ensite blog.remontti.com.br.conf
# systemctl restart apache2</pre>
<h4>Pacotes necessários</h4>
<pre class="remontti-code"># apt install wget unzip</pre>
<h4>Instalando WordPress</h4>
<p>Acesse o diretório temporário do linux e baixe o WordPress</p>
<pre class="remontti-code"># cd /tmp/
# wget https://br.wordpress.org/latest-pt_BR.zip
# unzip latest-pt_BR.zip
# cd wordpress/</pre>
<p>Agora mova todos os arquivos para o diretório correspondente a seu domínio/sub.</p>
<pre class="remontti-code"># mv * /var/www/blog.remontti.com.br/</pre>
<p>Altere as permissões do diretório e todos os arquivos para o usuario do apache (www-data)</p>
<pre class="remontti-code"># chown www-data. /var/www/blog.remontti.com.br/ -R</pre>
<p>Agora crie seu banco de dados, para isso acesse com usuário root e vamos criar um novo banco chamado wordpress bem como um usuário para o wordpress, assim nosso &#8220;site&#8221; fica preso a este usuário, não seja &#8220;expertão&#8221; de me usar o root para a conexão do wordpress!</p>
<pre class="remontti-code"># mariadb -u root -p </pre>
<p>Não esqueça de alterar: SUA_SENHA</p>
<pre class="remontti-code-plain">CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO &#039;wordpress&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA_SENHA&#039;;
FLUSH PRIVILEGES;
quit;</pre>
<h5>Seguimos agora com a instalação via web</h5>
<p><strong>Acessar seu domínio</strong>: &#8220;http://blog.remontti.com.br/&#8221; e clique em <strong>Vamos lá!</strong></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao.png" alt="" width="895" height="642" class="alignnone size-full wp-image-6035" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao.png 895w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao-300x215.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao-768x551.png 768w" sizes="auto, (max-width: 895px) 100vw, 895px" /></p>
<p>Preencha os dados de acordo com as <strong>configurações do banco de dados</strong> criadas anteriormente:</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf.png" alt="" width="868" height="644" class="alignnone size-full wp-image-6036" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf.png 868w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf-300x223.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf-768x570.png 768w" sizes="auto, (max-width: 868px) 100vw, 868px" /></p>
<p>Clique em <strong>Instalar</strong></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf1.png" alt="" width="838" height="296" class="alignnone size-full wp-image-6038" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf1.png 838w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf1-300x106.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf1-768x271.png 768w" sizes="auto, (max-width: 838px) 100vw, 838px" /></p>
<p>Preencha os dados do seu &#8220;site&#8221; bem como usuários para posteriormente acessar o painel de ADM e clique em <strong>Instalar WordPress</strong></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf2.png" alt="" width="868" height="887" class="alignnone size-full wp-image-6039" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf2.png 868w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf2-294x300.png 294w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf2-768x785.png 768w" sizes="auto, (max-width: 868px) 100vw, 868px" /></p>
<p>Parabéns <strong>WordPress instalado com sucesso!</strong>, clieque em <strong>Acessar</strong> para entrar no painel de ADM.</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf3.png" alt="" width="909" height="426" class="alignnone size-full wp-image-6040" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf3.png 909w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf3-300x141.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf3-768x360.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf3-520x245.png 520w" sizes="auto, (max-width: 909px) 100vw, 909px" /></p>
<p>Entre com usuário e senha da instalação.</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf4.png" alt="" width="916" height="502" class="alignnone size-full wp-image-6041" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf4.png 916w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf4-300x164.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf4-768x421.png 768w" sizes="auto, (max-width: 916px) 100vw, 916px" /></p>
<p>Pronto!</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf5.png" alt="" width="1916" height="946" class="alignnone size-full wp-image-6042" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf5.png 1916w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf5-300x148.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf5-1024x506.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf5-768x379.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/11/wordpress_instalacao_conf5-1536x758.png 1536w" sizes="auto, (max-width: 1916px) 100vw, 1916px" /></p>
<p>Sempre que desejar entrar no painel basta acessar: http://seudominio.x.y<strong>/wp-admin</strong></p>
<p>Espero que tenha gosta deste tutorial, ele fugiu um pouco dos temas abordados mas muitas pessoas me pedem. </p>
<p>Você encontrar centenas de videos no <a href="https://www.youtube.com/results?search_query=Whwordpress+tutorial+aprenda" rel="noopener" target="_blank">youtube ensinado a mexer com wordpress</a>. Conheço muitos amigos que ganham $$ fazendo sites com WordPress, bons estudos!</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>O post <a href="https://blog.remontti.com.br/6029">Instalando WordPress em seu Servidor LAMP</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6029/feed</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>TR-069 &#8211; Instalação do  GenieACS no Debian 11 Bullseye</title>
		<link>https://blog.remontti.com.br/6001</link>
					<comments>https://blog.remontti.com.br/6001#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 29 Oct 2021 19:56:25 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[fiberhome]]></category>
		<category><![CDATA[GenieACS]]></category>
		<category><![CDATA[intelbras]]></category>
		<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[routeros]]></category>
		<category><![CDATA[tp-link]]></category>
		<category><![CDATA[tplink]]></category>
		<category><![CDATA[tr-069]]></category>
		<category><![CDATA[tr069]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6001</guid>

					<description><![CDATA[<p>Cliente TR-069 (Relatório Técnico 069) é uma implementação do CWMP (CPE WAN Management Protocol) para gerenciar dispositivos de usuários finais de forma centralizada. Este CWMP é executado em uma rede IP usando HTTP ou&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6001">TR-069 &#8211; Instalação do  GenieACS no Debian 11 Bullseye</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/genieacs_debian_11.png" alt="" width="750" height="375" class="alignnone size-full wp-image-6013" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11.png 750w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11-300x150.png 300w" sizes="auto, (max-width: 750px) 100vw, 750px" /></p>
<p>Cliente TR-069 (Relatório Técnico 069) é uma implementação do CWMP (CPE WAN Management Protocol) para gerenciar dispositivos de usuários finais de forma centralizada. Este CWMP é executado em uma rede IP usando HTTP ou HTTPS para se comunicar com dispositivos ACS (Sistema de configuração automática), onde ACS é um sistema usado para monitorar, configurar e atualizar o firmware de dispositivos remotos.</p>
<p>Em geral, a função do TR-069 é mais amplamente usada em ISPs para gerenciamento de dispositivos do usuário final. Alguns dispositivos que estão atualmente começando a implementar as funções do TR-069, como FTTH CPE/ONT, WIMAX CPE, também podem ser usados ​​para monitoramento de VoIP ou CFTV. E no próprio MikroTik, a função Cliente TR-069 também foi adicionada a partir do RouterOS versão 6.38.</p>
<p><strong>Requesitos:</strong><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 recomendada:</strong><br />
<a href="https://blog.remontti.com.br/5848" rel="noopener" target="_blank"><strong>Configurando interface de rede no Debian 11</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>Ajustando o repositório</p>
<pre class="remontti-code"># vim /etc/apt/sources.list</pre>
<p>Adicione <strong>contrib non-free </strong>aos repositórios</p>
<pre class="remontti-code-plain"># deb http://YOUR_MIRROR/debian/ bullseye main contrib non-free
# deb-src http://YOUR_MIRROR/debian/ bullseye main contrib non-free

deb http://deb.debian.org/debian/ bullseye main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye main contrib non-free

deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free

deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free</pre>
<p>Atualize o repositório:</p>
<pre class="remontti-code"># apt update</pre>
<p>Se tiver algum pacote para atualização também faça:</p>
<pre class="remontti-code"># apt upgrade -y</pre>
<p>Intale os firmware-linux*</p>
<pre class="remontti-code"># apt install firmware-linux firmware-linux-free firmware-linux-nonfree -y</pre>
<p>Reinicie seu servidor para carregar os novos módulos do kernel</p>
<pre class="remontti-code"># reboot</pre>
<p><strong>Pré-requisitos:</strong><br />
&#8211; Node.js<br />
&#8211; MongoDB</p>
<p><a href="https://genieacs.com" rel="noopener" target="_blank">https://genieacs.com</a><br />
<a href="http://docs.genieacs.com/" rel="noopener" target="_blank">http://docs.genieacs.com/</a></p>
<pre class="remontti-code"># apt install curl gnupg2 wget</pre>
<h3>Instalção do Node.js</h3>
<p>Repositório Node Js</p>
<pre class="remontti-code"># curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
# apt install nodejs -y</pre>
<p>Verifique a versão</p>
<pre class="remontti-code"># npm -v</pre>
<p>Veja se não tem atualização</p>
<pre class="remontti-code"># npm search -g npm</pre>
<p>Exemplo colocando a para atualizar (Ajuste a versão)</p>
<pre class="remontti-code"># npm install -g npm@9.6.7</pre>
<h3>Instalação do MongoDB</h3>
<p>Adicione o repositorio do MongoD (Sim é Buster Bullseye até o momento out/2021 não tem)</p>
<p><strong><a href="https://docs.mongodb.com/v5.0/tutorial/install-mongodb-on-debian/" rel="noopener" target="_blank">Versão 5</a></strong> (Recomendada)</p>
<pre class="remontti-code"># cd /tmp
# echo &quot;deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main&quot; | tee /etc/apt/sources.list.d/mongodb-org-5.0.list
# curl -sSL https://www.mongodb.org/static/pgp/server-5.0.asc  -o mongoserver.asc
# gpg --no-default-keyring --keyring ./mongo_key_temp.gpg --import ./mongoserver.asc
# gpg --no-default-keyring --keyring ./mongo_key_temp.gpg --export &gt; ./mongoserver_key.gpg
# mv mongoserver_key.gpg /etc/apt/trusted.gpg.d/</pre>
<p><strong><a href="https://docs.mongodb.com/v4.4/tutorial/install-mongodb-on-debian/" target="_blank" rel="noopener">Versão 4</a></strong> (Alguns relatos que no vmware não teve jeito de fazer o mongodb iniciar e a v4 funcionou)</p>
<pre class="remontti-code"># cd /tmp
# echo &quot;deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main&quot; | tee /etc/apt/sources.list.d/mongodb-org-4.4.list
# wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add - </pre>
<p>Atualize o repositório e instale o mongodb bem como a estensão do nodejs</p>
<pre class="remontti-code"># apt update
# apt install mongodb-org node-mongodb</pre>
<p>Ative o serviço para iniciar com o boot, inicie o serviço e verifique se o mesmo iniciou com êxito. </p>
<pre class="remontti-code"># systemctl enable mongod
# systemctl start mongod
# systemctl status mongod</pre>
<h3>Instalação do GenieACS</h3>
<p>Procure se o pacote existe:</p>
<pre class="remontti-code"># npm search -g genieacs</pre>
<pre class="remontti-code-plain">NAME                      | DESCRIPTION          | AUTHOR          | DATE       | VERSION  | KEYWORDS       
genieacs                  | A TR-069 Auto…       | =zaidka         | 2022-08-22 | 1.2.9    | TR-069 CWMP ACS
@anlix-io/genieacs-sim    | TR-069 client…       | =anlix-io       | 2023-05-30 | 1.4.0    | TR-069 CWMP ACS Simulator
genieacs-sim              | TR-069 client…       | =zaidka         | 2017-02-05 | 0.9.0    | TR-069 CWMP ACS</pre>
<p>Instale o genieacs</p>
<pre class="remontti-code"># npm install -g genieacs</pre>
<pre class="remontti-code-plain">added 129 packages in 8s

12 packages are looking for funding
  run `npm fund` for details
</pre>
<p>Crie um usuário do sistema para executar daemons GenieACS</p>
<pre class="remontti-code"># useradd --system --no-create-home --user-group genieacs</pre>
<p>Crie um diretório para salvar extensões e arquivo de ambiente<br />
Usaremos o diretório /opt/genieacs/ext/ para armazenar scripts de extensão (se houver).</p>
<pre class="remontti-code"># mkdir /opt/genieacs
# mkdir /opt/genieacs/ext</pre>
<p>Crie o arquivo /opt/genieacs/genieacs.envpara que irá conter as opções de configuração, que passamos ao GenieACS como variáveis de ambiente. </p>
<pre class="remontti-code"># vim /opt/genieacs/genieacs.env</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">GENIEACS_CWMP_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-cwmp-access.log
GENIEACS_NBI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-nbi-access.log
GENIEACS_FS_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-fs-access.log
GENIEACS_UI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-ui-access.log
GENIEACS_DEBUG_FILE=/var/log/genieacs/genieacs-debug.yaml
NODE_OPTIONS=--enable-source-maps
GENIEACS_EXT_DIR=/opt/genieacs/ext
GENIEACS_UI_JWT_SECRET=secret</pre>
<p>Defina a propriedade e as permissões do arquivo:</p>
<pre class="remontti-code"># chown genieacs. /opt/genieacs -R
# chmod 600 /opt/genieacs/genieacs.env</pre>
<p>Criar diretório de logs</p>
<pre class="remontti-code"># mkdir /var/log/genieacs
# chown genieacs. /var/log/genieacs</pre>
<p>Configure os serviços no systemd</p>
<pre class="remontti-code"># systemctl edit --force --full genieacs-cwmp</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">[Unit]
Description=GenieACS CWMP
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-cwmp

[Install]
WantedBy=default.target</pre>
<pre class="remontti-code"># systemctl edit --force --full genieacs-nbi</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">[Unit]
Description=GenieACS NBI
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-nbi

[Install]
WantedBy=default.target</pre>
<pre class="remontti-code"># systemctl edit --force --full genieacs-fs</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">[Unit]
Description=GenieACS FS
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-fs

[Install]
WantedBy=default.target</pre>
<pre class="remontti-code"># systemctl edit --force --full genieacs-ui</pre>
<p>Adicione:</p>
<pre class="remontti-code-plain">[Unit]
Description=GenieACS UI
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-ui

[Install]
WantedBy=default.target</pre>
<p>Configure o logrotate para rotação dos log gerados</p>
<pre class="remontti-code"># vim /etc/logrotate.d/genieacs</pre>
<pre class="remontti-code-plain">/var/log/genieacs/*.log /var/log/genieacs/*.yaml {
    daily
    rotate 30
    compress
    delaycompress
    dateext
}</pre>
<p>Ative e inicie serviços, e revise a mensagem de status de cada um para verificar se os serviços estão sendo executados com êxito.</p>
<pre class="remontti-code"># systemctl enable genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui
# systemctl start genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui
# systemctl status genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui --no-pager</pre>
<pre class="remontti-code-plain">
● genieacs-cwmp.service - GenieACS CWMP
     Loaded: loaded (/etc/systemd/system/genieacs-cwmp.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-10-29 11:33:02 -03; 12s ago
   Main PID: 2487 (node)
      Tasks: 25 (limit: 2305)
     Memory: 155.5M
        CPU: 4.957s
     CGroup: /system.slice/genieacs-cwmp.service
             ├─2487 node /usr/bin/genieacs-cwmp
             ├─2494 /usr/bin/node /usr/bin/genieacs-cwmp
             └─2495 /usr/bin/node /usr/bin/genieacs-cwmp

● genieacs-nbi.service - GenieACS NBI
     Loaded: loaded (/etc/systemd/system/genieacs-nbi.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-10-29 11:33:30 -03; 11ms ago
   Main PID: 2531 (node)
      Tasks: 6 (limit: 2305)
     Memory: 840.0K
        CPU: 3ms
     CGroup: /system.slice/genieacs-nbi.service
             └─2531 node /usr/bin/genieacs-nbi

● genieacs-fs.service - GenieACS FS
     Loaded: loaded (/etc/systemd/system/genieacs-fs.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-10-29 11:33:41 -03; 12ms ago
   Main PID: 2596 (node)
      Tasks: 6 (limit: 2305)
     Memory: 840.0K
        CPU: 3ms
     CGroup: /system.slice/genieacs-fs.service
             └─2596 node /usr/bin/genieacs-fs

● genieacs-ui.service - GenieACS UI
     Loaded: loaded (/etc/systemd/system/genieacs-ui.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-10-29 11:33:51 -03; 28ms ago
   Main PID: 2639 (node)
      Tasks: 7 (limit: 2305)
     Memory: 7.7M
        CPU: 20ms
     CGroup: /system.slice/genieacs-ui.service
             └─2639 node /usr/bin/genieacs-ui</pre>
<p>Acesse em seu navegador: <strong>http://IP:3000 </strong></p>
<p>Clique em: <strong>ABRACADABRA! </strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_1.png" alt="" width="1194" height="446" class="alignnone size-full wp-image-6003" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_1.png 1194w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_1-300x112.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_1-1024x382.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_1-768x287.png 768w" sizes="auto, (max-width: 1194px) 100vw, 1194px" /></p>
<p>Clique em: <strong>Open Sesame!</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_2.png" alt="" width="1194" height="446" class="alignnone size-full wp-image-6004" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_2.png 1194w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_2-300x112.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_2-1024x382.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_2-768x287.png 768w" sizes="auto, (max-width: 1194px) 100vw, 1194px" /></p>
<p>Entre com: <strong>admin/admin</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_3.png" alt="" width="1194" height="386" class="alignnone size-full wp-image-6005" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_3.png 1194w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_3-300x97.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_3-1024x331.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_3-768x248.png 768w" sizes="auto, (max-width: 1194px) 100vw, 1194px" /></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_4.png" alt="" width="1194" height="483" class="alignnone size-full wp-image-6006" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_4.png 1194w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_4-300x121.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_4-1024x414.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/genieacs_debian_11_4-768x311.png 768w" sizes="auto, (max-width: 1194px) 100vw, 1194px" /></p>
<p>Grupo do telegram: <strong><a href="https://t.me/acsbrasil" rel="noopener" target="_blank">ACS/CWMP &#8211; TR069 &#8211; Brasil (PT-Br)</a></strong></p>
<p>Gostou? Quer ajudar manter o blog? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>O post <a href="https://blog.remontti.com.br/6001">TR-069 &#8211; Instalação do  GenieACS no Debian 11 Bullseye</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6001/feed</wfw:commentRss>
			<slash:comments>35</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 11 Bullseye (LNPP)</title>
		<link>https://blog.remontti.com.br/5915</link>
					<comments>https://blog.remontti.com.br/5915#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 20 Oct 2021 18:45:33 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[7.4]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[lnpp]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php7]]></category>
		<category><![CDATA[postgresql]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5915</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/5915">Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 11 Bullseye (LNPP)</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/NGINX-LNNP_DEB_11.png" alt="" width="720" height="340" class="alignnone size-full wp-image-5927" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/NGINX-LNNP_DEB_11.png 720w, https://blog.remontti.com.br/wp-content/uploads/2021/10/NGINX-LNNP_DEB_11-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/NGINX-LNNP_DEB_11-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /><br />
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/5792" rel="noopener noreferrer" target="_blank">Debian 11 Bullseye / Instalação Limpa</a></strong></p>
<h3>NGINX 1.18</h3>
<p><a href="https://www.nginx.com" rel="noopener" target="_blank">https://www.nginx.com</a></p>
<pre class="remontti-code"># apt install 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 />
Se você acessar um diretório que não existe um erro dizendo que não existe, e junto informações que não é legal aparecer.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2.png" alt="" width="1036" height="296" class="alignnone size-full wp-image-5468" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2.png 1036w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-300x86.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-1024x293.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-768x219.png 768w" sizes="auto, (max-width: 1036px) 100vw, 1036px" /><br />
Vamos remover assinatura do nginx onde ele exibe a versão do mesmo. Ninguém precisa saber! Correto?</p>
<pre class="remontti-code"># sed -i &#039;s/# server_tokens/server_tokens/&#039; /etc/nginx/nginx.conf
# systemctl restart nginx</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3.png" alt="" width="712" height="157" class="alignnone size-full wp-image-5469" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3.png 712w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3-300x66.png 300w" sizes="auto, (max-width: 712px) 100vw, 712px" /></p>
<p>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/13/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 (13.4 (Debian 13.4-0+deb11u1))
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 para usuário postgres: 
psql (11.11 (Debian 11.11-0+deb10u1))
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 7.4</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 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/php7.4-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 php7.4-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/2021/10/php7.4_nginx.png" data-rel="lightbox-gallery-3nwOCzpl" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/php7.4_nginx-300x279.png" alt="" width="300" height="279" class="alignnone size-medium wp-image-5921" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/php7.4_nginx-300x279.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/php7.4_nginx-768x713.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/php7.4_nginx.png 958w" sizes="auto, (max-width: 300px) 100vw, 300px" /></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;" /> Nosso 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/php7.4-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/php7.4-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>phpPgAdmin</h3>
<p>O phppgadmin finalmente foiu atualizado para uma versão recente no repositório então iremos insta-lo via apt.</p>
<pre class="remontti-code"># apt install phppgadmin </pre>
<p>Ajustes no config.inc.php</p>
<pre class="remontti-code"># vim /usr/share/phppgadmin/conf/config.inc.php</pre>
<p>Localize as linhas e ajuste:</p>
<pre class="remontti-code">$conf[&#039;extra_login_security&#039;] = false;
$conf[&#039;owned_only&#039;] = true;</pre>
<p>Para torna-lo acessível altere o arquivo de configuração do seu NGINX, no exemplo vou colocar no arquivo default, mas você poderia estar configurando em seus domínios. </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;

    add_header Strict-Transport-Security &quot;max-age=31536000; includeSubDomains&quot; always;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ^~ /phppgadmin {
        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/php7.4-fpm.sock;
        }

    }

}</pre>
<p>Se deseja tonar o phppgadmin acessível apenas de alguns endereços IPs (RECOMENDO) 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 reinicie o serviço:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<p>Basta acessar <strong>http://IP-SERVIDOR/phppgadmin</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/phppgadmin.png" data-rel="lightbox-gallery-3nwOCzpl" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/phppgadmin-300x144.png" alt="" width="300" height="144" class="alignnone size-medium wp-image-5925" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/phppgadmin-300x144.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phppgadmin-768x369.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phppgadmin.png 955w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<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>Dica, se desejar desativar o TLS1.0 e TLS1.1 após criar um certificado um arquivo é criado /etc/letsencrypt/options-ssl-apache.conf, então edite e inclua no SSLProtocol TLSv1 -TLSv1.1</p>
<pre class="remontti-code"># vim /etc/letsencrypt/options-ssl-nginx.conf</pre>
<p>Ficando</p>
<pre class="remontti-code">#ssl_protocols            all -SSLv2 -SSLv3
ssl_protocols             all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1</pre>
<p>Reinicie o Neginx:</p>
<pre class="remontti-code"># systemctl restart nginx</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-3nwOCzpl" 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/5915">Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 11 Bullseye (LNPP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5915/feed</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin + Let&#8217;s Encrypt no Debian 11 bullseye &#8220;LAMP&#8221;</title>
		<link>https://blog.remontti.com.br/5893</link>
					<comments>https://blog.remontti.com.br/5893#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 20 Oct 2021 15:01:11 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[php7.4]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5893</guid>

					<description><![CDATA[<p>Distribuição utilizada: Debian 11 Bullseye / 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 atualizado.&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/5893">Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin + Let&#8217;s Encrypt no Debian 11 bullseye &#8220;LAMP&#8221;</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/debian_11_lamp.png" alt="" width="790" height="374" class="alignnone size-full wp-image-5909" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/debian_11_lamp.png 790w, https://blog.remontti.com.br/wp-content/uploads/2021/10/debian_11_lamp-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/debian_11_lamp-768x364.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/debian_11_lamp-520x245.png 520w, https://blog.remontti.com.br/wp-content/uploads/2021/10/debian_11_lamp-720x340.png 720w" sizes="auto, (max-width: 790px) 100vw, 790px" /><br />
Distribuição utilizada: <strong><a href="https://blog.remontti.com.br/5792" rel="noopener noreferrer" target="_blank">Debian 11 Bullseye / 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 Apache ::</h3>
<pre class="remontti-code"># apt install apache2 apache2-utils</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-Pacj8YR9" 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-Pacj8YR9" 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 MariaDB 10.5 ::</h3>
<pre class="remontti-code"># apt install mariadb-server mariadb-client </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.<br />
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>
<h3>:: Instalação do PHP 7.4 ::</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</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 7.4.21 (cli) (built: Jul  2 2021 03:59:48) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.21, 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/2021/10/php7.png" data-rel="lightbox-gallery-Pacj8YR9" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/php7-150x150.png" alt="" width="150" height="150" class="alignnone size-thumbnail wp-image-5896" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/php7-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2021/10/php7-80x80.png 80w, https://blog.remontti.com.br/wp-content/uploads/2021/10/php7-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a></p>
<h3>:: phpMyAdmin ::</h3>
<p>Adivinha quem voltou para o repositório? Sim! phpmyadmin está de volta!</p>
<pre class="remontti-code"># apt install phpmyadmin</pre>
<p>Selecione <strong>Apache2</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_1.png" alt="" width="1047" height="299" class="alignnone size-full wp-image-5899" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_1.png 1047w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_1-300x86.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_1-1024x292.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_1-768x219.png 768w" sizes="auto, (max-width: 1047px) 100vw, 1047px" /></p>
<p><strong>Sim</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_2.png" alt="" width="1648" height="363" class="alignnone size-full wp-image-5900" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_2.png 1648w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_2-300x66.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_2-1024x226.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_2-768x169.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_2-1536x338.png 1536w" sizes="auto, (max-width: 1648px) 100vw, 1648px" /></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></p>
<p>Aguarde finalizar&#8230; <font color="blue"><strong>Se você é um menino que seguiu a risca não vai ter o erro seguinte, então pode pular esta parte.</strong></font></p>
<p><font color="red"><strong>POSSÍVEL ERRO!</strong><br />
Este erro acontece quando o usuário root do mariaDB está com senha. Caso isso acontecer, selecione <strong>IGNORAR</strong> e siga os passos a baixo.</font><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_4.png" alt="" width="900" height="758" class="alignnone size-full wp-image-5902" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_4.png 900w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_4-300x253.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_4-768x647.png 768w" sizes="auto, (max-width: 900px) 100vw, 900px" /><br />
<font color="red">SE OCORRER O ERRO: SIGAS ESTES PASSOS PARA RESOLUÇÃO DO PROBLEMA ACIMA.</font><br />
<font color="red">Como o usuário root já tem senha e o script de instalção não sabe qual é a senha ele ele acaba apresentando esse erro ao criar o banco de dados bem como as tabelas do phpmyadmin, então vamos ter que criar na mão.<br />
Se você quiser certificar qual a senha digitou na instalação do phpmyadmin basta olhar o arquivo:</font></p>
<pre class="remontti-code"># vim /etc/phpmyadmin/config-db.php</pre>
<pre class="remontti-code-plain">$dbuser=&#039;phpmyadmin&#039;;
$dbpass=&#039;SUPER_SENHA&#039;;
$basepath=&#039;&#039;;
$dbname=&#039;phpmyadmin&#039;;
$dbserver=&#039;localhost&#039;;
$dbport=&#039;3306&#039;;
$dbtype=&#039;mysql&#039;;</pre>
<p><font color="red">Agora entre no mariadb e vamos criar o banco bem como o usuário phpmyadmin <em>(Use a mesma senha que está no config-db.php, ou altere também no config-db.php)</em></font></p>
<pre class="remontti-code"># mariadb -u root -p </pre>
<p><font color="red">Não esqueça de alterar a SUPER_SENHA.</font></p>
<pre class="remontti-code">CREATE DATABASE phpmyadmin;
CREATE USER &#039;phpmyadmin&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUPER_SENHA&#039;;
GRANT ALL PRIVILEGES ON phpmyadmin.* TO &#039;phpmyadmin&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUPER_SENHA&#039; WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;</pre>
<p>Importe as tabelas:</p>
<pre class="remontti-code"># mariadb -u root -p phpmyadmin &lt; /usr/share/phpmyadmin/sql/create_tables.sql</pre>
<p><font color="red">Pronto erro solucionado!</font></p>
<hr />
<p>Para acessar o phpmyadmin:<strong>http://[SERVER_IP]/phpmyadmin/</strong><br />
Caso seu phpmyadmin não abrir, certifique-se que o arquivo phpmyadmin.conf está lincado em /etc/apache2/conf-enabled/</p>
<pre class="remontti-code"># ls -lh /etc/apache2/conf-available/ | grep phpmyadmin.conf</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_apache_debian_11.png" alt="" width="991" height="93" class="alignnone size-full wp-image-5999" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_apache_debian_11.png 991w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_apache_debian_11-300x28.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_apache_debian_11-768x72.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_apache_debian_11-980x93.png 980w" sizes="auto, (max-width: 991px) 100vw, 991px" /><br />
<font color="red">Caso não esteja execute o comando, e reinicie o apache:</font></p>
<pre class="remontti-code"># ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-enabled/phpmyadmin.conf
# systemctl restart apache2</pre>
<p>Agora tente novamente.,</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_5.png" data-rel="lightbox-gallery-Pacj8YR9" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_5-150x150.png" alt="" width="150" height="150" class="alignnone size-thumbnail wp-image-5905" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_5-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_5-80x80.png 80w, https://blog.remontti.com.br/wp-content/uploads/2021/10/phpmyadmin_debian_11_5-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></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

    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;

&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"># echo &gt; /root/.mysql_history</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-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>Dica, se desejar desativar o TLS1.0 e TLS1.1 após criar um certificado um arquivo é criado /etc/letsencrypt/options-ssl-apache.conf, então edite e inclua no SSLProtocol TLSv1 -TLSv1.1</p>
<pre class="remontti-code"># vim /etc/letsencrypt/options-ssl-apache.conf</pre>
<p>Ficando</p>
<pre class="remontti-code">#SSLProtocol            all -SSLv2 -SSLv3
SSLProtocol             all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1</pre>
<p>Reinicie o Apache:</p>
<pre class="remontti-code"># systemctl restart apache2</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-Pacj8YR9" 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/5893">Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin + Let&#8217;s Encrypt no Debian 11 bullseye &#8220;LAMP&#8221;</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5893/feed</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
	</channel>
</rss>
