<?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 vpn - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/vpn/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/vpn</link>
	<description>rudimar@remontti</description>
	<lastBuildDate>Wed, 27 Aug 2025 13:07:40 +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 vpn - Remontti</title>
	<link>https://blog.remontti.com.br/tag/vpn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Configurando OpenVPN no RouterOS v7</title>
		<link>https://blog.remontti.com.br/7921</link>
					<comments>https://blog.remontti.com.br/7921#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 12 Apr 2024 20:58:46 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[configuração de rede]]></category>
		<category><![CDATA[configuração de VPN]]></category>
		<category><![CDATA[criptografia]]></category>
		<category><![CDATA[IP público]]></category>
		<category><![CDATA[isp]]></category>
		<category><![CDATA[MikroTik Hex RB750Gr3]]></category>
		<category><![CDATA[OpenVPN]]></category>
		<category><![CDATA[routeros]]></category>
		<category><![CDATA[RouterOS 6]]></category>
		<category><![CDATA[RouterOS 7]]></category>
		<category><![CDATA[Segurança de Rede]]></category>
		<category><![CDATA[tutoriais MikroTik]]></category>
		<category><![CDATA[vpn]]></category>
		<category><![CDATA[VPN segura]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7921</guid>

					<description><![CDATA[<p>Hoje, vamos aprender a configurar o OpenVPN no RouterOS v7. Com vasta experiência junto a ISPs, percebo que muitos ainda utilizam protocolos como PPTP, SSTP e L2TP, que oferecem menor segurança. Optar pelo OpenVPN&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7921">Configurando OpenVPN no RouterOS v7</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2024/04/openvpn-remontti.com_.br_.png" alt="" width="1530" height="826" class="alignnone size-full wp-image-7933" srcset="https://blog.remontti.com.br/wp-content/uploads/2024/04/openvpn-remontti.com_.br_.png 1530w, https://blog.remontti.com.br/wp-content/uploads/2024/04/openvpn-remontti.com_.br_-300x162.png 300w, https://blog.remontti.com.br/wp-content/uploads/2024/04/openvpn-remontti.com_.br_-1024x553.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2024/04/openvpn-remontti.com_.br_-768x415.png 768w" sizes="(max-width: 1530px) 100vw, 1530px" /><br />
Hoje, vamos aprender a configurar o OpenVPN no RouterOS v7. Com vasta experiência junto a ISPs, percebo que muitos ainda utilizam protocolos como PPTP, SSTP e L2TP, que oferecem menor segurança. Optar pelo OpenVPN é uma escolha superior, pois ele não só fornece criptografia robusta e configurações altamente personalizáveis, mas também garante uma proteção mais eficaz contra as vulnerabilidades comuns nesses protocolos menos seguros.</p>
<p>Para configurar nosso servidor OpenVPN, precisaremos de um IP público para acessar o servidor. Uma vantagem interessante é que esse IP pode estar em &#8220;<strong>blackhole</strong>&#8220;, o que significa que ele não responderá a nenhuma porta indiscriminadamente, economizando recursos da CPU ao evitar a criação extensiva de regras de firewall. Vou ilustrar essa configuração com um exemplo prático:</p>
<p>Imagine que você adquiriu um MikroTik <em>Hex RB750Gr3</em> para gerenciar sua rede interna. Você conecta esse dispositivo ao seu roteador de borda. Para configurar a comunicação, você estabelece um segmento de rede /30, por exemplo, 10.7.7.0/30. No roteador de borda, você configura o IP 10.7.7.1/30, e no seu Hex RB750Gr3, você configura o IP 10.7.7.2/30. Em seguida, você adiciona um gateway padrão com o IP 10.7.7.1 e configura na tabela de rotas o IP 250.250.250.250 em balckhole.</p>
<p>No roteador de borda, você cria uma rota estática com destino a 250.250.250.250 com gateway 10.7.7.2. Com isso, você estabelece um caminho direto para o seu IP público, mas sem responder a nenhuma solicitação de conexão externa.</p>
<p>Se você precisar acessar o dispositivo via Winbox, basta criar uma regra de redirecionamento (redirect) para essa porta específica, permitindo o acesso externo somente por ela. Usar um IP em &#8220;blackhole&#8221; é como ter um firewall que automaticamente descarta qualquer pacote não solicitado, proporcionando uma camada extra de segurança e eficiência.</p>
<h3>Exemplo acima ficaria da seguinte forma:</h3>
<p><strong>Borda</strong></p>
<pre class="remontti-code">
# Adicione o IP à interface que comunica com sua HE
/ip address add address=10.7.7.1/30 comment=&quot;WAN&quot; interface=ether1

# Cria rota estática dizendo que seu IP público está atrás do endereço &quot;tal&quot;
/ip route add comment=&quot;Rota_HEX&quot; dst-address=250.250.250.250/32 gateway=10.7.7.2
</pre>
<p><strong>Hex RB750Gr3</strong></p>
<pre class="remontti-code">
# Adicione o IP à interface que comunica com sua Borda
/ip address add address=10.7.7.2/30 comment=&quot;WAN&quot; interface=ether1

# Adiciona um gateway
/ip route add comment=&quot;Gateway&quot; dst-address=0.0.0.0/0 gateway=10.7.7.1

# Adiciona seu IP público em blackhole
/ip route add blackhole comment=&quot;Blackhole&quot; dst-address=250.250.250.250/32

# Redirect para winbox (Não use porta padrão para segurança, ex: 61000)
/ip firewall nat add action=redirect chain=dstnat comment=&quot;Winbox&quot; \
    dst-address=250.250.250.250 dst-port=61000 protocol=tcp to-ports=8291
</pre>
</p>
<h3>Configurando o Servidor OpenVPN</h3>
<p>Para a criação do servidor OpenVPN, será necessário gerar três certificados distintos. Seguem os passos detalhados:</p>
<p><strong>Crie o certificado CA (Certificado de Autoridade)</strong></p>
<p>Para iniciar, crie o certificado da Autoridade Certificadora (CA), que será a base da confiança dos certificados subsequentes:</p>
<pre class="remontti-code">/certificate add name=CA common-name=CA key-usage=crl-sign,key-cert-sign days-valid=36500</pre>
<p>Após criar o certificado CA, você deve assiná-lo. Substitua <strong>250.250.250.250</strong> pelo seu IP público:</p>
<pre class="remontti-code">/certificate sign CA ca-crl-host=250.250.250.250</pre>
<p><strong>Crie e assine o certificado SERVIDOR</strong></p>
<p>Este certificado será usado para autenticar o servidor durante as conexões:</p>
<pre class="remontti-code">/certificate add name=SERVIDOR common-name=SERVIDOR key-usage=digital-signature,key-encipherment,tls-server days-valid=36500
/certificate sign SERVIDOR ca=CA
/certificate set SERVIDOR trusted=yes</pre>
<p><strong>Crie e assine o certificado CLIENTE</strong></p>
<p>Em seguida, crie o certificado do cliente, que será utilizado pelos clientes para estabelecer uma conexão segura com o servidor:</p>
<pre class="remontti-code">/certificate add name=CLIENTE common-name=CLIENTE key-usage=tls-client days-valid=36500
/certificate sign CLIENTE ca=CA</pre>
<p><strong>Exportação dos certificados</strong></p>
<p>Por fim, exporte os certificados para arquivos PEM, o que facilitará a importação em diferentes clientes. Não se esqueça de substituir <strong>sup3s3nha0p3nvpn</strong> pela senha que protegerá o certificado do cliente:</p>
<pre class="remontti-code">/certificate export-certificate CA type=pem file-name=CA
/certificate export-certificate CLIENTE type=pem file-name=CLIENTE export-passphrase=sup3s3nha0p3nvpn</pre>
<p>Este processo garante que tanto o servidor quanto os clientes possam estabelecer uma conexão VPN segura através do uso de certificados confiáveis.</p>
<p>Irá ser criado 3 arquivos CA.crt, CLIENTE.crt e CLIENTE.key</p>
<pre class="remontti-code">/file print </pre>
<pre class="remontti-code-plain"> # NAME                             TYPE                                   SIZE CREATION-TIME       
 0 CA.crt                           .crt file                              1180 apr/12/2024 14:33:11
 1 CLIENTE.crt                      .crt file                              1143 apr/12/2024 14:33:16
 2 CLIENTE.key                      .key file                              1858 apr/12/2024 14:33:16</pre>
<p>Pelo menu FILE do winbox faça download do mesmo se você estiver utilizando a versão 6 do RouterOS, para versão 7 não é necessário baixar, pois o mesmo tem um gerador que iremos ver mais a frente.</p>
<p>Agora vamos as configurações que serão entregues ao cliente. Crie uma pool qual será entregue.</p>
<pre class="remontti-code">/ip pool 
add name=POOL_OpenVPN ranges=192.168.250.128/25</pre>
<p>Crie um o profile especifico para OPEN_VPN, no exemplo estou definindo também uma velocidade de 50MB de upload e download.</p>
<pre class="remontti-code">/ppp profile
add change-tcp-mss=yes local-address=192.168.250.1 name=OPEN_VPN rate-limit=50m/50m remote-address=POOL_OpenVPN use-encryption=yes</pre>
<p>Se você deseja ser notificado via Telegram sempre que alguém se conectar ao seu servidor VPN (algo que eu recomendo e costumo fazer), você pode facilmente configurar essa integração editando o perfil no servidor e incluindo um script para enviar alertas. Para isso, siga os passos abaixo:</p>
<p>1. Acesse o perfil do servidor VPN (<strong>OPEN_VPN</strong>) e localize a aba &#8220;Scripts&#8221;.<br />
2. Insira o script fornecido, substituindo `XXXXXXXXXXXXXXXXXXXXXX` pelo token do seu bot no Telegram, e `-10000000000` pelo ID do seu grupo ou usuário do Telegram.<br />
<strong># On Up:</strong></p>
<pre class="remontti-code">:local callerId $&quot;caller-id&quot;
/tool fetch url=&quot;https://api.telegram.org/botXXXXXXXXXXXXXXXXXXXXXX/sendMessage\?parse_mode=HTML&amp;chat_id=-10000000000&amp;text=%E2%9D%8E%20OpenVPN%20ON%20USUARIO:%20&lt;code&gt;$user&lt;/code&gt;%20ORIGEM:%20&lt;code&gt;$callerId&lt;/code&gt;&amp;disable_web_page_preview=true&quot; keep-result=no</pre>
<p><strong># On Down:</strong></p>
<pre class="remontti-code">
:local callerId $&quot;caller-id&quot;
/tool fetch url=&quot;https://api.telegram.org/botXXXXXXXXXXXXXXXXXXXXXX/sendMessage\?parse_mode=HTML&amp;chat_id=-10000000000&amp;text=%E2%9D%8C%20OpenVPN%20OFF%20USUARIO:%20&lt;code&gt;$user&lt;/code&gt;%20ORIGEM:%20&lt;code&gt;$callerId&lt;/code&gt;&amp;disable_web_page_preview=true&quot; keep-result=no</pre>
<p>Esse ajuste permitirá que você receba uma notificação imediata sempre que ocorrer uma conexão, aumentando o controle e a segurança da sua rede.</p>
<p>Faça uma <strong>regra de NAT </strong>(src-nat) para fornecer internet ao cliente, onde 250.250.250.250 é nosso querido IP que está em blackhole, e ether1 seria minha interface WAN (Upstream)</p>
<pre class="remontti-code">
/ip firewall nat
add action=src-nat chain=srcnat comment=&quot;NAT_OpenVPN&quot; out-interface=ether1 \
    src-address=192.168.250.128/25 to-addresses=250.250.250.250</pre>
<p>Iremos ativar o servidor OpenVPN agora, a porta padrão é a 1194, porem estarei adotando a boa pratica de utilizar outra como a 61194</p>
<pre class="remontti-code">/interface ovpn-server server
add name=open-vpn-server \
 auth=sha1 \
 certificate=SERVIDOR \
 cipher=aes256-cbc \
 default-profile=OPEN_VPN \
 require-client-certificate=yes \
 port=61194 \
 redirect-gateway=def1

/interface ovpn-server server print
/interface ovpn-server server enable 0
</pre>
<p><strong>Crie seus usuários</strong>, vou criar um de exemplo:</p>
<pre class="remontti-code">/ppp secret add comment=&quot;Key: sup3s3nha0p3nvpn&quot; name=remontti@remontti.vpn profile=OPEN_VPN service=ovpn password=su4senhAparaL0gar </pre>
<p>Você pode também utilizar os usuários via Radius, basta fazer a integração. Exemplo:</p>
<pre class="remontti-code">/ppp aaa set interim-update=5m use-radius=yes
/radius add address=10.10.10.10 secret=senha service=ppp</pre>
<p><strong>Na versão 7 </strong>do routerOS podemos criar nosso <em>arquivo.ovpn</em> direto pelo botão <strong>Export .ovpn </strong></p>
<p>Altere <strong>server-address</strong> para seu endereço de ip público.</p>
<pre class="remontti-code">/interface ovpn-server server export-client-configuration \
  server-address=250.250.250.250 \
  ca-certificate=CA.crt \
  client-certificate=CLIENTE.crt \
  client-cert-key=CLIENTE.key \
  server=open-vpn-server 
</pre>
<p>Se estiver utilizando o ip em blackhole vc precisa fazer o redirect para porta que irá utilizar ex.: &#8220;61194&#8221;</p>
<pre class="remontti-code">
/ip firewall nat add action=redirect chain=dstnat comment=&quot;OpenVPN&quot; \
    dst-address=250.250.250.250 dst-port=61194 protocol=tcp to-ports=61194
</pre>
<p>Veja os arquivos novamente.</p>
<pre class="remontti-code">/file print </pre>
<p>Perceba que temos agora um novo arquivo <strong>client1712413538.ovpn</strong>, faça donwload do mesmo e pule a próxima etapa da versão 6 direto para configuração do cliente OpenVPN.</p>
<pre class="remontti-code-plain">#  NAME                   TYPE        SIZE  CREATION-TIME      
0  CLIENTE.key            .key file   1858  2024-04-06 10:53:13
1  client1712413538.ovpn  .ovpn file  4393  2024-04-06 11:25:38
2  CLIENTE.crt            .crt file   1090  2024-04-06 10:53:13
3  CA.crt                 .crt file   1123  2024-04-06 10:53:07
</pre>
<h3>Cliente OpenVPN</h3>
<p>Acessando https://openvpn.net/client/ voce encontra cliente para <a href="https://openvpn.net/client/client-connect-vpn-for-windows/" rel="noopener" target="_blank">Windows</a>, <a href="https://openvpn.net/downloads/openvpn-connect-v3-macos.dmg" rel="noopener" target="_blank">MacOS</a>, <a href="https://openvpn.net/openvpn-client-for-linux/" rel="noopener" target="_blank">Linux</a>, <a href="https://play.google.com/store/apps/details?id=net.openvpn.openvpn" rel="noopener" target="_blank">Android</a>,  <a href="https://apps.apple.com/us/app/openvpn-connect-openvpn-app/id590379981" rel="noopener" target="_blank">iOS</a> e <a href="https://play.google.com/store/apps/details?id=net.openvpn.openvpn" rel="noopener" target="_blank">ChromeOS</a>.</p>
<p>Com o cliente instalado basta você importar o arquivo .ovpn e infomar seu usuário e senha, ao conectar pela primeira vez irá solicitar a chave do certificado. </p>
<p>No linux você pode configurar também automaticamente nas configurações de rede sem a necessidade de instalar nenhum programa.<br />
<img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2024/04/debian-12-gnome-openvpn.png" alt="" width="1173" height="806" class="alignnone size-full wp-image-7929" srcset="https://blog.remontti.com.br/wp-content/uploads/2024/04/debian-12-gnome-openvpn.png 1173w, https://blog.remontti.com.br/wp-content/uploads/2024/04/debian-12-gnome-openvpn-300x206.png 300w, https://blog.remontti.com.br/wp-content/uploads/2024/04/debian-12-gnome-openvpn-1024x704.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2024/04/debian-12-gnome-openvpn-768x528.png 768w" sizes="(max-width: 1173px) 100vw, 1173px" /></p>
<p>Gostou? Quer ajudar manter o blog? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>O post <a href="https://blog.remontti.com.br/7921">Configurando OpenVPN no RouterOS v7</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7921/feed</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>Port knocking, aprenda a melhorar as política de segurança de seu firewall Linux e Mikrotik</title>
		<link>https://blog.remontti.com.br/5390</link>
					<comments>https://blog.remontti.com.br/5390#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Sat, 13 Mar 2021 21:23:34 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[knocking]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[pptp]]></category>
		<category><![CDATA[proteção]]></category>
		<category><![CDATA[routeros]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[vpn]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=5390</guid>

					<description><![CDATA[<p>Port knocking é um método de abrir portas externamente em um firewall, realizando tentativas de conexões em uma sequemcia de portas fechadas pré-especificadas, e depois que esta sequência estiver correta as regras de firewall&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/5390">Port knocking, aprenda a melhorar as política de segurança de seu firewall Linux e Mikrotik</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Port knocking é um método de abrir portas externamente em um firewall, realizando tentativas de conexões em uma sequemcia de portas fechadas pré-especificadas, e depois que esta sequência estiver correta as regras de firewall são modificadas temporariamente para permitir que o host que &#8220;bateu&#8221; nas portas tenha acesso. </p>
<p>Vou ensinar realizar Port knocking no Linux com <strong>nftables</strong> e <strong>iptables</strong> e <strong>Mikrotik</strong> <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>Primeiramente precisamos escolher 4 portas que iremos bater para ganhar acesso.<br />
No meu exemplo irei usar as portas: <strong>52341, 28001, 60541, 30951</strong></p>
<p><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/03/toctoc.png" alt="" width="651" height="182" class="alignnone size-full wp-image-5392" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/03/toctoc.png 651w, https://blog.remontti.com.br/wp-content/uploads/2021/03/toctoc-300x84.png 300w" sizes="(max-width: 651px) 100vw, 651px" /></p>
<p>Neste exemplo vou estar liberando as portas 22 e 23 após &#8220;batermos&#8221; nas portas 52341, 28001, 60541, 30951, e por 1min após bater nas portas teremos acesso as portas 22 e 23. </p>
<p>Se você é amante de linux, e seu desktop é um lindo linux instale o &#8220;batedor&#8221; knockd, não vamos usa-lo ainda, mas já podemos instala-lo!</p>
<pre class="remontti-code">$ sudo apt install knockd
$ knock -h
  -u, --udp       make all ports hits use UDP (default is TCP)
  -d, --delay &lt;t&gt;      wait &lt;t&gt; milliseconds between port hits
  -v, --verbose   be verbose
  -V, --version   display version
  -h, --help      this help</pre>
<p>Ele funciona assim:</p>
<pre class="remontti-code">$ knock -d 500 -v 192.168.1.1 52341 28001 60541 30951
hitting tcp 192.168.1.1:52341
hitting tcp 192.168.1.1:28001
hitting tcp 192.168.1.1:60541
hitting tcp 192.168.1.1:30951</pre>
<h3>Linux Nftables</h3>
<p>Primeiramente tenha o nftables instalado. Para distribuição baseadas em Debian use:</p>
<pre class="remontti-code"># apt install nftables
# systemctl enable nftables.service</pre>
<p>O arquivo de configuração padrão do nftables fica em /etc/nftables.conf, então vamos edita-lo:</p>
<pre class="remontti-code"># vim /etc/nftables.conf</pre>
<p>Lembre-se de criar o seu padrão de sequencia e portas, e adicione ao final do arquivo:</p>
<pre class="remontti-code">define protege_portas = {22,23}

table inet portknock {
   set clientes_ipv4 {
      type ipv4_addr
      flags timeout
   }

   set clientes_ipv6 {
      type ipv6_addr
      flags timeout
   }

   set toctoc_aberta_ipv4 {
      type ipv4_addr . inet_service
      flags timeout
   }

   set toctoc_aberta_ipv6 {
      type ipv6_addr . inet_service
      flags timeout
   }

   chain input {
      type filter hook input priority -10; policy accept;

      iifname &quot;lo&quot; return

      tcp dport 52341 add @toctoc_aberta_ipv4 {ip  saddr . 28001 timeout 60s}
      tcp dport 52341 add @toctoc_aberta_ipv6 {ip6 saddr . 28001 timeout 60s}
      tcp dport 28001 ip  saddr . tcp dport @toctoc_aberta_ipv4 add @toctoc_aberta_ipv4 {ip  saddr . 60541 timeout 60s}
      tcp dport 28001 ip6 saddr . tcp dport @toctoc_aberta_ipv6 add @toctoc_aberta_ipv6 {ip6 saddr . 60541 timeout 60s}
      tcp dport 60541 ip  saddr . tcp dport @toctoc_aberta_ipv4 add @toctoc_aberta_ipv4 {ip  saddr . 30951 timeout 60s}
      tcp dport 60541 ip6 saddr . tcp dport @toctoc_aberta_ipv6 add @toctoc_aberta_ipv6 {ip6 saddr . 30951 timeout 60s}
      tcp dport 30951 ip  saddr . tcp dport @toctoc_aberta_ipv4 add @clientes_ipv4 {ip  saddr timeout 10s} log prefix &quot;Portknock bem-sucedido: &quot;
      tcp dport 30951 ip6 saddr . tcp dport @toctoc_aberta_ipv6 add @clientes_ipv6 {ip6 saddr timeout 10s} log prefix &quot;Portknock bem-sucedido: &quot;

      tcp dport { $protege_portas } ip  saddr @clientes_ipv4 counter accept
      tcp dport { $protege_portas } ip6 saddr @clientes_ipv6 counter accept
      tcp dport { $protege_portas } ct state established,related counter accept
      tcp dport { $protege_portas } counter reject with tcp reset
   }
}
</pre>
<p>Restarte o nftables</p>
<pre class="remontti-code"># systemctl enable nftables.service</pre>
<p>Se você não usa linux em seu deskop <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> para usar o knock, basta você jogar no seu navegador ip:porta, ex 192.168.1.1:52341 192.168.1.1:28001 192.168.1.1:60541 192.168.1.1:30951, lembre-se que você tem 1 minuto para bater nas portas e realizar sua conexão. Já já ensino como ter um servido web e liberar a porta em um click!</p>
<pre class="remontti-code">$ knock -d 500 -v 192.168.1.1 52341 28001 60541 30951</pre>
<p>Para acompanhar os logs:</p>
<pre class="remontti-code">#  tail -f /var/log/messages</pre>
<p>Realize o SSH (ou acesse o a porta que tenha protegido para testar)</p>
<h3>Linux Iptables</h3>
<p>Vou deixar um modelo com iptables, mas recomendo você ir migrando para nftables que em um futuro sera seu sucessor. Não esqueça de alterar as portas para sua realidade, em seu arquivo de firewall tenha:</p>
<pre class="remontti-code">#!/bin/bash
iptables -F
iptables -X
iptables -Z

iptables -N INTO-TOCTOC2
iptables -A INTO-TOCTOC2 -m recent --name TOCTOC1 --remove
iptables -A INTO-TOCTOC2 -m recent --name TOCTOC2 --set

iptables -N INTO-TOCTOC3
iptables -A INTO-TOCTOC3 -m recent --name TOCTOC2 --remove
iptables -A INTO-TOCTOC3 -m recent --name TOCTOC3 --set

iptables -N INTO-TOCTOC4
iptables -A INTO-TOCTOC4 -m recent --name TOCTOC3 --remove
iptables -A INTO-TOCTOC4 -m recent --name TOCTOC4 --set
iptables -A INTO-TOCTOC4 -j LOG --log-prefix &quot;Portknock bem-sucedido: &quot;

iptables -A INPUT -m recent --update --name TOCTOC1

iptables -A INPUT -p tcp --dport 52341 -m recent --set --name TOCTOC1
iptables -A INPUT -p tcp --dport 28001 -m recent --rcheck --seconds 30 --name TOCTOC1 -j INTO-TOCTOC2
iptables -A INPUT -p tcp --dport 60541 -m recent --rcheck --seconds 30 --name TOCTOC2 -j INTO-TOCTOC3
iptables -A INPUT -p tcp --dport 30951 -m recent --rcheck --seconds 60 --name TOCTOC3 -j INTO-TOCTOC4

# Para uma unica porta
#iptables -A INPUT -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p tcp --dport 22 -m recent --rcheck --seconds 60 --name TOCTOC4 -j ACCEPT
#iptables -A INPUT -p tcp --dport 22 -j DROP

# Multiplas portas
iptables -A INPUT -p tcp -m multiport --dport 22,23 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 22,23 -m recent --rcheck --seconds 60 --name TOCTOC4 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 22,23 -j DROP</pre>
<p>Pode realizar os mesmo procedimento anteriores</p>
<h3>Mikrotik</h3>
<p>Aqui vai uma observação muito importante para quem usa routerOS, FIREWALL TEM LUGAR PARA SER FEITO, então não sai aplicando Port Knocking em todo o lugar. Por exemplo, muitos provedores tem o costume de deixar na sua borda routerOS o serviço PPTP ativo para fazer uma conexão quando esta fora da sua rede, este é um bom exemplo de NÃO se seguir, routerOS tem q ter muito cuidado quando se cria firewall, recomendo que para esse tipo de serviço como PPTP Server, seja rodado em um router paralelo (pode ser uma hAP lite, uma VM com o routerOS mas nunca em uma borda) até por que é muito fácil de quebrar o PPTP, então para não deixar a porta 1723/PPTP aberta iremos realizar o Port Knocking, aproveitei e inclui a porta 22, altere de acordo com suas necessidades. </p>
<pre class="remontti-code">/ip firewall filter
add action=add-src-to-address-list address-list=toc_toc_1  \
    address-list-timeout=30s chain=input comment=&quot;Port Knocking&quot;  \
    connection-state=new dst-port=52341 protocol=tcp
add action=add-src-to-address-list address-list=toc_toc_2  \
    address-list-timeout=30s chain=input connection-state=new dst-port=28001  \
    protocol=tcp src-address-list=toc_toc_1
add action=add-src-to-address-list address-list=toc_toc_3  \
    address-list-timeout=30s chain=input connection-state=new dst-port=60541  \
    protocol=tcp src-address-list=toc_toc_2
add action=add-src-to-address-list address-list=toc_toc_4 address-list-timeout=2m  \
    chain=input connection-state=new dst-port=30951 log=yes log-prefix=&quot;Portknock bem-sucedido&quot;  \
    protocol=tcp src-address-list=toc_toc_3
add action=drop chain=input connection-state=new dst-port=1723,22  \
    protocol=tcp src-address-list=!toc_toc_4</pre>
<p>Se você não usa linux em seu deskop <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> para usar o knock, basta você jogar no seu navegador ip:porta, ex 192.168.1.1:52341 192.168.1.1:28001 192.168.1.1:60541 192.168.1.1:30951, lembre-se que você tem 1 minuto para bater nas portas e realizar sua conexão. Já já ensino como ter um servido web e liberar a porta em um click!</p>
<pre class="remontti-code">$ knock -d 500 -v 192.168.1.1 52341 28001 60541 30951</pre>
<p>para acompanhar, abra os <strong>Log</strong> sempre que um host acertar as sequencias de porta um log com <strong>Portknock bem-sucedido</strong> será exibido. Verifique também em IP-> Firewall -> Address List.</p>
<p>Realize o sua conexão PPTP ou SSH (ou acesse o a porta que tenha protegido para testar)</p>
<h3>Que tal uma central &#8220;toc toc&#8221; para nosso Port knocking <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;" /></h3>
<p>Leituras recomendadas:<br />
<strong><a href="https://blog.remontti.com.br/3464" rel="noopener" target="_blank">Como ter diversos sub/domínios no mesmo servidor?</a></strong><br />
<strong><a href="https://blog.remontti.com.br/3006" rel="noopener" target="_blank">Passo-a-passo como criar um servidor WEB</a></strong><br />
<strong><a href="https://blog.remontti.com.br/3086" rel="noopener" target="_blank">Servidor DNS seguro com Bind9</a></strong><br />
Crie um subdomínio em exemplo toctoc em seu servidor DNS apontando para algum servidor web que você tenha rodando.<br />
Ajustes o subdomíno em seu servidor web, neste ex com apache estou estarei incluído uma senha para acesso.</p>
<pre class="remontti-code"># mkdir /var/www/toctoc/
# htpasswd -c /var/www/toctoc/.htpasswd admin</pre>
<p>E defina a senha para seu acesso.</p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/toctoc.conf</pre>
<pre class="remontti-code">&lt;virtualhost *:80&gt;
   ServerName toctoc.remontti.com.br
   ServerAdmin noc@remontti.com.br
   DocumentRoot /var/www/toctoc
   &lt;Directory /var/www/toctoc/&gt;
      Options FollowSymLinks
      AllowOverride All
      Require all denied
      &lt;RequireAll&gt;
          Require valid-user
          AuthBasicProvider file
          AuthType Basic
          AuthName &quot;Login&quot;
          AuthUserFile /var/www/toctoc/.htpasswd
      &lt;/RequireAll&gt;
   &lt;/Directory&gt; 
   ErrorLog ${APACHE_LOG_DIR}/error_toctoc.log
   CustomLog ${APACHE_LOG_DIR}/access_toctoc.log combined
&lt;/VirtualHost&gt;</pre>
<p>Criei uma paginazinha com php + javascript para executar nosso trabalho para não precisar decorar portas, sinta-se a vontade para melhorar o código: <a href="https://github.com/remontti/PortKnockingPHP" rel="noopener" target="_blank">https://github.com/remontti/PortKnockingPHP</a><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2021/03/toctoc-pork-knocking.png" alt="" width="1366" height="793" class="alignnone size-full wp-image-5402" srcset="https://blog.remontti.com.br/wp-content/uploads/2021/03/toctoc-pork-knocking.png 1366w, https://blog.remontti.com.br/wp-content/uploads/2021/03/toctoc-pork-knocking-300x174.png 300w, https://blog.remontti.com.br/wp-content/uploads/2021/03/toctoc-pork-knocking-1024x594.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2021/03/toctoc-pork-knocking-768x446.png 768w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<pre class="remontti-code"># cd /var/www/toctoc/
# wget https://raw.githubusercontent.com/remontti/PortKnockingPHP/main/index.php</pre>
<p>Edite o arquivo index.php e altere a lista de seus servidores&#8230;</p>
<pre class="remontti-code"> # Nome - IP - Porta 1 - Porta 2 - Porta 3 - Porta 4 #
$array = [
    [&quot;RouterOS PPTP&quot;,&quot;192.168.1.1&quot;,&quot;1000&quot;,&quot;2000&quot;,&quot;3000&quot;,&quot;4000&quot;],
    [&quot;Servicor 2&quot;,&quot;192.168.2.1&quot;,&quot;111&quot;,&quot;222&quot;,&quot;333&quot;,&quot;4444&quot;],
    [&quot;Servicor 3&quot;,&quot;192.168.3.1&quot;,&quot;1000&quot;,&quot;2000&quot;,&quot;3000&quot;,&quot;4000&quot;],
    [&quot;Servicor 4&quot;,&quot;192.168.4.1&quot;,&quot;1000&quot;,&quot;2000&quot;,&quot;3000&quot;,&quot;4000&quot;],
];</pre>
<p>Agora acesse seu &#8220;<em><strong>toctoc.remontti.com.br</strong></em>&#8221; e seja feliz, e não se preocupe em estar decorando portas, basta você clicar em <strong>Toc Toc</strong>.</p>
<h4>Aplicativos para Celular/PC Windows</h4>
<p><em>Dica dos leitores</em><br />
<strong>Para iPhone:</strong> <a href="https://apps.apple.com/us/app/knockond/id333206277" rel="noopener" target="_blank">https://apps.apple.com/us/app/knockond/id333206277</a><br />
<strong>Para Android:</strong> <a href="https://play.google.com/store/apps/details?id=com.xargsgrep.portknocker&#038;hl=pt_BR&#038;gl=US" rel="noopener" target="_blank">https://play.google.com/store/apps/details?id=com.xargsgrep.portknocker&#038;hl=pt_BR&#038;gl=US</a><br />
<strong>Para PC Win.:</strong> <a href="http://gregsowell.com/?p=2020" rel="noopener" target="_blank">http://gregsowell.com/?p=2020</a></p>
<p>Espero que tenha gostado! <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>O post <a href="https://blog.remontti.com.br/5390">Port knocking, aprenda a melhorar as política de segurança de seu firewall Linux e Mikrotik</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/5390/feed</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
	</channel>
</rss>
