<?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 buster - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/debian-buster/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/debian-buster</link>
	<description>rudimar@remontti</description>
	<lastBuildDate>Wed, 13 Nov 2024 00:43:24 +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 buster - Remontti</title>
	<link>https://blog.remontti.com.br/tag/debian-buster</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Instalação do Elastic Stack 7 + ElastiFlow no Debian 10 Buster (Bônus Traffic Flow Mikrotik/RouterOS)</title>
		<link>https://blog.remontti.com.br/3368</link>
					<comments>https://blog.remontti.com.br/3368#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 16 Aug 2019 18:06:41 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian buster]]></category>
		<category><![CDATA[debian10]]></category>
		<category><![CDATA[Elasticsearch]]></category>
		<category><![CDATA[ElastiFlow]]></category>
		<category><![CDATA[IPFIX]]></category>
		<category><![CDATA[Kibana]]></category>
		<category><![CDATA[Logstash]]></category>
		<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[Netflow]]></category>
		<category><![CDATA[routeros]]></category>
		<category><![CDATA[sFlow]]></category>
		<category><![CDATA[Traffic Flow]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=3368</guid>

					<description><![CDATA[<p>Para um tutorial mais atualizado acesse: https://blog.remontti.com.br/6255 Neste tutorial abordaremos a instalação e configuração do Elastic Stack 7.x, que será usado para alimentar a solução ElastiFlow. Elastic Stack consiste no Elasticsearch, Logstash e Kibana.&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/3368">Instalação do Elastic Stack 7 + ElastiFlow no Debian 10 Buster (Bônus Traffic Flow Mikrotik/RouterOS)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Para um tutorial mais atualizado acesse: <a href="https://blog.remontti.com.br/6255" rel="noopener" target="_blank">https://blog.remontti.com.br/6255</a></h3>
<p>Neste tutorial abordaremos a instalação e configuração do Elastic Stack 7.x, que será usado para alimentar a solução ElastiFlow. </p>
<p><img fetchpriority="high" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/elastiflow-debian-10-buster-1.png" alt="" width="1173" height="720" class="alignnone size-full wp-image-3374" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/elastiflow-debian-10-buster-1.png 1173w, https://blog.remontti.com.br/wp-content/uploads/2019/08/elastiflow-debian-10-buster-1-300x184.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/elastiflow-debian-10-buster-1-768x471.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/elastiflow-debian-10-buster-1-1024x629.png 1024w" sizes="(max-width: 1173px) 100vw, 1173px" /></p>
<p><strong>Elastic Stack</strong> consiste no Elasticsearch, Logstash e Kibana.<br />
&#8211; <strong>Elasticsearch</strong> é um mecanismo de pesquisa baseado em texto completo.<br />
&#8211; <strong>Logstash</strong> é um mecanismo de coleta de dados e análise de log.<br />
&#8211; <strong>Kibana</strong> é uma plataforma de análise e visualização usada para exibir os painéis do ElastiFlow.<br />
&#8211; <strong>ElastiFlow</strong> fornece coleta e visualização de dados de fluxo de rede usando o Elastic Stack (Elasticsearch, Logstash e Kibana). Suporta os tipos de fluxo Netflow v5/v9, sFlow e IPFIX.</p>
<p>Painéis fornecidos através do ElastiFlow</p>
<p><strong>Visão Global</strong> <em>Overview</em><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/Overview.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/Overview-1024x601.png" alt="" width="1024" height="601" class="alignnone size-large wp-image-3391" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/Overview-1024x601.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Overview-300x176.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Overview-768x451.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Overview.png 2032w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></p>
<p><strong>Top-N</strong><br />
Existem painéis Top-N separados para os principais locutores, serviços, conversas e aplicativos.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/Top-N.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/Top-N-1024x601.png" alt="" width="1024" height="601" class="alignnone size-large wp-image-3392" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/Top-N-1024x601.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Top-N-300x176.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Top-N-768x451.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Top-N.png 2032w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></p>
<p><strong>Ameaças</strong> <em>Threats</em><br />
O ElastiFlow inclui um dicionário de endereços IP públicos que são conhecidos por terem uma má reputação. Este dicionário é construído a partir de muitas fontes de dados OSINT, normalizadas para uma taxonomia comum. O painel de ameaças usa essas informações de reputação de IP para destacar três tipos de ameaça/risco.<br />
1. Ameaças Públicas &#8211; Clientes públicos com baixa reputação de IP que estão atingindo endereços privados.<br />
2. Servidores em Risco &#8211; Servidores Privados que estão sendo acessados ​​por clientes com baixa reputação de IP.<br />
3. Clientes de alto risco &#8211; Clientes privados que acessam servidores públicos com baixa reputação.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/Threats.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/Threats-1024x601.png" alt="" width="1024" height="601" class="alignnone size-large wp-image-3393" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/Threats-1024x601.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Threats-300x176.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Threats-768x451.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Threats.png 2032w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p><strong>Fluxos</strong> <em>Flows</em><br />
Existem painéis Sankey separados para as perspectivas Cliente/Servidor, Origem/Destino e Sistema Autônomo. As visualizações sankey são construídas usando o novo plugin de visualização Vega.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/Flows.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/Flows-1024x601.png" alt="" width="1024" height="601" class="alignnone size-large wp-image-3395" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/Flows-1024x601.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Flows-300x176.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Flows-768x451.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Flows.png 2032w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p><strong>Geo IP</strong><br />
Existem painéis de Geo localização separados para as perspectivas Cliente/Servidor e Origem/Destino (Dados GeoLite2 criados pela MaxMind, disponíveis em <a href="http://www.maxmind.com" rel="noopener noreferrer" target="_blank">http://www.maxmind.com</a>)<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/IPGeo.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/IPGeo-1024x601.png" alt="" width="1024" height="601" class="alignnone size-large wp-image-3396" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/IPGeo-1024x601.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/IPGeo-300x176.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/IPGeo-768x451.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/IPGeo.png 2032w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p><strong>Tráfego por AS</strong><em> AS Traffic</em><br />
Fornece uma visão do tráfego para e de sistemas autônomos (intervalos de IP públicos)<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/ASTraffic.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/ASTraffic-1024x601.png" alt="" width="1024" height="601" class="alignnone size-large wp-image-3397" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/ASTraffic-1024x601.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/ASTraffic-300x176.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/ASTraffic-768x451.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/ASTraffic.png 2032w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p><strong>Exportadores de Fluxo</strong> <em>Flow Exporters</em><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/FlowExporters.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/FlowExporters-1024x601.png" alt="" width="1024" height="601" class="alignnone size-large wp-image-3398" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/FlowExporters-1024x601.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/FlowExporters-300x176.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/FlowExporters-768x451.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/FlowExporters.png 2032w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p><strong>Detalhes do Trânsito</strong> <em>Traffic Details</em><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/TrafficDetails.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/TrafficDetails-1024x601.png" alt="" width="1024" height="601" class="alignnone size-large wp-image-3399" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/TrafficDetails-1024x601.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/TrafficDetails-300x176.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/TrafficDetails-768x451.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/TrafficDetails.png 2032w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p><strong>Registros de Fluxo</strong><em> Flow Records</em><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/FlowRecords.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/FlowRecords-1024x601.png" alt="" width="1024" height="601" class="alignnone size-large wp-image-3400" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/FlowRecords-1024x601.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/FlowRecords-300x176.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/FlowRecords-768x451.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/FlowRecords.png 2032w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p><strong>Ziften ZFlow</strong><br />
O ElastiFlow adicionou suporte para registros IPFIX do agente ZFlow do ZFlow. Além de estar totalmente integrado aos painéis de controle padrão, os painéis ZFlow independentes exibem o tráfego de rede com base nos dados de usuário e de comando fornecidos pelo ZFlow.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/Ziften-ZFlow.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/Ziften-ZFlow-1024x601.png" alt="" width="1024" height="601" class="alignnone size-large wp-image-3401" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/Ziften-ZFlow-1024x601.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Ziften-ZFlow-300x176.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Ziften-ZFlow-768x451.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/Ziften-ZFlow.png 2032w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p><a href="https://github.com/robcowart/elastiflow/blob/master/INSTALL.md#requirements" rel="noopener noreferrer" target="_blank">Requisitos de Hardware</a>.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/elastiflow-Requirements.png" alt="" width="682" height="157" class="alignnone size-full wp-image-3375" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/elastiflow-Requirements.png 682w, https://blog.remontti.com.br/wp-content/uploads/2019/08/elastiflow-Requirements-300x69.png 300w" sizes="auto, (max-width: 682px) 100vw, 682px" /></p>
<p><em>Meus testes foram realizado em meu computador com VM no Virtualbox sendo 4 CPUs (i7) e 8GB de RAM</em><br />
<div id="attachment_3376" style="width: 310px" class="wp-caption alignnone"><a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/VirtualBox_Debian-10-NetFlow_16_08_2019_10_43_03.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3376" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/VirtualBox_Debian-10-NetFlow_16_08_2019_10_43_03-300x225.png" alt="" width="300" height="225" class="size-medium wp-image-3376" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/VirtualBox_Debian-10-NetFlow_16_08_2019_10_43_03-300x225.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/VirtualBox_Debian-10-NetFlow_16_08_2019_10_43_03-768x576.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/VirtualBox_Debian-10-NetFlow_16_08_2019_10_43_03.png 800w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-3376" class="wp-caption-text">E o bixinho levou um pau!</p></div></p>
<p>Vou utilizar o Debian 10 instalado de forma &#8220;limpa&#8221;, sem nenhum outro pacote, para isso siga o tutorial:<br />
<strong><a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Instalação Debian 10 Buster LIMPA Passo-a-passo</a></strong></p>
<p>Com seu Debian 10 instalado acesse o mesmo e vire root!</p>
<pre class="remontti-code"># su - </pre>
<p>Instale os pacotes básicos necessários</p>
<pre class="remontti-code"># apt install wget apt-transport-https gnupg unzip curl net-tools</pre>
<p>Recomendo a instalacao dos firmwares binário para vários drivers do kernel Linux, para isso adicione contrib non-free ao seu repositório.</p>
<pre class="remontti-code"># vim /etc/apt/sources.list</pre>
<pre class="remontti-code">deb http://deb.debian.org/debian/ buster main contrib non-free
deb-src http://deb.debian.org/debian/ buster main contrib non-free

deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free

deb http://deb.debian.org/debian/ buster-updates main contrib non-free
deb-src http://deb.debian.org/debian/ buster-updates main contrib non-free</pre>
<pre class="remontti-code"># apt update
# apt install firmware-linux firmware-linux-free firmware-linux-nonfree</pre>
<p>Reinicie para que os novos módulos sejam carregado.</p>
<pre class="remontti-code"># reboot</pre>
<h3>:: Elastic Stack 7 ::</h3>
<p>Será necessário ter o Java instalado.</p>
<pre class="remontti-code"># su -
# apt install default-jre</pre>
<p>Adicione o repositório elastic.</p>
<pre class="remontti-code"># wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
# echo &quot;deb https://artifacts.elastic.co/packages/7.x/apt stable main&quot; |  tee -a /etc/apt/sources.list.d/elastic-7.x.list
# apt update</pre>
<p>Faremos a instalação individual dos pacotes elasticsearch, kibana e logstash.</p>
<h3>:: Elasticsearch ::</h3>
<p>Elasticsearch é um mecanismo de pesquisa baseado em texto completo. </p>
<pre class="remontti-code"># apt install elasticsearch</pre>
<p>Após instalação vamos alterar network.host para ouvir apenas localhost, em seguida ativar o serviço e inicia-lo.</p>
<pre class="remontti-code"># sed -i &#039;s/#network.host: 192.168.0.1/network.host: 127.0.0.1/&#039; /etc/elasticsearch/elasticsearch.yml
# systemctl daemon-reload
# systemctl enable elasticsearch
# systemctl start elasticsearch</pre>
<p>Cheque se o mesmo esta funcionando</p>
<pre class="remontti-code"># curl -X GET 127.0.0.1:9200</pre>
<p>Retorno algo como&#8230;.</p>
<pre class="remontti-code">{
  &quot;name&quot; : &quot;lab&quot;,
  &quot;cluster_name&quot; : &quot;elasticsearch&quot;,
  &quot;cluster_uuid&quot; : &quot;-U7i4KbKSxSgChHSxMpcfg&quot;,
  &quot;version&quot; : {
    &quot;number&quot; : &quot;7.3.0&quot;,
    &quot;build_flavor&quot; : &quot;default&quot;,
    &quot;build_type&quot; : &quot;deb&quot;,
    &quot;build_hash&quot; : &quot;de777fa&quot;,
    &quot;build_date&quot; : &quot;2019-07-24T18:30:11.767338Z&quot;,
    &quot;build_snapshot&quot; : false,
    &quot;lucene_version&quot; : &quot;8.1.0&quot;,
    &quot;minimum_wire_compatibility_version&quot; : &quot;6.8.0&quot;,
    &quot;minimum_index_compatibility_version&quot; : &quot;6.0.0-beta1&quot;
  },
  &quot;tagline&quot; : &quot;You Know, for Search&quot;
}</pre>
<p>Caso o comando `curl -X GET 127.0.0.1:9200` retorne algum erro, tente verificar se o serviço esta rodando com o comando `systemctl status elasticsearch`. Verifique nos logs `tail -f /var/log/elasticsearch/elasticsearch.log`se o erro aparece:</p>
<pre class="remontti-code">Failure running machine learning native code. 
This could be due to running on an unsupported OS or distribution, missing OS libraries, 
or a problem with the temp directory. To bypass this problem by running 
Elasticsearch without machine learning functionality set [xpack.ml.enabled: false].&quot;</pre>
<p>Se o mesmo aparecer execute o comando:</p>
<pre class="remontti-code"># echo &quot;xpack.ml.enabled: false&quot; &gt;&gt; /etc/elasticsearch/elasticsearch.yml
# systemctl restart elasticsearch</pre>
<h3>:: kibana ::</h3>
<p>Kibana é uma plataforma de análise e visualização usada para exibir os painéis do ElastiFlow.</p>
<pre class="remontti-code"># apt install kibana</pre>
<p>Após instalação vamos alterar server.host, em seguida ativar o serviço e inicia-lo.</p>
<pre class="remontti-code"># sed -i &#039;s/#server.host: &quot;localhost&quot;/server.host: &quot;0.0.0.0&quot;/&#039; /etc/kibana/kibana.yml
# systemctl daemon-reload
# systemctl enable kibana
# systemctl start kibana</pre>
<p>Aguarde um pouco o serviço iniciar e já será possível acessar Kibana em seu navegador:<br />
http://[IP-SERVIDOR]<strong>:5601</strong></p>
<h3>:: logstash ::</h3>
<p>O Logstash é um mecanismo de coleta de dados e análise de log.</p>
<pre class="remontti-code"># apt install logstash</pre>
<p>Para aumentar o desempenho o ElastiFlow aproveita os recursos de cache e enfileiramento disponíveis em muitos dos plugins do Logstash. Esses recursos aumentam o consumo do heap da JVM. O espaço de heap da JVM usado pelo Logstash é configurado em jvm.options. Recomenda-se que o Logstash receba pelo menos 2GB de heap da JVM. Se todas as opções, incl. Pesquisas DNS estão habilitadas aumente para 4GB. Defina o tamanho de heap da JVM. </p>
<pre class="remontti-code"># vim /etc/logstash/jvm.options</pre>
<p>Altere de a cordo com a necessidades. No meu caso vou resolver nomes então vou usar 4gb</p>
<pre class="remontti-code">-Xms4g
-Xmx4g</pre>
<p>Instale e atualize os plugins necessários pelo Logstash. Para usar o ElastiFlow, você precisará instalar o codec sFlow suportado pela comunidade para o Logstash. Também é recomendável que você sempre use a versão mais recente do codec Netflow, a entrada UDP e o filtro DNS. Isso pode ser conseguido executando os seguintes comandos:</p>
<pre class="remontti-code"># /usr/share/logstash/bin/logstash-plugin install logstash-codec-sflow --no-verify
# /usr/share/logstash/bin/logstash-plugin update logstash-codec-netflow --no-verify
# /usr/share/logstash/bin/logstash-plugin update logstash-input-udp --no-verify
# /usr/share/logstash/bin/logstash-plugin update logstash-input-tcp --no-verify
# /usr/share/logstash/bin/logstash-plugin update logstash-filter-dns --no-verify
# /usr/share/logstash/bin/logstash-plugin update logstash-filter-geoip --no-verify
# /usr/share/logstash/bin/logstash-plugin update logstash-filter-translate --no-verify
# /usr/share/logstash/bin/logstash-plugin install --no-verify

# /usr/share/logstash/bin/logstash-plugin install logstash-codec-sflow
# /usr/share/logstash/bin/logstash-plugin update logstash-codec-netflow
# /usr/share/logstash/bin/logstash-plugin update logstash-input-udp
# /usr/share/logstash/bin/logstash-plugin update logstash-input-tcp
# /usr/share/logstash/bin/logstash-plugin update logstash-filter-dns
# /usr/share/logstash/bin/logstash-plugin update logstash-filter-geoip
# /usr/share/logstash/bin/logstash-plugin update logstash-filter-translate</pre>
<h3>:: elastiflow ::</h3>
<p><a href="https://github.com/robcowart/elastiflow/" rel="noopener noreferrer" target="_blank">ElastiFlow</a> fornece coleta e visualização de dados de fluxo de rede usando o Elastic Stack (Elasticsearch, Logstash e Kibana). Suporta os tipos de fluxo Netflow v5/v9, sFlow e IPFIX. </p>
<pre class="remontti-code"># mkdir /root/flowinstall
# cd /root/flowinstall
# wget https://github.com/robcowart/elastiflow/archive/master.zip
# unzip master.zip
# mv elastiflow-master/logstash/elastiflow/  /etc/logstash/
# mv elastiflow-master/logstash.service.d/ /etc/systemd/system/
# cp /etc/logstash/logstash-sample.conf  /etc/logstash/logstash.conf
</pre>
<p>Adicione o pipeline ElastiFlow aos pipelines.yml</p>
<pre class="remontti-code"># vim  /etc/logstash/pipelines.yml</pre>
<p>Adicione ao final:</p>
<pre class="remontti-code">- pipeline.id: elastiflow
  path.config: &quot;/etc/logstash/elastiflow/conf.d/*.conf&quot;</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/pipelines.yml_.png" alt="" width="796" height="225" class="alignnone size-full wp-image-3379" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/pipelines.yml_.png 796w, https://blog.remontti.com.br/wp-content/uploads/2019/08/pipelines.yml_-300x85.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/pipelines.yml_-768x217.png 768w" sizes="auto, (max-width: 796px) 100vw, 796px" /></p>
<p>Também defino ELASTIFLOW_RESOLVE_IP2HOST como true e defino meu servidor DNS em ELASTIFLOW_NAMESERVER para que os painéis tentem resolver os nomes DNS em vez de exibir apenas o endereço IP. Há um impacto no desempenho por isso será necessário ter RAM sobrando!<br />
Neste exemplo vou aplicar a resolução de nomes.</p>
<pre class="remontti-code"># sed -i &#039;s/ELASTIFLOW_RESOLVE_IP2HOST=false/ELASTIFLOW_RESOLVE_IP2HOST=true/&#039; /etc/systemd/system/logstash.service.d/elastiflow.conf
# sed -i &#039;s/ELASTIFLOW_NAMESERVER=127.0.0.1/ELASTIFLOW_NAMESERVER=1.1.1.1/&#039; /etc/systemd/system/logstash.service.d/elastiflow.conf</pre>
<p>Se desejar pode editar o arquivo /etc/systemd/system/logstash.service.d/elastiflow.conf<br />
E alterar as opções conforme suas necessidades. Os dois comandos acima alteram:<br />
<em>ELASTIFLOW_RESOLVE_IP2HOST=true<br />
ELASTIFLOW_NAMESERVER=1.1.1.1</em></p>
<p>Vamos configurar os arquivos init (system-install) em seguida ativar o serviço para inicialização e starta-lo.</p>
<pre class="remontti-code"># systemctl daemon-reload
# /usr/share/logstash/bin/system-install
# systemctl enable logstash
# systemctl start logstash</pre>
<p>Precisamos configurar os índices do elastiflow-*padrão, execute o seguinte comando: </p>
<p>Atualização: O projeto da data de hoje (20/03/2020) está da versão 7.6.x e em suas releases https://github.com/robcowart/elastiflow/releases alguns arquivos não parecem mais estarem lá, uma das &#8220;gambi&#8221; é pegar esses arquivos de commits antigas. Vamos precisar deles -> <a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/elastiflow.tar.gz">elastiflow.tar.gz</a></em> (boa sorte)</p>
<pre class="remontti-code"># cd /root/flowinstall
# wget https://blog.remontti.com.br/wp-content/uploads/2019/08/elastiflow.tar.gz
# tar vxf elastiflow.tar.gz 
# curl -X POST http://127.0.0.1:5601/api/saved_objects/index-pattern/elastiflow-* -H &quot;Content-Type: application/json&quot; -H &quot;kbn-xsrf: true&quot; -d @elastiflow.index_pattern.json</pre>
<p>O arquivo JSON contém a configuração do padrão de índice.</p>
<p>Agora o arquivo elastiflow.kibana.7.0.x.json deveria estar em  <a href="https://github.com/robcowart/elastiflow/tree/master/kibana" rel="noopener noreferrer" target="_blank">https://github.com/robcowart/elastiflow/tree/master/kibana</a> mas não está rsrsrs então baixe ele aqui <a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/elastiflow.kibana.7.0.x.zip">elastiflow.kibana.7.0.x</a> e extraia ele no seu computador. (peguei ele la da v.<a href="https://github.com/robcowart/elastiflow/tree/v3.5.1" rel="noopener noreferrer" target="_blank">3.5.1</a>) </p>
<p>Porém Hoje <strong>31/03/2020 </strong>utilizando o arquivo <a href="https://raw.githubusercontent.com/robcowart/elastiflow/master/kibana/elastiflow.kibana.7.5.x.ndjson" rel="noopener noreferrer" target="_blank">elastiflow.kibana.7.5.x.ndjson</a>  <strong>deu certo</strong>, entao tente importar ele, caso contrario tente o citado acima (P* zona não seguem um padrão fica foda do cara dizer algo rsrsrs) (Versão testada 7.6.1) </p>
<p>Para que os painéis possam ser carregados no Kibana, importando o <strong>elastiflow.kibana.7.0.x.json</strong>. Isso é feito a partir do menu <strong>Management -> Saved Objects</strong>. Abra o kibana<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-1024x492.png" alt="" width="1024" height="492" class="alignnone size-large wp-image-3380" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-1024x492.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-300x144.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-768x369.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-import.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-import-1024x492.png" alt="" width="1024" height="492" class="alignnone size-large wp-image-3381" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-import-1024x492.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-import-300x144.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-import-768x369.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-import.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-1.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-1-1024x763.png" alt="" width="1024" height="763" class="alignnone size-large wp-image-3382" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-1-1024x763.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-1-300x224.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-1-768x572.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/kibana-Management-Save_Objects-1.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>Configurações Avançadas Recomendadas do Kibana</p>
<p>Modificar algumas das configurações avançadas do Kibana produzirá uma experiência mais amigável ao usar o ElastiFlow. Essas configurações são feitas em Kibana, abaixo <strong>Management -> Advanced Settings</strong>.</p>
<p><strong>doc_table:highlight</strong><br />
<div id="attachment_3383" style="width: 495px" class="wp-caption alignnone"><a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/doc_table.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3383" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/doc_table.png" alt="" width="485" height="156" class="size-full wp-image-3383" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/doc_table.png 485w, https://blog.remontti.com.br/wp-content/uploads/2019/08/doc_table-300x96.png 300w" sizes="auto, (max-width: 485px) 100vw, 485px" /></a><p id="caption-attachment-3383" class="wp-caption-text">Há uma penalidade de desempenho de consulta muito grande que vem com o uso do recurso de destaque. Como não é muito útil para este caso de uso, é melhor simplesmente retirá-lo.</p></div></p>
<p><strong>filters:pinnedByDefault</strong><br />
<div id="attachment_3385" style="width: 555px" class="wp-caption alignnone"><a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/filters.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3385" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/filters.png" alt="" width="545" height="139" class="size-full wp-image-3385" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/filters.png 545w, https://blog.remontti.com.br/wp-content/uploads/2019/08/filters-300x77.png 300w" sizes="auto, (max-width: 545px) 100vw, 545px" /></a><p id="caption-attachment-3385" class="wp-caption-text">Fixar um filtro permitirá que ele persista quando você está mudando de dashbaords. Isso é muito útil ao detalhar algo interessante e você deseja alterar os painéis para uma perspectiva diferente dos mesmos dados. Este é o primeiro cenário que mudo sempre que estou trabalhando com o Kibana.</p></div></p>
<p><strong>state:storeInSessionStorage</strong><br />
<div id="attachment_3386" style="width: 558px" class="wp-caption alignnone"><a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/state.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3386" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/state.png" alt="" width="548" height="182" class="size-full wp-image-3386" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/state.png 548w, https://blog.remontti.com.br/wp-content/uploads/2019/08/state-300x100.png 300w" sizes="auto, (max-width: 548px) 100vw, 548px" /></a><p id="caption-attachment-3386" class="wp-caption-text">Os URLs do Kibana podem ficar muito grandes. Especialmente quando se trabalha com visualizações Vega. Isso provavelmente resultará em mensagens de erro para usuários do Internet Explorer. Usar o armazenamento na sessão corrigirá esse problema para esses usuários.</p></div></p>
<p><strong>timepicker:quickRanges</strong><br />
<div id="attachment_3387" style="width: 702px" class="wp-caption alignnone"><a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/timepicker.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3387" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/timepicker.png" alt="" width="692" height="496" class="size-full wp-image-3387" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/timepicker.png 692w, https://blog.remontti.com.br/wp-content/uploads/2019/08/timepicker-300x215.png 300w" sizes="auto, (max-width: 692px) 100vw, 692px" /></a><p id="caption-attachment-3387" class="wp-caption-text">As opções padrão no Seletor de Tempo são menos que ideais, para a maioria dos casos de uso de registro e monitoramento. Felizmente, o Kibana agora permite que você personalize o selecionador de tempo. Nossas configurações recomendadas podem ser encontradas abaixo.</p></div><br />
timepicker:</p>
<pre class="remontti-code">[
  {
    &quot;from&quot;: &quot;now-15m&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Last 15 minutes&quot;
  },
  {
    &quot;from&quot;: &quot;now-30m&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Last 30 minutes&quot;
  },
  {
    &quot;from&quot;: &quot;now-1h&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Last 1 hour&quot;
  },
  {
    &quot;from&quot;: &quot;now-2h&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Last 2 hours&quot;
  },
  {
    &quot;from&quot;: &quot;now-4h&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Last 4 hours&quot;
  },
  {
    &quot;from&quot;: &quot;now-12h&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Last 12 hours&quot;
  },
  {
    &quot;from&quot;: &quot;now-24h&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Last 24 hours&quot;
  },
  {
    &quot;from&quot;: &quot;now-48h&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Last 48 hours&quot;
  },
  {
    &quot;from&quot;: &quot;now-7d&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Last 7 days&quot;
  },
  {
    &quot;from&quot;: &quot;now-30d&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Last 30 days&quot;
  },
  {
    &quot;from&quot;: &quot;now-60d&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Last 60 days&quot;
  },
  {
    &quot;from&quot;: &quot;now-90d&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Last 90 days&quot;
  },
  {
    &quot;from&quot;: &quot;now/d&quot;,
    &quot;to&quot;: &quot;now/d&quot;,
    &quot;display&quot;: &quot;Today&quot;
  },
  {
    &quot;from&quot;: &quot;now/w&quot;,
    &quot;to&quot;: &quot;now/w&quot;,
    &quot;display&quot;: &quot;This week&quot;
  },
  {
    &quot;from&quot;: &quot;now/M&quot;,
    &quot;to&quot;: &quot;now/M&quot;,
    &quot;display&quot;: &quot;This month&quot;
  },
  {
    &quot;from&quot;: &quot;now/d&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Today so far&quot;
  },
  {
    &quot;from&quot;: &quot;now/w&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Week to date&quot;
  },
  {
    &quot;from&quot;: &quot;now/M&quot;,
    &quot;to&quot;: &quot;now&quot;,
    &quot;display&quot;: &quot;Month to date&quot;
  }
]</pre>
<p>Por padrão, os dados de fluxo serão recebidos nas portas padrão para cada tipo de fluxo. Você pode alterar os IPs e as portas usadas modificando as seguintes variáveis em /etc/systemd/system/logstash.service.d/elastiflow.conf.</p>
<p>Se tiver alguma dificuldade verifique os logs do logstash:</p>
<pre class="remontti-code"># tail -f /var/log/logstash/logstash-plain.log</pre>
<p>Use também o tcpdum para verificar se seu roteador está enviando os flows.</p>
<p>Se você instalou não quer atualizar com medo de algum &#8220;BO&#8221; recomendo você desativar o repositório do elastic:</p>
<pre class="remontti-code"># vim /etc/apt/sources.list.d/elastic-7.x.list</pre>
<p>Comente &#8220;# deb https://artifacts.elastic.co/packages/7.x/apt stable main&#8221;</p>
<p><strong>Portas Padrões</strong><br />
Netflow &#8211; IPv4: 2055<br />
Netflow &#8211; IPv6: 52055<br />
sFlow   &#8211; IPv4: 6343<br />
sFlow   &#8211; IPv6: 56343<br />
IPFIX   &#8211; IPv4: 4739<br />
IPFIX   &#8211; IPv6: 54739<br />
Pode ser alterado </p>
<h3>BÔNUS &#8211; Enviando dados do RouterOS/Mikrotik</h3>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/ElastiFlow-Mikrotik.png" data-rel="lightbox-gallery-bJJrBBlk" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/ElastiFlow-Mikrotik.png" alt="" width="962" height="585" class="alignnone size-full wp-image-3389" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/ElastiFlow-Mikrotik.png 962w, https://blog.remontti.com.br/wp-content/uploads/2019/08/ElastiFlow-Mikrotik-300x182.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/ElastiFlow-Mikrotik-768x467.png 768w" sizes="auto, (max-width: 962px) 100vw, 962px" /></a><br />
Onde ether1 é a interface que vai ser monitorada, no meu caso estou coletando 4k, isso vai depender muito do hardware da sua máquina, e 200.200.200.200 seria o IP do nosso servidor.</p>
<pre class="remontti-code">/ip traffic-flow
set cache-entries=4k enabled=yes interfaces=ether1
/ip traffic-flow target
add dst-address=200.200.200.200 version=5</pre>
<p>Como não tem restrição ao acesso a porta 5601 é interessante você aplicar um firewall em seu servidor<br />
<a href="https://blog.remontti.com.br/2435" rel="noopener noreferrer" target="_blank">Modelo simples e funcional de Firewall com iptables</a></p>
<p>Parabéns! Você concluiu! Gostou?</p>
<p><center><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></center></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://github.com/robcowart/elastiflow/blob/master/INSTALL.md" rel="noopener noreferrer" target="_blank">https://github.com/robcowart/elastiflow/blob/master/INSTALL.md</a><br />
<a href="https://www.elastic.co/guide/en/kibana/current/deb.html" rel="noopener noreferrer" target="_blank">https://www.elastic.co/guide/en/kibana/current/deb.html</a></p>
<p>O post <a href="https://blog.remontti.com.br/3368">Instalação do Elastic Stack 7 + ElastiFlow no Debian 10 Buster (Bônus Traffic Flow Mikrotik/RouterOS)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/3368/feed</wfw:commentRss>
			<slash:comments>49</slash:comments>
		
		
			</item>
		<item>
		<title>Instalação do SpeedTest/OoklaServer + Speedtest Custom no Debian 10 Buster</title>
		<link>https://blog.remontti.com.br/3218</link>
					<comments>https://blog.remontti.com.br/3218#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 26 Jul 2019 20:01:06 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[account]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[buster]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[debian buster]]></category>
		<category><![CDATA[ookla]]></category>
		<category><![CDATA[ooklaserver]]></category>
		<category><![CDATA[php7]]></category>
		<category><![CDATA[php7.3]]></category>
		<category><![CDATA[speedtest]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=3218</guid>

					<description><![CDATA[<p>Instalação do SpeedTest (OoklaServer) no Debian 11/12 gerenciado pelo systemd 👆👆👆👆 Versão mais atualizada. Requisitos do servidor Speedtest de acordo com base nas informações: support.ookla.com Capacidade de Rede: &#8211; 1 Gbps de Up e&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/3218">Instalação do SpeedTest/OoklaServer + Speedtest Custom no Debian 10 Buster</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<blockquote class="wp-embedded-content" data-secret="hyQwkVUt1w"><p><a href="https://blog.remontti.com.br/6051">Instalação do SpeedTest (OoklaServer) no Debian 11/12 gerenciado pelo systemd</a></p></blockquote>
<p><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;Instalação do SpeedTest (OoklaServer) no Debian 11/12 gerenciado pelo systemd&#8221; &#8212; Remontti" src="https://blog.remontti.com.br/6051/embed#?secret=aru74vP5WC#?secret=hyQwkVUt1w" data-secret="hyQwkVUt1w" width="500" height="282" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><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;" /><br />
Versão mais atualizada.</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-ooklaserver.png" alt="" width="720" height="340" class="alignnone size-full wp-image-3295" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-ooklaserver.png 720w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-ooklaserver-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-ooklaserver-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>Requisitos do servidor Speedtest de acordo com base nas informações: <a href="https://support.ookla.com/hc/en-us/articles/234578628-Speedtest-Server-Requirements" rel="noopener noreferrer" target="_blank">support.ookla.com</a></p>
<h4>Capacidade de Rede:</h4>
<p> &#8211; 1 Gbps de Up e Down<br />
 &#8211; Exceções raras são feitas para regiões subdesenvolvidas e carentes.</p>
<h4>Hardware</h4>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-requesitos.png" alt="" width="579" height="306" class="alignnone size-full wp-image-3220" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-requesitos.png 579w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-requesitos-300x159.png 300w" sizes="auto, (max-width: 579px) 100vw, 579px" /></p>
<h4>Portas:</h4>
<p> &#8211; TCP/UDP 8080 (OoklaServer)<br />
 &#8211; TCP/UDP 5060 (OoklaServer)<br />
 &#8211; TCP 80 (HTTP Legacy)<br />
Todas as portas devem estar abertas para qualquer IP público da Internet, pois os usuários se conectarão diretamente.</p>
<h4>DNS:</h4>
<p>No exemplo vou usar o domínio teste.remontti.com.br, logo é necessário configurar seu subdomínio &#8220;teste&#8221; <a href="https://blog.remontti.com.br/308" rel="noopener noreferrer" target="_blank">em seu DNS Server</a>.</p>
<pre class="remontti-code">[...]

teste       A       45.80.50.2
            AAAA    2804:f123:bebe:cafe::2

[...]</pre>
<p><strong>Distribuição utilizada:</strong> <a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Debian 10 (Instalação limpa)</a><br />
Funciona também com Debian 9</p>
<p>Pacotes necessários</p>
<pre class="remontti-code"># su -
# apt install vim  wget unzip apt-transport-https</pre>
<p>Por segurança do servidor é recomendamos usar um usuário sem poderes de root para executar o servidor da ookla.<br />
Para isso vamos criar o usuário chamado speedtest.</p>
<pre class="remontti-code"># addgroup speedtest
# useradd -d /etc/speedtest -m -g speedtest -s /bin/bash speedtest</pre>
<p>Transforme-se no usuário speedtest que acabamos de criar.</p>
<pre class="remontti-code"># su - speedtest</pre>
<p>Vamos baixar nosso script de instalação em /etc/speedtest e executa-lo.</p>
<pre class="remontti-code">$ cd ~
$ wget https://install.speedtest.net/ooklaserver/ooklaserver.sh --no-check-certificate
$ chmod +x ooklaserver.sh
$ ./ooklaserver.sh install</pre>
<p><em>Please confirm (y/n) ></em> <strong>y</strong></p>
<pre class="remontti-code">Server Platform is linux64
This will install the Ookla server for linux64 to the current folder. Please confirm (y/n) &gt; y
Checking Directory Structure
Downloading Server Files
--2019-07-26 10:33:50--  https://install.speedtest.net/ooklaserver/stable/OoklaServer-linux64.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: 6093436 (5,8M) [binary/octet-stream]
Salvando em: “OoklaServer-linux64.tgz”

OoklaServer-linux64.tgz                 100%[============================================================================&gt;]   5,81M  2,71MB/s    em 2,1s    

2019-07-26 10:33:52 (2,71 MB/s) - “OoklaServer-linux64.tgz” salvo [6093436/6093436]

Extracting Server Files
OoklaServer
OoklaServer.properties.default
Starting OoklaServer
Daemon Started (9531)
NOTE:

We strongly recommend following instructions at

   https://www.ookla.com/support/a87011938/

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://teste.{DOMINIO}:8080</strong> e <strong>http://teste.{DOMINIO}:5060</strong> e verifique se o mesmo esta rodando (OoklaServer &#8211; It worked!)</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-7hSjsW4g" 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>Volte para o usuário root</p>
<pre class="remontti-code">$ exit</pre>
<p>Para que o Ooklaserver seja iniciado em segundo plano automaticamente, criaremos o arquivo /etc/rc.local como o comando já para iniciar nosso serviço.</p>
<pre class="remontti-code"># ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
# printf &#039;%s\n&#039; &#039;#!/bin/bash&#039; &#039;/usr/bin/su - speedtest -c &quot;/etc/speedtest/OoklaServer --daemon&quot;&#039; &#039;exit 0&#039; | tee -a /etc/rc.local</pre>
<p>De permissão para execução e ative sua inicialização</p>
<pre class="remontti-code"># chmod +x /etc/rc.local</pre>
<p>Para testarmos vamos reiniciar e verificar se o ooklaserver iniciou após reboot.</p>
<pre class="remontti-code"># reboot</pre>
<p>Acesse: <strong>http://teste.{DOMINIO}:8080</strong> para ver se o mesmo foi executado na inicialização.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-it-worked.png" data-rel="lightbox-gallery-7hSjsW4g" 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>
<h4>Servidor Web</h4>
<p>Precisamos ter um serviço web rodando e PHP, para isso vamos instalar o Apache2 + PHP7</p>
<pre class="remontti-code"># su -
# apt install apache2 libapache2-mod-php php </pre>
<p><strong> :: Dominio Virtual :: </strong></p>
<p>Crie a configuração do domínio virtual, no meu exemplo teste.remontti.com.br, qual diretório raiz será &#8220;/var/www/teste/&#8221;</p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/teste.conf</pre>
<pre class="remontti-code">&lt;virtualhost *:80&gt;
        ServerName teste.remontti.com.br
        ServerAdmin noc@remontti.com.br
        DocumentRoot /var/www/teste 
        &lt;directory /var/www/teste/ &gt;
                Options FollowSymLinks
                AllowOverride All
        &lt;/directory&gt; 
        LogLevel warn 
        ErrorLog ${APACHE_LOG_DIR}/error_teste.log
        CustomLog ${APACHE_LOG_DIR}/access_teste.log combined
&lt;/virtualhost&gt;</pre>
<p>Vamos criar nosso diretório raiz:</p>
<pre class="remontti-code"># mkdir /var/www/teste/
# echo &quot;MEU FUTURO CODIGO HTML&quot; &gt; /var/www/teste/index.php
</pre>
<p>Agora precisamos fazer o acesso web para visualizar as informações.<br />
Ajustes de segurança para o apache:</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>Ativamos o arquivo teste.conf e restartamos o apache2</p>
<pre class="remontti-code"># a2ensite teste
# systemctl restart apache2</pre>
<p>Acesse: <strong>http://teste.{DOMINIO}</strong>, se retornar uma tela &#8220;MEU FUTURO CODIGO HTML&#8221;.</p>
<h4>Certificado Válido</h4>
<p>Usamos o letsencrypt para gerar o certificado certificado gratuitamente.</p>
<pre class="remontti-code"># apt install letsencrypt python-certbot-apache</pre>
<p>Antes de gerar nossa configuração pare o apache</p>
<pre class="remontti-code"># systemctl stop apache2</pre>
<p>Altere teste.remontti.com.br para SEU.DOMINIO!</p>
<pre class="remontti-code"># letsencrypt --authenticator standalone --installer apache -d teste.remontti.com.br</pre>
<p>Responda como abaixo:</p>
<pre class="remontti-code">Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter &#039;c&#039; to
cancel): seu@email.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 at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing 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
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for teste.remontti.com.br
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/teste-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/teste-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/teste-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you&#039;re confident your site works on HTTPS. You can undo this
change by editing your web server&#039;s configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press &#039;c&#039; to cancel): 1

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://teste.remontti.com.br

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=teste.remontti.com.br
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

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 cert will expire on 2019-10-24. 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;
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Lets Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le</pre>
<p>Acesse seu domínio agora com https: <strong>https://teste.{DOMINIO}</strong>. Você não pode receber erro de certificado!</p>
<p>Para evitar que o certificado expire colocaremos o certbot para renovar o certificado, fazendo um script e colocando ele no cron.</p>
<pre class="remontti-code"># vim  /etc/speedtest/renovassl.sh</pre>
<p>Adicione</p>
<pre class="remontti-code">#!/bin/bash
# Para o apache 
/usr/bin/systemctl stop apache2

# Aguarda 10 seg (tempo do apache parar) 
sleep 10

# Renova o certificado
/usr/bin/certbot -q renew

# Aguarda o certificado renovar
sleep 30

# Altera as permissoes para o usuário speedtest conseguir ler os certificados
/usr/bin/chown speedtest. /etc/letsencrypt/ -R

# Aguarda 2 seg
sleep 2

# Restarta o apache 
/usr/bin/systemctl restart apache2
sleep 10
# Restarta o apache mais uma vez so por garantia (opcional)
/usr/bin/systemctl restart apache2

# Para o ooklaserver
/etc/speedtest/ooklaserver.sh stop 
sleep 120
# Inicia o ooklaserver
/usr/bin/su - speedtest -c &quot;/etc/speedtest/OoklaServer --daemon&quot;
</pre>
<pre class="remontti-code"># chmod +x /etc/speedtest/renovassl.sh
# chown speedtest. /etc/speedtest/renovassl.sh</pre>
<pre class="remontti-code"># echo &#039;00 00   1 * *   root    /etc/speedtest/renovassl.sh&#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"># /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   * * *   root    /etc/speedtest/renovassl.sh</pre>
<p>Restarte o cron</p>
<pre class="remontti-code"># systemctl restart cron</pre>
<p>Agora que temos nosso certificado válido e funcionando vamos utiliza-lo nas configurações do OoklaServer.</p>
<pre class="remontti-code"># vim /etc/speedtest/OoklaServer.properties</pre>
<p>Descomente a variável: <strong>OoklaServer.allowedDomains</strong> e inclua seu domínio também, em seguida procure <strong>openSSL</strong>, temos duas variáveis comentadas, descomente e aponte para o arquivo do certificado criado pelo letsencrypt.  </p>
<pre class="remontti-code"># OoklaServer.allowedDomains = *.ookla.com, *.speedtest.net
# altere ¬
OoklaServer.allowedDomains = *.ookla.com, *.speedtest.net, *.SEUDOMINIO.com.br

# ...

# openSSL.server.certificateFile = cert.pem
# openSSL.server.privateKeyFile = key.pem
# altere ¬
openSSL.server.certificateFile = /etc/letsencrypt/live/teste.SEUDOMINIO.com.br/fullchain.pem
openSSL.server.privateKeyFile = /etc/letsencrypt/live/teste.SEUDOMINIO.com.br/privkey.pem</pre>
<p>Se você tem IPv6 configurado em seu servidor, ainda no OoklaServer.properties descomente alinha &#8220;OoklaServer.useIPv6&#8221;</p>
<pre class="remontti-code"># Uncomment to bind OoklaServer to IPv6
#
OoklaServer.useIPv6 = true</pre>
<p>Vamos sobrescrevemos o arquivo default também, pois o Ooklaserver atualiza-se automaticamente e ele é o arquivo base.</p>
<pre class="remontti-code"># cp /etc/speedtest/OoklaServer.properties /etc/speedtest/OoklaServer.properties.default</pre>
<p>Também é necessário dar acesso (permissão) ao usuário speedtest a ler os arquivos do certificado em /etc/letsencrypt.</p>
<pre class="remontti-code"># chown speedtest. /etc/letsencrypt/ -R</pre>
<p>Reinicie seu servidor.</p>
<pre class="remontti-code"># reboot</pre>
<p>Agora acessamos nossa porta 8080 utilizando http: <strong>https://teste.{DOMINIO}:8080</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-https-speedtest.png" data-rel="lightbox-gallery-7hSjsW4g" 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-https-speedtest-300x202.png" alt="" width="300" height="202" class="alignnone size-medium wp-image-3257" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-https-speedtest-300x202.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-https-speedtest-768x518.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-https-speedtest.png 829w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Crie uma index.php onde posteriormente iremos configurar nosso SpeedtestCustom</p>
<pre class="remontti-code"># echo &quot;IFRAME SPEEDTESTCUSTOM&quot; &gt; /var/www/teste/index.php</pre>
<pre class="remontti-code"># vim /var/www/teste/crossdomain.xml</pre>
<pre class="remontti-code">&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;cross-domain-policy&gt;
  &lt;allow-access-from domain=&quot;*.speedtest.net&quot; /&gt;
  &lt;allow-access-from domain=&quot;*.ookla.com&quot; /&gt;
  &lt;allow-access-from domain=&quot;*.SEUDOMINIO.com.br&quot; /&gt;
  &lt;allow-access-from domain=&quot;*.OUTRO_SETIVER_OU_DELETE_ESSALINHA&quot; /&gt;
&lt;/cross-domain-policy&gt;</pre>
<p>Servidor esta pronto para passar nos testes! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h4>Testes</h4>
<p>Acesse <a href="https://www.ookla.com/pt/host-tester" rel="noopener noreferrer" target="_blank">https://www.ookla.com/pt/host-tester</a> e preencha com as informações do seu servidor:</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest.png" data-rel="lightbox-gallery-7hSjsW4g" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest.png" alt="" width="883" height="690" class="alignnone size-full wp-image-5358" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest.png 883w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-300x234.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-768x600.png 768w" sizes="auto, (max-width: 883px) 100vw, 883px" /></a></p>
<p><strong>Submit!</strong></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest_result.png" data-rel="lightbox-gallery-7hSjsW4g" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest_result.png" alt="" width="1008" height="750" class="alignnone size-full wp-image-5359" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest_result.png 1008w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest_result-300x223.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest_result-768x571.png 768w" sizes="auto, (max-width: 1008px) 100vw, 1008px" /></a></p>
<h4>Criando uma conta</h4>
<p>Se você passou nos testes é hora de criar sua conta no <a href="https://account.ookla.com/register/servers" rel="noopener noreferrer" target="_blank">ookla.com</a> e fazer a solicitação para virar um host! <a href="https://account.ookla.com/register/servers" rel="noopener noreferrer" target="_blank">https://account.ookla.com/register/servers</a><br />
Se você já tem conta acesse: <a href="https://account.ookla.com/servers/create" rel="noopener noreferrer" target="_blank">https://account.ookla.com/servers/create</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-register.png" data-rel="lightbox-gallery-7hSjsW4g" 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-register-150x150.png" alt="" width="150" height="150" class="alignnone size-thumbnail wp-image-3270" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-register-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-register-160x160.png 160w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-register-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-register2.png" data-rel="lightbox-gallery-7hSjsW4g" 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-register2-150x150.png" alt="" width="150" height="150" class="alignnone size-thumbnail wp-image-3271" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-register2-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-register2-160x160.png 160w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-register2-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-register3.png" data-rel="lightbox-gallery-7hSjsW4g" 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-register3-150x150.png" alt="" width="150" height="150" class="alignnone size-thumbnail wp-image-3272" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-register3-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-register3-160x160.png 160w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-register3-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a></p>
<h4>Cadastro</h4>
<p>Criado sua conta responta seu e-mail de verificação e logue em sua conta: <a href="https://account.ookla.com/" rel="noopener noreferrer" target="_blank">https://account.ookla.com/</a></p>
<p>Clique em <strong>Go To Servers</strong>, e <strong>aceite os Termos</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-go-to-server.png" data-rel="lightbox-gallery-7hSjsW4g" 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-go-to-server-300x172.png" alt="" width="300" height="172" class="alignnone size-medium wp-image-3276" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-go-to-server-300x172.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-go-to-server-768x441.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-go-to-server-1024x588.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-go-to-server.png 1223w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Clique em <strong>Add Server</strong> preencha com os seus dados e do servidor. </p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-add-server-1.png" data-rel="lightbox-gallery-7hSjsW4g" 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-add-server-1.png" alt="" width="1234" height="1297" class="alignnone size-full wp-image-5360" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-add-server-1.png 1234w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-add-server-1-285x300.png 285w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-add-server-1-974x1024.png 974w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-add-server-1-768x807.png 768w" sizes="auto, (max-width: 1234px) 100vw, 1234px" /></a><br />
Agora basta aguardar alguns dias pela aprovação, você receberá um e-mail lhe avisado (se não for aprovado eles lhe dirão porque). Boa sorte!</p>
<h4>SpeedtestCustom</h4>
<p>Acesse <a href="https://account.speedtestcustom.com" rel="noopener noreferrer" target="_blank">https://account.speedtestcustom.com</a> e resgistre um &#8220;Free Plan&#8221;<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-1.png" data-rel="lightbox-gallery-7hSjsW4g" 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-custom-1-1024x736.png" alt="" width="1024" height="736" class="alignnone size-large wp-image-3283" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-1-1024x736.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-1-300x216.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-1-768x552.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-1.png 1235w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-2.png" data-rel="lightbox-gallery-7hSjsW4g" 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-custom-2-1024x715.png" alt="" width="1024" height="715" class="alignnone size-large wp-image-3284" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-2-1024x715.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-2-300x209.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-2-768x536.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-2.png 1265w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-3.png" data-rel="lightbox-gallery-7hSjsW4g" 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-custom-3-1024x707.png" alt="" width="1024" height="707" class="alignnone size-large wp-image-3285" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-3-1024x707.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-3-300x207.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-3-768x530.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-3.png 1257w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>Finalizando ajustamos o arquivo index.php</p>
<pre class="remontti-code">#  vim /var/www/teste/index.php </pre>
<p>WordPress ta bugando ao ler o codigo html pegue ele aqui: <a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/index.zip">index</a></p>
<pre class="remontti-code">&lt;?php
#Altere as variáveis
$titulo = &quot;Remontti - SpeedTest&quot;;
$cor_fundo = &quot;1D1D1D&quot;; //A mesma que vc anotou la do custom
$cor_texto = &quot;067980&quot;; //A mesma que vc anotou la do custom
$url_custom = &quot;https://remontti.speedtestcustom.com&quot;; // Seu link no custom
?&gt;
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;&lt;?php echo &quot;$titulo &quot;; ?&gt;&lt;/title&gt;
&lt;meta charset=&quot;utf-8&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;link rel=&quot;shortcut icon&quot; href=&quot;/favicon.ico&quot; type=&quot;image/x-icon&quot;&gt;
&lt;link rel=&quot;icon&quot; href=&quot;/favicon.ico&quot; type=&quot;image/x-icon&quot;&gt;
&lt;style type=&quot;text/css&quot;&gt;
  html, body {
    font-family: Lucida Grande, sans-serif;
    color: #&lt;?php echo &quot;$cor_texto&quot;; ?&gt;;
    background: #&lt;?php echo &quot;$cor_fundo&quot;; ?&gt;;
  }
  .iframe-placeholder {
    background: url(&#039;data:image/svg+xml;charset=utf-8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; width=&quot;100%&quot; height=&quot;100%&quot; viewBox=&quot;0 0 100% 100%&quot;&gt;&lt;text fill=&quot;%23&lt;?php echo &quot;$cor_texto&quot;; ?&gt;&quot; x=&quot;50%&quot; y=&quot;50%&quot; font-family=&quot;\&#039;Lucida Grande\&#039;, sans-serif&quot; font-size=&quot;38&quot; text-anchor=&quot;middle&quot;&gt;Carregando&lt;/text&gt;&lt;/svg&gt;&#039;) 0px 0px no-repeat;
  }
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;iframe class=&quot;iframe-placeholder&quot; width=&quot;100%&quot; height=&quot;600px&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; src=&quot;&lt;?php echo &quot;$url_custom&quot;; ?&gt;&quot;&gt;&lt;/iframe&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>https://teste.DOMINIO/<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-4.png" data-rel="lightbox-gallery-7hSjsW4g" 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-custom-4-300x212.png" alt="" width="300" height="212" class="alignnone size-medium wp-image-3291" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-4-300x212.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-4-768x542.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-4-1024x722.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-custom-4.png 1048w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Parabéns! Você concluiu! Gostou?</p>
<p><center><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></center></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/3218">Instalação do SpeedTest/OoklaServer + Speedtest Custom no Debian 10 Buster</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/3218/feed</wfw:commentRss>
			<slash:comments>145</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor DNS seguro com Bind9  (Recursivo, Autoritativo e Reverso) + Fail2ban + nftables no Debian 10 Buster [Descontinuado]</title>
		<link>https://blog.remontti.com.br/3086</link>
					<comments>https://blog.remontti.com.br/3086#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Thu, 18 Jul 2019 19:17:51 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[allow-transfer]]></category>
		<category><![CDATA[Autoritativo]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[bind9]]></category>
		<category><![CDATA[buster]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[debian buster]]></category>
		<category><![CDATA[debian stretch]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Fail2ban]]></category>
		<category><![CDATA[ipv4]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[Recursivo]]></category>
		<category><![CDATA[Reverso]]></category>
		<category><![CDATA[seguro]]></category>
		<category><![CDATA[Servidor]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=3086</guid>

					<description><![CDATA[<p>Este tutorial foi atualizado: Acesse Servidor DNS Bind9 &#8211; Recursivo + Autoritativo DNSSEC + Reverso + RPZ + Fail2ban + nftables + Zabbix no Debian 11 Bullseye Não utilize este tutorial! Não apaguei o&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/3086">Servidor DNS seguro com Bind9  (Recursivo, Autoritativo e Reverso) + Fail2ban + nftables no Debian 10 Buster [Descontinuado]</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1><font color="red"><strong>Este tutorial foi atualizado: </strong></font></h1>
<h3>Acesse <a href="https://blog.remontti.com.br/5958">Servidor DNS Bind9 &#8211; Recursivo + Autoritativo DNSSEC + Reverso + RPZ + Fail2ban + nftables + Zabbix no Debian 11 Bullseye</a></h3>
<h4><font color="red"><strong>Não utilize este tutorial! Não apaguei o mesmo para deixa-lo para fins de estudos em cima do Debian 10.</strong></font></h4>
<hr>
<p>(Descontinuado)</p>
<hr>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/bind9-debina-10-buster-nftables-fail2ban.png" alt="" width="720" height="340" class="alignnone size-full wp-image-3206" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/bind9-debina-10-buster-nftables-fail2ban.png 720w, https://blog.remontti.com.br/wp-content/uploads/2019/07/bind9-debina-10-buster-nftables-fail2ban-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/bind9-debina-10-buster-nftables-fail2ban-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p><a href="https://pt.wikipedia.org/wiki/BIND" rel="noopener noreferrer" target="_blank">BIND</a> (Berkeley Internet Name Domain ou, como chamado previamente, Berkeley Internet Name Daemon) é o servidor para o protocolo DNS mais utilizado na Internet, especialmente em sistemas do tipo Unix, onde ele pode ser considerado um padrão de fato.</p>
<p>Ante de iniciar a instalação é preciso saber como funciona um DNS:</p>
<p><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/ACGuo26MswI" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/epWv0-eqRMw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><strong>Requesitos:</strong><br />
<strong><a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Debian 10 Stretch &#8211; Instalação Limpa</a></strong></p>
<p><strong>DNS RECURSIVO</strong><br />
O DNS recursivo é responsável pela resolução de nomes, começando sempre com consultar recursivas nos servidores raízes. Para melhorar a eficiência e reduzir o tráfego DNS na Internet e aumentar o desempenho em aplicativos de usuário final, fazendo o cache DNS, armazenando resultados de consulta DNS por um período de tempo determinado na configuração (tempo de vida determinado pelo autoritativo do domínio consultado).</p>
<p><strong>DNS AUTORITIVO</strong><br />
É o serviço DNS que possui autoridade sob um domínio. Assim como servidor ns1.remontti.com.br é o DNS autoritativo de meu domínio remontti.com.br, é ele que sempre vai responder qualquer subdomínio &#8220;hosts&#8221; ex blog.remontti.com.br.<br />
E esse servidor que você vai apontar nas configurações de um domínio, exemplo registrado no registro.br.</p>
<p><strong>DNS REVERSO</strong><br />
DNS atua resolvendo o nome do domínio/subdomínio para um endereço IP correspondente. Já o DNS Reverso ele resolve o endereço IP buscando o nome de domínio associado ao host.<br />
Ou seja, quando temos disponível o endereço IP de um host e não sabemos o endereço do domínio(nome dado à máquina ou outro equipamento que acesse uma rede), tentamos resolver o endereço IP através do DNS reverso que procura qual nome de domínio está associado aquele endereço.<br />
Os servidores que utilizam o DNS Reverso conseguem verificar a autenticidade de endereços, verificando se o endereço IP atual corresponde ao endereço IP informado pelo servidor DNS.<br />
Isto evita que alguém utilize um domínio que não lhe pertence para enviar spam, por exemplo (pois isso que ele é importante para servidores de e-mail).</p>
<p><strong>DICAS</strong><br />
&#8211; Para que o DNS Reverso funcione no registro.br é importante que você já tenha configurado o DNS autoritativo, e aguarde sua publicação antes de fazer a designação. (Normalmente demoram 4 horas)<br />
&#8211; Se você é um provedor, o correto seria você ter dois servidores DNS em sua rede, uma Master e outro Slave. Neste tutoria foi explicar como criar os dois!</p>
<p><strong>PERGUNTAS FREQUENTES:</strong><br />
&#8211; <strong>Preciso montar dois servidores?</strong><br />
  Sim/Não, para a configuração do DNS autoritativo/reverso são necessários apontar dois endereços, no entanto nada impede de configurar dois IPs no mesmo servidor. Em alguns caso vejo as pessoas virtualizar 2 servidores (apenas DNS) na mesma maquina de virtualização, se pensarmos que se o servidor de virtualização para nada adianta ter 2 servidores, neste caso quem sabe seria mais interessante ter alguma outra aplicação rodando com o servido slave (pensando pelo lado aproveitamento de hardware). Então vai da sua realidade.</p>
<p>&#8211; <strong>Preciso separar o recusivo do autoritativo/reverso?</strong><br />
  Não! Ao não ser que você seja um grande data center com centenas de domínios autoritativos não vejo o motivo para separa-los. Na maioria das vezes que vi isso acontecer quem fez isso é porque não sabe como fechar as consultas recursivas para o mundo. E é ai que neste tutorial entra o fail2ban como a cereja do bolo.</p>
<p>Vamos iniciar com a instalação do servidor Master, lembrando que para isso estou usando a Distribuição linux Debian 10, com uma instalação que eu chamo de limpa.</p>
<h3>Ex.: ASN &#8211; CIDR/22 </h3>
<p>Nesse exemplo vou usar um bloco /22, porém mais a baixo vou deixar um exemplo também para você que é dono destes &#8220;/22&#8221; e vai delegar um bloco menor que /24 para outra empresa que queira ter seu próprio servidor DNS resolvendo o reverso desse bloco delegado.</p>
<p><strong>Bloco recebido</strong>:  IPv4 &#8211; 45.80.48.0/22  IPv6 &#8211; 2804:f123::/32<br />
<strong>Domínio autoritativo:</strong>: remontti.net.br</p>
<p>Antes de mais nada o mínimo de conhecimento é saber realizar cálculos de sub-redes.</p>
<p>:: ipcalc ::</p>
<pre class="remontti-code">root@remontti:~#  apt install ipcalc
root@remontti:~# ipcalc 45.80.48.0/22
Address:   45.80.48.0           00101101.01010000.001100 00.00000000
Netmask:   255.255.252.0 = 22   11111111.11111111.111111 00.00000000
Wildcard:  0.0.3.255            00000000.00000000.000000 11.11111111
=&gt;
Network:   45.80.48.0/22        00101101.01010000.001100 00.00000000
HostMin:   45.80.48.1           00101101.01010000.001100 00.00000001
HostMax:   45.80.51.254         00101101.01010000.001100 11.11111110
Broadcast: 45.80.51.255         00101101.01010000.001100 11.11111111
Hosts/Net: 1022                  Class A</pre>
<p>:: ip6calc ::</p>
<pre class="remontti-code">root@remontti:~# apt install python-ipaddr wget
root@remontti:~# wget https://blog.remontti.com.br/arquivos/Home/ip6calc -O /bin/ip6calc
root@remontti:~# chmod +x /bin/ip6calc
root@remontti:~# ip6calc 2804:f123::/32
Address:
  (Compressed)  2804:f123::/32
    (Exploded)  2804:f123:0000:0000:0000:0000:0000:0000/32
      (Binary)  0010100000000100:1111000100100011:0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000000/32
                ↑          ↑                 ↑  ↑                ↑        ↑       ↑                                                  ↑                ↑
                /1         /12              /29 /32              /48      /56     /64                                                /112             /128
Address type is: global unicast

Netmask:
  (Compressed)  ffff:ffff::
    (Exploded)  ffff:ffff:0000:0000:0000:0000:0000:0000
      (Binary)  1111111111111111:1111111111111111:0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000000
First address assignable:
  (Compressed)  2804:f123::
    (Exploded)  2804:f123:0000:0000:0000:0000:0000:0000
      (Binary)  0010100000000100:1111000100100011:0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000000
Last address assignable:
  (Compressed)  2804:f123:ffff:ffff:ffff:ffff:ffff:ffff
    (Exploded)  2804:f123:ffff:ffff:ffff:ffff:ffff:ffff
      (Binary)  0010100000000100:1111000100100011:1111111111111111:1111111111111111:1111111111111111:1111111111111111:1111111111111111:1111111111111111

Total number of addresses: 79228162514264337593543950336 (2^96 or 7.9e+28)

First address assignable (excluding &quot;subnet-router anycast&quot; of RFC 2526):
  (Compressed)  2804:f123::1
    (Exploded)  2804:f123:0000:0000:0000:0000:0000:0001
      (Binary)  0010100000000100:1111000100100011:0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000001
Total number of addresses (Excluding &quot;reserved&quot; addresses): 79228162514264337593543950335 (7.9e+28)

This prefix can contain one of the following:
   * 4294967296 (2^32 or 4.3e+09) subnets /64
   * 16777216 (2^24 or 1.7e+07) subnets /56
   * 65536 (2^16 or 6.6e+04) subnets /48</pre>
<p>Para ilustrar &#8220;nossa rede&#8221; conto com os seguintes servidore:</p>
<p>45.80.48.0/22  IPv6 &#8211; 2804:f123::/32</p>
<p><strong>ROUTER GW</strong> -> 45.80.48.1 / 2804:f123:bebe:cafe::1 (cpd)<br />
<strong>SERV DNS MASTER</strong> -> 45.80.48.2 / 2804:f123:bebe:cafe::2 (ns1)<br />
<strong>SERV DNS SLAVE </strong>-> 45.80.48.3 / 2804:f123:bebe:cafe::3 (ns2)<br />
<strong>SERV WEB + FTP</strong> -> 45.80.48.4 / 2804:f123:bebe:cafe::4 (www,ftp)<br />
<strong>SERV ZABBIX + phpIPam</strong> -> 45.80.48.5 / 2804:f123:bebe:cafe::5 (zabbix,phpipam)<br />
<strong>SERV E-MAILS</strong> -> 45.80.48.6 / 2804:f123:bebe:cafe::6 (mail,imap,pop,smtp,mx,dkim)</p>
<p>Dentro da rede ainda conto com alguns blocos de IPs inválidos <strong>192.168.0.0/16,  172.16.0.0/12, 100.64.0.0/10 e 10.0.0.0/8 </strong> utilizando NAT que por ventura também preciso autoriza-los a fazer consultas recursivas no servidores.</p>
<p>Tenha sua interface de rede configurada corretamente.</p>
<pre class="remontti-code"># vim /etc/network/interfaces</pre>
<pre class="remontti-code"># This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet static
        address 45.80.48.2/28
        gateway 45.80.48.1
        dns-nameservers 127.0.0.1
        dns-search localhost

iface enp0s3 inet6 static
        pre-up modprobe ipv6
        address 2804:f123:bebe:cafe::2
        netmask 64
        gateway 2804:f123:bebe:cafe::1</pre>
<h3>MASTER (NS1)</h3>
<pre class="remontti-code"> # su -
# apt install bind9 dnsutils</pre>
<p>Pronto! O servidor recursivo já está funcionando, porém ele está aberto, e isso não é nada legal!<br />
Você não vai querer &#8220;qualquer um&#8221; utilizando seu servidor para resolver nomes. Resolveremos isso mais a frente no arquivo named.conf.options.</p>
<p>Alteramos o DNS do servidor fazendo com que ele consulte em si próprio. Essa alteração deve ser feita no arquivo /etc/resolv.conf.</p>
<pre class="remontti-code"># echo &quot;nameserver 127.0.0.1&quot; &gt; /etc/resolv.conf </pre>
<p>Para descobrir se seu servidor esta resolvendo nomes use o comando dig.</p>
<pre class="remontti-code"># dig google.com @localhost</pre>
<p>Retornará algo como:</p>
<pre class="remontti-code">[...]

;; ANSWER SECTION:
google.com.             300     IN      A       172.217.162.110

[...]</pre>
<p>Os arquivos de configuração do bind ficam no diretório <strong>/etc/bind/</strong> e agora no Debian 10 Buster também separando os root servers em <strong>/usr/share/dns/</strong></p>
<pre class="remontti-code"># cd /etc/bind</pre>
<p>Iremos alterar o <strong>named.conf.options</strong>, o próprio nome já se auto descreve o que vamos encontrar nele.<br />
Sempre gosto de preservar o arquivo original, então fizemos um backup antes de modifica-lo.</p>
<pre class="remontti-code"># cp /etc/bind/named.conf.options /etc/bind/named.conf.options.bkp
# echo &gt; named.conf.options</pre>
<p>Aqui vai uma dica para que usa Windows + Putty, tome cuidado ao colar, principalmente quem usa Windows 10 &#8220;ele copia caracteres imaginários que você não vê!&#8221;.<br />
Recomento usar o <a href="https://www.bitvise.com/ssh-client-download" rel="noopener noreferrer" target="_blank">Bitvise SSH Client</a> que é muito superior</p>
<p>Explicação comentada no arquivo.</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<pre class="remontti-code">// ACL &quot;autorizados&quot; vão ficar os ips que são autorizados a fazer
// consultas recursivas neste servidor.
// Neste caso vou incluir os ips que foram nos delegados bem como de localhost e IPs privados
acl autorizados {
        127.0.0.1;
        ::1;
        45.80.48.0/22;
        2804:f123::/32;
        192.168.0.0/16;
        172.16.0.0/12;
        100.64.0.0/10;
        10.0.0.0/8;
};

options {
    // O diretório de trabalho do servidor
    // Quaisquer caminho não informado será tomado como  padrão este diretório
    directory &quot;/var/cache/bind&quot;;

    //Suporte a DNSSEC
    dnssec-enable yes;
    dnssec-validation auto;

    // Conforme RFC1035
    // https://www.ietf.org/rfc/rfc1035.txt
    auth-nxdomain no;

    // Respondendo para IPv4 e IPv6
    // Porta 53 estará aberta para ambos v4 e v6
    listen-on { any; };
    listen-on-v6 { any; };

    // Limitação da taxa de resposta no sistema de nomes de domínio (https://kb.isc.org/docs/aa-00994)
    // Se você esta montando um servido apenas para autoritativo descomente as linhas a baixo.
    //rate-limit {
    //    responses-per-second 15;
    //    window 5;
    //};

    // Melhora o desempenho do servidor, reduzindo os volumes de dados de saída.
    // O padrão BIND é (no) não.
    minimal-responses yes;

    // Especifica quais hosts estão autorizados a fazer consultas
    // recursivas através deste servidor.
    // Aqui que você vai informar os IPs da sua rede que você irá permitir consultar os DNS.
    allow-recursion {
        autorizados;
    };

    // Endereço estão autorizados a emitir consultas ao cache local,
    // sem acesso ao cache local as consultas recursivas são inúteis.
    allow-query-cache {
        autorizados;
    };

    // Especifica quais hosts estão autorizados a fazer perguntas DNS comuns.
    allow-query { any; };

    // Especifica quais hosts estão autorizados a receber transferências de zona a partir do servidor.
    // Seu servidor Secundário, no nosso ex vou deixar então o ips dos dois servidores v4 e v6.
    allow-transfer {
        45.80.48.3;
        2804:f123:bebe:cafe::3;
    };
    also-notify {
        45.80.48.3;
        2804:f123:bebe:cafe::3;
    };

    // Esta opção faz com que o servidor slave ao fazer a transferência de zonas
    // mastes deste servidor não compile o arquivo, assim no outro servidor o arquivo
    // da zona terá um texto &quot;puro&quot;
    masterfile-format text;

    // Para evitar que vase a versao do Bind, definimos um nome
    // Reza a lenda que deixar RR DNS Server seu servidor nunca sofrerá ataques.
    version &quot;RR DNS Server&quot;;
};</pre>
<p>Legal agora o servidor Recursivo já está funcionando e limitando os IPs que poderão realizar consultas ao mesmo.<br />
Caso você não queria seu servidor sendo recursivo altere na ACL autorizados deixando apenas 127.0.0.1 e ::1.</p>
<p>Se seu servidor não tiver IPv6? (Que triste rsrsrs) Recomendo que desative o ipv6 no bind.</p>
<pre class="remontti-code"># vim /etc/default/bind9</pre>
<p>Adicione um -4 em OPTIONS.</p>
<pre class="remontti-code">OPTIONS=&quot;-u bind&quot;
#para
OPTIONS=&quot;-4 -u bind&quot;</pre>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<p>Altere listen-on-v6 para none.</p>
<pre class="remontti-code">listen-on-v6 { any; };
#para:
listen-on-v6 { none; };</pre>
<p>Toda alteração feita no bind para ter efeito é necessário restartar o serviço.</p>
<pre class="remontti-code"># systemctl restart bind9</pre>
<p>Se desejar remover os comentários do named.conf.options execute:</p>
<pre class="remontti-code"># cat /etc/bind/named.conf.options |grep -v &quot;//&quot; &gt; /tmp/named.conf.options ; mv /tmp/named.conf.options /etc/bind/</pre>
<p>Para verificar se seu arquivo tem algum erro use o comando named-checkconf</p>
<pre class="remontti-code"># named-checkconf /etc/bind/named.conf.options</pre>
<p>Se nada retornar é porque não tem nenhum erro.<br />
Vou deixar proposital mente faltando um &#8220;;&#8221; depois do 45.80.48.0/22. Veja o que retornou um altera dizendo que falta ponto virgula antes do  IPv6, ou seja onde esta o IPv4/22.</p>
<pre class="remontti-code">/etc/bind/named.conf.options:5: missing &#039;;&#039; before &#039;2804:f123::&#039;</pre>
<p>Verifique também o status do bind para ver se o mesmo era rodando.</p>
<pre class="remontti-code"># systemctl restart bind9
# systemctl status bind9</pre>
<p>Verifique se está: &#8220;active (running)&#8221;</p>
<pre class="remontti-code">● bind9.service - BIND Domain Name Server
   Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-07-19 14:17:09 -03; 4s ago
     Docs: man:named(8)
  Process: 706 ExecStart=/usr/sbin/named $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 707 (named)
    Tasks: 4 (limit: 2359)
   Memory: 11.9M
   CGroup: /system.slice/bind9.service
           └─707 /usr/sbin/named -u bind</pre>
<p>Antes configurar o Autoritativo e Reverso precisamos pensar na segurança do Recursivo.<br />
Para isso utilizaremos o Fail2Ban e fazer algumas alterações para deixa-lo bem &#8220;nervoso&#8221;!</p>
<h3>Fail2Ban + nftables</h3>
<p>Fail2Ban é uma estrutura de software de prevenção de intrusões que protege os servidores de computadores contra ataques de força bruta, que opera monitorando arquivos de logs. Sendo o mais comum usado para bloquear endereços IPs selecionados que podem pertencer a hosts que estão tentando violar a segurança.</p>
<pre class="remontti-code"># apt install nftables fail2ban</pre>
<p>Como o iptables está sendo substituído por nftables começando com o Debian Buster, vamos configurar o Fail2Ban para usar o nftables como padrão.<br />
Mas vou ir além em vez de usar o filtro multiport vou setar allports e modifica-lo para que quando uma tentativa de violação acontecer o Fail2Ban crie uma regra de firewall que dropa definitivamente o IP e não apenas fechando a porta do serviço para &#8220;invasor&#8221;.</p>
<pre class="remontti-code"># vim /etc/fail2ban/jail.conf</pre>
<p>Procure por &#8220;banaction = iptables-multiport&#8221; e &#8220;banaction_allports = iptables-allports&#8221; e altere seu valor para &#8220;nftables-allports&#8221;:</p>
<pre class="remontti-code">#banaction = iptables-multiport
#banaction_allports = iptables-allports
banaction = nftables-allports
banaction_allports = nftables-allports</pre>
<p>Altere o modo de bloqueio em nftables-allports.conf para fazer que ele de um &#8220;drop all&#8221;.</p>
<pre class="remontti-code"># vim /etc/fail2ban/action.d/nftables-allports.conf</pre>
<p>Procure por nftables_mode = meta l4proto <protocol> e altere deixando seu valor vazio:</p>
<pre class="remontti-code">#nftables_mode = meta l4proto &lt;protocol&gt;
nftables_mode =</pre>
<p>Em nftables-common.conf alteraremos o padrão de reject para drop</p>
<pre class="remontti-code"># vim /etc/fail2ban/action.d/nftables-common.conf</pre>
<p>Procure por &#8220;blocktype = reject&#8221; e altere seu valor para &#8220;drop&#8221;.</p>
<pre class="remontti-code">#blocktype = reject
blocktype = drop</pre>
<p>Melhorias feitas, precisamos ativar o filtro para ler os logs do bind, porém ao ativar o filtro named-refused me deparei com seu não funcionamento, e quebrando a cabeça descobri que os logs do bind estão diferente e a expressão regular do filtro está errada. Os desenvolvedores do fail2ban já <a href="https://github.com/fail2ban/fail2ban/commit/5a65d9fa1e7713643059b8969981b5df431c4e8c" rel="noopener noreferrer" target="_blank">fizeram a correção</a>, mas acredito que irá levar um tempo para o pessoal do Debian fazer um novo empacotamento.<br />
A correção pode ser feita editando o arquivo /etc/fail2ban/filter.d/named-refused.conf</p>
<pre class="remontti-code">- prefregex = ^%(__line_prefix)s( error:)?\s*client &lt;HOST&gt;#\S+( \([\S.]+\))?: &lt;F-CONTENT&gt;.+&lt;/F-CONTENT&gt;$
+ prefregex = ^%(__line_prefix)s( error:)?\s*client( @[0-9a-z]+)? &lt;HOST&gt;#\S+( \([\S.]+\))?: &lt;F-CONTENT&gt;.+&lt;/F-CONTENT&gt;$</pre>
<p>Porém como eu vou ser mais &#8220;bruto&#8221; no filtro. Vou criar nosso próprio filtro bind9, vamos lá!</p>
<pre class="remontti-code"># vim /etc/fail2ban/filter.d/bind9.conf</pre>
<p>Adicone no arquivo:</p>
<pre class="remontti-code"># Fail2Ban filter file for named (bind9.11).
#

[Definition]

# Daemon name
_daemon=named

# Shortcuts for easier comprehension of the failregex

__pid_re=(?:\[\d+\])
__daemon_re=\(?%(_daemon)s(?:\(\S+\))?\)?:?
__daemon_combs_re=(?:%(__pid_re)s?:\s+%(__daemon_re)s|%(__daemon_re)s%(__pid_re)s?:)

#       hostname       daemon_id         spaces
# this can be optional (for instance if we match named native log files)
__line_prefix=(?:\s\S+ %(__daemon_combs_re)s\s+)?

prefregex = ^%(__line_prefix)s( error:)?\s*client( @[0-9a-z]+)? &lt;HOST&gt;#\S+( \([\S.]+\))?: &lt;F-CONTENT&gt;.+&lt;/F-CONTENT&gt;$

failregex = ^(view (internal|external): )?query(?: \(cache\))? &#039;.*&#039; denied\s*$
            ^zone transfer &#039;\S+/AXFR/\w+&#039; denied\s*$
            ^bad zone transfer request: &#039;\S+/IN&#039;: non-authoritative zone \(NOTAUTH\)\s*$

ignoreregex =

# DEV Notes:
# Author: Rudimar Remontti</pre>
<p>Ativamos o filtro que criamos, e definir um tempo de banimento por 24h você pode ajustar para mais se achar necessário. E &#8220;maxretry&#8221; que é a quantidade de tentativas para 1.</p>
<pre class="remontti-code"># vim /etc/fail2ban/jail.d/bind9.conf</pre>
<p>Adicione no arquivo:</p>
<pre class="remontti-code">[bind9]
enabled  = true
port     = domain,953
protocol = tcp
logpath  = /var/log/named/security.log
bantime  = 24h
maxretry = 1</pre>
<p>Vale lembrar que o filtro de SSH já vem ativo por padrão em &#8220;/etc/fail2ban/jail.d/defaults-debian.conf&#8221;.</p>
<p>Precisamos fazer o bind gerar os logs com tentativas de consultas negadas (denied), incluído logging {&#8230;} no arquivo named.conf.</p>
<pre class="remontti-code"># vim /etc/bind/named.conf</pre>
<pre class="remontti-code">// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the 
// structure of BIND configuration files in Debian, *BEFORE* you customize 
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local

logging {

    channel security_file {
        file &quot;/var/log/named/security.log&quot; versions 3 size 30m;
        severity dynamic;
        print-time yes;
    };

    channel file_log {
        file &quot;/var/log/named/named.log&quot; versions 2 size 50k;
        severity info;
        print-time yes;
        print-severity yes;
        print-category yes;
    };

    channel errors_syslog {
        syslog daemon;
        severity warning;
    };

    category security { security_file; };
    category dnssec { errors_syslog; };
    category default { file_log; };
    category lame-servers { null; };
    category edns-disabled { null; };
    category resolver { null; };
    category unmatched { null; };

};

include &quot;/etc/bind/named.conf.options&quot;;
include &quot;/etc/bind/named.conf.local&quot;;
include &quot;/etc/bind/named.conf.default-zones&quot;;</pre>
<p>Crie o diretório onde o bind vai registrar seus logs e de permissão para que possa gravar nesta pasta.</p>
<pre class="remontti-code"># mkdir /var/log/named/
# chown bind. /var/log/named/</pre>
<p>É importante ativar o nftables na inicialização e restartar os serviços para que nossas configurações sejam interpretadas.</p>
<pre class="remontti-code"># systemctl enable nftables
# systemctl restart bind9
# systemctl restart nftables
# systemctl restart fail2ban</pre>
<p>Para visualizar seu firewall use o comando:</p>
<pre class="remontti-code"># nft list ruleset</pre>
<p>Note que ja temos alguns IPs sendo dropado por tentativas de consulta no DNS e SSH.</p>
<pre class="remontti-code">table inet filter {
        set f2b-sshd {
                type ipv4_addr
                elements = { 92.63.194.90, 142.44.130.186,
                             191.54.227.13 }
        }

        set f2b-bind9 {
                type ipv4_addr
                elements = { 71.6.199.23, 185.94.111.1 }
        }

        chain input {
                type filter hook input priority 0; policy accept;
                ip saddr @f2b-bind9 drop
                ip saddr @f2b-sshd drop
        }

        chain forward {
                type filter hook forward priority 0; policy accept;
        }

        chain output {
                type filter hook output priority 0; policy accept;
        }
}</pre>
<p>Alguns comandos legais do fail2ban</p>
<pre class="remontti-code"># fail2ban-client status</pre>
<p>Veja quais filtros estão ativos</p>
<pre class="remontti-code">Status
|- Number of jail:      2
`- Jail list:   bind9, sshd</pre>
<pre class="remontti-code">fail2ban-client status NOME_FILTRO</pre>
<p>Ex:</p>
<pre class="remontti-code"># fail2ban-client status bind9
Status for the jail: bind9
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     2
|  `- File list:        /var/log/named/security.log
`- Actions
   |- Currently banned: 2
   |- Total banned:     2
   `- Banned IP list:   71.6.199.23 185.94.111.1

# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 3
   |- Total banned:     3
   `- Banned IP list:   142.44.130.186 191.54.227.13 92.63.194.90</pre>
<p>Para remover um IP que foi bloqueado basta:</p>
<pre class="remontti-code"># fail2ban-client set bind9 unbanip IPADDRESS</pre>
<p>Pronto agora já temos um servidor DNS com um nível de segurança bem elevado!</p>
<h3>Autoritativo (ns1)</h3>
<p>Agora é aquela hora que precisamos ter planejado o que iríamos fazer com nosso IPs recebidos.</p>
<pre class="remontti-code">No meu exemplo vai ficar assim:
- 45.80.48.0/27   - Servidores
- 45.80.48.32/27  - Roteamento
- 45.80.48.64/26  - Clientes com IP Fixo
- 45.80.48.128/25 - CGNAT
- 45.80.49.0/26   - NOC (Gerência)
- 45.80.49.64/26  - Clientes Delegação
- 45.80.49.128/25 - Clientes dinâmico
- 45.80.50.0/24   - Clientes dinâmico
- 45.80.51.0/24   - Clientes dinâmico

# Quebrei meu ex de forma q não fique simples para que possamos dar nomes sugestivos aos IPs, adapte a sua realidade</pre>
<p>Para ficar organizado vou criar a pasta master-aut onde ficará os arquivos de hosts dos domínios autoritativos.</p>
<pre class="remontti-code"># mkdir /var/cache/bind/master-aut</pre>
<p>Crie o arquivo remontti.net.br.hosts na pasta master-rev. Ajuste remontti.net.br para seu domínio.</p>
<pre class="remontti-code"># vim /var/cache/bind/master-aut/remontti.net.br.hosts</pre>
<pre class="remontti-code">$ORIGIN .
$TTL 86400      ; 1 day
remontti.net.br        IN SOA  ns1.remontti.net.br. hostmaster.remontti.net.br. (
                            2020062300 ; serial
                            10800      ; refresh (3 hours)
                            3600       ; retry (1 hour)
                            2419200    ; expire (4 weeks)
                            300        ; minimum (5 minutes)
                            )

                        NS      ns1.remontti.net.br.
                        NS      ns2.remontti.net.br.

                        A       45.80.48.4
                        AAAA    2804:f123:bebe:cafe::4
                        MX      10 mail.remontti.net.br.
                        TXT     &quot;v=spf1 a mx -all&quot;
                        SPF     &quot;v=spf1 a mx -all&quot;
$ORIGIN remontti.net.br.
$TTL 10800      ; 3 hours

45-80-48-0                      A       45.80.48.0
45-80-48-1                      A       45.80.48.1
                                AAAA    2804:f123:bebe:cafe::1

ns1                             A       45.80.48.2
                                AAAA    2804:f123:bebe:cafe::2
hostmaster                      A       45.80.48.2
                                AAAA    2804:f123:bebe:cafe::2
ns2                             A       45.80.48.3
                                AAAA    2804:f123:bebe:cafe::3

www                             A       45.80.48.4
                                AAAA    2804:f123:bebe:cafe::4
ftp                             A       45.80.48.4
                                AAAA    2804:f123:bebe:cafe::4

zabbix                          A       45.80.48.5
                                AAAA    2804:f123:bebe:cafe::5
phpipam                         A       45.80.48.5
                                AAAA    2804:f123:bebe:cafe::5

mail                            A       45.80.48.6
                                AAAA    2804:f123:bebe:cafe::6
imap                            A       45.80.48.6
                                AAAA    2804:f123:bebe:cafe::6
pop                             A       45.80.48.6
                                AAAA    2804:f123:bebe:cafe::6
smtp                            A       45.80.48.6
                                AAAA    2804:f123:bebe:cafe::6

$ORIGIN remontti.net.br.
$GENERATE 7-31   ns-$         A   45.80.48.$

$ORIGIN remontti.net.br.
$GENERATE 32-255 45-80-48-$   A   45.80.48.$

$ORIGIN remontti.net.br.
$GENERATE 0-255 45-80-49-$    A   45.80.49.$
 
$ORIGIN remontti.net.br.
$GENERATE 0-255 45-80-50-$    A   45.80.50.$
 
$ORIGIN remontti.net.br.
$GENERATE 0-255 45-80-51-$    A   45.80.51.$
</pre>
<p>Chamaremos a zone remontti.net.br em named.conf.local</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<p>Adicione ao final do arquivo:</p>
<pre class="remontti-code">// Zonas Master
zone &quot;remontti.net.br&quot; {
        type master;
        file &quot;/var/cache/bind/master-aut/remontti.net.br.hosts&quot;;
};</pre>
<p>De permissões ao diretório/arquivo criados</p>
<pre class="remontti-code"># chown  bind. /var/cache/bind/master-aut -R</pre>
<p>Restart o serviço.</p>
<pre class="remontti-code"># systemctl restart bind9</pre>
<p>Testamos agora para ver se está resolvendo nosso domínio.</p>
<pre class="remontti-code"># dig ANY remontti.net.br @localhost</pre>
<pre class="remontti-code">; &lt;&lt;&gt;&gt; DiG 9.11.5-P4-5.1-Debian &lt;&lt;&gt;&gt; ANY remontti.net.br @localhost
;; global options: +cmd
;; Got answer:
;; -&gt;HEADER&lt;- opcode: QUERY, status: NOERROR, id: 52255
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 3148faada350a11c7aeaf3835d32238e495995289566b021 (good)
;; QUESTION SECTION:
;remontti.net.br.               IN      ANY

;; ANSWER SECTION:
remontti.net.br.        86400   IN      SOA     ns1.remontti.net.br. hostmaster.remontti.net.br. 2020062300 10800 3600 2419200 300
remontti.net.br.        86400   IN      NS      ns2.remontti.net.br.
remontti.net.br.        86400   IN      NS      ns1.remontti.net.br.
remontti.net.br.        86400   IN      A       45.80.48.4
remontti.net.br.        86400   IN      AAAA    2804:f123:bebe:cafe::4
remontti.net.br.        86400   IN      MX      10 mail.remontti.net.br.
remontti.net.br.        86400   IN      TXT     &quot;v=spf1 a mx -all&quot;

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: sex jul 19 17:09:50 -03 2019
;; MSG SIZE  rcvd: 263</pre>
<p>Testes:</p>
<pre class="remontti-code"># host remontti.net.br
remontti.net.br has address 45.80.48.4
remontti.net.br has IPv6 address 2804:f123:bebe:cafe::4
remontti.net.br mail is handled by 20 mail.remontti.net.br.

# host ns1.remontti.net.br
ns1.remontti.net.br has address 45.80.48.2
ns1.remontti.net.br has IPv6 address 2804:f123:bebe:cafe::2

# host ns2.remontti.net.br
ns2.remontti.net.br has address 45.80.48.3
ns2.remontti.net.br has IPv6 address 2804:f123:bebe:cafe::3

# host mail.remontti.net.br
mail.remontti.net.br has address 45.80.48.6
mail.remontti.net.br has IPv6 address 2804:f123:bebe:cafe::6

# host zabbix.remontti.net.br
zabbix.remontti.net.br has address 45.80.48.5
zabbix.remontti.net.br has IPv6 address 2804:f123:bebe:cafe::5

</pre>
<p>Seu autoritativo já está funcionado, você já é possível registrar seu domínio (claro ainda falta o slave).</p>
<p>Neste momento você pode verificar no registro.br se seu servidor já tem autoridade sobre o domínio que configurou.<br />
Mas antes vamos ajustar o fail2ban para ignorar os ips do Registro.br pois muitas pessoas acabam configurando errado seu DNS e na hora de verificar acabam bloqueando o registro.br (Isso acontece porque quando você for validar se o seu DNS não estiver certo, ele vai achar que o registro.br esta tentando resolver o "dominio qualquer" que você não é autoritativo), para isso faça:</p>
<pre class="remontti-code"># vim /etc/fail2ban/jail.conf</pre>
<p>Localize "<strong>ignoreip =</strong>" e adicione os blocos do registro.br (200.160.0.0/20 200.219.148.0/24 2001:12ff::/32 2001:12f8:6::/47) se desajar pode incluir seu bloco de ips dos servidores, principalmente o ip do servidor Slave para evitar que ele também seja bloqueado (no meu ex. os 45.80.48.3 e 2804:f123:bebe:cafe::3)</p>
<pre class="remontti-code"># &quot;ignoreip&quot; can be a list of IP addresses, CIDR masks or DNS hosts. Fail2ban
# will not ban a host which matches an address in this list. Several addresses
# can be defined using space (and/or comma) separator.
ignoreip = 127.0.0.1/8 ::1 200.160.0.0/20 200.219.148.0/24 2001:12ff::/32 2001:12f8:6::/47 45.80.48.3 2804:f123:bebe:cafe::3</pre>
<p>Reinicie o fail2ban</p>
<pre class="remontti-code"># systemctl restart fail2ban</pre>
<p>Acessando: <a href="https://registro.br/tecnologia/ferramentas/verificacao-de-dns/" rel="noopener noreferrer" target="_blank">Ferramentas Registro BR</a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/dns-bind9-debian10-buster-registrobr.png" data-rel="lightbox-gallery-NzGD6bQu" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/dns-bind9-debian10-buster-registrobr.png" alt="" width="933" height="834" class="alignnone size-full wp-image-3128" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/dns-bind9-debian10-buster-registrobr.png 933w, https://blog.remontti.com.br/wp-content/uploads/2019/07/dns-bind9-debian10-buster-registrobr-300x268.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/dns-bind9-debian10-buster-registrobr-768x687.png 768w" sizes="auto, (max-width: 933px) 100vw, 933px" /></a></p>
<p>Se o <strong>STATUS</strong> for "<strong>Autoridade sobre o domínio</strong>" parabéns suas configurações estão respondendo corretamente.</p>
<h3>Reverso (ns1)</h3>
<p>Obs: Para fazer a Delegações de DNS reverso do seu bloco, é importante que você já tenha configurado no registro.br seu DNS autoritativo.</p>
<pre class="remontti-code"># mkdir /var/cache/bind/master-rev</pre>
<p>O bloco 45.80.48.0/22 será necessário quebrar em 4 blocos /24 tendo uma configuração para cada /24 Como já planejado no autoritativo vamos ter que dar nomes a todos os IPs. Vale lembrar que todos esses nomes de hosts é permitido apenas um nome por IP, e cada nome desses deve ser configurado no autoritativo.</p>
<p>Primeiro arquivo/24 45.80.48.rev</p>
<pre class="remontti-code"># vim /var/cache/bind/master-rev/45.80.48.rev</pre>
<p>Preste atenção em <strong>48.80.45.in-addr.arpa.</strong> essa linha ela deve ser alterada com o inverso do seu IP.<br />
Outra coisa importante é o serial (2020062300) ele esta presente em todos os arquivos e deve ser alterado toda vez que for alterado. Ele segue o padrão [ano-mes-dia-sequencial]. É fundamental altera-lo para que o servidor slave copie sempre que tiver uma alteração.</p>
<pre class="remontti-code">$ORIGIN .
$TTL 86400      ; 1 day
48.80.45.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
                    2020062300 ; serial
                    10800      ; refresh (3 hours)
                    3600       ; retry (1 hour)
                    2419200    ; expire (4 weeks)
                    300        ; minimum (5 minutes)
                    )
                NS      ns1.remontti.net.br.
                NS      ns2.remontti.net.br.

$ORIGIN 48.80.45.in-addr.arpa.
0         PTR     45.80.48.0.remontti.net.br.
1         PTR     cpd.remontti.net.br.
2         PTR     ns1.remontti.net.br.
3         PTR     ns2.remontti.net.br.
4         PTR     www.remontti.net.br.
5         PTR     zabbix.remontti.net.br.
6         PTR     mail.remontti.net.br.

; Servidores não utilizados
$ORIGIN 48.80.45.in-addr.arpa.
$GENERATE 7-31   $ PTR ns-$.remontti.net.br.

$ORIGIN 48.80.45.in-addr.arpa.
$GENERATE 32-255 $ PTR 45-80-48-$.remontti.net.br.</pre>
<pre class="remontti-code"># vim /var/cache/bind/master-rev/45.80.49.rev</pre>
<pre class="remontti-code">$ORIGIN .
$TTL 86400      ; 1 day
49.80.45.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
                    2020062300 ; serial
                    10800      ; refresh (3 hours)
                    3600       ; retry (1 hour)
                    2419200    ; expire (4 weeks)
                    300        ; minimum (5 minutes)
                    )
                NS      ns1.remontti.net.br.
                NS      ns2.remontti.net.br.

$ORIGIN 49.80.45.in-addr.arpa.
$GENERATE 0-255 $ PTR 45-80-49-$.remontti.net.br.</pre>
<pre class="remontti-code"># vim /var/cache/bind/master-rev/45.80.50.rev</pre>
<pre class="remontti-code">$ORIGIN .
$TTL 86400      ; 1 day
50.80.45.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
                    2020062300 ; serial
                    10800      ; refresh (3 hours)
                    3600       ; retry (1 hour)
                    2419200    ; expire (4 weeks)
                    300        ; minimum (5 minutes)
                    )
                NS      ns1.remontti.net.br.
                NS      ns2.remontti.net.br.

; Clientes dinâmicos
$ORIGIN 50.80.45.in-addr.arpa.
$GENERATE 0-255 $ PTR 45-80-50-$.remontti.net.br.</pre>
<pre class="remontti-code"># vim /var/cache/bind/master-rev/45.80.51.rev</pre>
<pre class="remontti-code">$ORIGIN .
$TTL 86400      ; 1 day
51.80.45.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
                    2020062300 ; serial
                    10800      ; refresh (3 hours)
                    3600       ; retry (1 hour)
                    2419200    ; expire (4 weeks)
                    300        ; minimum (5 minutes)
                    )
                NS      ns1.remontti.net.br.
                NS      ns2.remontti.net.br.

; Clientes dinâmicos
$ORIGIN 51.80.45.in-addr.arpa.
$GENERATE 0-255 $ PTR 45-80-51-$.remontti.net.br.</pre>
<p>Não  podemos esquecer nosso reverso do IPv6! Antes que alguém pergunte (novamente) posso configurar o reverso de todos os IPv6? Bom você precisa saber que precisa resolver 79.228.162.514.264.337.593.543.950.336 (2^96) endereços IPv6, e isso é algo quase impossível! Informaremos apenas os nomes a ipv6 fixos.</p>
<pre class="remontti-code"># vim /var/cache/bind/master-rev/2000.f123.rev</pre>
<pre class="remontti-code">$ORIGIN .
$TTL 3600       ; 1 hour
3.2.1.f.4.0.8.2.ip6.arpa IN SOA ns1.remontti.net.br.3.2.1.f.4.0.8.2.ip6.arpa. hostmaster.remontti.net.br.3.2.1.f.4.0.8.2.ip6.arpa. (
                                2020062300 ; serial
                                3600       ; refresh (1 hour)
                                900        ; retry (15 minutes)
                                604800     ; expire (1 week)
                                3600       ; minimum (1 hour)
                                )
                        NS      ns1.remontti.net.br.
                        NS      ns2.remontti.net.br.


1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.f.a.c.e.b.e.b.3.2.1.f.4.0.8.2.ip6.arpa. IN PTR cpd.remontti.net.br.
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.f.a.c.e.b.e.b.3.2.1.f.4.0.8.2.ip6.arpa. IN PTR ns1.remontti.net.br.
3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.f.a.c.e.b.e.b.3.2.1.f.4.0.8.2.ip6.arpa. IN PTR ns2.remontti.net.br.
4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.f.a.c.e.b.e.b.3.2.1.f.4.0.8.2.ip6.arpa. IN PTR www.remontti.net.br.
5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.f.a.c.e.b.e.b.3.2.1.f.4.0.8.2.ip6.arpa. IN PTR zabbix.remontti.net.br.
6.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.f.a.c.e.b.e.b.3.2.1.f.4.0.8.2.ip6.arpa. IN PTR mail.remontti.net.br.</pre>
<p>Este site <a href="http://rdns6.com/hostRecord">http://rdns6.com/hostRecord</a> pode ser bem útil para gerar seus PTRs.<br />
Para finalizar acertando as permissões.</p>
<pre class="remontti-code"># chown  bind. /var/cache/bind/master-rev  -R</pre>
<p>Precisamos informar nossas zonas reversas no named.conf.local, como estamos configurando nosso servidor master essas zonas serão do tipo (type) master e para informar o arquivo onde está a configuração da zone usamos o parâmetro file /caminho-completo/arquivo</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<p>Adicione ao final do arquivo:</p>
<pre class="remontti-code">
// Reverso IPv4

zone &quot;48.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.48.rev&quot;;
};

zone &quot;49.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.49.rev&quot;;
};

zone &quot;50.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.50.rev&quot;;
};

zone &quot;51.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.51.rev&quot;;
};

// Reverso IPv6

zone &quot;3.2.1.f.4.0.8.2.ip6.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/2804.f123.rev&quot;;
};
</pre>
<p>Para ficar fácil acesso criamos uma atalhos das nossas pastas master-* dentro de /etc/bind</p>
<pre class="remontti-code"># ln -s /var/cache/bind/master-aut /etc/bind/master-aut
# ln -s /var/cache/bind/master-rev /etc/bind/master-rev</pre>
<p>Restart o serviço e veja se esta rodando sem erros.</p>
<pre class="remontti-code"># systemctl restart bind9
# systemctl status bind9</pre>
<p>Vamos ver se ele já está resolvendo nosso IP então?</p>
<pre class="remontti-code"># dig -x 45.80.48.2 @localhost
; &lt;&lt;&gt;&gt; DiG 9.11.5-P4-5.1-Debian &lt;&lt;&gt;&gt; -x 45.80.48.2 @localhost
;; global options: +cmd
;; Got answer:
;; -&gt;HEADER&lt;- opcode: QUERY, status: NOERROR, id: 59398
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: cc1f5b76ca8135b2f442ab295d35a916dcb3bf8066886af9 (good)
;; QUESTION SECTION:
;2.48.80.45.in-addr.arpa.       IN      PTR

;; ANSWER SECTION:
2.48.80.45.in-addr.arpa. 86400  IN      PTR     ns1.remontti.net.br.

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: seg jul 22 09:16:22 -03 2019
;; MSG SIZE  rcvd: 113

# dig -x 2804:f123:bebe:cafe::2 @localhost
&lt;&lt;&gt;&gt; DiG 9.11.5-P4-5.1-Debian &lt;&lt;&gt;&gt; -x 2804:f123:bebe:cafe::2 @localhost
;; global options: +cmd
;; Got answer:
;; -&gt;HEADER&lt;- opcode: QUERY, status: NOERROR, id: 5580
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: ec8e4c0bfbec98025b39d4965d35a90be152e9b837af0575 (good)
;; QUESTION SECTION:
;2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.f.a.c.e.b.e.b.3.2.1.f.4.0.8.2.ip6.arpa. IN PTR

;; ANSWER SECTION:
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.f.a.c.e.b.e.b.3.2.1.f.4.0.8.2.ip6.arpa. 3600 IN PTR ns1.remontti.net.br.

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: seg jul 22 09:16:11 -03 2019
;; MSG SIZE  rcvd: 162

# host 45.80.48.2
2.48.80.45.in-addr.arpa domain name pointer ns1.remontti.net.br.

# host 2804:f123:bebe:cafe::2
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.f.a.c.e.b.e.b.3.2.1.f.4.0.8.2.ip6.arpa domain name pointer ns1.remontti.net.br.

# host 2804:f123:bebe:cafe::1
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.f.a.c.e.b.e.b.3.2.1.f.4.0.8.2.ip6.arpa domain name pointer cpd.remontti.net.br.

# host 45.80.48.3
3.48.80.45.in-addr.arpa domain name pointer ns2.remontti.net.br.

# host 45.80.48.10
10.48.80.45.in-addr.arpa domain name pointer serv-10.remontti.net.br.

# host 45.80.48.100
100.48.80.45.in-addr.arpa domain name pointer fixo-100.remontti.net.br.

# host 45.80.48.200
200.48.80.45.in-addr.arpa domain name pointer cgnat-200.remontti.net.br.

# host 45.80.49.0
0.49.80.45.in-addr.arpa domain name pointer noc-0.remontti.net.br.

# host 45.80.49.2
2.49.80.45.in-addr.arpa domain name pointer noc-2.remontti.net.br.

# host 45.80.49.20
20.49.80.45.in-addr.arpa domain name pointer noc-20.remontti.net.br.

# host 45.80.49.64
64.49.80.45.in-addr.arpa domain name pointer dd-64.remontti.net.br.

# host 45.80.49.128
128.49.80.45.in-addr.arpa domain name pointer 45-80-49-128.remontti.net.br.

# host 45.80.49.129
129.49.80.45.in-addr.arpa domain name pointer 45-80-49-129.remontti.net.br.

# host 45.80.50.50
50.50.80.45.in-addr.arpa domain name pointer 45-80-50-50.remontti.net.br.

# host 45.80.51.50
50.51.80.45.in-addr.arpa domain name pointer 45-80-51-50.remontti.net.br.</pre>
<p>Como pode ver todos os endereços estão resolvendo seus nomes.</p>
<p>Reverso pronto!</p>
<h3>Atualizando ROOT SERVERS</h3>
<p>Para finalizar o master vamos fazer uma atualização no root server que na versão do debian 10 buster passou a ser /usr/share/dns/root.hints. A vesão instalada é de 13/03/2019 <em>"last update: March 13, 2019"</em></p>
<p>Para obter uma versão mais recente, iremos mover nosso arquivo root.hints e baixar um novo.</p>
<pre class="remontti-code">mv /usr/share/dns/root.hints /usr/share/dns/root.hints.`date +%Y%m%d`
wget https://www.internic.net/domain/named.root -O /usr/share/dns/root.hints --no-check-certificate</pre>
<p>Pode editar o arquivo /usr/share/dns/root.hints e verificar qual é a ultima atualização, (hoje 19/07/2019) ele esta: "last update: July 03, 2019". Reinicie o serviço para ter efeito.</p>
<pre class="remontti-code">systemctl restart bind9
systemctl status bind9</pre>
<p>Parabéns! Seu servidor master está pronto!</p>
<h3>SLAVE (ns2)</h3>
<p>Praticamente o processo se repete, com algumas alterações sendo necessário apenas configurar:<br />
  named.conf (Gerar log)<br />
  named.conf.local (Incluir as zonas)<br />
  named.conf.options (Setar nossas opções)</p>
<pre class="remontti-code"># apt install bind9 dnsutils</pre>
<p>Alterar o DNS do servidor:</p>
<pre class="remontti-code"># # echo &quot;nameserver 127.0.0.1&quot; &gt; /etc/resolv.conf </pre>
<pre class="remontti-code"># cp /etc/bind/named.conf.options /etc/bind/named.conf.options.bkp</pre>
<p>No named.conf.options unica coisa em relação ao master é que vai alterar allow-transfer para none e remover o also-notify.</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<pre class="remontti-code">acl autorizados {
        127.0.0.1;
        ::1;
        45.80.48.0/23;
        2804:f123::/32;
        192.168.0.0/16;
        172.16.0.0/12;
        100.64.0.0/10;
        10.0.0.0/8;
};

options {
    directory &quot;/var/cache/bind&quot;;

    dnssec-enable yes;
    dnssec-validation auto;

    auth-nxdomain no;

    listen-on { any; };
    listen-on-v6 { any; };

    minimal-responses yes;

    allow-recursion {
        autorizados;
    };

    allow-query-cache {
        autorizados;
    };

    allow-query { any; };

    allow-transfer { none; };

    masterfile-format text;

    version &quot;RR DNS Server&quot;;
};</pre>
<p>Para organizar criamos duas pastas slave-rev e slave-aut é importante dar <b>permissões para o usuário bind, pois ele precisa importar as configurações do master e vai escrever nelas.</p>
<pre class="remontti-code"># mkdir /var/cache/bind/slave-aut
# mkdir /var/cache/bind/slave-rev
# chown  bind. -R /var/cache/bind/slave-*</pre>
<p>Não é mais necessário criar os arquivos, esses serão transferidos do servidor master. Basta informarmos em nossas zonas do arquivo named.conf.local, que serão do tipo (slave) e apontaremos o IP do <strong>master</strong> para que nosso servidor slave faça a transferência do master.</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<pre class="remontti-code">// Reverso IPv4

zone &quot;48.80.45.in-addr.arpa&quot; {
        type slave;
        file &quot;/var/cache/bind/slave-rev/45.80.48.rev&quot;;
        masters { 45.80.48.2; };
        allow-notify { 45.80.48.2; };
};

zone &quot;49.80.45.in-addr.arpa&quot; {
        type slave;
        file &quot;/var/cache/bind/slave-rev/45.80.49.rev&quot;;
        masters { 45.80.48.2; };
        allow-notify { 45.80.48.2; };
};

zone &quot;50.80.45.in-addr.arpa&quot; {
        type slave;
        file &quot;/var/cache/bind/slave-rev/45.80.50.rev&quot;;
        masters { 45.80.48.2; };
        allow-notify { 45.80.48.2; };
};

zone &quot;51.80.45.in-addr.arpa&quot; {
        type slave;
        file &quot;/var/cache/bind/slave-rev/45.80.51.rev&quot;;
        masters { 45.80.48.2; };
        allow-notify { 45.80.48.2; };
};

// Reverso IPv6

zone &quot;3.2.1.f.4.0.8.2.ip6.arpa&quot; {
        type slave;
        file &quot;/var/cache/bind/slave-rev/2804.f123.rev&quot;;
        masters { 45.80.48.2; };
        allow-notify { 45.80.48.2; };
};

// Zonas Slave

zone &quot;remontti.net.br&quot; IN {
        type slave;
        file &quot;/var/cache/bind/slave-aut/remontti.net.br.hosts&quot;;
        masters { 45.80.48.2; };
        allow-notify { 45.80.48.2; };
};</pre>
<p>Restart o serviço verifique se não teve nenhum erro e verifique dentro dos diretórios slave-aut/slave-rev se os arquivos foram criados.</p>
<pre class="remontti-code"># systemctl  restart bind9
# systemctl  status bind9
# ls -lh /var/cache/bind/slave-*</pre>
<p>Para ficar fácil acesso criamos uma atalhos das nossas pastas slave-* dentro de /etc/bind</p>
<pre class="remontti-code"># ln -s /var/cache/bind/slave-aut /etc/bind/slave-aut
# ln -s /var/cache/bind/slave-rev /etc/bind/slave-rev</pre>
<p>Se os mesmo foram criados seu DNS já está praticamente pronto!</p>
<p>Volte o tutorial e refaça a parte:<br />
  -<strong> Fail2Ban + nftables</strong><br />
  -<strong> Atualizando ROOT SERVERS</strong><br />
Isso é primordial para segurança do servidor!</p>
<p>Gostou? </p>
<p>Se você tiver interesse no Curso de DNS <a href="https://blog.remontti.com.br/curso-bind9" rel="noopener noreferrer" target="_blank">clique aqui</a>, quem sabe você de sorte de ter uma turma aberta. </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>Ahhh não terminei, ainda falta a configuração do nosso /28.</p>
<h3>Reverso de blocos menores que /24 - Ex.: CIDR/28 </h3>
<p>Antes de mais nada você deve ler ao menos como foi configurado o /22, pois será necessários que você compreenda e faça também o procedimentos:<br />
  -<strong> Fail2Ban + nftables</strong><br />
  -<strong> Atualizando ROOT SERVERS</strong></p>
<p>Vamos supor que você recebeu um /28 e queira ter seu reverso respondendo sobre esses bloco.<br />
A primeira coisa que você precisa saber que isso só será possivel se o dono do ASN fizer a configurações em seu servidor DNS (rfc2317), não basta ele simplismente ir la no registro.br e delegar esse /28 para você, e é claro que ele também precisa fazer isso!<br />
Se ficar em dúvidas recomendo ver que assista: <a href="https://www.youtube.com/watch?v=VIa1dHtmQ4U" rel="noopener noreferrer" target="_blank">DNS e DNS Reverso</a> (~20min fala sobre isso)</p>
<p>Então se você é o responsável pelo ASN você deve fazer o seguinte na configuração no seu arquivo reverso. No exemplo anterior deixamos já o 45.80.49.64/26 para esses casos, e no exemplo vamos delegar um /28 para o "Provedor do José".</p>
<pre class="remontti-code">$ ipcalc  45.80.49.64/28
Address:   45.80.49.64          00101101.01010000.00110011.0100 0000
Netmask:   255.255.255.240 = 28 11111111.11111111.11111111.1111 0000
Wildcard:  0.0.0.15             00000000.00000000.00000000.0000 1111
=&gt;
Network:   45.80.49.64/28       00101101.01010000.00110011.0100 0000
HostMin:   45.80.49.65          00101101.01010000.00110011.0100 0001
HostMax:   45.80.49.78          00101101.01010000.00110011.0100 1110
Broadcast: 45.80.49.79          00101101.01010000.00110011.0100 1111
Hosts/Net: 14                    Class A</pre>
<pre class="remontti-code">vim /var/cache/bind/master-rev/45.80.49.rev</pre>
<pre class="remontti-code">$ORIGIN .
$TTL 86400      ; 1 day
49.80.45.in-addr.arpa IN SOA ns1.remontti.net.br. hostmaster.remontti.net.br. (
                    2020062300 ; serial
                    10800      ; refresh (3 hours)
                    3600       ; retry (1 hour)
                    2419200    ; expire (4 weeks)
                    300        ; minimum (5 minutes)
                    )
                NS      ns1.remontti.net.br.
                NS      ns2.remontti.net.br.

; NOC (Gerência)
$ORIGIN 49.80.45.in-addr.arpa.
$GENERATE 0-63 $ PTR noc-$.remontti.net.br.

; Clientes delegação

;  &lt;&lt;64-79&gt;&gt; /28
; Aponte para os DNS do Servidor
64/28          NS      ns1.provedordojose.com.br
64/28          NS      ns2.provedordojose.com.br
;
64             CNAME   64.45/28.49.80.45.in-addr.arpa.
65             CNAME   65.45/28.49.80.45.in-addr.arpa.
66             CNAME   66.45/28.49.80.45.in-addr.arpa.
67             CNAME   67.45/28.49.80.45.in-addr.arpa.
68             CNAME   68.45/28.49.80.45.in-addr.arpa.
69             CNAME   69.45/28.49.80.45.in-addr.arpa.
70             CNAME   70.45/28.49.80.45.in-addr.arpa.
71             CNAME   71.45/28.49.80.45.in-addr.arpa.
72             CNAME   72.45/28.49.80.45.in-addr.arpa.
73             CNAME   73.45/28.49.80.45.in-addr.arpa.
74             CNAME   74.45/28.49.80.45.in-addr.arpa.
75             CNAME   75.45/28.49.80.45.in-addr.arpa.
76             CNAME   76.45/28.49.80.45.in-addr.arpa.
77             CNAME   77.45/28.49.80.45.in-addr.arpa.
78             CNAME   78.45/28.49.80.45.in-addr.arpa.
79             CNAME   79.45/28.49.80.45.in-addr.arpa.

; Clientes delegação (reservado)
$ORIGIN 49.80.45.in-addr.arpa.
$GENERATE 80-127 $ PTR dd-$.remontti.net.br.

; Clientes dinâmicos
$ORIGIN 49.80.45.in-addr.arpa.
$GENERATE 128-255 $ PTR 45-80-49-$.remontti.net.br.</pre>
<p>Configuração feita pelo o dono do ASN, vamos as configurações do José que recebeu o bloco /28, e quer seus DNS respondendo por eles. Vamos supor que 45.80.49.66 e 45.80.49.67 sejam seu servidores DNS Master/Slave.</p>
<pre class="remontti-code"># mkdir /var/cache/bind/master-aut
# mkdir /var/cache/bind/master-rev</pre>
<p><strong>:: Autoritativo ::</strong></p>
<pre class="remontti-code">vim /var/cache/bind/master-aut/provedordojose.com.br.hosts</pre>
<pre class="remontti-code">$ORIGIN .
$TTL 86400      ; 1 day
provedordojose.com.br        IN SOA  ns1.provedordojose.com.br. root.provedordojose.com.br. (
                2020062300 ; serial
                10800      ; refresh (3 hours)
                3600       ; retry (1 hour)
                2419200    ; expire (4 weeks)
                300        ; minimum (5 minutes)
                )

            NS      ns1.provedordojose.com.br.
            NS      ns2.provedordojose.com.br.

            A       45.80.49.68
            MX      10 mail.provedordojose.com.br.
      TXT     &quot;v=spf1 a mx ip4:45.80.49.68?all&quot;

$ORIGIN provedordojose.com.br.
$TTL 10800      ; 3 hours

45-80-49-64     A       45.80.49.64
cpd         A       45.80.49.65
ns1         A       45.80.49.66
ns2         A       45.80.49.67
mail        A       45.80.49.68
zabbix        A       45.80.49.69
45-80-49-70     A       45.80.49.70
45-80-49-71     A       45.80.49.71
45-80-49-72     A       45.80.49.72
45-80-49-73     A       45.80.49.73
45-80-49-74     A       45.80.49.74
45-80-49-75     A       45.80.49.75
45-80-49-76     A       45.80.49.76
45-80-49-77     A       45.80.49.77
45-80-49-78     A       45.80.49.78
45-80-49-79     A       45.80.49.79</pre>
<p><strong>:: Reverso ::</strong></p>
<pre class="remontti-code">vim /var/cache/bind/master-rev/45.80.49.64-79.rev</pre>
<pre class="remontti-code">; 45.80.49.64/28
$TTL 1h
@               IN      SOA     ns1.provedordojose.com.br. root.provedordojose.com.br. (
                        2020062300 ; serial
                        2h         ; refresh
                        15m        ; update retry
                        2w         ; expiry
                        3h         ; nx = nxdomain ttl
                        )

        IN      NS      ns1.provedordojose.com.br.
        IN      NS      ns2.provedordojose.com.br.

$ORIGIN 64/28.49.80.45.in-addr.arpa.
64      IN      PTR     45-80-49-64.provedordojose.com.br.
65      IN      PTR     cpd.provedordojose.com.br.
66      IN      PTR     ns1.provedordojose.com.br.
67      IN      PTR     ns2.provedordojose.com.br.
68      IN      PTR     mail.provedordojose.com.br.
69      IN      PTR     zabbix.provedordojose.com.br.
70      IN      PTR     45-80-49-70.provedordojose.com.br.
71      IN      PTR     45-80-49-71.provedordojose.com.br.
72      IN      PTR     45-80-49-72.provedordojose.com.br.
73      IN      PTR     45-80-49-73.provedordojose.com.br.
74      IN      PTR     45-80-49-74.provedordojose.com.br.
75      IN      PTR     45-80-49-75.provedordojose.com.br.
76      IN      PTR     45-80-49-76.provedordojose.com.br.
77      IN      PTR     45-80-49-77.provedordojose.com.br.
78      IN      PTR     45-80-49-78.provedordojose.com.br.
79      IN      PTR     45-80-49-79.provedordojose.com.br.
</pre>
<p><strong>:: Zonas ::</strong></p>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<pre class="remontti-code">zone &quot;provedordojose.com.br&quot; {
  type master;
  file &quot;/var/cache/bind/master-aut/provedordojose.com.br.hosts&quot;;
};

zone &quot;64/28.49.80.45.in-addr.arpa&quot; {
        type master;
        file &quot;/var/cache/bind/master-rev/45.80.49.64-79.rev&quot;;
};</pre>
<pre class="remontti-code"># systemctl  restart bind9
# systemctl  status bind9</pre>
<h4>Dica extra - Ativando um proxy DNS</h4>
<p>Vamos supor que você deseja fazer as consultar DNS em um DNS como o 8.8.8.8 entre outros em vezes de ir direto aos roots como seria?</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<pre class="remontti-code">acl autorizados {
        127.0.0.1;
        ::1;
        45.80.48.0/23;
        2804:f123::/32;
        192.168.0.0/16;
        172.16.0.0/12;
        100.64.0.0/10;
        10.0.0.0/8;
};
 
options {
    directory &quot;/var/cache/bind&quot;;
 
    dnssec-enable yes;
    dnssec-validation auto;
 
    auth-nxdomain no;
 
    listen-on { any; };
    listen-on-v6 { any; };
 
    // DNS PROXY
    // Em vez de ir pedir aos roots servers irá buscar de outros DNS.
    recursion yes;
    forwarders {
        8.8.8.8;
        1.1.1.1;
        1.0.0.1;
        8.8.4.4;
    };
    forward only;

    minimal-responses yes;
 
    allow-recursion {
        autorizados;
    };
 
    allow-query-cache {
        autorizados;
    };
 
    allow-query { any; };
 
    allow-transfer { none; };
 
    masterfile-format text;
 
    version &quot;RR DNS Server&quot;;
};</pre>
<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></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/3086">Servidor DNS seguro com Bind9  (Recursivo, Autoritativo e Reverso) + Fail2ban + nftables no Debian 10 Buster [Descontinuado]</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/3086/feed</wfw:commentRss>
			<slash:comments>102</slash:comments>
		
		
			</item>
		<item>
		<title>Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin no Debian 10 Buster &#8220;LAMP&#8221;</title>
		<link>https://blog.remontti.com.br/3006</link>
					<comments>https://blog.remontti.com.br/3006#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 16 Jul 2019 19:05:12 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[buster]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[debian buster]]></category>
		<category><![CDATA[debian10]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=3006</guid>

					<description><![CDATA[<p>Distribuição utilizada: Debian 10 Stretch / Instalação Limpa Vale lembrar que desde o Debian 9 o PHP foi atualizado para a versão 7 e agora para 7.3, e o MySQL foi substituído pelo seu&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/3006">Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin no Debian 10 Buster &#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/2019/07/debian10-lamp.jpg" alt="" width="800" height="376" class="alignnone size-full wp-image-3028" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/debian10-lamp.jpg 800w, https://blog.remontti.com.br/wp-content/uploads/2019/07/debian10-lamp-300x141.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/debian10-lamp-768x361.jpg 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/debian10-lamp-520x245.jpg 520w" sizes="auto, (max-width: 800px) 100vw, 800px" /><br />
Distribuição utilizada: <strong><a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Debian 10 Stretch / Instalação Limpa</a></strong><br />
Vale lembrar que desde o Debian 9 o PHP foi atualizado para a versão 7 e agora para 7.3, e o MySQL foi substituído pelo seu fork MariaBD<br />
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 2.4 ::</h3>
<pre class="remontti-code"># apt install apache2 apache2-utils</pre>
<p>Vamos habilitar o mod_rewrite do Apache que é muito utilizado.<br />
Este é um módulo do Apache que utiliza um mecanismo baseado em regras de reescrita.<br />
Vamos ao comando para habilita-lo:</p>
<pre class="remontti-code"># a2enmod rewrite</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 funcione corretamente será necessário adicionar alguma linhas.</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">	&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/2019/07/apache2-deb10-rewrite.png" data-rel="lightbox-gallery-KfspGyR1" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/apache2-deb10-rewrite-300x251.png" alt="" width="300" height="251" class="alignnone size-medium wp-image-3012" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/apache2-deb10-rewrite-300x251.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/apache2-deb10-rewrite-768x642.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/apache2-deb10-rewrite.png 887w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Agora precisamos restartar o apache2 para que tenha efeito as alterações.</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>http://[SERVER_IP]/<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/apache-debian-10-buster.png" data-rel="lightbox-gallery-KfspGyR1" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/apache-debian-10-buster-230x300.png" alt="" width="230" height="300" class="alignnone size-medium wp-image-3010" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/apache-debian-10-buster-230x300.png 230w, https://blog.remontti.com.br/wp-content/uploads/2019/07/apache-debian-10-buster-768x1003.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/apache-debian-10-buster-784x1024.png 784w, https://blog.remontti.com.br/wp-content/uploads/2019/07/apache-debian-10-buster.png 941w" sizes="auto, (max-width: 230px) 100vw, 230px" /></a><br />
Por segurança remova a assinatura do apache.</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>
<h3>:: Instalação do MariaDB 10.3 ::</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. Mas isso é estranho, pois minha senha do root do MariaDB é diferente do meu usuário unix.<br />
Bom se você é meio paranoico com segurança, para alterar a senha do usuário root do MariaDB de forma bruta faça o seguinte:</p>
<pre class="remontti-code"># mariadb -u root</pre>
<pre class="remontti-code">USE mysql;
UPDATE user SET password=PASSWORD(&#039;SENHA.db.ROOT&#039;) WHERE User=&#039;root&#039;;
UPDATE user SET plugin=&quot;mysql_native_password&quot;;
FLUSH PRIVILEGES;
quit;</pre>
<h3>:: Instalação do PHP 7.3 ::</h3>
<p>Vou incluir algumas extensões do PHP que são normalmente utilizada</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">PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, 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>http://[SERVER_IP]/phpinfo.php<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpinfo-debian-10-buster.png" data-rel="lightbox-gallery-KfspGyR1" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpinfo-debian-10-buster-300x261.png" alt="" width="300" height="261" class="alignnone size-medium wp-image-3018" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpinfo-debian-10-buster-300x261.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpinfo-debian-10-buster-768x668.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpinfo-debian-10-buster.png 994w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<h3>:: phpMyAdmin ::</h3>
<p>Cade ele do repositório?<br />
O PHPMyAdmin não está mais disponível como pacote .deb no Debian 10. Fazendo um pesquisa o motivo é que o &#8220;pessoal&#8221; que faz empacotamento não tem uma versão estável. <a href="https://security-tracker.debian.org/tracker/CVE-2018-19968" rel="noopener noreferrer" target="_blank">https://security-tracker.debian.org/tracker/CVE-2018-19968</a><br />
Desta forma debian &#8220;obriga&#8221; com que o usuário instale-o a partir da fonte. <a href="https://www.phpmyadmin.net/downloads/" rel="noopener noreferrer" target="_blank">https://www.phpmyadmin.net/downloads/</a></p>
<pre class="remontti-code"># apt install wget</pre>
<p>Escolha qual versão do irá utilizar phpMyAdmin 5.x.x ou 4.x.x</p>
<pre class="remontti-code"># cd /tmp/</pre>
<p>Para <strong>phpMyAdmin 5</strong> (06/04/2020)</p>
<pre class="remontti-code"># wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.tar.gz
# tar -vxzf phpMyAdmin-5.0.4-all-languages.tar.gz -C /usr/share/
# mv /usr/share/phpMyAdmin-5.0.4-all-languages /usr/share/phpmyadmin</pre>
<p>Para <strong>phpMyAdmin 4</strong> (06/04/2020)</p>
<pre class="remontti-code"># wget https://files.phpmyadmin.net/phpMyAdmin/4.9.5/phpMyAdmin-4.9.5-all-languages.tar.gz
# tar -vxzf phpMyAdmin-4.9.5-all-languages.tar.gz -C /usr/share/
# mv /usr/share/phpMyAdmin-4.9.5-all-languages /usr/share/phpmyadmin</pre>
<p>Seguimos para <strong>phpMyAdmin 5 ou 4</strong> </p>
<pre class="remontti-code"># mkdir /etc/phpmyadmin
# touch /etc/phpmyadmin/htpasswd.setup
# mkdir -p /var/lib/phpmyadmin/tmp
# chown www-data. /var/lib/phpmyadmin/ -R</pre>
<p>Criaremos o arquivo de configuração do Apache.</p>
<pre class="remontti-code"># vim /etc/apache2/conf-available/phpmyadmin.conf</pre>
<pre class="remontti-code"># phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

&lt;Directory /usr/share/phpmyadmin&gt;
 Options FollowSymLinks
 DirectoryIndex index.php

 &lt;IfModule mod_php7.c&gt;
 AddType application/x-httpd-php .php

 php_flag magic_quotes_gpc Off
 php_flag track_vars On
 php_flag register_globals Off
 php_value include_path .
 &lt;/IfModule&gt;

&lt;/Directory&gt;

# Authorize for setup
&lt;Directory /usr/share/phpmyadmin/setup&gt;
 &lt;IfModule mod_authn_file.c&gt;
 AuthType Basic
 AuthName &quot;phpMyAdmin Setup&quot;
 AuthUserFile /etc/phpmyadmin/htpasswd.setup
 &lt;/IfModule&gt;
 Require valid-user
&lt;/Directory&gt;

# Disallow web access to directories that don&#039;t need it
&lt;Directory /usr/share/phpmyadmin/libraries&gt;
 Order Deny,Allow
 Deny from All
&lt;/Directory&gt;
&lt;Directory /usr/share/phpmyadmin/setup/lib&gt;
 Order Deny,Allow
 Deny from All
&lt;/Directory&gt;</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 FollowSymLinks
 DirectoryIndex index.php

 AllowOverride All
 Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8:cafe:d0ce::/64

 &lt;IfModule mod_php7.c&gt;
 AddType application/x-httpd-php .php
 
 php_flag magic_quotes_gpc Off
 php_flag track_vars On
 php_flag register_globals Off
 php_value include_path .
 &lt;/IfModule&gt;
 
&lt;/Directory&gt;
 
# Authorize for setup
&lt;Directory /usr/share/phpmyadmin/setup&gt;
 AllowOverride All
 Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8:cafe:d0ce::/64
 &lt;IfModule mod_authn_file.c&gt;
 AuthType Basic
 AuthName &quot;phpMyAdmin Setup&quot;
 AuthUserFile /etc/phpmyadmin/htpasswd.setup
 &lt;/IfModule&gt;
 Require valid-user
&lt;/Directory&gt;
 
# Disallow web access to directories that don&#039;t need it
&lt;Directory /usr/share/phpmyadmin/libraries&gt;
 AllowOverride All
 Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8:cafe:d0ce::/64
 Order Deny,Allow
 Deny from All
&lt;/Directory&gt;
&lt;Directory /usr/share/phpmyadmin/setup/lib&gt;
 AllowOverride All
 Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8:cafe:d0ce::/64
 Order Deny,Allow
 Deny from All
&lt;/Directory&gt;
</pre>
<p>Ative a configuração e reinicie o Apache.</p>
<pre class="remontti-code"># a2enconf phpmyadmin
# systemctl restart apache2
# systemctl status apache2</pre>
<p>Na próxima etapa, vamos configurar o armazenamento de configuração do phpMyadmin (banco de dados).<br />
Faça o login no MariaDB como usuário root:</p>
<pre class="remontti-code"># mariadb -p</pre>
<p>Criamos um novo banco de dados para o chamado phpmyadmin e um usuario pma (altere para sua senha). Em seguida, concedemos as permissões do banco de dados.<br />
Você pode gerar uma senha acessando <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 phpmyadmin;
CREATE USER &#039;pma&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA_SENHA&#039;;
GRANT ALL PRIVILEGES ON phpmyadmin.* TO &#039;pma&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA_SENHA&#039; WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;</pre>
<p>Carregue as tabelas do banco de dados: (Informe a senha do root do MariaDB)</p>
<pre class="remontti-code"># mariadb -u root -p phpmyadmin &lt; /usr/share/phpmyadmin/sql/create_tables.sql</pre>
<p>Agora é necessário ajustar o arquivo de configuração do phpmyadmin.<br />
Definir:<br />
* senha segura (blowfish secret) que deve ter 32 caracteres. Não use o meu exemplo blowfish secreto, defina o seu próprio! Use o gerador <a href="https://senhasegura.remontti.com.br" rel="noopener noreferrer" target="_blank">https://senhasegura.remontti.com.br</a><br />
* diretório que o PHPMyAdmin deve usar para armazenar arquivos temporários.<br />
* Descomentar as linhas $cfg['Servers']<br />
- controlhost : localhost<br />
- controlpass : SUA_SENHA</p>
<pre class="remontti-code"># cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
# vim /usr/share/phpmyadmin/config.inc.php</pre>
<pre class="remontti-code">$cfg[&#039;blowfish_secret&#039;] = &#039;dkJhGx83XR3JjuFrDn8kPp9NtXnkLptl&#039;;
/* Adicione esta linha */
$cfg[&#039;TempDir&#039;] = &#039;/var/lib/phpmyadmin/tmp&#039;;

/* User used to manipulate with storage */
$cfg[&#039;Servers&#039;][$i][&#039;controlhost&#039;] = &#039;localhost&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;controlport&#039;] = &#039;&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;controluser&#039;] = &#039;pma&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;controlpass&#039;] = &#039;SUA_SENHA&#039;;

/* Storage database and tables */
$cfg[&#039;Servers&#039;][$i][&#039;pmadb&#039;] = &#039;phpmyadmin&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;bookmarktable&#039;] = &#039;pma__bookmark&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;relation&#039;] = &#039;pma__relation&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;table_info&#039;] = &#039;pma__table_info&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;table_coords&#039;] = &#039;pma__table_coords&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;pdf_pages&#039;] = &#039;pma__pdf_pages&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;column_info&#039;] = &#039;pma__column_info&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;history&#039;] = &#039;pma__history&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;table_uiprefs&#039;] = &#039;pma__table_uiprefs&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;tracking&#039;] = &#039;pma__tracking&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;userconfig&#039;] = &#039;pma__userconfig&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;recent&#039;] = &#039;pma__recent&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;favorite&#039;] = &#039;pma__favorite&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;users&#039;] = &#039;pma__users&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;usergroups&#039;] = &#039;pma__usergroups&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;navigationhiding&#039;] = &#039;pma__navigationhiding&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;savedsearches&#039;] = &#039;pma__savedsearches&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;central_columns&#039;] = &#039;pma__central_columns&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;designer_settings&#039;] = &#039;pma__designer_settings&#039;;
$cfg[&#039;Servers&#039;][$i][&#039;export_templates&#039;] = &#039;pma__export_templates&#039;;</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster.png" data-rel="lightbox-gallery-KfspGyR1" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-300x296.png" alt="" width="300" height="296" class="alignnone size-medium wp-image-3021" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-300x296.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-768x757.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster.png 901w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
http://[SERVER_IP]/phpmyadmin/<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-1.png" data-rel="lightbox-gallery-KfspGyR1" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-1-300x155.png" alt="" width="300" height="155" class="alignnone size-medium wp-image-3022" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-1-300x155.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-1-768x397.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-1-1024x530.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-1.png 1680w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-2.png" data-rel="lightbox-gallery-KfspGyR1" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-2-300x156.png" alt="" width="300" height="156" class="alignnone size-medium wp-image-3023" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-2-300x156.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-2-768x399.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-2-1024x532.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/phpmyadmin-debian-10-buster-2.png 1680w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Gostou?</p>
<p><center><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></center></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/3006">Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin no Debian 10 Buster &#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/3006/feed</wfw:commentRss>
			<slash:comments>70</slash:comments>
		
		
			</item>
		<item>
		<title>Como instalar o Accel-PPP no Debian 10 Buster</title>
		<link>https://blog.remontti.com.br/3494</link>
					<comments>https://blog.remontti.com.br/3494#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 16 Jul 2019 01:59:15 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[accel]]></category>
		<category><![CDATA[accel-ppp]]></category>
		<category><![CDATA[compilar]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[debian buster]]></category>
		<category><![CDATA[pppoe]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=3494</guid>

					<description><![CDATA[<p>Este tutorial é praticamente uma tradução da documentação oficial, com alguns detalhes a mais. A principal ideia deste tutorial é ser requisito de próximos tutorias que pretendo fazer ensinado como subir um PPPoE Server&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/3494">Como instalar o Accel-PPP no Debian 10 Buster</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Este tutorial é praticamente uma tradução da <a href="https://accel-ppp.org/wiki/doku.php?id=compilation_debian" rel="noopener noreferrer" target="_blank">documentação oficial</a>, com alguns detalhes a mais.</p>
<p><em>A principal ideia deste tutorial é ser requisito de próximos tutorias que pretendo fazer ensinado como subir um PPPoE Server com accel + Quagga iBGP para trocar a tabela de rotas.</em> </p>
<p>O projeto ACCEL-PPP de código aberto tem como objetivo montar em um único servidor vários serviços VPN &#8220;all-in-one&#8221; com uma ótima performance. </p>
<h3>Suas características:</h3>
<p>Arquitetura modular extensível<br />
&#8211; Multi-threaded de alto desempenho.<br />
&#8211; PPTP, PPPoE, L2TPv2, SSTP e IPoE (DHCPv4)<br />
&#8211; Autenticação Radius.<br />
&#8211; Autenticações suportadas: PAP, CHAP (md5), extensões do Microsoft CHAP (incluindo versão 2), sem suporte &#8211; EAP<br />
MPPE suportado.<br />
&#8211; Suporte para IPv6 incluindo o Neighborin Discovery e o DHCPv6 integrados.<br />
&#8211; Controle de banda.<br />
-Entre outros.</p>
<h3>INSTALAÇÃO</h3>
<p>Distribuição linux: <a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Debian 10 Buster &#8211; Instalação de forma limpa</a></p>
<p>Instale os pacotes necessários para a compilação do accel-ppp:</p>
<pre class="remontti-code"># apt install git libsnmp-dev build-essential cmake gcc linux-headers-`uname -r` git libpcre3-dev libssl-dev liblua5.1-0-dev</pre>
<p>Criaremos as pastas accel e build em /usr/local/src. A pasta <strong>accel</strong> onde vamos baixar o projeto através do github e dentro dela vamos criar a <strong>build</strong> onde vamos preparar os arquivos para serem compilados.</p>
<pre class="remontti-code"># mkdir -p /usr/local/src/accel/build
# cd /usr/local/src/accel
# git clone https://github.com/xebd/accel-ppp.git
# cd /usr/local/src/accel/build</pre>
<p>Você pode personalizar o projeto para ativar ou desativar alguns recursos. <a href="https://accel-ppp.org/wiki/doku.php?id=compilation" rel="noopener noreferrer" target="_blank">(*)</a> Vamos utilizar os principais, como radius, ipoe, vlanmon Todas essas opções são opcionais.</p>
<pre class="remontti-code"># cmake \
-DCPACK_TYPE=Debian10 \
-DBUILD_IPOE_DRIVER=TRUE \
-DBUILD_VLAN_MON_DRIVER=TRUE \
-DRADIUS=TRUE \
-DNETSNMP=TRUE \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=/usr \
-DKDIR=/usr/src/linux-headers-$(uname -r) \
../accel-ppp</pre>
<p>Vamos a compilação</p>
<pre class="remontti-code"># make</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/accel-make.png" data-rel="lightbox-gallery-0hQPl7Ex" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/accel-make-300x154.png" alt="" width="300" height="154" class="alignnone size-medium wp-image-3502" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/accel-make-300x154.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/accel-make-768x394.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/accel-make-1024x526.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/accel-make.png 1587w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Copie os módulos do kernel ipoe e vlan_mon e após carregue os mesmo</p>
<pre class="remontti-code"># cp drivers/ipoe/driver/ipoe.ko /lib/modules/$(uname -r)
# cp drivers/vlan_mon/driver/vlan_mon.ko /lib/modules/$(uname -r)
# depmod -a
# modprobe  vlan_mon
# modprobe  ipoe</pre>
<p>Vamos adicionar os módulos para iniciar durante o boot. </p>
<pre class="remontti-code"># echo &quot;vlan_mon&quot; &gt;&gt; /etc/modules
# echo &quot;ipoe&quot; &gt;&gt; /etc/modules</pre>
<p>Agora vamos criar nosso pacote .DEB e instalá-lo</p>
<pre class="remontti-code"># cpack -G DEB
# apt install ./accel-ppp.deb</pre>
<p>Bingo!!! <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;" /> Seu a accel-ppp foi instalado!</p>
<p>Habilitamos o serviço accel-ppp para iniciar com o sistema</p>
<pre class="remontti-code"># systemctl enable accel-ppp</pre>
<p>Um arquivo de modelo do accel-ppp vem como exemplo em /etc/accel-ppp.conf.dist, faça uma copia para /etc/accel-ppp.conf para que o accel comece a interpreta-lo.</p>
<pre class="remontti-code"># cp /etc/accel-ppp.conf.dist  /etc/accel-ppp.conf</pre>
<p>Agora edite o a arquivo de configuração /etc/accel-ppp.conf de acordo com suas necessidades.</p>
<p>Lembre-se de restartar o serviço após alteração no arquivo de configuração.</p>
<pre class="remontti-code"># systemctl restart accel-ppp
# systemctl status accel-ppp</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/08/accel-ppp-status-1.png" data-rel="lightbox-gallery-0hQPl7Ex" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/08/accel-ppp-status-1-300x54.png" alt="" width="300" height="54" class="alignnone size-medium wp-image-3507" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/08/accel-ppp-status-1-300x54.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/08/accel-ppp-status-1-768x139.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/08/accel-ppp-status-1-1024x186.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/08/accel-ppp-status-1.png 1318w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Grupo do telegram: <a href="https://t.me/braccelppp" rel="noopener noreferrer" target="_blank">https://t.me/braccelppp</a></p>
<p>Gostou? 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="https://accel-ppp.org/wiki/doku.php?id=compilation_debian" rel="noopener noreferrer" target="_blank">https://accel-ppp.org/wiki/doku.php?id=compilation_debian</a></p>
<p>O post <a href="https://blog.remontti.com.br/3494">Como instalar o Accel-PPP no Debian 10 Buster</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/3494/feed</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>Aumentando o nível de seguraça na conexão SSH</title>
		<link>https://blog.remontti.com.br/97</link>
					<comments>https://blog.remontti.com.br/97#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 01 Jun 2016 05:10:46 +0000</pubDate>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian buster]]></category>
		<category><![CDATA[Fail2ban]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[sshd]]></category>
		<guid isPermaLink="false">http://www.remontti.com.br/blog/?p=97</guid>

					<description><![CDATA[<p>Distribuição testada: Debian 10 Buster Requisitos SSH intalado # apt install ssh Primeiramente vamos mudar a porta do SSH  de preferencia para uma porta bem alta (são mais difíceis serem escaneadas) e após definir&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/97">Aumentando o nível de seguraça na conexão SSH</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Distribuição testada: Debian 10 Buster</p>
<p>Requisitos SSH intalado</p>
<pre class="remontti-code"># apt install ssh</pre>
<p>Primeiramente vamos mudar a porta do SSH  de preferencia para uma porta bem alta (são mais difíceis serem escaneadas) e após definir apenas um único usuário para conexão<br />
<span id="more-97"></span></p>
<pre class="remontti-code"># vim /etc/ssh/sshd_config</pre>
<p>Aletere as seguintes linhas:</p>
<pre class="remontti-code"># Aqui vai da porta
Port 60321 
# Tempo que o usuario tem para fazer login
LoginGraceTime 10 
# Não permita que o usuário root se conecte
PermitRootLogin prohibit-password 
</pre>
<p>Adicione a linha:</p>
<pre class="remontti-code"># Apenas este usuário chamado &quot;seu_usuario&quot; irá conseguir 
# conectar-se via ssh por mais que exita outros usuários que 
# teriam permissões de acessa o bash.
AllowUsers seu_usuario </pre>
<p>Salve e reinicie o serviço:</p>
<pre class="remontti-code"># /etc/init.d/ssh restart</pre>
<p>Pronto!</p>
<pre class="remontti-code"># ssh usuariodossh@seuip -p 60321</pre>
<p>Agora sua porta de conexão SSH é a 60321, e só loga pleo &#8220;seu_usuario&#8221; terminou? Não!!!</p>
<p>Que tal enganar um pouco! <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 />
Vamos criar uma regra de firewall com iptables, caso você já tenha um script de firewall adicione a ele. A regra será um DROP na porta 22 assim vai dar uma falsa impressão que sua porta está protegia quando alguém usar algum scanner, vai passar aquele impressão: <em>&#8220;- iii tem firewall na 22, vamos procurar outro&#8230;.&#8221;</em></p>
<p>Drop falso na porta 22</p>
<pre class="remontti-code"># iptables -A INPUT -p tcp --dport 22 -j DROP</pre>
<p>Se desejar filtrar sua porta de SSH (60321) e deixar apenas IP X ou Y conectarem-se, no meu exemplo deixo apenas os IP 200.1.2.3 e toda a classe 10.0.0.0-10.0.0.255.</p>
<pre class="remontti-code"># iptables -A INPUT -s 200.1.2.3 -p tcp --dport 60321 -j ACCEPT # IP Especifico 
# iptables -A INPUT -s 10.0.0.0/24 -p tcp --dport 60321 -j ACCEPT # Uma Classe
# ip6tables -A INPUT -s 3001:1234::/32 -p tcp --dport 60321 -j ACCEPT # Uma Classe v6
# iptables -A INPUT -p tcp --dport 60321 -j DROP
# ip6tables -A INPUT -p tcp --dport 60321 -j DROP v6</pre>
<p>Como dito no momento que seu servidor for scanear seu servidor a porta 22 ira aparecer como filtrada.<br />
Para verificar os filtros </p>
<pre class="remontti-code">iptables -nL
ip6tables -nL</pre>
<p>Mas você ira precisar criar um script e colocar ele para iniciarlizar, e é por isso q eu recomendo você usar o nftables o nftables em vez do iptables, já que provavelmente vamos ver ele próximas distribuições no lugar do iptables. (Mas quis explicar o iptables também) </p>
<pre class="remontti-code"># apt install nftables
# systemctl enable nftables
# nft list ruleset
# vim /etc/nftables.conf </pre>
<pre class="remontti-code">#!/usr/sbin/nft -f
  
flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0;
                ip saddr 200.1.2.3 tcp dport 60123 counter accept
                ip saddr 10.0.0.0/24 tcp dport 60123 counter accept
                ip6 saddr 3001:1234::/32 tcp dport 60123 counter accept
                tcp dport 60123 counter drop
                tcp dport 22 counter drop
        }
        chain forward {
                type filter hook forward priority 0;
        }
        chain output {
                type filter hook output priority 0;
        }
}</pre>
<p>Reinicie o serviço, verifique as regras</p>
<pre class="remontti-code"># systemctl restart nftables
# nft list ruleset</pre>
<p>Instale o nmpa e faça um scanner</p>
<pre class="remontti-code"># apt install nmap
# nmap localhost</pre>
<p>Resultado:</p>
<pre class="remontti-code">Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp filtered ssh</pre>
<p>Assim já estou &#8220;protegido&#8221;! Legal!!!<br />
Suficiente? Eu sou mais paranoico, então se desejar prossiga <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
O que vamos fazer, é meio que redundante como que fizemos no firewall, porém se por alguma &#8220;zica&#8221; seu firewall não tiver rodando/ou foi quebrado o próximo passo vai salvar! Vamos configurar nos hosts para bloquear o serviço SSH e liberar apenas para seu IP ou classe.</p>
<pre class="remontti-code"># vim /etc/hosts.allow</pre>
<p>Adicione:</p>
<pre class="remontti-code">sshd: 200.1.2.3 # Ip Especifico
sshd: 10.0.0.0/24 # Uma Classe de IP</pre>
<pre class="remontti-code"># vim /etc/hosts.deny</pre>
<p>Adicione:</p>
<pre class="remontti-code">sshd: ALL</pre>
<p>Agora sim né! Humm.. Sei não que tal instalar o <strong><a href="http://www.fail2ban.org/">fail2ban</a></strong>?</p>
<pre class="remontti-code"> # apt install fail2ban</pre>
<p>Por padrão o modulo de proteção do SSH vem ativo (true) no Debian, no parâmetro <strong>maxretry</strong> você define o número de tentativas que poderá errar a senha para conexão a partir de um determinado IP.</p>
<p>Para alterar as configurações do fail2ban edite o arquivo <strong>/etc/fail2ban/jail.conf</strong></p>
<pre class="remontti-code">vim /etc/fail2ban/jail.conf</pre>
<p>Por padrão os tempos de banimento é de 10m e numero de tentativas é 5</p>
<pre class="remontti-code">bantime = 10m # Duração para um IP ficar banido
findtime = 10m # Se nenhuma correspondência nos logs é encontrada dentro de X tempo
maxretry = 5 # Tentativas ate o banimento</pre>
<p>Adicione também a porta 60123 já que alteramos a mesma</p>
<pre class="remontti-code">[sshd]
# To use more aggressive sshd modes set filter parameter &quot;mode&quot; in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See &quot;tests/files/logs/sshd&quot; or &quot;filter.d/sshd.conf&quot; for usage example and details.
#mode   = normal
port    = ssh,60123
logpath = %(sshd_log)s
backend = %(sshd_backend)s
</pre>
<p>O filtro fica ativo em /etc/fail2ban/jail.d/defaults-debian.conf, você pode incluir maxretry so para ele bem como bantime, personalizando somente o filtro SSH. Ex.:</p>
<pre class="remontti-code"># vim /etc/fail2ban/jail.d/defaults-debian.conf</pre>
<pre class="remontti-code">[sshd]
enabled = true
maxretry = 2
bantime  = 12h</pre>
<p>Estamos 100% seguro? Nada é 100% seguro, mas certamente você levou seu nível de segurança a um nível &#8220;hard core&#8221;!</p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento! (Esse deu trabalho!)</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>O post <a href="https://blog.remontti.com.br/97">Aumentando o nível de seguraça na conexão SSH</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/97/feed</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
	</channel>
</rss>
