Acessando serviços locais externamente com ajuda do NAT

Um método muito utilizado para acessar externamente serviços locais desde um simples monitoramento de câmeras ate um servidor ftp/web u mesmo acesso remoto é o direcionamento de portas via NAT (Network Address Translation).
Com o surgimento das redes privadas com internet compartilhada, surgiu o problema de como os computadores pertencentes a esta rede privada poderiam receber as respostas aos seus pedidos feitos para fora da rede.
Por se tratar de uma rede privada, os números de IP interno da rede (como 10.0.0.0/8, 172.16.0.0/16 e 192.168.0.0/24) nunca poderiam ser passados para a Internet pois não são roteados nela e o computador que recebesse um pedido com um desses números não saberia para onde enviar a resposta. Sendo assim, os pedidos teriam de ser gerados com um IP global do router. Mas quando a resposta chegasse ao router, seria preciso saber a qual dos computadores presentes na LAN pertencia aquela resposta.
A solução encontrada foi fazer um mapeamento baseado no IP interno e na porta local do computador. Com esses dois dados o NAT gera um número de 16 bits usando a tabela hash, este número é então escrito no campo da porta de origem.
O pacote enviado para fora leva o IP global do router e na porta de origem o número gerado pelo NAT. Desta forma o computador que receber o pedido sabe para onde tem de enviar a resposta. Quando o router recebe a resposta faz a operação inversa, procurando na sua tabela uma entrada que corresponda aos bits do campo da porta. Ao encontrar a entrada, é feito o direcionamento para o computador correto dentro da rede privada.
Regras NAT podem ser criadas em IP > Firewall > NAT
Vou deixar aqui um exemplo de NAT para executar dentro do terminal e criar outras com base nesta
/ip firewall nat
add action=dst-nat chain=dstnat comment="Regra exemplo para auxiliar criar outras" disabled=yes dst-port=12345 protocol=tcp to-addresses=192.168.0.1 to-ports=23

Esta regra vai direcionar todo conteúdo que chegar na porta 12345 para o endereço local 192.168.0.1 na porta 23 simplesmente, a unica recomendação neste momento é para se atentar a numeração de portas para direcionar las tem que estar entre 0-65535 e preferencialmente não ser uma pota classificada especialmente abaixo de 1024.

Mais informações em: https://wiki.mikrotik.com/wiki/Manual:IP/Firewall/NAT
Principal fonte de pesquisa: https://pt.wikipedia.org/wiki/Network_address_translation

Comentários

Postagens mais visitadas deste blog

Regras prontas para o RouterOS Firewal part 1

Criando Certificado RSA e Incorporando na OVPN criada

Instalando no-ip no CentOS 6 "Dynamic DNS"