Sabe o que é port forwarding e qual a sua utilização?
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.
Este artigo tem mais de um ano
Bom artigo. Venham mais destes!
Por acaso uso em casa…
tenho um tablet a servir como webserver,, um pc com um cliente de torrent e um tablet a servir de camera ip. 😀
Simples e elucidativo. Na questão dos IP publico e privado podia ter sido usado o típico exemplo da morada única de um prédio e da porta de cada apartamento.
Tínhamos esse exemplo para dar, mas nem faz muito sentido. Qual a semelhança entre a porta de um apartamento e um IP privado?
Toda, por isso é que esse é um exemplo tipicamente usado e vocês o tinham “para dar”.
O carteiro traz os “pacotes” segundo o endereço público (prédio), depois ao chegar ao “router”, é feita a distribuição (neste caso por ele) de acordo com o endereço privado (do apartamento). Tal como nos IPs privados, há vários apartamentos com o mesmo “endereço”, em prédios diferentes, não no mesmo e sempre um endereço público único (que neste caso “nunca” muda).
Parece-me mais um exemplo para aplicar aos portos. Neste caso não há portforwarding…há sim NAT (talvez PAT)
Simplificando: Com PortForwarding o pacote é enviado para o endereço público que depois, baseado no PORTO, redirecciona para um IP Privado.
Muito bom artigo. Obrigado!
Excelente artigo, aproveito o mesmo para colocar uma questão.
Já alguém conseguiu abrir portas num router da NOS?
Já tentei em vários routers diferentes das NOS e sempre que vou testar indica sempre ter a porta fechada.
Susana sim já consegui vários serviços (portas) na nos.
Bom artigo, mas o port forwarding não serve apenas para routers e redes públicas. Por exemplo dentro de uma rede privada se quisermos aceder a uma máquina, mas essa máquina só aceita pedidos de uma máquina específica (máquina de salto), podemos criar uma ligação SSH para essa máquina de salto e depois criar um túnel (port forward) dessa máquina de salto para a tal máquina que queremos aceder e não temos acesso.
Desta forma temos acesso pela máquina de salto, bastando aceder ao porto local e a máquina de salto encarrega-se de transferir o tráfego para a máquina de destino.
Por exemplo, com um túnel SSH criado, podemos aceder a um porto remoto desta forma: http://127.0.0.1:4444 e todo o tráfego será redirecionado para a máquina de destino para o porto remoto configurado no túnel.
No windows isto pode ser facilmente configurado utilizando o PuTTY.
Bem haja e venham mais artigos destes… 🙂
Agora para ficar bem completo só falta mesmo a criação de uma VPN . Artigos?