<?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 10 - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/debian-10/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/debian-10</link>
	<description>rudimar@remontti</description>
	<lastBuildDate>Tue, 10 Dec 2024 18:00: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 10 - Remontti</title>
	<link>https://blog.remontti.com.br/tag/debian-10</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Instalação do LibreNMS no Debian 10, ferramenta de monitoramento de dispositivos</title>
		<link>https://blog.remontti.com.br/5538</link>
					<comments>https://blog.remontti.com.br/5538#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 23 Apr 2021 17:07:04 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[LibreNMS]]></category>
		<category><![CDATA[monitoramento]]></category>
		<category><![CDATA[observium]]></category>
		<category><![CDATA[zabbix]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5538</guid>

					<description><![CDATA[<p>LibreNMS é um monitoramento de rede baseado em PHP/MySQL/SNMP que inclui suporte para uma ampla gama de hardware de rede e sistemas operacionais, incluindo Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP e muitos mais.&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/5538">Instalação do LibreNMS no Debian 10, ferramenta de monitoramento de dispositivos</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/librenms-debian-buster.png" alt="" width="720" height="340" class="alignnone size-full wp-image-5559" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/librenms-debian-buster.png 720w, https://blog.remontti.com.br/wp-content/uploads/2021/04/librenms-debian-buster-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/librenms-debian-buster-520x245.png 520w" sizes="(max-width: 720px) 100vw, 720px" /><br />
<a href="https://docs.librenms.org/General/Welcome-to-Observium-users/" rel="noopener" target="_blank">LibreNMS</a> é um monitoramento de rede baseado em PHP/MySQL/SNMP que inclui suporte para uma ampla gama de hardware de rede e sistemas operacionais, incluindo Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP e muitos mais.</p>
<p>LibreNMS é um fork do <a href="https://blog.remontti.com.br/5103" rel="noopener" target="_blank">Observium</a></p>
<h3>Requisitos:</h3>
<p>Instalação Debian 10 Limpa</p>
<p><strong>Instale os pacotes necessários</strong></p>
<pre class="remontti-code"># apt install acl curl composer fping git graphviz imagemagick \
  mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.3-cli \
  php7.3-curl php7.3-fpm php7.3-gd php7.3-json php7.3-mbstring \
  php7.3-mysql php7.3-snmp php7.3-xml php7.3-zip python-memcache \
  python-mysqldb rrdtool snmp snmpd whois python3-pymysql \
  python3-dotenv python3-redis python3-setuptools</pre>
<p><strong>Criaremos um usuário librenms</strong></p>
<pre class="remontti-code"># useradd librenms -d /opt/librenms -M -r
# usermod -a -G librenms www-data</pre>
<p><strong>Download LibreNMS</strong></p>
<pre class="remontti-code"># cd /opt
# git clone https://github.com/librenms/librenms.git</pre>
<p><strong>Ajustes as permissões</strong></p>
<pre class="remontti-code"># chown -R librenms:librenms /opt/librenms
# chmod 770 /opt/librenms
# setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
# setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/</pre>
<p><strong>Instale dependências de PHP</strong></p>
<pre class="remontti-code"># su - librenms
$ ./scripts/composer_wrapper.php install --no-dev
$ exit</pre>
<p><strong>Configuração do MariaDB</strong></p>
<pre class="remontti-code"># mariadb -u root</pre>
<p>Defina a senha para o usuario root do MariaDB e em seguida crie o banco/usuário<br />
librenms e defina também uma senha para o mesmo, recomendo você gerar uma senha aleatória<br />
em https://senhasegura.remontti.com.br Não esqueção de alterar nas linhas a baixo SENHA_ROOT/SENHA_LIBRENMS</p>
<pre class="remontti-code">USE mysql;
UPDATE user SET password=PASSWORD(&#039;SENHA_ROOT&#039;) WHERE User=&#039;root&#039;;
UPDATE user SET plugin=&quot;mysql_native_password&quot;;

CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER &#039;librenms&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SENHA_LIBRENMS&#039;;
GRANT ALL PRIVILEGES ON librenms.* TO &#039;librenms&#039;@&#039;localhost&#039;;
FLUSH PRIVILEGES;
quit;</pre>
<p>Ative o innodb_file_per_table e desative o lower_case_table_names no banco de dados</p>
<pre class="remontti-code"># vim /etc/mysql/mariadb.conf.d/50-server.cnf</pre>
<p>Adicione logo a baixo de &#8220;[mysqld]&#8221;</p>
<pre class="remontti-code">[mysqld]
innodb_file_per_table=1
lower_case_table_names=0</pre>
<p>Reinicie o serviço</p>
<pre class="remontti-code"># systemctl  restart mariadb</pre>
<p>Altere a memoria limite usada pelo php, bem como tempo de execução, e time zone: <a href="https://www.php.net/manual/pt_BR/timezones.php" rel="noopener" target="_blank">https://www.php.net/manual/pt_BR/timezones.php</a></p>
<pre class="remontti-code"># sed -i &#039;s/memory_limit = 128M/memory_limit = 256M/&#039; /etc/php/7.3/fpm/php.ini /etc/php/7.3/cli/php.ini
# sed -i &#039;s/max_input_time = 60/max_input_time = 300/&#039; /etc/php/7.3/fpm/php.ini /etc/php/7.3/cli/php.ini
# sed -i &#039;s/;date.timezone =/date.timezone = America\/Sao_Paulo/&#039; /etc/php/7.3/fpm/php.ini /etc/php/7.3/cli/php.ini
# echo &#039;opcache.enable=1&#039; &gt;&gt; /etc/php/7.3/fpm/conf.d/10-opcache.ini
# echo &#039;opcache.memory_consumption=256&#039; &gt;&gt; /etc/php/7.3/fpm/conf.d/10-opcache.ini
# systemctl restart php7.3-fpm</pre>
<p><strong>NGINX</strong></p>
<p>Remova o arquivo default</p>
<pre class="remontti-code"># rm /etc/nginx/sites-enabled/default
# vim /etc/nginx/sites-available/librenms.conf</pre>
<p>Criaremos um novo arquivo, altere o server_name, se desejar restringir pode desomtar as linhas onde cito.</p>
<pre class="remontti-code">server {
 listen      80;
 listen      [::]:80;
 server_name librenms.seudominio.com.br 192.168.0.100;
 root        /opt/librenms/html;
 index       index.php;

 # Desmomente para deixar restringido apenas para determinados prefixos
 #allow  192.168.87.0/24;
 #allow  2001:0db8::/32;
 #deny   all;
 #error_page  403   http://www.remontti.com.br;

 charset utf-8;
 gzip on;
 gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;

 proxy_read_timeout 300;
 proxy_connect_timeout 300;
 proxy_send_timeout 300;

 location / {
  try_files $uri $uri/ /index.php?$query_string;
 }
 location /api/v0 {
  try_files $uri $uri/ /api_v0.php?$query_string;
 }
 location ~ \.php {
  include fastcgi.conf;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
 }
 location ~ /\.ht {
  deny all;
 }
}</pre>
<p>Crie o link em sites-available e reinicie o nginx </p>
<pre class="remontti-code"># ln -s /etc/nginx/sites-available/librenms.conf /etc/nginx/sites-enabled/
# systemctl restart nginx</pre>
<p><strong>Configurando o snmpd</strong></p>
<pre class="remontti-code"># mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.old
# cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
# chmod 600 /etc/snmp/snmpd.conf</pre>
<p>Altere as variáveis para seus valores</p>
<pre class="remontti-code"># SUA_COMMUNITY=&quot;minhacommunity&quot;
# SEU_NOME=&quot;Rudimar Remontti&quot;
# SEU_EMAIL=&quot;noc@remontti.com.br&quot;
# LOCALIZACAO=&quot;Rua RR, Frederico Westphalen/RS, Brasil [-27.334143, -53.420506]&quot;</pre>
<p>Agora rodamos o comando que ira trocar alterar as variáveis em /etc/snmp/snmpd.conf</p>
<pre class="remontti-code"># sed -i &quot;s/RANDOMSTRINGGOESHERE/$SUA_COMMUNITY/&quot; /etc/snmp/snmpd.conf
# sed -i &quot;s/Your Name/$SEU_NOME/&quot; /etc/snmp/snmpd.conf
# sed -i &quot;s/your@email.address/$SEU_EMAIL/&quot; /etc/snmp/snmpd.conf
# sed -i &quot;s/syslocation/#syslocation/&quot; /etc/snmp/snmpd.conf
# sed -i &quot;9i\syslocation $LOCALIZACAO&quot; /etc/snmp/snmpd.conf</pre>
<p>Baixa o script de detecção de distro</p>
<pre class="remontti-code"># curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
# chmod +x /usr/bin/distro
# systemctl restart snmpd</pre>
<p><strong>Ajustando rotinas no Cron</strong></p>
<pre class="remontti-code"># cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
# systemctl  restart cron</pre>
<p><strong>Configuração do logrotate</strong></p>
<pre class="remontti-code"># cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
# logrotate /etc/logrotate.d/librenms --debug
# systemctl restart logrotate</pre>
<p>Agora acesse seu servido em seu navegador: &#8220;http://librenms.seudominio.com.br/install&#8221;</p>
<p>Tenha todos os pré-requisitos<br />
<img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/1-1.png" alt="" width="1072" height="602" class="alignnone size-full wp-image-5541" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/1-1.png 1072w, https://blog.remontti.com.br/wp-content/uploads/2021/04/1-1-300x168.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/1-1-1024x575.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/1-1-768x431.png 768w" sizes="(max-width: 1072px) 100vw, 1072px" /><br />
Clique no ícone do banco de dados e preencha os dados do banco com usuário e senha criada anteriormente.<br />
<img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/2.png" alt="" width="1129" height="799" class="alignnone size-full wp-image-5542" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/2.png 1129w, https://blog.remontti.com.br/wp-content/uploads/2021/04/2-300x212.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/2-1024x725.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/2-768x544.png 768w" sizes="(max-width: 1129px) 100vw, 1129px" /><br />
Clique em Build database para ele criar todo seu banco de dados.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/3-1.png" alt="" width="1046" height="696" class="alignnone size-full wp-image-5543" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/3-1.png 1046w, https://blog.remontti.com.br/wp-content/uploads/2021/04/3-1-300x200.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/3-1-1024x681.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/3-1-768x511.png 768w" sizes="auto, (max-width: 1046px) 100vw, 1046px" /><br />
Se tudo deu certo clique no ícone da chave<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/4.png" alt="" width="1049" height="572" class="alignnone size-full wp-image-5544" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/4.png 1049w, https://blog.remontti.com.br/wp-content/uploads/2021/04/4-300x164.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/4-1024x558.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/4-768x419.png 768w" sizes="auto, (max-width: 1049px) 100vw, 1049px" /><br />
Crie o usuário para acessar seu LibreNMS web<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/5-1.png" alt="" width="1016" height="589" class="alignnone size-full wp-image-5545" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/5-1.png 1016w, https://blog.remontti.com.br/wp-content/uploads/2021/04/5-1-300x174.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/5-1-768x445.png 768w" sizes="auto, (max-width: 1016px) 100vw, 1016px" /><br />
Clique no ícone &#8220;v&#8221; para finalizar<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/6.png" alt="" width="1082" height="568" class="alignnone size-full wp-image-5546" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/6.png 1082w, https://blog.remontti.com.br/wp-content/uploads/2021/04/6-300x157.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/6-1024x538.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/6-768x403.png 768w" sizes="auto, (max-width: 1082px) 100vw, 1082px" /><br />
Um &#8220;erro&#8221; irá aparecer, não se assuste, ele apenas não conseguiu modificar o /opt/librenms/.env, então copie o conteúdo:<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/7.png" alt="" width="993" height="866" class="alignnone size-full wp-image-5547" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/7.png 993w, https://blog.remontti.com.br/wp-content/uploads/2021/04/7-300x262.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/7-768x670.png 768w" sizes="auto, (max-width: 993px) 100vw, 993px" /></p>
<p>Iremos limpar o arquivo atual, e edite o mesmo</p>
<pre class="remontti-code"># echo &gt; /opt/librenms/.env
# vim /opt/librenms/.env</pre>
<p>Colando as informações copiadas do navegado.</p>
<pre class="remontti-code">APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxx=

DB_HOST=localhost
DB_DATABASE=librenms
DB_USERNAME=librenms
DB_PASSWORD=SENHA_LIBRENMS

#APP_URL=
NODE_ID=xxxxxxxxxxxxx</pre>
<p>Mais uma vez altere as permissões bem como faça alguns ajustes</p>
<pre class="remontti-code"># chown -R librenms:librenms /opt/librenms
# setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
# chmod -R ug=rwX /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
# cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/
# ln -s /opt/librenms/lnms /usr/bin/lnms</pre>
<p>Logue com librenms e rode o comando:</p>
<pre class="remontti-code"># su - librenms
$  ./scripts/github-remove -d 
Are you sure you want to delete all modified and untracked files? [y/N] y &lt;&lt;&lt;
$ exit</pre>
<p>Finalize<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/8.png" alt="" width="928" height="346" class="alignnone size-full wp-image-5548" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/8.png 928w, https://blog.remontti.com.br/wp-content/uploads/2021/04/8-300x112.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/8-768x286.png 768w" sizes="auto, (max-width: 928px) 100vw, 928px" /><br />
Entre com usuário senha que criou<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/9.png" alt="" width="1044" height="627" class="alignnone size-full wp-image-5549" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/9.png 1044w, https://blog.remontti.com.br/wp-content/uploads/2021/04/9-300x180.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/9-1024x615.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/9-768x461.png 768w" sizes="auto, (max-width: 1044px) 100vw, 1044px" /><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/10.png" alt="" width="1155" height="516" class="alignnone size-full wp-image-5550" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/10.png 1155w, https://blog.remontti.com.br/wp-content/uploads/2021/04/10-300x134.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/10-1024x457.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/10-768x343.png 768w" sizes="auto, (max-width: 1155px) 100vw, 1155px" /><br />
Adicione seu próprio servidor para monitorar<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/11.png" alt="" width="1667" height="783" class="alignnone size-full wp-image-5551" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/11.png 1667w, https://blog.remontti.com.br/wp-content/uploads/2021/04/11-300x141.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/11-1024x481.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/11-768x361.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/04/11-1536x721.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2021/04/11-520x245.png 520w" sizes="auto, (max-width: 1667px) 100vw, 1667px" /><br />
Valide as configurações<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/12.png" alt="" width="1674" height="724" class="alignnone size-full wp-image-5552" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/12.png 1674w, https://blog.remontti.com.br/wp-content/uploads/2021/04/12-300x130.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/12-1024x443.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/12-768x332.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/04/12-1536x664.png 1536w" sizes="auto, (max-width: 1674px) 100vw, 1674px" /></p>
<p><strong>Extra: Plugin Weathermap</strong></p>
<pre class="remontti-code"># cd /opt/librenms/html/plugins
# git clone https://github.com/librenms-plugins/Weathermap.git
# chown -R librenms:librenms /opt/librenms/html/plugins/Weathermap/
# chmod 775 /opt/librenms/html/plugins/Weathermap/configs
# echo &#039;*/5 * * * * librenms /opt/librenms/html/plugins/Weathermap/map-poller.php&#039; &gt;&gt; /etc/cron.d/librenms</pre>
<p>Ative o plugin em <strong>OverView ->Plugins -> Plugin Admin</strong></p>
<p>Recomendo a leitura: <a href="https://docs.librenms.org/" rel="noopener" target="_blank">https://docs.librenms.org/</a></p>
<p>Gostou? Quer me ajudar? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Fontes:<br />
<a href="https://github.com/librenms/librenms" rel="noopener" target="_blank">https://github.com/librenms/librenms</a><br />
<a href="https://docs.librenms.org/Installation/" rel="noopener" target="_blank">https://docs.librenms.org/Installation/</a></p>
<p>O post <a href="https://blog.remontti.com.br/5538">Instalação do LibreNMS no Debian 10, ferramenta de monitoramento de dispositivos</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5538/feed</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 10 Buster (LNPP)</title>
		<link>https://blog.remontti.com.br/5487</link>
					<comments>https://blog.remontti.com.br/5487#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 07 Apr 2021 20:56:22 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[buster]]></category>
		<category><![CDATA[certificado]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[letsencrypt]]></category>
		<category><![CDATA[LNMP]]></category>
		<category><![CDATA[lnpp]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[pgadmin]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php-fpm]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[phppgadmin]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[postgresql]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5487</guid>

					<description><![CDATA[<p>Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/5487">Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 10 Buster (LNPP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/NGINX-LNNP.png" alt="" width="720" height="340" class="alignnone size-full wp-image-5514" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/NGINX-LNNP.png 720w, https://blog.remontti.com.br/wp-content/uploads/2021/04/NGINX-LNNP-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/NGINX-LNNP-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /><br />
Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor performance. O Apache, sem dúvidas, é o servidor web mais popular. No entanto, o NGINX a cada ano ganha mais popularidade e está sendo a preferência dos novos projetos. Também estarei instalando o banco de dados PostgreSQL e phpPgAdmin como gerenciador web. </p>
<p>Distribuição utilizada: <strong><a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Debian 10 Stretch / Instalação Limpa</a></strong></p>
<h3>NGINX</h3>
<p><a href="https://www.nginx.com" rel="noopener" target="_blank">https://www.nginx.com</a></p>
<pre class="remontti-code"># apt install nginx</pre>
<p>Acesse agora em seu navegador http://IP-SERVIDOR/<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png" alt="" width="1100" height="310" class="alignnone size-full wp-image-5467" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1.png 1100w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-300x85.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-1024x289.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx1-768x216.png 768w" sizes="auto, (max-width: 1100px) 100vw, 1100px" /><br />
Se você acessar um diretório que não existe um erro dizendo que não existe, e junto informações que não é legal aparecer.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2.png" alt="" width="1036" height="296" class="alignnone size-full wp-image-5468" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2.png 1036w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-300x86.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-1024x293.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx2-768x219.png 768w" sizes="auto, (max-width: 1036px) 100vw, 1036px" /><br />
Vamos remover assinatura do nginx onde ele exibe a versão do mesmo. Ninguém precisa saber! Correto?</p>
<pre class="remontti-code"># sed -i &#039;s/# server_tokens/server_tokens/&#039; /etc/nginx/nginx.conf
# systemctl restart nginx</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3.png" alt="" width="712" height="157" class="alignnone size-full wp-image-5469" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3.png 712w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx3-300x66.png 300w" sizes="auto, (max-width: 712px) 100vw, 712px" /></p>
<p>Pronto nosso NGINX está rodando! </p>
<h3>PostgreSQL</h3>
<pre class="remontti-code"># apt install postgresql postgresql-contrib</pre>
<p>Torne-se o usuário postgres, para poder criar o banco de dados.</p>
<pre class="remontti-code"># su - postgres</pre>
<p>Execute para entrar no terminal de comandos do banco.</p>
<pre class="remontti-code">$ psql</pre>
<p>Para definir a senha do usuário postgres e instalar o adminpack.</p>
<pre class="remontti-code">postgres=# \password postgres
Digite nova senha para postgres: 
Digite-a novamente:
postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION
postgres=# \q 
$ exit</pre>
<p>Ajustes no pg_hba.conf, assim toda alteração será necessaria validação do postgres com a senha que acabou de definir.</p>
<pre class="remontti-code"># vim /etc/postgresql/11/main/pg_hba.conf</pre>
<p>Altere as seguintes linhas: </p>
<pre class="remontti-code">local   all             postgres                                peer
local   all             all                                     peer</pre>
<p>Para:</p>
<pre class="remontti-code">local   all             postgres                                md5
local   all             all                                     md5</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres.png" alt="" width="1010" height="268" class="alignnone size-full wp-image-5501" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres.png 1010w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres-300x80.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres-768x204.png 768w" sizes="auto, (max-width: 1010px) 100vw, 1010px" /><br />
Reinicie o postgres</p>
<pre class="remontti-code"># systemctl restart postgresql</pre>
<p>Volte para o postgres</p>
<pre class="remontti-code"># su - postgres</pre>
<p>Agora para toda ação será necessário autenticar.</p>
<pre class="remontti-code">$ psql 
Senha para usuário postgres: !!SUA_SENHA!!
psql (11.11 (Debian 11.11-0+deb10u1))
Digite &quot;help&quot; para ajuda.
postgres-# \q</pre>
<p>Para demonstração irei criar um banco/usuário teste, não esqueça de alterar a senha.</p>
<pre class="remontti-code">$ createuser --pwprompt teste
Digite a senha para a nova role: &lt;&lt; NOVA SENHA PARA O USUÁRIO TESTE
Digite-a novamente: &lt;&lt; REPITA
Senha: &lt;&lt; SENHA DO QUE SETOU ANTES  NO COMANDO &quot;\password postgres&quot;</pre>
<p>Agora crie o  banco e vincule ao usuário.</p>
<pre class="remontti-code">$ createdb -O teste meubd
Senha: &lt;&lt;&lt; SENHA DO POSTGRES </pre>
<p>Verifique se o mesmo foi criado.</p>
<pre class="remontti-code">$ psql -l 
Senha para usuário postgres: 
                               Lista dos bancos de dados
   Nome    |   Dono   | Codificação |   Collate   |    Ctype    | Privilégios de acesso 
-----------+----------+-------------+-------------+-------------+-----------------------
 meubd     | teste    | UTF8        | pt_BR.UTF-8 | pt_BR.UTF-8 | 
....
....</pre>
<p>Acessamos agora o bd teste.</p>
<pre class="remontti-code">$ psql -U teste -d meubd
Senha para usuário postgres: 
psql (11.11 (Debian 11.11-0+deb10u1))
Digite &quot;help&quot; para ajuda.

meubd=&gt;</pre>
<p>Vamos fazer uma "brincadeira" só para testar, criaremos uma tabela e inseriremos dados nela.</p>
<pre class="remontti-code">meubd=&gt; CREATE TABLE doacao ( id int,nome text, valor text );
meubd=&gt; INSERT INTO doacao (id,nome,valor) values (1,&#039;Rudimar Remontti&#039;,&#039;R$ 5,00&#039;); 
meubd=&gt; SELECT * FROM doacao;

 id |       nome       |  valor  
----+------------------+---------
  1 | Rudimar Remontti | R$ 5,00

meubd=&gt; \q</pre>
<p>Se deseja remover o banco/usuário teste.</p>
<pre class="remontti-code">$ dropdb meubd
$ dropuser teste</pre>
<p>Volte para root</p>
<pre class="remontti-code">$ exit</pre>
<h3>PHP7</h3>
<p>Incluirei algumas extensões do PHP que são normalmente utilizada também na instalação.</p>
<pre class="remontti-code"># apt install php php-{fpm,cli,mysql,pear,gd,gmp,bcmath,mbstring,curl,xml,zip,json,pgsql}</pre>
<p>Agora vamos fazer a "integração" do PHP com o NGINX. Moveremos o arquivo defaul.</p>
<pre class="remontti-code"># mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original</pre>
<p>Crie um novo:</p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/default</pre>
<p>Ajuste:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}</pre>
<p>Teste a configuração se não tem nada errado e restart os serviços:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx php7.3-fpm</pre>
<p>Vamos criar um arquivo em PHP para testa se nosso NGINX está interpretando o PHP.</p>
<pre class="remontti-code"># echo &#039;&lt;?php phpinfo();&#039; &gt;&gt; /var/www/html/teste.php</pre>
<p>Acesse em seu navegador http://IP-SERVIDOR/teste.php<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7.png" alt="" width="1173" height="899" class="alignnone size-full wp-image-5473" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7.png 1173w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7-300x230.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7-1024x785.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/nginx-php7-768x589.png 768w" sizes="auto, (max-width: 1173px) 100vw, 1173px" /><br />
<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Nosso servidor WEB com PHP está funcionando! </p>
<p>Exemplo para multiplos domínios/subdomínios </p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub1.conf</pre>
<p>Neste ex: vou representar o <em>sub1.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub1;
    index index.php index.html index.htm;

    server_name sub1.remontti.com.br;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}</pre>
<pre class="remontti-code"># vim /etc/nginx/sites-available/sub2e3.conf</pre>
<p>Neste ex: vou representar o <em>sub2.remontti.com.br</em> e <em>sub3.remontti.com.br</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/sub2e3;
    index index.php index.html index.htm;

    server_name sub2.remontti.com.br sub3.remontti.com.br;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}</pre>
<p>Link os arquivos no diretório "/etc/nginx/sites-available"  que será carregado as novas configurações </p>
<pre class="remontti-code"># ln -s /etc/nginx/sites-available/sub1.conf /etc/nginx/sites-enabled/
# ln -s /etc/nginx/sites-available/sub2e3.conf /etc/nginx/sites-enabled/</pre>
<p>Crie os diretórios referente a cada <strong>server_name</strong>.</p>
<pre class="remontti-code"># mkdir /var/www/sub1
# mkdir /var/www/sub2e3
# echo &#039;&lt;?php echo &quot;Olá mundo do sub1!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub1/index.php
# echo &#039;&lt;?php echo &quot;Olá mundo do sub2e3!&quot;; ?&gt;&#039; &gt;&gt; /var/www/sub2e3/index.php
</pre>
<p>Verifique se não tem nenhum erro e reinicie o serviço:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<h3>phpPgAdmin</h3>
<p>O phppgadmin até pode ser instalado via apt, porém seu empacotamento esta na versão 5, vou baixar a versão mais recente direta do <a href="https://github.com/phppgadmin/phppgadmin/releases" rel="noopener" target="_blank">https://github.com/phppgadmin/phppgadmin/releases</a> hoje (abril 2021) na versão 7.13.0</p>
<pre class="remontti-code"># apt install wget 
# cd /tmp/
# wget https://github.com/phppgadmin/phppgadmin/releases/download/REL_7-13-0/phpPgAdmin-7.13.0.tar.gz
# tar vxf phpPgAdmin-7.13.0.tar.gz
# mv /tmp/phpPgAdmin-7.13.0 /usr/share/phppgadmin</pre>
<p>Ajustes no config.inc.php</p>
<pre class="remontti-code"># vim /usr/share/phppgadmin/conf/config.inc.php</pre>
<p>Localize as linhas e ajuste:</p>
<pre class="remontti-code">$conf[&#039;servers&#039;][0][&#039;host&#039;] = &#039;localhost&#039;;
$conf[&#039;extra_login_security&#039;] = false;
$conf[&#039;owned_only&#039;] = true;</pre>
<p>Para torna-lo acessível altere o arquivo de configuração do seu NGINX, no exemplo vou colocar no arquivo default, mas você poderia estar configurando em seus domínios. </p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/default</pre>
<p>Adicione as linhas destacadas:</p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }

    location ^~ /phppgadmin {
        root /usr/share;
        try_files $uri $uri/ =404;

        #allow  192.168.87.0/24;
        #allow  2001:0db8::/32;
        #deny   all;
        #error_page  403   http://www.remontti.com.br;

        location ~ .php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
        }

    }

}</pre>
<p>Se deseja tonar o phppgadmin acessível apenas de alguns endereços IPs (RECOMENDO) basta descomentar as linhas, e incluir seus prefixos. O error_page é para que quando a o acessante levar um proibido seja direcionado para um site.</p>
<pre class="remontti-code">allow  192.168.87.0/24;
allow  2001:0db8::/32;
deny   all;
error_page  403   http://www.remontti.com.br;</pre>
<p>Verifique se não tem nenhum erro e reinicie o serviço:</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<p>Basta acessar http://IP-SERVIDOR/phppgadmin<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/phppgadmin7.png" alt="" width="1033" height="340" class="alignnone size-full wp-image-5495" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/phppgadmin7.png 1033w, https://blog.remontti.com.br/wp-content/uploads/2021/04/phppgadmin7-300x99.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/phppgadmin7-1024x337.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/phppgadmin7-768x253.png 768w" sizes="auto, (max-width: 1033px) 100vw, 1033px" /><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres2.png" alt="" width="1401" height="576" class="alignnone size-full wp-image-5511" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres2.png 1401w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres2-300x123.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres2-1024x421.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/04/postgres2-768x316.png 768w" sizes="auto, (max-width: 1401px) 100vw, 1401px" /></p>
<h3>LETSENCRYPT</h3>
<p>Criando certificado valido para nossos domínios.</p>
<pre class="remontti-code"># apt install letsencrypt python-certbot-nginx</pre>
<p>Tenha seu(s) domínio(s) configurado em /etc/nginx/sites-enabled/</p>
<pre class="remontti-code"># letsencrypt</pre>
<p>Retorno do questionário:</p>
<pre class="remontti-code">Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter &#039;c&#039; to
cancel): dev@null.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: sub1.remontti.com.br
2: sub2.remontti.com.br   &lt;&lt; CASO VOCÊ TENHA MAIS DE UM SUB CONFIGURADO
3: sub3.remontti.com.br    &lt;&lt; IRÁ APARECER AQUI 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter &#039;c&#039; to cancel): 1 &lt;&lt; ESCOLHA QUAIS VC DESEJA
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for sub1.remontti.com.br
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/sub1.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): 2 &lt;&lt; SE QUISER FORCAR SEMPRE HTTPS
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/sub1.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled
https://sub1.remontti.com.br

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=sub1.remontti.com.br
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/sub1.remontti.com.br/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/sub1.remontti.com.br/privkey.pem
   Your cert will expire on 2021-07-05. 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 / Let&#039;s Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
</pre>
<p>Você pode também criar o certificado diretamente para um domínio. </p>
<pre class="remontti-code"># letsencrypt --authenticator standalone --installer nginx -d sub1.remontti.com.br</pre>
<p>Dica, se desejar desativar o TLS1.0 e TLS1.1 após criar um certificado um arquivo é criado /etc/letsencrypt/options-ssl-apache.conf, então edite e inclua no SSLProtocol TLSv1 -TLSv1.1</p>
<pre class="remontti-code"># vim /etc/letsencrypt/options-ssl-apache.conf</pre>
<p>Ficando</p>
<pre class="remontti-code">#SSLProtocol            all -SSLv2 -SSLv3
SSLProtocol             all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1</pre>
<p>Reinicie o Apache:</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>Para testar acesse: <a href="https://www.cdn77.com/tls-test/" rel="noopener" target="_blank">https://www.cdn77.com/tls-test/</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png" data-rel="lightbox-gallery-5APtKT9g" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png" alt="" width="300" height="182" class="alignnone size-medium wp-image-6158" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-300x182.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-1024x620.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste-768x465.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/10/tls_teste.png 1099w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Não esqueça de colocar no seu cron para ele renovar o certificado, pois a cada 90 ele expira. Neste exemplo todo dia primeiro tento renovar.</p>
<pre class="remontti-code"># echo &#039;00 00   1 * *   root    /usr/bin/certbot -q renew&#039; &gt;&gt; /etc/crontab
# systemctl restart cron</pre>
<p>Caso não renovar apenas rode o comando letsencrypt novamente. </p>
<p>Gostou?</p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a><br />
Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p><strong>Fontes:</strong> <a href="https://docs.nginx.com/" rel="noopener" target="_blank">https://docs.nginx.com/</a><br />
<a href="https://docs.nginx.com/nginx/admin-guide/web-server/web-server/" rel="noopener" target="_blank">https://docs.nginx.com/nginx/admin-guide/web-server/web-server/</a></p>
<p>O post <a href="https://blog.remontti.com.br/5487">Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 10 Buster (LNPP)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5487/feed</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Como instalar o Jellyfin um sistema de mídia pessoal</title>
		<link>https://blog.remontti.com.br/5322</link>
					<comments>https://blog.remontti.com.br/5322#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Thu, 25 Feb 2021 01:07:34 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[buster]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[emby]]></category>
		<category><![CDATA[emby-server]]></category>
		<category><![CDATA[filmes]]></category>
		<category><![CDATA[midia]]></category>
		<category><![CDATA[Server]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5322</guid>

					<description><![CDATA[<p>Jellyfin é um sistema de mídia de software livre que permite que você controle o gerenciamento e o streaming de sua mídia. É uma alternativa ao Emby e Plex proprietários, para fornecer mídia de&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/5322">Como instalar o Jellyfin um sistema de mídia pessoal</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://jellyfin.org/" rel="noopener" target="_blank">Jellyfin</a> é um sistema de mídia de software livre que permite que você controle o gerenciamento e o streaming de sua mídia. É uma alternativa ao Emby e Plex proprietários, para fornecer mídia de um servidor dedicado para dispositivos de usuário final por meio de vários aplicativos. Jellyfin é descendente da versão 3.5.2 do Emby e portado para a estrutura do .NET Core para permitir o suporte cruzado completo. Não há amarras, licenças ou recursos premium e agendas ocultas: apenas uma equipe que deseja construir algo melhor e trabalhar em conjunto para alcançá-lo. Congratulamo-nos com qualquer pessoa interessada em se juntar a nós em nossa busca!</p>
<p><center><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-2.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-2-300x170.png" alt="" width="300" height="170" class="alignnone size-medium wp-image-5326" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-2-300x170.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-2-1024x580.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-2-768x435.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-2-1536x869.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-2.png 1908w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-3.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-3-300x170.png" alt="" width="300" height="170" class="alignnone size-medium wp-image-5327" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-3-300x170.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-3-1024x580.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-3-768x435.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-3-1536x869.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-3.png 1908w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-4.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-4-300x169.png" alt="" width="300" height="169" class="alignnone size-medium wp-image-5328" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-4-300x169.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-4-1024x576.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-4-768x432.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-4-1536x864.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-4.png 1920w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-5.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-5-300x163.png" alt="" width="300" height="163" class="alignnone size-medium wp-image-5329" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-5-300x163.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-5-1024x556.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-5-768x417.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-5.png 1417w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-1.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-1-300x170.png" alt="" width="300" height="170" class="alignnone size-medium wp-image-5325" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-1-300x170.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-1-1024x580.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-1-768x435.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-1-1536x869.png 1536w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-1.png 1908w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></center></p>
<p>Possui uma vasta <a href="https://jellyfin.org/clients/" rel="noopener" target="_blank">compatibilidade de aplicativos clientes</a> como <a href="https://www.amazon.com/gp/aw/d/B07TX7Z725" rel="noopener" target="_blank">Firetv</a>, Kody, Xbox One, PS4, LG WebOS, Samsung, GOogle Cast, AirPlay, Roku, <a href="https://play.google.com/store/apps/details?id=org.jellyfin.mobile" rel="noopener" target="_blank">Android</a>, <a href="https://apps.apple.com/us/app/jellyfin-mobile/id1480192618" rel="noopener" target="_blank">iOS</a> entre outros.</p>
<p>Sua instalação é muito simples <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Como de costume vou realizar a <a href="https://blog.remontti.com.br/2966" rel="noopener" target="_blank">instalação no Debian 10 limpo </a>(sem nenhuma instalação de pacotes)</p>
<p>Instale os pacotes necessários:</p>
<pre class="remontti-code"># apt install apt-transport-https lsb-release gnupg wget</pre>
<p>Adicione o repositório do Jellyfin para sempre ter atualização.</p>
<pre class="remontti-code"># wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | apt-key add -
# echo &quot;deb [arch=$( dpkg --print-architecture )] \
https://repo.jellyfin.org/$( awk -F&#039;=&#039; &#039;/^ID=/{ print $NF }&#039; \
/etc/os-release ) $( awk -F&#039;=&#039; &#039;/^VERSION_CODENAME=/{ print $NF }&#039; \
/etc/os-release ) main&quot; |tee /etc/apt/sources.list.d/jellyfin.list</pre>
<p>Atualize o repositório e em seguida instale o Jellyfin</p>
<pre class="remontti-code"># apt update
# apt install jellyfin</pre>
<p>Crie um diretório onde irá salvar seus Vídeos:</p>
<pre class="remontti-code"># mkdir /home/remontti/videos
# cd /home/remontti/videos
# wget https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4</pre>
<p>Para que seja possível editar ou deletar os videos pela interface web é sempre necessário dar permissões ao Jellyfin</p>
<pre class="remontti-code"># chown jellyfin. /home/remontti/videos -R </pre>
<p>Reinicie o serviço</p>
<pre class="remontti-code"># systemctl restart jellyfin</pre>
<p>Acesse seu endereço IP ou domino na porta <strong>8096</strong>, ex http://media.remontti.com.br:8096 para finalizar a instalação.</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-1.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-1.png" alt="" width="1680" height="914" class="alignnone size-full wp-image-5340" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-1.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-1-300x163.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-1-1024x557.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-1-768x418.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-1-1536x836.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-2.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-2.png" alt="" width="1680" height="854" class="alignnone size-full wp-image-5341" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-2.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-2-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-2-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-2-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-2-1536x781.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-3.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-3.png" alt="" width="1680" height="854" class="alignnone size-full wp-image-5342" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-3.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-3-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-3-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-3-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-3-1536x781.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-4.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-4.png" alt="" width="1681" height="860" class="alignnone size-full wp-image-5343" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-4.png 1681w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-4-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-4-1024x524.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-4-768x393.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-4-1536x786.png 1536w" sizes="auto, (max-width: 1681px) 100vw, 1681px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-5.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-5.png" alt="" width="1680" height="854" class="alignnone size-full wp-image-5344" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-5.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-5-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-5-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-5-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-5-1536x781.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-6.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-6.png" alt="" width="1680" height="854" class="alignnone size-full wp-image-5345" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-6.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-6-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-6-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-6-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-6-1536x781.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-7.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-7.png" alt="" width="1680" height="854" class="alignnone size-full wp-image-5346" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-7.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-7-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-7-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-7-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-7-1536x781.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-8.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-8.png" alt="" width="1680" height="854" class="alignnone size-full wp-image-5347" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-8.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-8-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-8-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-8-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-8-1536x781.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-9.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-9.png" alt="" width="1680" height="854" class="alignnone size-full wp-image-5348" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-9.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-9-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-9-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-9-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-9-1536x781.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-10.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-10.png" alt="" width="1680" height="914" class="alignnone size-full wp-image-5349" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-10.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-10-300x163.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-10-1024x557.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-10-768x418.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-10-1536x836.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-11.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-11.png" alt="" width="1680" height="854" class="alignnone size-full wp-image-5350" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-11.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-11-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-11-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-11-768x390.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-11-1536x781.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-12.png" data-rel="lightbox-gallery-7OOf3S7j" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-12.png" alt="" width="1680" height="926" class="alignnone size-full wp-image-5351" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-12.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-12-300x165.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-12-1024x564.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-12-768x423.png 768w, https://blog.remontti.com.br/wp-content/uploads/2021/02/jellyfin-web-12-1536x847.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<p>Parabéns seu servidor já esta pronto! Como dito anterior você encontra vários apps clientes: <a href="https://jellyfin.org/clients/" rel="noopener" target="_blank">https://jellyfin.org/clients/ </a></p>
<p>Jellyfin permite aceleração por placas gráficas, para saber mais acesse:<br />
<a href="https://jellyfin.org/docs/general/administration/hardware-acceleration.html" rel="noopener" target="_blank">https://jellyfin.org/docs/general/administration/hardware-acceleration.html</a></p>
<p>Espero que tenha gostado!</p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Participe do canal no <a href="https://t.me/blogremontti" rel="noopener noreferrer" target="_blank">telegram</a> para ficar atualizado sempre que publicar um novo tutorial. </p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p><em>Fontes:</em><br />
<a href="https://jellyfin.org/downloads/" rel="noopener" target="_blank">https://jellyfin.org/downloads/</a><br />
<a href="https://jellyfin.org/docs/general/administration/installing.html#debian" rel="noopener" target="_blank">https://jellyfin.org/docs/general/administration/installing.html#debian</a><br />
<a href="https://github.com/jellyfin/jellyfin" rel="noopener" target="_blank">https://github.com/jellyfin/jellyfin</a></p>
<p>O post <a href="https://blog.remontti.com.br/5322">Como instalar o Jellyfin um sistema de mídia pessoal</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5322/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		<enclosure url="https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4" length="10546620" type="video/mp4" />

			</item>
		<item>
		<title>Como configurar o RPKI de forma simples, instalação do Krill</title>
		<link>https://blog.remontti.com.br/4848</link>
					<comments>https://blog.remontti.com.br/4848#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 21 Aug 2020 21:59:02 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[bgp]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[krill]]></category>
		<category><![CDATA[registro.br]]></category>
		<category><![CDATA[rpki]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=4848</guid>

					<description><![CDATA[<p>RPKI é a especificação de uma tecnologia discutida e proposta pelo IETF (Internet Engeenering Task Force), RFC 6480, que permite a validação de anúncios de rotas via protocolo BGP. Essa tecnologia faz uso de&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/4848">Como configurar o RPKI de forma simples, instalação do Krill</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/2020/08/krill-capa-remontti.png" alt="" width="1792" height="1024" class="alignnone size-full wp-image-7757" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-capa-remontti.png 1792w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-capa-remontti-300x171.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-capa-remontti-1024x585.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-capa-remontti-768x439.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-capa-remontti-1536x878.png 1536w" sizes="auto, (max-width: 1792px) 100vw, 1792px" /></p>
<p>RPKI é a especificação de uma tecnologia discutida e proposta pelo IETF (Internet Engeenering Task Force), RFC 6480, que permite a validação de anúncios de rotas via protocolo BGP.</p>
<p>Essa tecnologia faz uso de Certificados Digitais (PKI), e de uma cadeia de certificação para validar a alocação de um conjunto de Recursos de Numeração Internet feita por um RIR/NIR a uma organização.</p>
<p>Um dos objetos a ser assinado com a referida chave privada se chama ROA (Route Origin Authorization), e que contém uma lista de blocos IPv4 e/ou IPv6 e um ASN que está autorizado a originar rotas para os referidos blocos.</p>
<p>As ROAs são então publicadas em repositórios e poderão ser utilizadas para validar que uma determinada rota para um bloco IP, recebida através do protocolo BGP, está sendo originada pelo ASN autorizado pelo detentor da alocação do bloco IP em questão.</p>
<p>Dessa forma cria-se um mecanismo para evitar uso indevido de blocos de endereços IP ou &#8220;sequestros&#8221;, que é quando através de um ASN se origina rotas para blocos IP alocados para outras organizações que não aquela responsável pelo ASN.</p>
<p>Vídeo recomendado que pode lhe ajudar esclarecer a importância do RPKI.<br />
<strong>RPKI: Uma proteção para roubo de prefixos no BGP</strong><br />
<iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/wBpyhVuq8dw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p>Está instalação tem como base o projeto <strong><a href="https://github.com/NLnetLabs/krill" rel="noopener noreferrer" target="_blank">Krill</a></strong>. Krill é um daemon de Resource RPKI, apresentando uma Autoridade de Certificação (CA) e um servidor de publicação, escrito em Rust. </p>
<p><strong>Distribuição recomendada</strong>:<br />
<a href="https://blog.remontti.com.br/7236" rel="noopener noreferrer" target="_blank">Instalação do Debian 12 Bookworm limpa passo-a-passo<br />
</a></p>
<p>A base desta instalação foi com informações na <a href="https://krill.docs.nlnetlabs.nl/" rel="noopener noreferrer" target="_blank">documentação oficial</a>.</p>
<p>Não esqueça de virar root da forma correta e atualizar os pacotes, e instalar alguns pacotes que serão necessários. </p>
<pre class="remontti-code"># su - 
# apt update 
# apt install curl wget gnupg2 apt-transport-https net-tools ca-certificates lsb-release</pre>
<p>Adicionaremos ao repositório Debian para os pacotes da nlnetlabs:</p>
<p>Importe a chave do repositório.</p>
<pre class="remontti-code"># curl -fsSL https://packages.nlnetlabs.nl/aptkey.asc | gpg --dearmor -o /usr/share/keyrings/nlnetlabs-archive-keyring.gpg</pre>
<pre class="remontti-code"># echo \
&quot;deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nlnetlabs-archive-keyring.gpg] https://packages.nlnetlabs.nl/linux/debian \
$(lsb_release -cs) main&quot; | tee /etc/apt/sources.list.d/nlnetlabs.list &gt; /dev/null
</pre>
<p>Atualize o repositório</p>
<pre class="remontti-code"># apt update</pre>
<p>Instale o krill</p>
<pre class="remontti-code"># apt install krill krillup krillta</pre>
<p>Após a instalação será criado no sistema um usuário chamado krill que é dono do diretório /var/lib/krill/ (que até o momento não existe nada nele).</p>
<p>Por segurança criaremos um backp original do krill.conf o arquivo de configuração. </p>
<pre class="remontti-code"># cp /etc/krill.conf /etc/krill.conf.orig</pre>
<p>Por padrão o krill roda em localhost porta 3000. Mas para nós acessar posteriormente sua interface web (lagosta) será necessário ter acesso a mesma, tornado aberta para todos. <em>(Veremos também como aplicar um firewall, para não deixar acessível à todos)</em></p>
<pre class="remontti-code"># vim /etc/krill.conf</pre>
<p>Adicione como no print:</p>
<pre class="remontti-code">ip = &quot;0.0.0.0&quot;</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_3000_port.png" alt="" width="948" height="268" class="alignnone size-full wp-image-4857" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_3000_port.png 948w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_3000_port-300x85.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_3000_port-768x217.png 768w" sizes="auto, (max-width: 948px) 100vw, 948px" /></p>
<p>Por padrão o mesmo não vem habilitado na inicialização, para isso vamos habilita-lo.</p>
<pre class="remontti-code"># systemctl enable krill</pre>
<p>Agora inicie o serviço </p>
<pre class="remontti-code"># systemctl start krill</pre>
<p>Verifique se o mesmo está rodando sem nenhum erro.</p>
<pre class="remontti-code"># systemctl status krill</pre>
<p>Com o comando netstat você pode se certificar que agora o krill está aberto para qualquer IP &#8220;0.0.0.0&#8221;</p>
<pre class="remontti-code"># netstat -putan |grep krill</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_service-1.png" alt="" width="1225" height="88" class="alignnone size-full wp-image-4858" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_service-1.png 1225w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_service-1-300x22.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_service-1-1024x74.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_service-1-768x55.png 768w" sizes="auto, (max-width: 1225px) 100vw, 1225px" /></p>
<p>Tudo certo até aqui, será necessário pegarmos o Token que ele gerou na instalação, ele se encontra no arquivo /etc/krill.conf, para pega-ló pode executar este comando:</p>
<pre class="remontti-code"># cat /etc/krill.conf |grep &quot;token =&quot; | cut -d&#039;&quot;&#039; -s -f 2</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_token.png" alt="" width="940" height="130" class="alignnone size-full wp-image-4855" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_token.png 940w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_token-300x41.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_token-768x106.png 768w" sizes="auto, (max-width: 940px) 100vw, 940px" /><br />
Neste caso meu token é <em>38d8ffbe35eaa2391b01681662037600</em>, salve isso com 7 chaves!</p>
<p>E a instalação é só isso! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>
<p>Agora basta acessar em seu navegador <strong>https://IP:3000</strong> e nos depararemos com interface web do krill &#8220;lagosta&#8221;. <strong>(User o Firefox)</strong> É necessário aceitar o certificado inválido.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-0.png" alt="" width="1285" height="582" class="alignnone size-full wp-image-7755" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-0.png 1285w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-0-300x136.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-0-1024x464.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-0-768x348.png 768w" sizes="auto, (max-width: 1285px) 100vw, 1285px" /></p>
<p>Informe o seu <strong>token</strong> em senha, no meu ex.: <em>&#8220;38d8ffbe35eaa2391b01681662037600&#8221;</em></p>
<p>Ao entrar pela primera vez será necessário informar um nome de autoridade, adotarei como nome &#8220;meu AS&#8221;<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_ca_name.png" alt="" width="1381" height="790" class="alignnone size-full wp-image-4861" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_ca_name.png 1381w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_ca_name-300x172.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_ca_name-1024x586.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_ca_name-768x439.png 768w" sizes="auto, (max-width: 1381px) 100vw, 1381px" /></p>
<p>Hora de acessarmos nossa conta no <a href="https://registro.br/login/" rel="noopener noreferrer" target="_blank">Registro.br</a></p>
<p>Clique em titularidade, em seguida &#8220;1 ASN&#8221;<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_titulariade.png" alt="" width="1160" height="401" class="alignnone size-full wp-image-4862" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_titulariade.png 1160w, https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_titulariade-300x104.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_titulariade-1024x354.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_titulariade-768x265.png 768w" sizes="auto, (max-width: 1160px) 100vw, 1160px" /></p>
<p>Role a página ate o final e <strong>clique em Configurar RPKI</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_rpki.png" alt="" width="1150" height="403" class="alignnone size-full wp-image-4863" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_rpki.png 1150w, https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_rpki-300x105.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_rpki-1024x359.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_rpki-768x269.png 768w" sizes="auto, (max-width: 1150px) 100vw, 1150px" /></p>
<p>Volte a tela do Krill, e clique em <strong>Parents</strong> e copie o conteúdo do <strong>Child Request</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-1.png" data-rel="lightbox-gallery-tLVOvjoL" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-1.png" alt="" width="1283" height="934" class="alignnone size-full wp-image-7744" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-1.png 1283w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-1-300x218.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-1-1024x745.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-1-768x559.png 768w" sizes="auto, (max-width: 1283px) 100vw, 1283px" /></a></p>
<p>Retorne ao Registro.BR e cole o conteúdo no campo <strong>Child Request</strong> e <strong>Habilitar RPKI</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_child_request.png" alt="" width="1159" height="563" class="alignnone size-full wp-image-4866" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_child_request.png 1159w, https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_child_request-300x146.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_child_request-1024x497.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_child_request-768x373.png 768w" sizes="auto, (max-width: 1159px) 100vw, 1159px" /></p>
<p>Copie o conteúdo do <strong>Parent Response</strong> que o RegistroBR gerou<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_parent_response.png" alt="" width="1151" height="847" class="alignnone size-full wp-image-4868" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_parent_response.png 1151w, https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_parent_response-300x221.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_parent_response-1024x754.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_parent_response-768x565.png 768w" sizes="auto, (max-width: 1151px) 100vw, 1151px" /></p>
<p>Cole o mesmo no Krill campo <strong>Parent Response</strong> e clique em confirmar.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-2.png" data-rel="lightbox-gallery-tLVOvjoL" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-2.png" alt="" width="1285" height="941" class="alignnone size-full wp-image-7745" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-2.png 1285w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-2-300x220.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-2-1024x750.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-2-768x562.png 768w" sizes="auto, (max-width: 1285px) 100vw, 1285px" /></a></p>
<p>Deve retornar uma mensagem de sucesso.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/su.png" alt="" width="380" height="100" class="alignnone size-full wp-image-4870" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/su.png 380w, https://blog.remontti.com.br/wp-content/uploads/2020/08/su-300x79.png 300w" sizes="auto, (max-width: 380px) 100vw, 380px" /></p>
<p>Você será já direcionado para o <strong>Repository</strong>, então copie a <strong>Publisher Request</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-3.png" data-rel="lightbox-gallery-tLVOvjoL" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-3.png" alt="" width="1285" height="854" class="alignnone size-full wp-image-7746" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-3.png 1285w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-3-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-3-1024x681.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-3-768x510.png 768w" sizes="auto, (max-width: 1285px) 100vw, 1285px" /></a></p>
<p>Vá ao registroBR e logo a baixo de parent response clique em <strong>Configurar publicação remota</strong> irá abrir um campo <strong>Publisher Request</strong>, agora cole e clique em <strong>Habilitar Publicação Remota</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_publisher_request.png" alt="" width="1161" height="769" class="alignnone size-full wp-image-4872" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_publisher_request.png 1161w, https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_publisher_request-300x199.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_publisher_request-1024x678.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/registrobr_publisher_request-768x509.png 768w" sizes="auto, (max-width: 1161px) 100vw, 1161px" /></p>
<p>Role um pouco a paixa para baixo e veja que temos agora o <strong>Repository Response</strong> copie o mesmo e volte ao Krill<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_repository_response.png" alt="" width="1154" height="759" class="alignnone size-full wp-image-4873" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_repository_response.png 1154w, https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_repository_response-300x197.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_repository_response-1024x673.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/rpki_registrobr_repository_response-768x505.png 768w" sizes="auto, (max-width: 1154px) 100vw, 1154px" /></p>
<p>Cole no campo <strong>Repository Response</strong> e clique em <strong>Confirmar</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-4.png" data-rel="lightbox-gallery-tLVOvjoL" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-4.png" alt="" width="1277" height="857" class="alignnone size-full wp-image-7747" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-4.png 1277w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-4-300x201.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-4-1024x687.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-4-768x515.png 768w" sizes="auto, (max-width: 1277px) 100vw, 1277px" /></a></p>
<p>Novamente deve retornar uma mensagem de sucesso.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/su.png" alt="" width="380" height="100" class="alignnone size-full wp-image-4870" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/su.png 380w, https://blog.remontti.com.br/wp-content/uploads/2020/08/su-300x79.png 300w" sizes="auto, (max-width: 380px) 100vw, 380px" /></p>
<p>Clique em ROAs. Você verá seus prefixos anunciados. (Se não aparecer atualize a página, pode levar uns minutos)<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-5.png" alt="" width="1283" height="734" class="alignnone size-full wp-image-7749" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-5.png 1283w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-5-300x172.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-5-1024x586.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-5-768x439.png 768w" sizes="auto, (max-width: 1283px) 100vw, 1283px" /></p>
<p>Agora precisamos adicionar nossos ROAs, clique em <strong>Add ROA/Adicionar ROA</strong><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-7.png" alt="" width="1279" height="681" class="alignnone size-full wp-image-7751" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-7.png 1279w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-7-300x160.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-7-1024x545.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-7-768x409.png 768w" sizes="auto, (max-width: 1279px) 100vw, 1279px" /></p>
<p>Adicione todos seus prefixos<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-6.png" alt="" width="1275" height="661" class="alignnone size-full wp-image-7752" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-6.png 1275w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-6-300x156.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-6-1024x531.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-6-768x398.png 768w" sizes="auto, (max-width: 1275px) 100vw, 1275px" /></p>
<p>ROAs adicionados com sucesso! Nosso RPKI está finalizado!<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-8.png" alt="" width="1280" height="556" class="alignnone size-full wp-image-7753" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-8.png 1280w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-8-300x130.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-8-1024x445.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill-8-768x334.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></p>
<p>Para validar você pode acessar os Routinator da ripe.net (<a href="https://blog.remontti.com.br/5720" rel="noopener" target="_blank">ou crie o seu</a>), mas <strong>tenha paciência, aguarde pelo menos 1 hora antes de arrancar os cabelos</strong> se não validar. <strong><a href="https://rpki-validator.ripe.net" rel="noopener" target="_blank">https://rpki-validator.ripe.net</a>/</strong></p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/routnator.png" alt="" width="1258" height="698" class="alignnone size-full wp-image-7311" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/routnator.png 1258w, https://blog.remontti.com.br/wp-content/uploads/2020/08/routnator-300x166.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/routnator-1024x568.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/08/routnator-768x426.png 768w" sizes="auto, (max-width: 1258px) 100vw, 1258px" /></p>
<p>Não podemos esquecer o firewall, usarei o nftables</p>
<p>Instale e ative-o para iniciar com o sistema. (No <strong>Debian 11</strong> nftables já é o subistituto do iptables, não é necessários instalar, mas é necessário dar um enable)</p>
<pre class="remontti-code"># apt install nftables 
# systemctl enable nftables</pre>
<p>Edite as regras</p>
<pre class="remontti-code"># vim /etc/nftables.conf </pre>
<p>Neste exemplo eu acessível apenas deixo apenas aberto para 200.200.200.0/22 e 192.168.0.0/24</p>
<pre class="remontti-code">#!/usr/sbin/nft -f
  
flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0;
                # Krill
                ip saddr 127.0.0.1 tcp dport 3000 counter accept
                ip6 saddr ::1 tcp dport 3000 counter accept
                ip saddr 192.168.0.0/24 tcp dport 3000 counter accept
                ip saddr 200.200.200.0/22 tcp dport 3000 counter accept
                # Drop 
                tcp dport 3000 counter drop
        }
        chain forward {
                type filter hook forward priority 0;
        }
        chain output {
                type filter hook output priority 0;
        }
}
</pre>
<p>Reinicie o serviço</p>
<pre class="remontti-code"># systemctl restart nftables</pre>
<p>Verificar as regras:</p>
<pre class="remontti-code"># nft list ruleset</pre>
<h5>Backup</h5>
<p>Não esqueça de colocar o diretório em suas políticas de backups: <strong>/var/lib/krill/</strong>. Uma dica é o tutorial: <a href="https://blog.remontti.com.br/4791" rel="noopener noreferrer" target="_blank">Criando backups de forma simples e enviando para o Telegram ou servidor via SSH</a></p>
<h5>Bônus &#8211; Múltiplos CA</h5>
<p>Se quiser hospedar as CA de outros provedores ou é responsável por mais de um AS, basta adicionar nova CA pelo cliente do terminal, e assim será possível gerenciar pela interface web (lagosta) </p>
<pre class="remontti-code"># krillc add --token seutoken --ca NOME_CA</pre>
<p>Ex:</p>
<pre class="remontti-code"># krillc add --token 38d8ffbe35eaa2391b01681662037600 --ca AS4321</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_multipos_ca.png" alt="" width="691" height="262" class="alignnone size-full wp-image-4909" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_multipos_ca.png 691w, https://blog.remontti.com.br/wp-content/uploads/2020/08/krill_multipos_ca-300x114.png 300w" sizes="auto, (max-width: 691px) 100vw, 691px" /><br />
<em>Deixou meu agradecimento ao amigo <a href="https://t.me/GlauberMattar" rel="noopener noreferrer" target="_blank">@GlauberMattar</a> por essa dica.</em></p>
<h5>Monitoramento</h5>
<p>Template<strong> Zabbix 5 e 4.4</strong> para monitorar se a porta 3000 está respondendo. <a href="https://blog.remontti.com.br/wp-content/uploads/2020/08/RR_Krill.zip"><strong>RR Krill Zabbix 5</strong></a> / <a href="https://blog.remontti.com.br/wp-content/uploads/2020/08/RR_Krill_zbx4.4.zip"><strong>RR Krill Zabbix 4.4</strong></a></p>
<h5>Leitura recomendada:</h5>
<p><a href="https://blog.remontti.com.br/5720" rel="noopener" target="_blank">Instalação do Routinator 3000, um software para validação RPKI</a></p>
<h3>Erros:</h3>
<p>Verifique se a hora do servidor está correta!</p>
<pre class="remontti-code"># apt install ntpdate
# ntpdate a.ntp.br</pre>
<p>Se desejar garantir coloque no cron para acertar a hora todos dia a meia noite, ex:</p>
<pre class="remontti-code"># cronta -e </pre>
<p>Adicione</p>
<pre class="remontti-code-plain"># m h  dom mon dow   command
00 00  *   *   *     ntpdate a.ntp.br</pre>
<p>Curtiu o conteúdo? Quer me ajudar manter essa p*** ? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Participe do canal no <a href="https://t.me/blogremontti" rel="noopener noreferrer" target="_blank">telegram</a> para ficar atualizado sempre que publicar um novo tutorial. </p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Abraço!</p>
<p>Fontes:<br />
<em>https://github.com/NLnetLabs/krill<br />
https://rpki.readthedocs.io/en/latest/krill/get-started.html<br />
https://registro.br/tecnologia/numeracao/rpki/</em></p>
<p>O post <a href="https://blog.remontti.com.br/4848">Como configurar o RPKI de forma simples, instalação do Krill</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/4848/feed</wfw:commentRss>
			<slash:comments>44</slash:comments>
		
		
			</item>
		<item>
		<title>Assinando DNSSEC em seus domínios autoritativos (Bind9)</title>
		<link>https://blog.remontti.com.br/4672</link>
					<comments>https://blog.remontti.com.br/4672#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 30 Jun 2020 17:36:16 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[bind9]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[debian 8]]></category>
		<category><![CDATA[Debian 9]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[dnssec]]></category>
		<category><![CDATA[Segurança]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=4672</guid>

					<description><![CDATA[<p>Nesse tutorial vamos aprender configurar o DNSSEC (Domain Name System SECurity extensions) em seus domínios autoritativos. Usarei um exemplo de configuração seguindo a topologia adotada já em tutoriais do bind9 publicados aqui no blog.&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/4672">Assinando DNSSEC em seus domínios autoritativos (Bind9)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Nesse tutorial vamos aprender configurar o DNSSEC (Domain Name System SECurity extensions) em seus domínios autoritativos.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/capa-dnssec.png" alt="" width="720" height="340" class="alignnone size-full wp-image-4701" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/capa-dnssec.png 720w, https://blog.remontti.com.br/wp-content/uploads/2020/06/capa-dnssec-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/capa-dnssec-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /><br />
Usarei um exemplo de configuração <a href="https://blog.remontti.com.br/3086" rel="noopener noreferrer" target="_blank">seguindo a topologia adotada já em tutoriais do bind9 publicados aqui no blog</a>. Então neste exemplo usarei de modelo o domínios <a href="https://blog.remontti.com.br/curso-bind9">cursodns.com.br</a> (Aproveitando fazer um merchandising do meu curso). </p>
<p>Como de costume gosto de ter os diretórios/arquivos organizados, logo em nosso diretório padrão <strong>/var/cache/bind/</strong> crio sempre um diretório para dizer se é <strong>master</strong> ou <strong>slave</strong> deixando o nome da pasta &#8220;master-aut&#8221; ou &#8220;salve-aut&#8221; <strong>aut</strong> de autoritativo, e como vamos assinar nosso domínio irei criar mais um diretório para o domínio, pois iremos ter vários arquivos para cada domínio e mais ainda, irei criar a pastinha onde ficarão as keys. Não gosto de &#8220;bagunça na casa&#8221;, pelo menos no servidor. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>
<p>Antes de mais nada já com o domínio configurado. Segue um exemplo aqui para ilustrar as demais configurações, mas recomendo a leitura do tutorial:  <a href="https://blog.remontti.com.br/3086" rel="noopener noreferrer" target="_blank">Servidor DNS seguro com Bind9 (Recursivo, Autoritativo e Reverso) + Fail2ban + nftables no Debian 10 Buster</a></p>
<pre class="remontti-code"># mkdir /var/cache/bind/master-aut/
# mkdir /var/cache/bind/master-aut/cursodns.com.br
# mkdir /var/cache/bind/master-aut/cursodns.com.br/keys
# vim /var/cache/bind/master-aut/cursodns.com.br/cursodns.com.br.hosts</pre>
<pre class="remontti-code">$ORIGIN .
$TTL 86400 ; 1 day
cursodns.com.br           IN SOA  ns1.cursodns.com.br. hostmaster.cursodns.com.br. (
                            2020071900 ; serial
                            10800      ; refresh (3 hours)
                            3600       ; retry   (1 hour)
                            2419200    ; expire  (4 weeks)
                            300        ; minimum (5 minutes)
                            )
 
                        NS      ns1.cursodns.com.br.
                        NS      ns2.cursodns.com.br.
 
                        A       200.200.200.4
                        AAAA    2804:ffff:bebe:cafe::2
                        MX      10 mail.cursodns.com.br.
                        TXT     &quot;v=spf1 a mx -all&quot;
                        SPF     &quot;v=spf1 a mx -all&quot;

$ORIGIN cursodns.com.br.
_dmarc                  TXT &quot;v=DMARC1; p=none&quot;
_domainkey              TXT &quot;t=y; o=~;&quot;

$ORIGIN _domainkey.cursodns.com.br.
mail                    TXT &quot;v=DKIM1; k=rsa; p=1234/1234/abcdf+1234+abcdf+1234+abcfg&quot;

$ORIGIN cursodns.com.br.
$TTL 10800   ; 3 hours
ns1                     A       200.200.200.2
                        AAAA    2804:ffff:bebe:cafe::2
hostmaster              A       200.200.200.2
                        AAAA    2804:ffff:bebe:cafe::2
ns2                     A       200.200.200.3
                        AAAA    2804:ffff:bebe:cafe::3
www                     A       200.200.200.4
                        AAAA    2804:ffff:bebe:cafe::4
ftp                     A       200.200.200.4
                        AAAA    2804:ffff:bebe:cafe::4
imap                    A       200.200.200.4
                        AAAA    2804:ffff:bebe:cafe::4
pop                     A       200.200.200.4
                        AAAA    2804:ffff:bebe:cafe::4
smtp                    A       200.200.200.4
                        AAAA    2804:ffff:bebe:cafe::4
mail                    A       200.200.200.4
                        AAAA    2804:ffff:bebe:cafe::4</pre>
<p>Configurações da zona cursodns.com.br em named.conf.local  </p>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<pre class="remontti-code">zone &quot;cursodns.com.br&quot; {
        type master;
        file &quot;/var/cache/bind/master-aut/cursodns.com.br/cursodns.com.br.hosts&quot;;
};</pre>
<p>É extremamente dar permissões ao diretórios para que o bind possa acessar e criar as configurações do DNSSEC.</p>
<pre class="remontti-code"># chown  bind. /var/cache/bind/master-aut -R</pre>
<p>Agora vamos proprimamente para as configurações do DNSSEC:</p>
<p>Ajuste as configurações de DNSSEC em named.conf.options adicionando `dnssec-enable yes;` `dnssec-validation yes;`  e `dnssec-lookaside auto;` dentro de options {&#8230;}.</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.options</pre>
<pre class="remontti-code">options {
...
  dnssec-enable yes;
  dnssec-validation auto;
...
}</pre>
<p>Reinicie os serviços </p>
<pre class="remontti-code"># systemctl restart bind9</pre>
<p>Até aqui é o que você já teria que ter configurado, ou acabou de configurar. </p>
<p>Agora vamos a criação das chaves:</p>
<pre class="remontti-code"># cd /var/cache/bind/master-aut/cursodns.com.br/keys</pre>
<pre class="remontti-code"># dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE cursodns.com.br</pre>
<pre class="remontti-code-plain">Generating key pair...........+++++ ...................+++++ 
Kcursodns.com.br.+007+00095
</pre>
<pre class="remontti-code"># dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE cursodns.com.br</pre>
<pre class="remontti-code-plain">Generating key pair.......................................................
....................................................................++++ 
.....................................................++++</pre>
<p>Os comandos acima irão gerar 4 arquivos com extensões .key e .private</p>
<pre class="remontti-code-plain">├── cursodns.com.br.hosts
├── Kcursodns.com.br.+007+00095.key
├── Kcursodns.com.br.+007+00095.private
├── Kcursodns.com.br.+007+12531.key
└── Kcursodns.com.br.+007+12531.private</pre>
<p>Altere as permissões de diretórios/arquivos para que o bind consiga criar as assinaturas de forma automaticamente.</p>
<pre class="remontti-code"># chown bind. /var/cache/bind/master-aut/ -R</pre>
<p>Vamos ajustar nossa zona para que o bind crie a assinatura automaticamente, e renove a mesma também. </p>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<p>Vamos incluir as variáveis key-directory, auto-dnssec, inline-signing e serial-update-method.</p>
<pre class="remontti-code">zone &quot;cursodns.com.br&quot; {
        type master;
        file &quot;/var/cache/bind/master-aut/cursodns.com.br/cursodns.com.br.hosts&quot;;
        key-directory &quot;/var/cache/bind/master-aut/cursodns.com.br/keys/&quot;;
        auto-dnssec maintain;
        inline-signing yes;
        serial-update-method unixtime;
};</pre>
<p>Reinicie os serviços </p>
<pre class="remontti-code"># systemctl restart bind9</pre>
<p>Novos arquivos são gerados .jbk .signed .signed.jnl</p>
<pre class="remontti-code-plain">├── cursodns.com.br
│   ├── cursodns.com.br.hosts
│   ├── cursodns.com.br.hosts.jbk
│   ├── cursodns.com.br.hosts.signed
│   ├── cursodns.com.br.hosts.signed.jnl
│   └── keys
│       ├── Kcursodns.com.br.+007+04514.key
│       ├── Kcursodns.com.br.+007+04514.private
│       ├── Kcursodns.com.br.+007+14961.key
│       └── Kcursodns.com.br.+007+14961.private
</pre>
<p>Depois de qualquer edição no “cursodns.com.br.hosts” <strong>nunca esqueça de alterar o serial</strong> do mesmo para que ao reiniciar o bind reassine automaticamente. O BIND 9.7.0 introduziu a atualização automática de assinaturas no servidor e a substituição automática de chaves. Se desejar verificar a versão do seu bind use o comando:</p>
<pre class="remontti-code"># bind9-config --version</pre>
<pre class="remontti-code-plain">VERSION=9.11.5-P4-5.1+deb10u1-Debian</pre>
<p>Não podemos esquecer de ajustar as configurações na zona do seu servidor <strong>Slave</strong> incluído um <strong>.signed</strong> que o bind tratará de fazer o resto.</p>
<pre class="remontti-code"># vim /etc/bind/named.conf.local</pre>
<pre class="remontti-code">zone &quot;cursodns.com.br&quot; {
        type slave;
        file &quot;/var/cache/bind/slave-aut/cursodns.com.br.hosts.signed&quot;;
        masters { 200.200.200.2; };
        allow-notify { 200.200.200.2; };
};</pre>
<p>Visualizando a chave DS que será informada no registro.br </p>
<pre class="remontti-code"># (d=cursodns.com.br; dig @127.0.0.1 +norecurse &quot;$d&quot;. DNSKEY | dnssec-dsfromkey -f - &quot;$d&quot; | head -1)</pre>
<pre class="remontti-code-plain">cursodns.com.br. IN DS 12531 7 1 09436D3E76B37CB6836EF918992279334530ED18</pre>
<p>Sendo &#8220;12531&#8221; sua <strong>keytag</strong> e &#8220;09436D3E76B37CB6836EF918992279334530ED18&#8221; seu <strong>digest</strong></p>
<p>Você deve também validar a mesma utilizando as ferramentas do registro.br<br />
<a href="https://registro.br/tecnologia/ferramentas/verificacao-de-ds/" rel="noopener noreferrer" target="_blank">https://registro.br/tecnologia/ferramentas/verificacao-de-ds/ </a><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_remontti.com_.br_.png" alt="" width="1170" height="836" class="alignnone size-full wp-image-4694" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_remontti.com_.br_.png 1170w, https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_remontti.com_.br_-300x214.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_remontti.com_.br_-1024x732.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_remontti.com_.br_-768x549.png 768w" sizes="auto, (max-width: 1170px) 100vw, 1170px" /></p>
<p>Tudo certo, acesse sua conta no <a href="https://registro.br/login/" rel="noopener noreferrer" target="_blank">registro.br</a> e <strong>altera os servidores DNS</strong> do seu domínios, em seguida para informar seu DS clique no botão <strong>[ + DNSSEC ]</strong> e informe sua keytag e seu digest. Como no exemplo:</p>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_remontti.com_.br_2.png" alt="" width="789" height="651" class="alignnone size-full wp-image-4695" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_remontti.com_.br_2.png 789w, https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_remontti.com_.br_2-300x248.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_remontti.com_.br_2-768x634.png 768w" sizes="auto, (max-width: 789px) 100vw, 789px" /></p>
<p>Salve as configurações, e aguarde a publicação. </p>
<p>Validando externamente após configurado:<br />
<a href="https://dnsviz.net" rel="noopener noreferrer" target="_blank">https://dnsviz.net</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_teste.png" data-rel="lightbox-gallery-dhLyw6Os" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_teste-150x150.png" alt="" width="150" height="150" class="alignnone size-thumbnail wp-image-4706" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_teste-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_teste-80x80.png 80w, https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_teste-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a><br />
<a href="https://dnssec-analyzer.verisignlabs.com/" rel="noopener noreferrer" target="_blank">https://dnssec-analyzer.verisignlabs.com/</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_teste2.png" data-rel="lightbox-gallery-dhLyw6Os" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_teste2-150x150.png" alt="" width="150" height="150" class="alignnone size-thumbnail wp-image-4707" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_teste2-150x150.png 150w, https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_teste2-80x80.png 80w, https://blog.remontti.com.br/wp-content/uploads/2020/06/dnssec_teste2-320x320.png 320w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a></p>
<p>Comandos para verificar</p>
<pre class="remontti-code"># dig DNSKEY cursodns.com.br. @localhost +multiline</pre>
<pre class="remontti-code-plain">; &lt;&lt;&gt;&gt; DiG 9.11.5-P4-5.1+deb10u1-Debian &lt;&lt;&gt;&gt; DNSKEY cursodns.com.br. @localhost +multiline
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 49504
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: b580d5ebb228d8ca5aa8e9d75eec2ea4fe508863e452094c (good)
;; QUESTION SECTION:
;cursodns.com.br.       IN DNSKEY

;; ANSWER SECTION:
cursodns.com.br.        86400 IN DNSKEY 257 3 7 (
                                AwEAAcLJ5zXdPByA/kIJBI0Oo8I5K+8fsa3Cd69pMGTr
                                ECIWGIRhIJyqC5qIWEUNKDcfC3OEfo4RFQKz5XsDEIPW
                                7FuY98mL9Bc73ov0iscYW6XSIYWYrSCsGn5/fsuRVM12
                                sR4yTAZ3k01n7uJRUHCaFB9Z2KbevUpU+Hj5CZYfzwOW
                                nP2uPKs/DGzhW415CK8HGeGzmfMen4wQZcqxiI3sy512
                                g0+BToj9DUso2FrWjM659mZAgTqb093WX5vuO4tNDqSm
                                6hx6loisbpWwehpeFch/hEbI8SV+3GjUaHo+S+fcJsU2
                                XLDv28U51PgNQyzRHAD/0qzzPUiQPZNxjTc409CRCQhQ
                                6X7VCreN+LfPNGCnJYwAnqbfMDo6sPoBG+gS3pLht7QQ
                                72wpEJVKuUrdmSzy/qLhDdKwhsaV
                                ) ; KSK; alg = NSEC3RSASHA1 ; key id = 12531
cursodns.com.br.        86400 IN DNSKEY 256 3 7 (
                                AwEAAaYiokjVqvIGsWzU5QSJqiLAFQQEo5kEbqLZ3DC1
                                foiL18m3fd0XMFdI05vRx31BLzhXn2gSf+VCFjVeCd/r
                                fdgJJyrRT4yeNEUlDy8T0s4QyQoxAElel44sN7M=
                                ) ; ZSK; alg = NSEC3RSASHA1 ; key id = 35849

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: sex jun 19 00:19:00 -03 2020
;; MSG SIZE  rcvd: 880</pre>
<pre class="remontti-code"># dig A cursodns.com.br. @localhost +noadditional +dnssec +multiline</pre>
<pre class="remontti-code-plain">; &lt;&lt;&gt;&gt; DiG 9.11.5-P4-5.1+deb10u1-Debian &lt;&lt;&gt;&gt; A cursodns.com.br. @localhost +noadditional +dnssec +multiline
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 16455
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
; COOKIE: f992cf3f88f7fbf0db5fb2ce5eec2e873855b0078162adf7 (good)
;; QUESTION SECTION:
;cursodns.com.br.       IN A

;; ANSWER SECTION:
cursodns.com.br.        86400 IN A 168.181.117.178
cursodns.com.br.        86400 IN RRSIG A 7 3 86400 (
                                20200701053116 20200619021212 35849 cursodns.com.br.
                                wmtl/WPY0ukcYnrmZokd8WOV1wAuewKbUpDc6YvXgA0A
                                08FBP7OUvSKA9M+uFZlIQazOLPEHHWFcXBaMc8yI8kcW
                                sMsUL4eCMwjF8tXIRulFxWs/JUXYENHGMQ== )

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: sex jun 19 00:18:31 -03 2020
;; MSG SIZE  rcvd: 391</pre>
<pre class="remontti-code"># dig +trace +noadditional DS cursodns.com.br. @8.8.8.8 | grep DS</pre>
<pre class="remontti-code-plain">; &lt;&lt;&gt;&gt; DiG 9.11.5-P4-5.1+deb10u1-Debian &lt;&lt;&gt;&gt; +trace +noadditional DS cursodns.com.br. @8.8.8.8
br.                     86400   IN      DS      2471 13 2 5E4F35998B8F909557FA119C4CBFDCA2D660A26F069EF006B403758A 07D1A2E4
br.                     86400   IN      RRSIG   DS 8 1 86400 20200701170000 20200618160000 48903 . 0ga5/MymkCjtQiVuTxNfsVpg/vKI6ZPpBjSHNtk/59/298cREbeycihL x/dUNLCi1HA9rD548kn9wINWwB7odAd+nZWvSiowehOgPv0vJx+gxBvU t6hANjB1hxEJ3i4dPxsjSrJPunsgJdgCGRxGeNyWEQomtvaIrfhCqAuL fqFxMARv/Nfo28d317dz3xTAMaxsd1gwIGGaItebmUEzrOkc8B+gEFhF nma2wA==
cursodns.com.br.        3600    IN      DS      12531 7 1 09436D3E76B37CB6836EF918992279334530ED18
cursodns.com.br.        3600    IN      RRSIG   DS 13 3 3600 20200702211009 20200618201009 33095 com.br. H7Y04YKIa0i7ZjOr0U2OKej+0RULQWQruA4z9yyCbodMg7bgDyCeRM/b XbxUsEuMG7xP76mmlPLjBR5mg8kaCw==</pre>
<pre class="remontti-code"># whois cursodns.com.br</pre>
<pre class="remontti-code-plain">domain:      cursodns.com.br
owner:       Rudimar Remontti
ownerid:     00.000.000/0000-00
responsible: Rudimar Remontti
country:     BR
owner-c:     NICBR
admin-c:     NICBR
tech-c:      NICBR
billing-c:   NICBR
nserver:     ns1.cursodns.com.br
nsstat:      20200719 AA
nslastaa:    20200719
nserver:     ns2.cursodns.com.br
nsstat:      20200719 AA
nslastaa:    20200719
dsrecord:    12531 RSASHA1-NSEC3-SHA1 09436D3E76B37CB6836EF918992279334530ED18
dsstatus:    20200719 DSOK
dslastok:    20200719
status:      published</pre>
<p>Curtiu o conteúdo? Quer me ajudar? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Conheça meu curso DNS ao vivo: <a href="https://blog.remontti.com.br/curso-bind9" rel="noopener noreferrer" target="_blank">Curso Bind9</a></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><strong>Referencias</strong>:<br />
<em><a href="https://wiki.debian.org/DNSSEC" rel="noopener noreferrer" target="_blank">https://wiki.debian.org/DNSSEC</a><br />
<a href="https://downloads.isc.org/isc/dnssec-guide/html/dnssec-guide.html" rel="noopener noreferrer" target="_blank">https://downloads.isc.org/isc/dnssec-guide/html/dnssec-guide.html</a><br />
<a href="https://ftp.isc.org/isc/dnssec-guide/dnssec-guide.pdf" rel="noopener noreferrer" target="_blank">https://ftp.isc.org/isc/dnssec-guide/dnssec-guide.pdf</a><br />
<a href="https://registro.br/tecnologia/dnssec/tutoriais/" rel="noopener noreferrer" target="_blank">https://registro.br/tecnologia/dnssec/tutoriais/</a><br />
<a href="https://wiki.debian.org/Bind9" rel="noopener noreferrer" target="_blank">https://wiki.debian.org/Bind9</a></em></p>
<p>O post <a href="https://blog.remontti.com.br/4672">Assinando DNSSEC em seus domínios autoritativos (Bind9)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/4672/feed</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>Solução PPPoE de Baixo Custo e Muito Desempenho</title>
		<link>https://blog.remontti.com.br/4414</link>
					<comments>https://blog.remontti.com.br/4414#comments</comments>
		
		<dc:creator><![CDATA[Jr Decezere]]></dc:creator>
		<pubDate>Tue, 02 Jun 2020 23:26:21 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[accel]]></category>
		<category><![CDATA[accel-ppp]]></category>
		<category><![CDATA[debia]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[pppoe]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=4414</guid>

					<description><![CDATA[<p>Com a popularização da fibra óptica nos últimos anos, chegaram os super planos de velocidade, 100 mega 300 mega 500 mega entregues ao cliente final, e com isso muitos provedores começaram a enfrentar problemas&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/4414">Solução PPPoE de Baixo Custo e Muito Desempenho</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Com a popularização da fibra óptica nos últimos anos, chegaram os super planos de velocidade, 100 mega 300 mega 500 mega entregues ao cliente final, e com isso muitos provedores começaram a enfrentar problemas para conseguir entregar uma internet de qualidade. Provedores que utilizam MikroTik em seus concentradores PPPoE sofrem com problemas de alto processamento, desempenho e travamentos em seus equipamentos.</p>
<p>No tutorial de hoje vamos apresentar uma solução PPPoE para mais de 3 mil usuários custando menos que uma Routerboard CCR 1036.</p>
<p>O SOFTWARE:<br />
Neste tutorial vamos utilizar o Accel-PPP, um software open-source que roda em ambiente Linux.</p>
<p>LINUX SUPORTADO:<br />
O Accel-PPP tem suporte a CentOS, Debian e Ubuntu, para o tutorial vamos utilizar o Debian10.</p>
<p>Servidor referência para comparar desempenho:<br />
Dell R410 2 Xeon L5520, 16gb ram, 1 placa intel X520-DA2 (Encontrado por até R$ 5.000,00 com placa de Intel X520-DA2)<br />
Nos testes com Accel-PPP com o R410 autenticamos cerca de 3200 mil usuários com processamento na casa dos 30% e passando 4.7 Gbps.</p>
<p><a href="https://blog.remontti.com.br/2966">Instalação Debian 10 Buster LIMPA Passo-a-passo</a></p>
<p>Para instalar o Accel-PPP siga os seguintes passos abaixo:</p>
<p>Atualizar Debian e instalar dependências necessárias</p>
<pre class="remontti-code"># apt update &amp;&amp; apt upgrade
# apt install -y build-essential cmake gcc linux-headers-`uname -r` git libpcre3-dev libssl-dev liblua5.1-0-dev</pre>
<p>Copiar o código fonte do Accel-PPP do repositório oficial</p>
<pre class="remontti-code"># git clone https://github.com/xebd/accel-ppp.git /opt/accel-ppp-code</pre>
<p>Criar e acessar a pasta aonde vamos preparar o código para iniciar a instalação</p>
<pre class="remontti-code"># mkdir /opt/accel-ppp-code/build
# cd /opt/accel-ppp-code/build/</pre>
<p>Compilar e instalar o Accel-PPP </p>
<pre class="remontti-code"># cmake -DCMAKE_INSTALL_PREFIX=/usr -DCPACK_TYPE=Debian10 ..
# make
# cpack -G DEB
# apt install ./accel-ppp.deb</pre>
<p>Ative o Accel-PPP na inicialização do Debian</p>
<pre class="remontti-code"># systemctl enable accel-ppp</pre>
<p>Crie o arquivo aonde vamos configurar o accel para autenticar nosso primeiro usuário</p>
<pre class="remontti-code"># vi /etc/accel-ppp.conf</pre>
<p>Dentro do arquivo, cole o seguinte código:<br />
obs: troque ens192 pela placa de rede que o cliente vai autenticar, e troque 192.168.10.25 pelo ip da wan do debian</p>
<pre class="remontti-code">[modules]
log_file
pppoe
auth_pap
chap-secrets
ippool
shaper

[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4

[ppp]
verbose=1
min-mtu=1280
mtu=1480
mru=1480
ipv4=require
ipv6=deny
lcp-echo-interval=20
lcp-echo-timeout=120

[pppoe]
verbose=1
ip-pool=pool_pppoe
interface=ens192

[dns]
dns1=8.8.8.8
dns2=1.1.1.1

[ip-pool]
gw-ip-address=192.168.10.25
100.64.0.0/24,name=pool_pppoe

[log]
log-file=/var/log/accel-ppp/accel-ppp.log
log-emerg=/var/log/accel-ppp/emerg.log
log-fail-file=/var/log/accel-ppp/auth-fail.log
copy=1
level=3

[chap-secrets]
gw-ip-address=192.168.10.25
chap-secrets=/etc/chap-secrets

[shaper]
up-limiter=police
down-limiter=tbf
verbose=1

[cli]
verbose=1
telnet=127.0.0.1:2000
tcp=127.0.0.1:2001</pre>
<p>Próximo passo é criar o arquivo aonde vai ficar os dados do usuário:</p>
<pre class="remontti-code">vi /etc/chap-secrets</pre>
<p>Dentro do arquivo vamos colar o seguinte:</p>
<pre class="remontti-code">#usuario    server      senha       ip-address      velocidade
teste       *           teste       *               20480/10240</pre>
<p>Agora com tudo configurado, vamos reiniciar o serviço do Accel-PPP para aplicar as configurações:</p>
<pre class="remontti-code">/etc/init.d/accel-ppp restart</pre>
<p>Se você seguiu o tutorial até aqui corretamente, coloque um roteador para discar e vamos ver o resultado, o usuário que configuramos no arquivo /etc/chap-secrets foi usuário: <strong>teste</strong> senha: <strong>teste</strong></p>
<p>Com o roteador conectado, vamos digitar o seguinte no terminal do Debian10:</p>
<pre class="remontti-code">accel-cmd show sessions</pre>
<p>com este comando vamos ver o nosso primeiro usuário conectado:</p>
<pre class="remontti-code">root@accel-deb10:/etc# accel-cmd show sessions
 ifname | username |    calling-sid    |     ip     | rate-limit  | type  | comp | state  |  uptime
--------+----------+-------------------+------------+-------------+-------+------+--------+----------
 ppp0   | teste    | 64:d1:54:17:76:c7 | 100.64.0.0 | 20480/10240 | pppoe |      | active | 00:02:03</pre>
<p>Último passo para o cliente navegar é ativar o IP FORWARD no Debian, e fazer o NAT.</p>
<pre class="remontti-code">
echo &quot;net.ipv4.ip_forward = 1&quot; &gt;&gt; /etc/sysctl.conf
sysctl -p /etc/sysctl.conf

/sbin/iptables -t nat -A POSTROUTING -s 100.64.0.0/24 -j MASQUERADE
</pre>
<p>Chegando até aqui, você já consegue autenticar um usuário e fazer ele navegar a partir do Servidor PPPoE, para autenticar usamos um método de autenticação local, com usuário, senha e plano configurados dentro do Debian, mas o Accel-PPP é compatível com muitos sistemas de gerencia de provedores  ex: (MkAuth, SGP, IXC, TOPSAPP, MkSolutions, HubSoft dentre outros ).</p>
<p>Autor: Júnior Decezere <a href="http://t.me/jrdecezere">http://t.me/jrdecezere</a></p>
<p>Grupo do Telegram para trocas de informações sobre o Accel-PPP <a href="https://t.me/braccelppp">https://t.me/braccelppp</a></p>
<p><strong>Link Curso Accel-PPP do ZERO ao AVANÇADO</strong> <a href="http://www.cursoaccelppp.com.br/" target="_blank" rel="noopener noreferrer">http://www.cursoaccelppp.com.br/</a><br />
Pagando o curso <a href="https://www.mercadopago.com.br/checkout/v1/redirect?pref_id=194129618-0bc7971b-2c13-4f53-b1c7-f25f166b8e11" rel="noopener noreferrer" target="_blank">por esse link</a>, você reverte uma % para o remontti.com.br</p>
<p><a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>O post <a href="https://blog.remontti.com.br/4414">Solução PPPoE de Baixo Custo e Muito Desempenho</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/4414/feed</wfw:commentRss>
			<slash:comments>24</slash:comments>
		
		
			</item>
		<item>
		<title>Como entregar IPv6+IPv4 no Mikrotik/RouterOS através de PPPoE/DHCPv6 PD e registrando os logs em um banco de dados</title>
		<link>https://blog.remontti.com.br/3931</link>
					<comments>https://blog.remontti.com.br/3931#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 22 Jan 2020 02:28:36 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[Delegated-IPv6-Prefix]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[logs]]></category>
		<category><![CDATA[ppp]]></category>
		<category><![CDATA[pppoe]]></category>
		<category><![CDATA[Prefix-Delegated]]></category>
		<category><![CDATA[routeos]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=3931</guid>

					<description><![CDATA[<p>Neste tutorial vamos aprender como entregar IPv6 para clientes finais utilizando RouterOS/Mikrotik (Concentrador PPPoE) e registrar os logs dos prefixos IPv6 entregue na WAN (Remote IPv6 Prefix Pool) e na LAN (DHCPv6 PD Pool).&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/3931">Como entregar IPv6+IPv4 no Mikrotik/RouterOS através de PPPoE/DHCPv6 PD e registrando os logs em um banco de dados</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/2020/01/banner_ipv6_log_mk.jpg" alt="" width="720" height="340" class="alignnone size-full wp-image-3950" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/banner_ipv6_log_mk.jpg 720w, https://blog.remontti.com.br/wp-content/uploads/2020/01/banner_ipv6_log_mk-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2020/01/banner_ipv6_log_mk-520x245.jpg 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /><br />
Neste tutorial vamos aprender como entregar IPv6 para clientes finais utilizando RouterOS/Mikrotik (Concentrador PPPoE) e registrar os logs dos prefixos IPv6 entregue na WAN (Remote IPv6 Prefix Pool) e na LAN (DHCPv6 PD Pool).</p>
<p>Ainda hoje encontramos alguns bugs no Mikrotik, e um dos maiores motivos de buscar essa solução foi que freeradius não registra os logs de IPv6 PD (Mikrotik), o IPv6 que vai se configurar na LAN cliente (o mais importante a ser guardado), seria muito mais fácil para muitos sistemas se implementassem o Delegated-IPv6-Prefix, mas já faz 6 anos (jan/2020) que é motivo de discussão lá no <a href="https://forum.mikrotik.com/viewtopic.php?t=89443" rel="noopener noreferrer" target="_blank">forum</a>. E para variar a solução é dar aquele jeitinho&#8230;. (Popular gambiarra) <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f61b.png" alt="😛" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Para montar esse servidor de logs você precisa apenas de um serviço WEB (Apache/NGINX) PHP7+ e um banco de dados MySQL/MariaDB.</p>
<p><strong>Requisito para montar um servidor do zero</strong>:<br />
<a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">&#8211; Debian 10 Stretch / Instalação Limpa</a><br />
<a href="https://blog.remontti.com.br/3006" rel="noopener noreferrer" target="_blank">&#8211; Como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin no Debian 10 Buster “LAMP”</a></p>
<p>Você precisa ter um pouquinho de conhecimento em IPv6 e saber dividir as subclasses. Recomendo dar uma olhadinha no <a href="http://ipv6.nic.br/" rel="noopener noreferrer" target="_blank">http://ipv6.nic.br/</a> lá irá encontrar cursos do NIC.BR.</p>
<p>Recomendo você instalar uma calculadora de IPv6. Aqui vai uma calculador muito boa que uso no dia a dia.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/01/ip6calc.png" data-rel="lightbox-gallery-OfD4i5qq" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/ip6calc.png" alt="" width="1680" height="1008" class="alignnone size-full wp-image-3933" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/ip6calc.png 1680w, https://blog.remontti.com.br/wp-content/uploads/2020/01/ip6calc-300x180.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/01/ip6calc-1024x614.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/01/ip6calc-768x461.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/01/ip6calc-1536x922.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /></a></p>
<pre class="remontti-code"># apt install wget python-ipaddr
# wget https://blog.remontti.com.br/arquivos/Home/ip6calc -O /bin/ip6calc
# chmod +x /bin/ip6calc</pre>
<p>Para fazer o calculo use ex.:</p>
<pre class="remontti-code"># ip6calc 2001:db8:abcd::/48</pre>
<p>Para esse projeto desenvolvi em PHP alguns arquivos onde fica &#8220;ouvido&#8221; os logs que o Mikrotik irá enviar e uma telinha simples para fazer buscas dos IPs nesse banco de dados. Já disponibilizei ele lá no <a href="https://github.com/remontti/LogIPv6RouterOS" rel="noopener noreferrer" target="_blank">github</a>.</p>
<p>Com seu servidor web configurado, <a href="https://blog.remontti.com.br/3464" rel="noopener noreferrer" target="_blank">seria bacana criar um host no seu dns e configurar nesse seu servdor web um domínio virtual</a> ex.: log6.seudominio.com.br onde você irá jogar os arquivos do projeto. Mas como muitos não tem essa facilidade vou tentar deixar aqui a forma mais simples, que é jogar os arquivos no diretório padrão do apache &#8220;/var/www/html&#8221;, assim qualquer um consegue montar <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Acessamos o diretório base então</p>
<pre class="remontti-code"># cd /var/www/html
# wget https://github.com/remontti/LogIPv6RouterOS/archive/master.zip
# apt install unzip
# unzip master.zip 
# mv LogIPv6RouterOS-master logs6
# cd logs6</pre>
<p>Por segurança crie/edite um .htaccess para proteger que apenas determinados IPs tenham acesso. (apensar de ter um token)</p>
<pre class="remontti-code"># vim .htaccess</pre>
<p>Altere pelo IPs que você deseja que tenham acesso. (Seus router e seu NOC)</p>
<pre class="remontti-code">Options -Indexes
&lt;RequireAll&gt;
    &lt;RequireAny&gt;
        Require ip 200.200.200.0/24
        Require ip 192.168.0.0/26
        Require ip 2001:db8::/32
    &lt;/RequireAny&gt;
&lt;/RequireAll&gt;</pre>
<p>Precisaremos criar um banco de dados e nossa tabela. Para gerar suas senhas/token recomendo <a href="https://senhasegura.remontti.com.br/" rel="noopener noreferrer" target="_blank">https://senhasegura.remontti.com.br/</a> e gerar algo aleatório.</p>
<pre class="remontti-code"># mariadb -p</pre>
<p>Crie o banco de dados, não esqueça de alterar a senha (SUA_SENHA_DA_CONEXAO)</p>
<pre class="remontti-code">CREATE DATABASE logs6;
GRANT ALL PRIVILEGES ON logs6.* TO &#039;logs6&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SUA_SENHA_DA_CONEXAO&#039;;
FLUSH PRIVILEGES;
quit;</pre>
<p>Importe a tabela utilizando a senha criada anteriormente</p>
<pre class="remontti-code"># mariadb -u logs6 logs6 &lt; logs6_mikrotik.sql -p</pre>
<p>Agora altere no arquivo <strong>config.php</strong> o <strong>token</strong> para validar seu envio de dados e acessar o interface simples que desenvolvi para buscas, e a senha de conexão com banco (db_password).</p>
<pre class="remontti-code">
?php
/* Your security token  */
$token = &#039;xxxxxxxxxxxxx&#039;;

/* Set langage */
// Portugês Brasil: pt-br
// English:  en
$lang = &#039;pt-br&#039;;

/* Db conect */
$db_host = &#039;localhost&#039;;
$db_user = &#039;logs6&#039;;
$db_password = &#039;SUA_SENHA_DA_CONEXAO&#039;;
$db_name = &#039;logs6&#039;;
</pre>
<p>Agora acesse sua <strong>http(s)://URL/logs6/</strong>. Você deve receber a seguinte tela.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/01/mikrotik_logs_ipv6.png" data-rel="lightbox-gallery-OfD4i5qq" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/mikrotik_logs_ipv6.png" alt="" width="965" height="243" class="alignnone size-full wp-image-3971" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/mikrotik_logs_ipv6.png 965w, https://blog.remontti.com.br/wp-content/uploads/2020/01/mikrotik_logs_ipv6-300x76.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/01/mikrotik_logs_ipv6-768x193.png 768w" sizes="auto, (max-width: 965px) 100vw, 965px" /></a></p>
<p>Já pode autenticar com seu token (ainda não terá logs, então não adianta querer fazer buscas rsrsrs)<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/01/mikrotik_logs_ipv6_search.png" data-rel="lightbox-gallery-OfD4i5qq" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/mikrotik_logs_ipv6_search.png" alt="" width="991" height="253" class="alignnone size-full wp-image-3974" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/mikrotik_logs_ipv6_search.png 991w, https://blog.remontti.com.br/wp-content/uploads/2020/01/mikrotik_logs_ipv6_search-300x77.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/01/mikrotik_logs_ipv6_search-768x196.png 768w" sizes="auto, (max-width: 991px) 100vw, 991px" /></a></p>
<p>Se alguém tiver ideias melhores/criticas todas são bem vindas, sinta-se a vontade para criar forks do projeto. </p>
<p>Para entregar IPv6 em seu Mk é claro que  precisa ter conectividade v6 em seu concentrador PPPoE (Não vou entrar em detalhes nessa parte pois entraria na questão roteamento da sua rede, mas se vale de ajuda como dica um iBGP/OSPF resolve fácil)</p>
<p>Servidor preparado para receber os logs vamos ao routerOS/Mikrotik. Você precisará criar duas Pool, uma para <strong>WAN</strong> outra para a <strong>LAN</strong>, como recomendação do nic.br para LAN do cliente devemos enviar um prefixo /56 (mas isso não é uma regra). A calcular pode ajudar muito nessa parte. No meu exemplo vou reservar um <strong>prefixo /48</strong> para entregar <strong>prefixos /64 na WAN</strong> (65.536 prefixos/64), e um <strong>prefixo /45</strong> entregando <strong>prefixos /56</strong> oque daria 2.048 prefixos (clientes).</p>
<p>Ex 2001:db8:1000::/48 (WAN)<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/01/calc1.png" data-rel="lightbox-gallery-OfD4i5qq" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/calc1.png" alt="" width="1568" height="814" class="alignnone size-full wp-image-3939" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/calc1.png 1568w, https://blog.remontti.com.br/wp-content/uploads/2020/01/calc1-300x156.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/01/calc1-1024x532.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/01/calc1-768x399.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/01/calc1-1536x797.png 1536w" sizes="auto, (max-width: 1568px) 100vw, 1568px" /></a></p>
<p>Ex 2001:db8:2000::/45 (LAN)<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/01/calc2.png" data-rel="lightbox-gallery-OfD4i5qq" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/calc2.png" alt="" width="1571" height="831" class="alignnone size-full wp-image-3940" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/calc2.png 1571w, https://blog.remontti.com.br/wp-content/uploads/2020/01/calc2-300x159.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/01/calc2-1024x542.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/01/calc2-768x406.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/01/calc2-1536x812.png 1536w" sizes="auto, (max-width: 1571px) 100vw, 1571px" /></a></p>
<p><strong>IPv6 -> Pool</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/01/pool_v6.png" data-rel="lightbox-gallery-OfD4i5qq" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/pool_v6.png" alt="" width="538" height="182" class="alignnone size-full wp-image-3942" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/pool_v6.png 538w, https://blog.remontti.com.br/wp-content/uploads/2020/01/pool_v6-300x101.png 300w" sizes="auto, (max-width: 538px) 100vw, 538px" /></a></p>
<p>Alteramos no profile. Menu PPP aba Profiles.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_1.png" data-rel="lightbox-gallery-OfD4i5qq" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_1.png" alt="" width="1138" height="658" class="alignnone size-full wp-image-3943" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_1.png 1138w, https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_1-300x173.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_1-1024x592.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_1-768x444.png 768w" sizes="auto, (max-width: 1138px) 100vw, 1138px" /></a><br />
<strong>Remote IPv6 Prefix Pool</strong> selecione sua <strong>pool_wan</strong> e <strong>DHCPv6 PD Pool </strong>sua <strong>pool_lan</strong></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_2.png" data-rel="lightbox-gallery-OfD4i5qq" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_2.png" alt="" width="546" height="250" class="alignnone size-full wp-image-3944" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_2.png 546w, https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_2-300x137.png 300w" sizes="auto, (max-width: 546px) 100vw, 546px" /></a><br />
Na abra Protocol, Use IPv6 selecione yes.</p>
<p>Vamos ao pulo do gato na aba <strong>Scripts</strong>. A ideia aqui é toda vez que um  PPPoE conectar ou desconectar ele execute um script. Vai ser necessário que você altere o TOKEN que você configurou lá no <strong>config.php</strong>, informe a URL (URLUP) correta que encontrará seu arquivo log6.php e em <strong>checkconnection</strong> informe o IP do seu servidor (explico o motivo a seguir).</p>
<pre class="remontti-code">:global TOKEN &quot;xxxxxxxxxxxxxxxx&quot;;
:global URLUP &quot;http://logs6.remontti.com.br/log6.php&quot;;
:global checkconnection &quot;200.200.200.200&quot;;</pre>
<p>A lógica é: Antes de tentar enviar as informações/valores (via post ao log6.php) fazer uma verificação se a conexão exite com o servidor de log, isso foi necessário ao simular uma "queda de energia", as vezes ele pode autenticar antes de conseguir uma conexão (se seu o usuários estiver no routerOS e ai perdemos todos os logs) nesse caso ele fica aguardando por até 5 min na tentativa (ping ao ip checkconnection) antes prosseguir, caso exista uma conexão (checkconnection) então prossegue com o script coletando as informações. </p>
<p>Eu aproveitei coletar IPv4 como <strong>localAddr</strong> (NAS), <strong>remoteAddr</strong> (IPv4 entregue ao cliente) isso vai facilitar também em uma analise se você quiser bater com os dados do freeradius (radacct), já aproveitei também para capturar o <strong>callerId</strong> (MAC), serviço PPP <strong>calledId</strong>. Acredito que com essas informações podem ser uteis para outros fins. Seguindo o script todo o PPPoE que subir ele vai criar um prefixo (WAN) <strong>RemoteIPv6</strong> e em seguida precisei fazer um while que setei 60 seg para que a cada segundo ele tente identificar em <strong>/ipv6 dhcp-server binding</strong> se o cliente solicitou o prefixo que ele vai auto se configurar em sua LAN, passando por esses requisitos ele irai gerar um LOG (<a href="https://blog.remontti.com.br/2674" rel="noopener noreferrer" target="_blank">que você também pode estar salvando em um servidor de log remoto</a>) e finalizando fará um fetch com os dados do binding caso ele consiga ou enviará null para a URL e assim o servidor salva-lo no banco de dados. Você verá dois logs na tela de logs, um azul quando uma conexão subir e um vermelho quando desconectar, se você desejar não ter esses logs é só remover as linha "<em>log warning message=..... / :log error message=.....</em>"</p>
<p>Acesse PPP vá até a aba profile e configure os script do profile. Não esqueça de alterar as variáveis globais.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_ipv6_mikrotik_script.png" data-rel="lightbox-gallery-OfD4i5qq" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_ipv6_mikrotik_script-300x171.png" alt="" width="300" height="171" class="alignnone size-medium wp-image-3935" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_ipv6_mikrotik_script-300x171.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_ipv6_mikrotik_script-768x439.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/01/profile_ipv6_mikrotik_script.png 814w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
<strong>On UP</strong></p>
<pre class="remontti-code">{
  :global TOKEN &quot;xxxxxxxxxxxxxxxx&quot;;
  :global URLUP &quot;http://________________/logs6/log6.php&quot;;
  :global checkconnection &quot;200.200.200.200&quot;;
  :local ii 0;
  :local tt 300; # Aguarda até 5min para tentar 
  while ( $ii &lt; $tt &#038;&#038; ([/ping $checkconnection count=1]=0) ) do={
    :put $ii
    :set $ii ($ii + 1)
    :delay delay-time=1s
    :log error &quot;Awaiting connection ... $checkconnection&quot;;
  }
  :local localAddr $&quot;local-address&quot;
  :local remoteAddr $&quot;remote-address&quot;
  :local callerId $&quot;caller-id&quot;
  :local calledId $&quot;called-id&quot;
  :local interfaceName [/interface get $interface name]
  :local RemoteIPv6 [/ipv6 nd prefix get value-name=prefix [find interface=$interfaceName]]
  :local i 0;
  :local x 1;  
  :local t 60; # Segundos aguardando ipv6 ser configurado no cliente
  while ($i &lt; $t &#038;&#038; [ :len [/ipv6 dhcp-server binding find server=$interfaceName] ] &lt; $x) do={
    :put $i
    :set $i ($i + 1)
    :delay delay-time=1s
  }
  if ($i = $t) do={
    :log warning message=&quot;UP: $user | $callerId | $calledId | $remoteAddr | $localAddr | $RemoteIPv6 | NULL&quot;
    /tool fetch url=&quot;$URLUP&quot; http-data=&quot;action=i&#038;token=$TOKEN&#038;user=$user&#038;mac=$callerId&#038;nas=$localAddr&#038;service=$calledId&#038;ipv4=$remoteAddr&#038;remoteipv6=$RemoteIPv6&quot; http-method=post
  } else={
    :local DHCPv6PD [/ipv6 dhcp-server binding get value-name=address [find server=$interfaceName]]
    :log warning message=&quot;UP: $user | $callerId | $calledId | $remoteAddr | $localAddr | $RemoteIPv6 | $DHCPv6PD&quot;
    /tool fetch url=&quot;$URLUP&quot; http-data=&quot;action=i&#038;token=$TOKEN&#038;user=$user&#038;mac=$callerId&#038;nas=$localAddr&#038;service=$calledId&#038;ipv4=$remoteAddr&#038;remoteipv6=$RemoteIPv6&#038;dhcpv6pd=$DHCPv6PD&quot; http-method=post
  }
  file remove log6.php
}</pre>
<p>E ao desconectar vamos enviar ao servidor que o mesmo descontou.<br />
<strong>On Down</strong></p>
<pre class="remontti-code">{
  :global TOKEN &quot;xxxxxxxxxxxxxxxx&quot;
  :global URLDOWN &quot;http://________________/logs6/log6.php&quot;
  :local localAddr $&quot;local-address&quot;
  :local callerId $&quot;caller-id&quot;
  /tool fetch url=&quot;$URLDOWN&quot; http-data=&quot;action=u&amp;token=$TOKEN&amp;user=$user&amp;mac=$callerId&amp;nas=$localAddr&quot; http-method=post
  :log warning message=&quot;DOWN: $user | $callerId | $localAddr&quot;
  file remove log6.php
}</pre>
<p>Para concluir em IPv6 -> ND<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/ipv6_nd.png" alt="" width="668" height="472" class="alignnone size-full wp-image-3957" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/ipv6_nd.png 668w, https://blog.remontti.com.br/wp-content/uploads/2020/01/ipv6_nd-300x212.png 300w" sizes="auto, (max-width: 668px) 100vw, 668px" /><br />
Marque todas as opções.</p>
<p>No menu <strong>IP -> DNS </strong>também informe os DNS IPv6. Só assim o cliente irá aprender um DNSv6 (<em>Advertise DNS</em>)</p>
<p>Agora todo PPPoE que autenticar um log será registrado, o legal aqui é que se alguém não utiliza Radius poderá também ter um log <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>No arquivo log6.php que recebe os logs sempre que um usuário conectar ele irá verificar se não existe uma conexão em aberta, pois em casos de quedas de energia não vai existir tempo para ele informar que o pppoe desconectou, então ele fecha a conexão com a hora da nova conexão, logo esse IP pode ter sido utilizado por algum outro usuário, neste caso ele registra a hora que fechou a conexão com "falha" (<strong>failure</strong>), para no caso de uma investigação você observar se o mesmo ip não teve algum outro usuário que usou na horário solicitado.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/01/logs_ipv6_remontti.png" data-rel="lightbox-gallery-OfD4i5qq" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/logs_ipv6_remontti.png" alt="" width="1661" height="398" class="alignnone size-full wp-image-3946" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/logs_ipv6_remontti.png 1661w, https://blog.remontti.com.br/wp-content/uploads/2020/01/logs_ipv6_remontti-300x72.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/01/logs_ipv6_remontti-1024x245.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/01/logs_ipv6_remontti-768x184.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/01/logs_ipv6_remontti-1536x368.png 1536w" sizes="auto, (max-width: 1661px) 100vw, 1661px" /></a></p>
<p>Pelo phpMyAdmin também fica muito fácil de fazer buscas.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/01/phpmyadmin_log_ipv6.png" data-rel="lightbox-gallery-OfD4i5qq" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/phpmyadmin_log_ipv6-300x178.png" alt="" width="300" height="178" class="alignnone size-medium wp-image-3959" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/phpmyadmin_log_ipv6-300x178.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/01/phpmyadmin_log_ipv6-1024x607.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2020/01/phpmyadmin_log_ipv6-768x455.png 768w, https://blog.remontti.com.br/wp-content/uploads/2020/01/phpmyadmin_log_ipv6.png 1408w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Para quem deseja bloquear um cliente IPv6, uma solução é no Router criar outra Pool6 com uma classe "invalida" por exemplo 2001:db8:6666::/48, e no freeradius usar o attibute <strong>Mikrotik-Delegated-IPv6-Pool</strong>, pode ser na tabela radreply (dizendo para qual usuário) ou para um  grupo de configurações (radgroupreply) "plano".</p>
<p>Mikrotik:<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2020/01/drop_ipv6.png" data-rel="lightbox-gallery-OfD4i5qq" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/01/drop_ipv6.png" alt="" width="544" height="292" class="alignnone size-full wp-image-3963" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/01/drop_ipv6.png 544w, https://blog.remontti.com.br/wp-content/uploads/2020/01/drop_ipv6-300x161.png 300w" sizes="auto, (max-width: 544px) 100vw, 544px" /></a></p>
<p>Freeradius<br />
Ex.: <strong>radreply </strong></p>
<pre class="remontti-code">INSERT INTO `radreply` (`username`, `attribute`, `op`, `value`) VALUES
(&#039;nome_user&#039;, &#039;Mikrotik-Delegated-IPv6-Pool&#039;, &#039;=&#039;, &#039;ipv6_drop&#039;);</pre>
<p>Ex.: <strong>radgroupreply</strong></p>
<pre class="remontti-code">INSERT INTO `radgroupreply` (`groupname`, `attribute`, `op`, `value`) VALUES
(&#039;PLANO_BLOQUEADO&#039;, &#039;Mikrotik-Delegated-IPv6-Pool&#039;, &#039;=&#039;, &#039;ipv6_drop&#039;);</pre>
<p>Desta forma o routerOS interpretará o nome da pool pelo atriburo Mikrotik-Delegated-IPv6-Pool, e assim que o cliente logar ele não pegará do bloco válido. <em>Até poderia usar uma válido e bloquear no firewall (mas isso é coisa de sistema amador #ficadica).</em>  </p>
<p>Se seu freradius é antigo (v2.x) precisará ter o <a href="https://wiki.mikrotik.com/wiki/Manual:RADIUS_Client/vendor_dictionary" rel="noopener noreferrer" target="_blank">dictionary</a> atualizado.</p>
<p>Vou deixar um exemplo de como configurar um pppoe cliente em um mikrotik, já que percebi um bug quando ele precisa renovar seu IPv6.</p>
<pre class="remontti-code">/interface pppoe-client
add add-default-route=yes disabled=no interface=ether1 name=pppoe-out1 password=SENHA use-peer-dns=yes user=SENHA

/ipv6 dhcp-client
add interface=pppoe-out1 pool-name=DHCPv6PD pool-prefix-length=56 request=prefix

/ipv6 address
add advertise=yes from-pool=DHCPv6PD interface=INTERFACE_LAN

/ppp profile
set *0 on-up=&quot;{\r\
    \n  /delay delay-time=5s\r\
    \n  /ipv6 dhcp-client renew numbers=0\r\
    \n  /delay delay-time=2s\r\
    \n  /ipv6 dhcp-client renew numbers=0\r\
    \n}&quot;
/ipv6 firewall mangle
add action=change-mss chain=forward new-mss=clamp-to-pmtu passthrough=yes \
    protocol=tcp tcp-flags=syn
</pre>
<p>Gambiarazinha no profile para renovar o IP sem dor de cabeça toda vez que ele autenticar (bugs)</p>
<pre class="remontti-code">{
  /delay delay-time=5s
  /ipv6 dhcp-client renew numbers=0
  /delay delay-time=2s
  /ipv6 dhcp-client renew numbers=0
}</pre>
<p>Gostou? Espero que você consiga implementar seu IPv6 e esteja seguro com os logs armazenado! </p>
<p>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!<br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Abraço!</p>
<h3> RouterOS v7</h3>
<p>Descomente os <strong># :log warning "DEBUG>...."</strong> se precisar debugar o script, ou remova para deixar mais enxuto o script.</p>
<p><strong>UP</strong></p>
<pre class="remontti-code-blue">
{
  # :log warning &quot;DEBUG&gt; UP: Iniciando o script logs6&quot;;
  :global TOKEN &quot;xxxxxxxxxxxxxxxx&quot;;
  :global URLUP &quot;http://logs6.remontti.com.br/log6.php&quot;;
  :global checkconnection &quot;10.0.0.1&quot;;
  :local ii 0;
  :local tt 60;
  while ( $ii &lt; $tt &#038;&#038; ([/ping $checkconnection count=1]=0) ) do={
    :put $ii
    :set $ii ($ii + 1)
    :delay delay-time=1s
    :log error &quot;Aguardando conexao com servidor... $checkconnection&quot;;
  }
  :local localAddr $&quot;local-address&quot;
  # :log warning &quot;DEBUG&gt; localAddr = $localAddr&quot;;
  :local remoteAddr $&quot;remote-address&quot;
  # :log warning &quot;DEBUG&gt; remoteAddr = $remoteAddr&quot;;
  :local callerId $&quot;caller-id&quot;
  # :log warning &quot;DEBUG&gt; callerId = $callerId&quot;;
  :local calledId $&quot;called-id&quot;
  # :log warning &quot;DEBUG&gt; calledId = $calledId&quot;;
  :local userName $&quot;user&quot;
  # :log warning &quot;DEBUG&gt; userName = $userName&quot;;
  :local interfaceID $&quot;interface&quot;
  # :log warning &quot;DEBUG&gt; interfaceID = $interfaceID&quot;;
  :local interfaceName [/interface get $interfaceID name]  
  # :log warning &quot;DEBUG&gt; interfaceName = $interfaceName&quot;;
  :local RemoteIPv6 [/ipv6 nd prefix get value-name=prefix [find interface=$interfaceName]]
  # :log warning &quot;DEBUG&gt; RemoteIPv6 = $RemoteIPv6&quot;;
  :local i 0;
  :local x 1;  
  :local t 60;
  while ($i &lt; $t &#038;&#038; [ :len [/ipv6 dhcp-server binding find server=$interfaceName] ] &lt; $x) do={    
    :put $i    
    :set $i ($i + 1)
    :delay delay-time=1s
    # :log warning &quot;DEBUG&gt; Aguardando IPv6 da LAN de $userName ($i)s&quot;;
  }
  :local file [/file find name=&quot;log6.php&quot;]
  :if ([:len $file] &gt; 0) do={
      /file remove log6.php
  }  
  if ($i = $t) do={
    # :log warning &quot;DEBUG&gt; IPv6 LAN: não descoberto descoberto&quot;;
    :log warning message=&quot;UP: $user | $callerId | $calledId | $remoteAddr | $localAddr | $RemoteIPv6 | NULL&quot;
    # :log warning &quot;DEBUG&gt; Executando fetch UP: $URLUP http-data=action=i&amp;token=$TOKEN&amp;user=$user&amp;mac=$callerId&amp;nas=$localAddr&amp;service=$calledId&amp;ipv4=$remoteAddr&amp;remoteipv6=$RemoteIPv6 http-method=post&quot;
    /tool/fetch url=&quot;$URLUP&quot; http-data=&quot;action=i&amp;token=$TOKEN&amp;user=$user&amp;mac=$callerId&amp;nas=$localAddr&amp;service=$calledId&amp;ipv4=$remoteAddr&amp;remoteipv6=$RemoteIPv6&quot; http-method=post
  } else={    
    :local DHCPv6PD [/ipv6 dhcp-server binding get value-name=address [find server=$interfaceName]]
    # :log warning &quot;DEBUG&gt; IPv6 LAN: Descoberto descoberto $DHCPv6PD&quot;;
    :log warning message=&quot;UP: $user | $callerId | $calledId | $remoteAddr | $localAddr | $RemoteIPv6 | $DHCPv6PD&quot;
    # :log warning &quot;DEBUG&gt; Executando fetch UP: $URLUP http-data=action=i&amp;token=$TOKEN&amp;user=$user&amp;mac=$callerId&amp;nas=$localAddr&amp;service=$calledId&amp;ipv4=$remoteAddr&amp;remoteipv6=$RemoteIPv6&amp;dhcpv6pd=$DHCPv6PD http-method=post&quot;;
    /tool/fetch url=&quot;$URLUP&quot; http-data=&quot;action=i&amp;token=$TOKEN&amp;user=$user&amp;mac=$callerId&amp;nas=$localAddr&amp;service=$calledId&amp;ipv4=$remoteAddr&amp;remoteipv6=$RemoteIPv6&amp;dhcpv6pd=$DHCPv6PD&quot; http-method=post
  }
  :delay delay-time=1s
  # :log warning &quot;DEBUG&gt; Removendo arquivo log6.php&quot;;
  :local file [/file find name=&quot;log6.php&quot;]
  :if ([:len $file] &gt; 0) do={
      /file remove log6.php
  }
  # :log warning &quot;DEBUG&gt; Script concluído.&quot;
}
</pre>
<p><strong>DOWN</strong></p>
<pre class="remontti-code-blue">
{
  # :log warning &quot;DEBUG&gt; DOWN: Iniciando o script logs6&quot;;
  :global TOKEN &quot;xxxxxxxxxxxxxxxx&quot;
  :global URLDOWN &quot;http://logs6.remontti.com.br/log6.php&quot;
  :local localAddr $&quot;local-address&quot;
  # :log warning &quot;DEBUG&gt; localAddr = $localAddr&quot;;
  :local callerId $&quot;caller-id&quot;
  # :log warning &quot;DEBUG&gt; calledId = $calledId&quot;;
  :local file [/file find name=&quot;log6.php&quot;]
  :if ([:len $file] &gt; 0) do={
      /file remove log6.php
  }  
  # :log warning &quot;DEBUG&gt; Executando fetch DOWN: $URLDOWN http-data=action=u&amp;token=$TOKEN&amp;user=$user&amp;mac=$callerId&amp;nas=$localAddr http-method=post&quot;;
  /tool/fetch url=&quot;$URLDOWN&quot; http-data=&quot;action=u&amp;token=$TOKEN&amp;user=$user&amp;mac=$callerId&amp;nas=$localAddr&quot; http-method=post
  :log warning message=&quot;DOWN: $user | $callerId | $localAddr&quot;
  :delay delay-time=1s
  # :log warning &quot;DEBUG&gt; Removendo arquivo log6.php&quot;;
  :local file [/file find name=&quot;log6.php&quot;]
  :if ([:len $file] &gt; 0) do={
      /file remove $file
  }
  # :log warning &quot;DEBUG&gt; Script concluído.&quot;
}
</pre>
<p>O post <a href="https://blog.remontti.com.br/3931">Como entregar IPv6+IPv4 no Mikrotik/RouterOS através de PPPoE/DHCPv6 PD e registrando os logs em um banco de dados</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/3931/feed</wfw:commentRss>
			<slash:comments>42</slash:comments>
		
		
			</item>
		<item>
		<title>Como instalar o MySQL 8 Server (Oracle) no Debian 10 Buster</title>
		<link>https://blog.remontti.com.br/3304</link>
					<comments>https://blog.remontti.com.br/3304#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 30 Jul 2019 20:28:32 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysql 8]]></category>
		<category><![CDATA[mysql8]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=3304</guid>

					<description><![CDATA[<p>Desde o lançamento do Debian o mysql foi substituído mariadb. Neste tutorial vamos aprender a fazer a instalação do MySQL A equipe do MySQL Release Engineering fornece repositórios para o Debian 10 Buster incluindo&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/3304">Como instalar o MySQL 8 Server (Oracle) no Debian 10 Buster</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/debian-10-buster-mysql-8.png" alt="" width="720" height="340" class="alignnone size-full wp-image-3315" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/debian-10-buster-mysql-8.png 720w, https://blog.remontti.com.br/wp-content/uploads/2019/07/debian-10-buster-mysql-8-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/debian-10-buster-mysql-8-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /></p>
<p>Desde o lançamento do Debian o mysql foi substituído mariadb. Neste tutorial vamos aprender a fazer a instalação do MySQL</p>
<p>A equipe do MySQL Release Engineering fornece repositórios para o Debian 10 Buster incluindo o servidor MySQL 8.0.</p>
<p><strong>Requisitos:</strong><br />
&#8211; <a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Debian 10 (Instalação limpa)</a></p>
<pre class="remontti-code"># apt install wget gnupg vim apt-transport-https</pre>
<p>Adicione o Repositórios da Oracle.</p>
<pre class="remontti-code"># echo -e &quot;deb http://repo.mysql.com/apt/debian/ buster mysql-8.0\ndeb-src http://repo.mysql.com/apt/debian/ buster mysql-8.0&quot; &gt; /etc/apt/sources.list.d/mysql.list</pre>
<p>Antes de atualizar o repositório você deve adicionar a chave pública.</p>
<pre class="remontti-code"># wget -O /tmp/RPM-GPG-KEY-mysql https://repo.mysql.com/RPM-GPG-KEY-mysql
# apt-key add /tmp/RPM-GPG-KEY-mysql</pre>
<p>Atualizamos o repositório e instalamos o mysql-sever da Oracle</p>
<pre class="remontti-code"># apt update
# apt install mysql-server</pre>
<p>Defina a senha de root do MySQL<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-mysql-8.0.png" data-rel="lightbox-gallery-I5rZx5jH" 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-mysql-8.0-300x158.png" alt="" width="300" height="158" class="alignnone size-medium wp-image-3306" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-mysql-8.0-300x158.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-mysql-8.0-768x405.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-mysql-8.0-1024x540.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-mysql-8.0.png 1600w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>No MySQL 8 a autenticação é diferente de seus antecessores, e até o momento não é reconhecido pelo PHP 7, o que gera o erro &#8220;<em>The server requested authentication method unknown to the client</em>&#8221; ao tentar conectar-se. </p>
<p>A não ser que você realmente saiba o que esta fazendo selecione : <strong>Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-mysql-8.0-legacy.png" data-rel="lightbox-gallery-I5rZx5jH" 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-mysql-8.0-legacy-300x169.png" alt="" width="300" height="169" class="alignnone size-medium wp-image-3309" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-mysql-8.0-legacy-300x169.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-mysql-8.0-legacy-768x432.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-mysql-8.0-legacy-1024x576.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/speedtest-debian-10-buster-mysql-8.0-legacy.png 1600w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<h4>Aumentando a segurança do Mysql</h4>
<pre class="remontti-code"># mysql_secure_installation</pre>
<p>Defina o nível de segurança de acordo com suas necessidades.</p>
<pre class="remontti-code">Securing the MySQL server deployment.

Enter password for user root: 

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

There are three levels of password validation policy:

LOW    Length &gt;= 8
MEDIUM Length &gt;= 8, numeric, mixed case, and special characters
STRONG Length &gt;= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Using existing password for root.

Estimated strength of the password: 50 
Change the password for root ? ((Press y|Y for Yes, any other key for No) : 

 ... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.


Normally, root should only be allowed to connect from
&#039;localhost&#039;. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.

By default, MySQL comes with a database named &#039;test&#039; that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.

All done! </pre>
<p>Dica.<br />
Se você for fazer a instalação do phpMyAdmin crie o usuario da seguinte forma:</p>
<pre class="remontti-code">CREATE DATABASE phpmyadmin CHARACTER SET utf8 collate utf8_bin;
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; WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;</pre>
<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/3304">Como instalar o MySQL 8 Server (Oracle) 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/3304/feed</wfw:commentRss>
			<slash:comments>3</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-PWvh9jNm" 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-PWvh9jNm" 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-PWvh9jNm" 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-PWvh9jNm" 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-PWvh9jNm" 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-PWvh9jNm" 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-PWvh9jNm" 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-PWvh9jNm" 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-PWvh9jNm" 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-PWvh9jNm" 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-PWvh9jNm" 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-PWvh9jNm" 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-PWvh9jNm" 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-PWvh9jNm" 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-gwmZ5PYF" 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>Instalação do Zabbix 4.2 no Debian 10 Buster</title>
		<link>https://blog.remontti.com.br/3032</link>
					<comments>https://blog.remontti.com.br/3032#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Tue, 16 Jul 2019 20:15:48 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[debian 10]]></category>
		<category><![CDATA[debian10]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[telegram]]></category>
		<category><![CDATA[zabbix]]></category>
		<category><![CDATA[zabbix 4.2]]></category>
		<category><![CDATA[zabbix 4.4]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=3032</guid>

					<description><![CDATA[<p>O Zabbix é uma solução de nível enterprise, de código aberto. O Zabbix é um software que monitora vários parâmetros da rede, dos servidores e da saúde dos serviços. Utiliza-se de um mecanismo flexível&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/3032">Instalação do Zabbix 4.2 no Debian 10 Buster</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>O Zabbix é uma solução de nível enterprise, de código aberto. O Zabbix é um software que monitora vários parâmetros da rede, dos servidores e da saúde dos serviços. Utiliza-se de um mecanismo flexível de notificação que permite configurar alertas por e-mail entre outros como Telegram, para praticamente qualquer evento. As notificações permitem que se reaja rapidamente à problemas no ambiente. O Zabbix oferece excelentes recursos de relatórios e visualização de dados armazenados. Isso faz com que o Zabbix seja a ferramenta ideal para planejamento de capacidade.</p>
<p>Requisitos:<br />
<a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">* Debian 10 (Buster) -> Instalação Limpa</a><br />
<a href="https://blog.remontti.com.br/3006" rel="noopener noreferrer" target="_blank">* Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin no Debian 10 Buster &#8220;LAMP&#8221;</a></p>
<p>Para instalação do Zabbix vamos incluir o repositório do oficial do Zabbix.</p>
<pre class="remontti-code"># su -
# cd /tmp</pre>
<p>Versão 4.2</strong></p>
<pre class="remontti-code"># wget https://repo.zabbix.com/zabbix/4.2/debian/pool/main/z/zabbix-release/zabbix-release_4.2-1+buster_all.deb
# dpkg -i zabbix-release_4.2-1+buster_all.deb</pre>
<p>Atualize o repositório e realize a instalação </p>
<pre class="remontti-code"># apt update ; apt upgrade
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent</pre>
<p>Vamos criar uma base de dados chamada <strong>zabbix</strong> e um usuário também chamado de zabbix no MariaDB.<br />
Não esqueça de alterar a senha: Use o gerador de senha: <a href="https://senhasegura.remontti.com.br/" rel="noopener noreferrer" target="_blank">https://senhasegura.remontti.com.br/</a></p>
<pre class="remontti-code"># mariadb -u root -p</pre>
<pre class="remontti-code">CREATE DATABASE zabbix CHARACTER SET utf8 collate utf8_bin;
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY &#039;SUA_SENHA&#039;;
FLUSH PRIVILEGES;
EXIT;</pre>
<p>Na versão do MariaDB 10.3.17 está apresentando um &#8220;problema&#8221; ao importar a base de dados do zabbix.<br />
<strong>ERROR 1118 (42000) at line 1284: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.</strong><br />
Verifique se sua versão é a 10.3.17</p>
<pre class="remontti-code"># mariadb --version
mariadb  Ver 15.1 Distrib 10.3.17-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2</pre>
<p>Se sim uma solução de momento é editar:</p>
<pre class="remontti-code"># vim /etc/mysql/mariadb.conf.d/50-server.cnf</pre>
<p>adicione a baixo de <strong>[mysqld]</strong></p>
<pre class="remontti-code">innodb_strict_mode = 0</pre>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/Row-size-too-large.png" data-rel="lightbox-gallery-F2xHDkPh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/Row-size-too-large-300x221.png" alt="" width="300" height="221" class="alignnone size-medium wp-image-3537" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/Row-size-too-large-300x221.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/Row-size-too-large.png 715w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Restarte o mariadb</p>
<pre class="remontti-code"># systemctl restart mariadb</pre>
<p>Importe o esquema de tabelas e dados padrões. (Demora um pouco!)</p>
<pre class="remontti-code"># zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix</pre>
<p>Digite a senha de seu usuário zabbix criada no passo anterior para importar as tabelas.</p>
<p>Agora que você já importou sem erros, edite novamente o <strong>/etc/mysql/mariadb.conf.d/50-server.cnf</strong> e remova a linha com <strong>innodb_strict_mode = 0</strong></p>
<pre class="remontti-code"># vim /etc/mysql/mariadb.conf.d/50-server.cnf</pre>
<p><del datetime="2019-09-11T20:12:26+00:00">innodb_strict_mode = 0</del></p>
<p>Edite o arquivo zabbix_server.conf para informar os dados para conexão com o MySQL.</p>
<pre class="remontti-code"># vim /etc/zabbix/zabbix_server.conf</pre>
<p>Procure por <strong># DBPassword=</strong> descomente e sete sua senha.</p>
<pre class="remontti-code">#...
DBPassword=SUA_SENHA
#...</pre>
<pre class="remontti-code"># vim /etc/apache2/conf-enabled/zabbix.conf</pre>
<p>Procure por: <strong># php_value date.timezone Europe/Riga</strong> e <a href="https://secure.php.net/manual/pt_BR/timezones.america.php" rel="noopener noreferrer" target="_blank">altere pela sua região</a>.<br />
Ex:</p>
<pre class="remontti-code">php_value date.timezone America/Sao_Paulo</pre>
<p>Após a alteração será necessário o reiniciar o apache.</p>
<pre class="remontti-code"># systemctl restart apache2</pre>
<p>Iniciando o Zabbix Server e Agente junto com a inicialização do sistema.</p>
<pre class="remontti-code"># systemctl enable zabbix-server
# systemctl enable zabbix-agent
# systemctl restart zabbix-server
# systemctl restart zabbix-agent</pre>
<p><center><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-1.png" data-rel="lightbox-gallery-F2xHDkPh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-1-1024x530.png" alt="" width="1024" height="530" class="alignnone size-large wp-image-3036" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-1-1024x530.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-1-300x155.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-1-768x397.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-1.png 1680w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-2.png" data-rel="lightbox-gallery-F2xHDkPh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-2-1024x798.png" alt="" width="1024" height="798" class="alignnone size-large wp-image-3037" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-2-1024x798.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-2-300x234.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-2-768x599.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-2.png 1680w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-3.png" data-rel="lightbox-gallery-F2xHDkPh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-3-1024x500.png" alt="" width="1024" height="500" class="alignnone size-large wp-image-3038" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-3-1024x500.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-3-300x146.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-3-768x375.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-3.png 1680w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-4.png" data-rel="lightbox-gallery-F2xHDkPh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-4-1024x500.png" alt="" width="1024" height="500" class="alignnone size-large wp-image-3039" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-4-1024x500.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-4-300x146.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-4-768x375.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-4.png 1680w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-5.png" data-rel="lightbox-gallery-F2xHDkPh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-5-1024x500.png" alt="" width="1024" height="500" class="alignnone size-large wp-image-3040" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-5-1024x500.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-5-300x146.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-5-768x375.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-5.png 1680w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-6.png" data-rel="lightbox-gallery-F2xHDkPh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-6-1024x500.png" alt="" width="1024" height="500" class="alignnone size-large wp-image-3041" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-6-1024x500.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-6-300x146.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-6-768x375.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-6.png 1680w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-6.png" data-rel="lightbox-gallery-F2xHDkPh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-6-1024x500.png" alt="" width="1024" height="500" class="alignnone size-large wp-image-3041" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-6-1024x500.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-6-300x146.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-6-768x375.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-6.png 1680w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
Logue com <strong>Admin</strong> senha <strong>zabbix</strong><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-7.png" data-rel="lightbox-gallery-F2xHDkPh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-7-1024x500.png" alt="" width="1024" height="500" class="alignnone size-large wp-image-3042" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-7-1024x500.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-7-300x146.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-7-768x375.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-7.png 1680w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-8.png" data-rel="lightbox-gallery-F2xHDkPh" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-8-1024x724.png" alt="" width="1024" height="724" class="alignnone size-large wp-image-3043" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-8-1024x724.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-8-300x212.png 300w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-8-768x543.png 768w, https://blog.remontti.com.br/wp-content/uploads/2019/07/zabbix-4.2-debian-10-buster-8.png 1680w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
</center><br />
Você pode gostar de:<br />
<a href="https://blog.remontti.com.br/3053" rel="noopener noreferrer" target="_blank">Zabbix 4 + Alertas no Telegram via Bot</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>Fonte: https://www.zabbix.com/documentation/</p>
<p>O post <a href="https://blog.remontti.com.br/3032">Instalação do Zabbix 4.2 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/3032/feed</wfw:commentRss>
			<slash:comments>35</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-p2qC0PPe" 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-p2qC0PPe" 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-p2qC0PPe" 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-p2qC0PPe" 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-p2qC0PPe" 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-p2qC0PPe" 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-xdyds8f5" 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-xdyds8f5" 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>
	</channel>
</rss>
