Alguma vez ouviu falar sobre port forwarding ou encaminhamento baseado em portos lógicos, aplicado em configurações para acesso remoto? Pois bem, pode parecer complicado, mas não é.
Neste artigo explicaremos o que é e qual a sua utilidade, bem como alguns conceitos como endereços IP, NAT, portos de rede, para que compreenda melhor o assunto.
Numa primeira introdução, port forwarding significa permitir que o tráfego de entrada, proveniente da Internet, chegue a uma determinada aplicação ou serviço em execução, instalada num dado dispositivo, seja ele um tablet ou computador. A sua utilização é bastante comum em aplicações de acesso remoto, câmaras IP, etc.
Endereços IPv4
Um endereço IPv4, composto por 4 octetos, cada um formado por 8 bits (p/exemplo 192.168.1.10), é utilizado para identificar dispositivos numa rede. Existem dois tipos de endereços IP, os públicos, no caso de uma ligação doméstica são atribuídos pela operadora de telecomunicações, acessíveis publicamente através da Internet, e os privados, usados em redes internas, como por exemplo, na rede doméstica e outro tipo de LANs.
Todos os dispositivos, sem exceção, precisam de um endereço IP exclusivo para enviar e receber dados. Para soar mais simples, pense no IP público como o número externo de uma central de comunicações telefónicas e os endereços privados são simplesmente as extensões internas.
Conforme ilustra a imagem, do lado esquerdo encontra-se a rede pública, sendo esse o IP do utilizado do exterior quando se pretende aceder a um dispositivo da rede privada, disposta do lado direito, cujos IP são gerados pelo servidor DHCP, integrado no router, ou então configurados manualmente em cada um dos equipamentos.
Agora vejamos o seguinte, existe apenas um IP público, mas podem existir dezenas de IPs privados em simultâneo. Se ao acaso existirem duas pessoas, por exemplo, a pesquisar no Google, como é que que o tráfego é entregue à pessoa correta, sendo o IP de saída o mesmo? NAT (Network Address Translation) é a resposta.
Network Address Translation (NAT)
Integrado no router, o NAT funciona como um controlador que direciona o fluxo de tráfego da rede, permitindo que um único endereço IP público seja partilhado (no caso de se usar PAT) por todos os dispositivos da rede privada.
Por “culpa” da tradução de endereços de rede, esta é a forma utilizada para traduzir endereços IP públicos e privados, de modo a que todos os utilizadores da rede interna possam usufruir da Internet ao mesmo tempo, sem que o tráfego acabe no dispositivo errado.
Do ponto de vista da Internet, tudo isto é visto como se tratasse apenas de um único dispositivo. E se por ventura quisesse aceder às suas câmaras de segurança durante as férias, ou ao seu servidor de ficheiros, instalado no seu desktop? É aqui que o port forwarding entra em ação, mas antes disso, é necessário entender o que é um porto de rede.
Porto lógico
Todos os pedidos efetuados através da Internet incluem um porto. Este, é apenas um número utilizado para facilitar o direccionamento do tráfego de rede. Quando um pacote de dados, proveniente da Internet, é dirigido ao servidor de um site, o número do porto contido no pacote de dados é analisado, e o tráfego é direcionado para o destino correto.
Cada porto corresponde a um serviço diferente, existindo no total cerca de 65.536 portos TCP e 65.536 UDP disponíveis para uso. Os portos TCP compreendidos entre 0 e 1023 encontram-se reservados, sendo parte de um padrão pré-definido com o objetivo de auxiliar as comunicações globais da Internet. Além desses, de 1024 a 49151 são portos registadas, e de 49152 a 65535, dinâmicos.
A título exemplificativo, o porto padrão utilizado pelos servidores web é o 80. Ora, ao realizar um pedido ao endereço http://exemplo.com, o servidor sabe que este porto é utilizado para fornecer documentos através do protocolo HTTP.
Port Forwarding
Depois de entendido o que são endereços IP, NAT, e portos, eis que finalmente entramos no assunto de encaminhamento de portos.
O port forwarding é, basicamente, configurar um router para que um determinado serviço, por exemplo SFTP, em execução num desktop na rede interna, seja acessível por outros dispositivos através da Internet.
Vamos supor que é um utilizador, de momento em viagem no estrangeiro, e pretende aceder ao seu servidor de SFTP. No seu computador, tem instalado um cliente, por exemplo WinSCP, adequado para trabalhar com este protocolo. Utilizando-o, contacta o servidor remoto através do IP público que lhe foi conferido pela operadora de telecomunicações (ISP), adicionando ao endereço o respetivo porto que este serviço utiliza, o 22.
Assim que o pedido SFTP://131.249.50.1:22 chega ao router, este, encaminha-o para o respetivo servidor, à escuta no porto 22. Em poucas palavras, estamos a dizer ao router, encaminha todos os pedidos SFTP (22) provenientes da rede pública para o servidor com o IP privado 192.168.1.3. A este “mecanismo” é dado o nome de port-forwading.
Para perceber como é configurado, veja este tutorial onde é explicado como instalar e configurar um servidor de SFTP para acesso remoto.
Firewall
Hoje em dia, grande parte dos routers possuem uma Firewall, para que nenhum tráfego externo entre na rede local, proporcionando maior segurança à rede privada. Isto significa que, se por ventura existir uma tentativa de ligação à rede doméstica, e não for usado um porto válido, a ligação será automaticamente descartada.
Ainda assim, é aconselhável uma firewall interna, “instalada” por exemplo, ou entre o router e o servidor, ou no servidor. Neste caso, e pegando no exemplo deste artigo, é necessário criar uma regra na firewall que permita a entrada de tráfego através do porto 22, caso contrário, mesmo que tenha tudo configurado no router, o pedido vai bater na firewall, e não conseguirá alcançar o servidor.
Uma vez conhecidos os conceitos de endereço IP, NAT, porto e port forwarding, e se por ventura tiver que configurar o acesso remoto a um dispositivo e/ou aplicação, tudo será mais simples, agora que entende como tudo funciona e a razão da sua utilização.