<?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 nts - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/nts/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/nts</link>
	<description>rudimar@remontti</description>
	<lastBuildDate>Mon, 29 Aug 2022 15:16:29 +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 nts - Remontti</title>
	<link>https://blog.remontti.com.br/tag/nts</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>NTS – Mantenha a hora certa em seu servidor com segurança!</title>
		<link>https://blog.remontti.com.br/5691</link>
					<comments>https://blog.remontti.com.br/5691#comments</comments>
		
		<dc:creator><![CDATA[Iulisloi Zacarias]]></dc:creator>
		<pubDate>Sat, 26 Jun 2021 13:32:22 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[buster]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[hora]]></category>
		<category><![CDATA[ntp]]></category>
		<category><![CDATA[nts]]></category>
		<category><![CDATA[Segurança]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5691</guid>

					<description><![CDATA[<p>Este tutorial foi escrito pelo meu amigo: Iulisloi Zacarias Manter o relógio dos seus servidores corretamente ajustado pode evitar muita dor de cabeça. Alguns softwares simplesmente podem não funcionar com a hora incorreta, como&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/5691">NTS – Mantenha a hora certa em seu servidor com segurança!</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/06/Network-Time-Security.png" alt="" width="720" height="340" class="alignnone size-full wp-image-5695" /></p>
<p><strong>Este tutorial foi escrito pelo meu amigo:</strong> <a href="https://telegram.me/izacarias" target="_blank" rel="noopener">Iulisloi Zacarias</a></p>
<p>Manter o relógio dos seus servidores corretamente ajustado pode evitar muita dor de cabeça. Alguns softwares simplesmente podem não funcionar com a hora incorreta, como exemplo cito aqui o DNSSEC e estrutura de chaves RPKI (nada muito grave, não é mesmo?!). Vale lembrar também que rastrear um problema ou conduzir uma auditoria fica muito mais fácil e assertivo se você manter os registros de data e hora nos <em>logs</em> com a informação correta.</p>
<p>O NTP é um protocolo que é utilizado para sincronizar a hora dos seus servidores e computador com uma fonte confiável de informação de hora, como por exemplo os servidores do projeto NTP.br. Há um tutorial muito completo sobre como manter seus servidores com a data correta <a href="https://blog.remontti.com.br/5608" target="_blank" rel="noopener">aqui</a>.</p>
<p>Mas você já parou para pensar sobre a segurança do NTP. As informações trafegam pela rede de forma aberta (isso não é um problema, já que saber a hora não é nenhum segredo) e sem mecanismos que permitam verificar se ela foi modificada, e isto sim pode ser um problema. Este tipo de ataque é chamado de ataque man-in-the-middle e consiste em um indivíduo mal-intencionado modificar a informação enquanto ela trafega pela rede. Além disso outro ataque bem comum é o “replay” de pacotes, ou seja, um atacante captura um pacote da comunicação original, e em seguida cria vários pacotes com as mesmas informações do pacote original, mas manipulando os campos que ele tem interesse e em seguida envia para as máquinas que ele deseja atacar. Pensando em resolver este problema de segurança, o NTS foi proposto (<a href="https://datatracker.ietf.org/doc/rfc8915/" target="_blank" rel="noopener">RFC 8915</a> https://datatracker.ietf.org/doc/rfc8915/).</p>
<p>Neste tutorial vamos utilizar o NTPsec, que é um “fork” da implementação de referência NTP e vêm ganhando popularidade no mundo Linux por ser umas das primeiras implementações NTP a ter suporte ao NTS.</p>
<p><strong><span style="color: red">É importante lembrar que o NTPsec têm a mesma função do pacote ntp no Debian e você não deve usar os dois ao mesmo tempo!</span></strong></p>
<p>Lembrando que utilizei o Debian 10:</p>
<pre class="remontti-code"># cat /etc/os-release</pre>
<pre class="remontti-code">PRETTY_NAME=&quot;Debian GNU/Linux 10 (buster)&quot;
NAME=&quot;Debian GNU/Linux&quot;
VERSION_ID=&quot;10&quot;
VERSION=&quot;10 (buster)&quot;
VERSION_CODENAME=buster
ID=debian
HOME_URL=&quot;https://www.debian.org/&quot;
SUPPORT_URL=&quot;https://www.debian.org/support&quot;
BUG_REPORT_URL=&quot;https://bugs.debian.org/&quot;</pre>
<p><strong>IMPORTANTE:</strong><br />
O uso do TLS 1.3 é obrigatório para o NTS e portanto este tutorial <strong>NÃO funcionará com Debian 9 ou Ubuntu 16.04</strong>.<br />
Neste tutorial uso o repositório <strong>backports</strong> do Debian. As versões dos programas são testadas no Debian stable, no entanto não são testadas tão extensivamente como as versões dos repositórios padrão do Debian.</p>
<p><strong><span style="color: red">Se você for um usuário iniciante no Debian/Linux, não recomendo fazer esta configuração em um servidor em produção!!!!</span></strong></p>
<p>Sem mais delongas, vamos lá…<br />
<strong>Iniciando</strong><br />
Torne-se root no seu sistema utilizando o comando “su -”</p>
<pre class="remontti-code">$ su -</pre>
<p>(OBS: utilize o comando “su menos”)<br />
Vamos garantir que outros clientes NTP não estejam em execução:</p>
<pre class="remontti-code"># systemctl stop ntp
# systemctl stop chrony
# systemctl stop openntpd
# systemctl stop systemd-timesyncd.service
# systemctl disable ntp
# systemctl disable chrony
# systemctl disable openntpd
# systemctl disable systemd-timesyncd.service
</pre>
<p><strong>Instalação do NTPsec e suas dependências</strong></p>
<p>Como o <strong>NTS</strong> é bem recente, vamos precisar instalar o NTPsec 1.2.0. No momento em que estou escrevendo este tutorial a versão do NTPsec nos repositórios padrão do Debian 10 é a 1.1.3. Nós vamos habilitar o repositório backports (stable-bpo) para que seja possível instalar a versão 1.2.0 do NTPsec no nosso Debian 10. Será necessário instalar também o pacote “ca-certificates” para podermos validar os certificados que os servidores vão nos oferecer.</p>
<pre class="remontti-code"># echo &quot;deb http://deb.debian.org/debian buster-backports main&quot; | tee /etc/apt/sources.list.d/buster-backports.list
# apt update
# apt install -y ntpsec/buster-backports ca-certificates</pre>
<p>Vamos ajustar as configurações do NTPsec para utilizar os servidores da Netnod (uma empresa que mantém servidores de hora para o governo da Suécia) e da Cloudflare. Por enquanto não temos servidores oficiais de hora no Brasil com suporte ao NTS (hey <a href="https://ntp.br/" target="_blank" rel="noopener">NTP.br</a>, vamos?!). Você pode incluir outros servidores NTS quando eles forem disponibilizados. Seguindo a metodologia do <a href="https://telegram.me/remontti" target="_blank" rel="noopener">Remontti</a>, vamos criar um arquivo para a nossa configuração e manter cópia do arquivo de configuração original:</p>
<pre class="remontti-code"># mv /etc/ntpsec/ntp.conf /etc/ntpsec/ntp.conf.orig
# vim /etc/ntpsec/ntp.conf</pre>
<p>Conteúdo do arquivo:</p>
<pre class="remontti-code"># /etc/ntpsec/ntp.conf, configuração para o ntpd; veja ntp.conf(5) para ajuda
# Configuraçao do drift file para o NTPsec computar os erros do relógio do seu computador
driftfile /var/lib/ntpsec/ntp.drift
leapfile /usr/share/zoneinfo/leap-seconds.list

# Configuracao do diretório de log
statsdir /var/log/ntpsec/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# Lista dos servidores com suporte NTS, você pode adicionar mais servidores à lista
server nts.netnod.se:4460 nts iburst
server sth1.nts.netnod.se:4460 nts iburst
server sth2.nts.netnod.se:4460 nts iburst
server time.cloudflare.com:4460 nts

# Permite trocar informações de hora com qualquer computador mas não permite configuração
# Segundo o guia do netnod essa configuração atende 99% dos casos ;-)
restrict default kod limited nomodify nopeer noquery
restrict -6 default kod limited nomodify nopeer noquery

# Permite consultas locais
restrict 127.0.0.1
restrict -6 ::1</pre>
<p>Crie o arquivo ntp.drift e o diretório para os logs e reinicie o serviço</p>
<pre class="remontti-code"># touch /var/lib/ntpsec/ntp.drift
# chown ntpsec:ntpsec /var/lib/ntpsec/ntp.drift
# mkdir /var/log/ntpsec
# chown -R ntpsec:ntpsec /var/log/ntpsec
# systemctl restart ntpsec</pre>
<p>Vamos verificar com quais servidores estamos tentando sincronizar:</p>
<pre class="remontti-code"># ntpq -p -u -w</pre>
<p>Irá listar algo como</p>
<pre class="remontti-code">     remote                                   refid      st t when poll reach   delay   offset   jitter
=======================================================================================================
+sth-ts.nts.netnod.se                    96.180.207.109   2 8   22   64   77 310.16ms 7.2680ms 10.631ms
*ntsts.sth1.ntp.se                       96.180.207.109   2 8   18   64   77 307.50ms 6.5467ms 13.046ms
+sth2-ts.nts.netnod.se                   156.133.237.214  2 8   22   64   77 305.86ms 4.2228ms 9.6702ms
-162.159.200.1                           10.191.8.4       3 8   23   64   77 61.953ms -31.52ms 19.442ms</pre>
<p>Verifique a coluna “st”. Esta coluna indica o stratum (ou estrato) e o valor 16 indica que o servidor está inoperante. No meu exemplo todos os servidores estão em operação pois os valores são 2, 2, 2, e 3. Veja também que há uma linha que inicia com um asterisco (*ntsts.sth1.ntp.se), esta informação indica que o NTPsec decidiu usar este servidor como principal referência para sincronização.</p>
<p>A coluna “refid” indica o servidor de referência do servidor NTS que você está consultando, isto é, onde o servidor NTS busca sua informação de hora. Se você observar o valor “.NTS.” na coluna “refid” no lugar dos IPs ou nomes de servidores, significa que o NTPsec ainda está negociando a conexão segura com o servidor e ainda não foi capaz de buscar informações de hora. Outra informação importante está na coluna “t” (quarta coluna da esquerda para a direita) que indica a quantidade de “cookies” que seu computador têm para usar com o servidor. Este valor deve ser 8. Números menores na coluna “t” indica conexões interrompidas (o valor 7 pode indicar que uma requisição está em progresso).</p>
<p>Por fim se tudo estiver funcionando corretamente, você pode incluir o NTPsec na inicialização do Linux:</p>
<pre class="remontti-code"># systemctl enable ntpsec</pre>
<p>É isso, agora a sincronização do seu relógio está protegida pela tecnologia mais avançada em termos de NTP <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>OBS:</strong> se a data do computador estiver muito atrasada ou muito adiantada, o NTS pode encontrar problemas em estabelecer uma conexão com o servidor de chaves do NTS e neste caso você precisa ajustar a data do servidor para um valor aproximado do atual (um dia de atraso não chega a ser um problema). Use o comando abaixo para ajustar a data, escrevendo a data no formato YYYYMMDD (Ano com quatro dígitos, Mês com dois dígitos e Dia com dois dígitos).</p>
<pre class="remontti-code">date +%Y%m%d -s &quot;20210617&quot;</pre>
<h4>Criando um servidor NTS</h4>
<p>Como dito anteriormente, o NTS é uma forma segura de sincronizar a hora do seu computador, para tanto ele usa uma camada de segurança baseada em TLS 1.3 e assim é OBRIGATÓRIO que você use um certificado digital. O certificado não pode ser autoassinado pois não funcionará (até funciona, com algumas “gambiarras”). A maneira mais fácil é usando um certificado Let’s Encrypt, mas vai precisar que seu servidor tenham um nome FQDN (ou seja, precisará de um domínio registrado, por exemplo: nts.meuservidor.com.br).<br />
Só para facilitar, lista dos requisitos:</p>
<ul>
<li>Debian 10</li>
<li>Certificado Digital</li>
<li>Um nome FQDN (domínio registrado)</li>
<li>Cliente NTS já configurado e funcionando</li>
</ul>
<p>Se você já tem um certificado válido no seu servidor e você vai usar o mesmo nome de máquina para o servidor NTS, você pode reusar o mesmo certificado. Caso contrário será necessário usar o certbot para solicitar um novo certificado.</p>
<p>Instale o certbot para obtermos o certificado digital:</p>
<pre class="remontti-code"># apt install certbot</pre>
<p><strong>Pare qualquer servidor HTTP antes de solicitar o novo certificado.</strong></p>
<pre class="remontti-code">systemctl stop apache2
systemctl stop nginx</pre>
<p>Solicite um novo certificado:</p>
<pre class="remontti-code"># certbot certonly --standalone</pre>
<p>Preencha os dados do seu certificado (no meu caso eu chamei meu servidor de nts.remontti.com.br, adapte para seu servidor) e responda o resto das perguntas como o modelo abaixo</p>
<pre class="remontti-code">Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter &#039;c&#039; to
cancel): seumelhoremail@example.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
Please enter in your domain name(s) (comma and/or space separated)  (Enter &#039;c&#039;
to cancel): nts.remontti.com.br
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for nts.remontti.com.br
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/nts.remontti.com.br/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/nts.remontti.com.br/privkey.pem
   Your cert will expire on 2021-09-21. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   &quot;certbot renew&quot;
 - 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><strong>Agora você á pode reiniciar o servidor HTTP, caso tenha parado o serviço antes de solicitar o certificado.</strong></p>
<p>Vamos copiar o certificado para a pasta do NTPsec para garantir a segurança do mesmo, afinal não queremos dar permissões em excesso para o arquivo possibilitando que alguém roube nossa chave privada invalidando toda nossa segurança.<br />
<strong>Não esqueça de ajustar o caminho dos arquivos do certificado digital, pois o certbot usa o nome do domínio para criar a estrutura de pastas utilizada para armazenar estes arquivos.</strong></p>
<pre class="remontti-code"># cp -v /etc/letsencrypt/live/nts.remontti.com.br/privkey.pem /etc/ntpsec/key.pem
# cp -v /etc/letsencrypt/live/nts.remontti.com.br/fullchain.pem /etc/ntpsec/cert-chain.pem
# chown ntpsec:ntpsec /etc/ntpsec/key.pem
# chown ntpsec:ntpsec /etc/ntpsec/cert-chain.pem
# chmod 600 /etc/ntpsec/key.pem
# chmod 600 /etc/ntpsec/cert-chain.pem</pre>
<p>Para ativar o servidor NTS no NTPsec, vamos editar o arquivo de configuração que criamos anteriormente</p>
<pre class="remontti-code"># vim /etc/ntpsec/ntp.conf</pre>
<p>Ao final do arquivo /etc/ntpsec/ntp.conf por volta da linha 28 (ative o número de linhas no vim com o comando &#8220;:set nu&#8221;), adicione as configurações abaixo:</p>
<pre class="remontti-code"># Servidor NTS
nts enable
nts key /etc/ntpsec/key.pem
nts cert /etc/ntpsec/cert-chain.pem
nts cookie /var/lib/ntpsec/nts-keys</pre>
<p>O conteúdo do arquivo ficará semelhante ao reproduzido abaixo:</p>
<pre class="remontti-code"># Configuraçao do drift file para o NTPsec computar os erros do relógio do seu computador
driftfile /var/lib/ntpsec/ntp.drift
leapfile /usr/share/zoneinfo/leap-seconds.list

# Configuracao do diretório de log
statsdir /var/log/ntpsec/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# Lista dos servidores com suporte NTS, você pode adicionar mais servidores à lista
server nts.netnod.se:4460 nts iburst
server sth1.nts.netnod.se:4460 nts iburst
server sth2.nts.netnod.se:4460 nts iburst
server time.cloudflare.com:4460 nts

# Permite trocar informações de hora com qualquer computador mas não permite configuração
# Segundo o guia do netnod essa configuração atende 99% dos casos ;-)
restrict default kod limited nomodify nopeer noquery
restrict -6 default kod limited nomodify nopeer noquery

# Permite consultas locais
restrict 127.0.0.1
restrict -6 ::1

nts enable
nts key /etc/ntpsec/key.pem
nts cert /etc/ntpsec/cert-chain.pem
nts cookie /var/lib/ntpsec/nts-keys</pre>
<p>Crie o arquivo utilizado pelo NTPsec para armazenar os cookies dos clientes e configure as permissões do mesmo:</p>
<pre class="remontti-code"># touch /var/lib/ntpsec/nts-keys
# chown ntpsec:ntpsec /var/lib/ntpsec/nts-keys
# chmod 600 /var/lib/ntpsec/nts-keys</pre>
<p>Por fim, reinicie o NTPsec:</p>
<pre class="remontti-code"># systemctl restart ntpsec</pre>
<p>Para verificar se tudo está correto, use o comando abaixo:</p>
<pre class="remontti-code"># systemctl status ntpsec</pre>
<p>Verifique o campo “Active:” a informação “active (running)” indica que o NTPsec está em execução. Não se assuste com algumas linhas em vermelho, se sua saída for semelhante ao texto abaixo (principalmente a última linha “NTSs: Private Key OK”), tudo está bem:</p>
<pre class="remontti-code">jun 18 16:49:44 nts ntpd[54392]: NTSs: starting NTS-KE server listening on port 4460
jun 18 16:49:44 nts ntpd[54392]: NTSs: OpenSSL security level is 2
jun 18 16:49:44 nts ntpd[54392]: NTSs: starting NTS-KE server listening on port 4460
jun 18 16:49:44 nts ntpd[54392]: NTSs: listen4 worked
jun 18 16:49:44 nts ntpd[54392]: NTSs: listen6 worked
jun 18 16:49:44 nts ntpd[54392]: NTSc: Using system default root certificates.
jun 18 16:49:44 nts ntpd[54392]: NTSs: loaded certificate (chain) from /etc/ntpsec/cert-chain.pem
jun 18 16:49:44 nts ntpd[54392]: NTSs: loaded private key from /etc/ntpsec/key.pem
jun 18 16:49:44 nts ntpd[54392]: NTSs: Private Key OK</pre>
<p>Caso não veja estas informações com o comando acima, você pode tentar usar o comando o</p>
<pre class="remontti-code">journalctl -u ntpsec.service</pre>
<p>para verificar as informação de inicialização do NTPsec e rastrear possíveis erros.</p>
<p><strong>Firewall com nftables</strong></p>
<p>Nosso servidor está configurado e funcionando e apesar de o NTS ser muito mais seguro que o NTP, ainda assim não custa nada implementarmos um Firewall. Vamos utilizar o mesmo script do tutorial que o @Remontti preparou para o NTP.<br />
Instale o nftables e o habilite para inciar com o sistema</p>
<pre class="remontti-code"># apt install -y nftables
# systemctl enable nftables</pre>
<p>Crie o arquivo com as regras do nftables. Observe que temos duas listas chamadas acesso-ntp-local-v4 e acesso-ntp-local-v6 onde informamos todos os IPs que podem solicitar informação de hora na nossa rede (Informe os IPs de sua rede!).</p>
<pre class="remontti-code"># vim /etc/nftables.conf</pre>
<pre class="remontti-code">#!/usr/sbin/nft -f

flush ruleset
 
table inet filter {
 
    # Permite os ips da sua rede
    set acesso-ntp-v4 {
        type ipv4_addr
        flags interval
        elements = { 127.0.0.1, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 100.64.0.0/10, 200.200.200.0/22 }
    }
    set acesso-ntp-v6 {
        type ipv6_addr
        flags interval
        elements = { ::1,  2804:ff4:bebe::/48 }
    }
 
    chain input {
        type filter hook input priority 0;
 
        # NTP
        ip saddr  @acesso-ntp-v4 tcp dport 4460 counter accept
        ip saddr  @acesso-ntp-v4 udp dport 123 counter accept
        ip6 saddr @acesso-ntp-v6 tcp dport 4460 counter accept
        ip6 saddr @acesso-ntp-v6 udp dport 123 counter accept
        tcp dport 4460 counter drop
        udp dport 123 counter drop
    }
    chain forward {
        type filter hook forward priority 0;
    }
    chain output {
        type filter hook output priority 0;
    }
}</pre>
<p>Reinicie o nftables em seguida verifique se as regras foram carregadas:</p>
<pre class="remontti-code"># systemctl restart nftables
# nft list ruleset</pre>
<h4>Script para renovação automática do certificado</h4>
<p>O certificado digital oferecido gratuitamente pelo Let&#8217;s Encrypt tem validade de 90 dias. Para evitar que o nosso servidor NTS fique com um certificado expirado (vencido), vamos criar um script de renovação que será executado periodicamente pelo cron.</p>
<p>Crie o arquivo renovassl.sh</p>
<pre class="remontti-code"># vim /etc/letsencrypt/renovassl.sh</pre>
<p>com o seguinte conteúdo:</p>
<pre class="remontti-code">#!/bin/bash

# Variaveis
CHAINFILE=$(cat /etc/letsencrypt/renewal/* | awk -F &#039;=&#039; &#039;$1~/fullchain/{print $2;exit}&#039;)
KEYFILE=$(cat /etc/letsencrypt/renewal/* | awk -F &#039;=&#039; &#039;$1~/privkey/{print $2;exit}&#039;)

# Para temporariamente o servidor web
# Precisamos da porta 80 e 443 livre para o certbot conseguir renovar o certificado
# - Remova o comentário (#) da linha correspondente ao seu servidor web
# /usr/bin/systemctl stop apache2
# /usr/bin/systemctl stop nginx

# Permite o certbot se conectar a porta 80 e 443 para renovar o certificado
nft add rule inet filter input tcp dport 80 counter accept
nft add rule inet filter input tcp dport 443 counter accept


# Aguarda 10 seg (tempo do apache parar) 
sleep 10

# Renova o certificado
/usr/bin/certbot -q renew

# Aguarda o certificado renovar
sleep 30

# Aguarda 2 seg
sleep 2
 
# Restarta o servidor web
# Caso você tenha um servidor web (Apache, Nginx, Lighttpd...), reinicie o serviço
# /usr/bin/systemctl restart apache2
# /usr/bin/systemctl restart nginx

# Para o serviço ntpsec
/usr/bin/systemctl stop ntpsec

# Copia cadeia de certificado e chave privada para o diretorio do NTPsec
/usr/bin/cp $CHAINFILE /etc/ntpsec/cert-chain.pem
/usr/bin/cp $KEYFILE /etc/ntpsec/key.pem

# Altera as permissoes para o usuário speedtest conseguir ler os certificados
/usr/bin/chown ntpsec:ntpsec /etc/ntpsec/cert-chain.pem
/usr/bin/chown ntpsec:ntpsec /etc/ntpsec/key.pem
/usr/bin/chmod 600 /etc/ntpsec/cert-chain.pem
/usr/bin/chmod 600 /etc/ntpsec/key.pem

# Reinicia o serviço NTPsec
/usr/bin/systemctl start ntpsec

# Reinicia o nftables para restaurar as regras
/usr/bin/systemctl restart nftables</pre>
<p><strong>Lembre-se de ajustar o script conforme sua necessidade. Você pode ajustar o caminho da chave privada e da cadeia de certificados atribuindo o caminho dos arquivos correspondentes às variávies CHAINFILE e KEYFILE.</strong></p>
<p>Dê permissão de execução ao arquivo renovassl.sh</p>
<pre class="remontti-code"># chmod +x /etc/letsencrypt/renovassl.sh</pre>
<p>E adicione o script ao cron para que a tarefa seja executada periodicamente:</p>
<pre class="remontti-code"># echo &#039;00 00   1 * *   root    /etc/letsencrypt/renovassl.sh&#039; | tee -a /etc/crontab</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-V5CKg7V9" data-rl_title="" data-rl_caption="" title=""><img 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="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Gostou? Quer ajudar o blog? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário ficaremos felizes em saber que ajudamos. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" target="_blank" rel="noopener noreferrer">clique aqui.</a></p>
<p>O post <a href="https://blog.remontti.com.br/5691">NTS – Mantenha a hora certa em seu servidor com segurança!</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5691/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
