The Basics
Para realmente explicar o encaminhamento de portas, você precisa primeiro entender um pouco mais sobre o que o seu roteador faz. O seu fornecedor de serviços de Internet atribui um endereço IP à sua ligação à Internet. Todos os computadores na Internet precisam de um endereço IP único, mas você tem vários computadores em sua casa e apenas um endereço. Então como é que isto funciona?
Se sabe o que é e apenas quer saber como o fazer : http://portforward.com/ tem um how-to com screenshots para literalmente centenas de routers diferentes. A documentação está lá escondida atrás de uma página ad-page para a sua ferramenta automática portconfig. (Basta clicar um pouco e encontrará.)
NAT - O que é? Porque o utilizamos?
O seu router doméstico tem uma função chamada Network Address Translation, ou NAT, integrada. Dentro da sua rede, os computadores têm endereços como 192.168.1.100. Todos os endereços no intervalo 192.168.* (ou no intervalo 10.*) são _ privado “_ ou _ reservado ”_ endereços. Estes endereços são oficialmente atribuídos pela IANA para serem utilizados dentro das redes privadas. O seu router atribui automaticamente esse endereço a cada computador ligado através de DHCP . Estes endereços são a forma como os computadores na sua rede comunicam com o router e entre si.
O seu router tem uma interface de rede separada que o liga à Internet. Esta interface tem um endereço muito diferente que é atribuído pelo seu ISP. Este é o único endereço que mencionei anteriormente, e o seu router utiliza-o para comunicar com outros computadores na Internet. Os computadores dentro da sua rede têm endereços IP privados não encaminháveis, o que significa que se enviarem pacotes directamente para a Internet os pacotes serão automaticamente eliminados (os pacotes com endereços privados não podem atravessar a Internet por razões de estabilidade). Mas o seu router tem um endereço não-direccionável. Network Address Translation, como o seu nome sugere, translates entre estes dois tipos de endereços, permitindo que os múltiplos computadores dentro da sua rede apareçam na Internet como um computador com um endereço.
The Details
Embora isto possa parecer complicado, na verdade é bastante simples a forma como o seu router o faz. Sempre que um computador dentro da sua rede quer ligar-se a um computador na Internet, envia o pedido de ligação para o router (sabe enviá-lo para o router porque o parâmetro Default Gateway está definido para o endereço do router). O router recebe então esse pedido de ligação (um “pedido SYN” no TCP/IP) e altera o endereço de origem (o endereço “reply-to” ou de retorno) e altera-o do IP privado do computador para o IP público do router, para que a resposta seja enviada para o router. Depois toma nota numa base de dados (chamada tabela NAT) que a ligação foi iniciada, para que se lembre dela mais tarde.
Quando a resposta regressa do computador remoto (um “SYN-ACK”), o router olha para a sua tabela NAT e vê que uma ligação a esse host nessa porta foi previamente iniciada por um computador privado na sua rede, muda o endereço de destino para o endereço privado do computador, e reencaminha-o para dentro da sua rede. Desta forma, os pacotes podem continuar a transitar entre redes, com o router a mudar os endereços de forma transparente, para que funcione. Quando a ligação é terminada, o router apenas o remove da tabela NAT.
Ou pense desta forma
Isto pode ser um pouco mais fácil de visualizar com uma metáfora - digamos que é um transitário nos EUA que trabalha com clientes chineses. Eles precisam de enviar encomendas para muitos clientes nos EUA, mas é mais fácil para as alfândegas/documentos enviar encomendas apenas para um local. Assim, uma encomenda chega até si de um dos seus clientes na China (a rede privada, neste exemplo) com um destino real algures nos EUA (a Internet). Altera a etiqueta de endereço na caixa para o endereço (público) dos EUA e muda o endereço de retorno para o seu próprio endereço público (uma vez que não pode ser devolvido directamente para a China sem incomodar o cliente) e entrega-o ao serviço postal. Se o cliente devolver o produto, ele vem até si. Procure-o nos seus registos e veja de que empresa na China ele veio, e mude o destino para essa empresa (o seu endereço privado) e o endereço de devolução para o seu endereço privado, para que eles possam devolver um substituto através de si.
Isto funciona muito bem, mas há um pequeno problema. E se um cliente precisar de enviar algo para a empresa, digamos uma ordem de pagamento em pagamento de algo? Ou, digamos que um computador na internet inicia uma ligação com o router (um pedido SYN), digamos a um servidor web que está na rede. A carta/pacote só tem o endereço público do router, por isso o router não sabe para onde o enviar! pode ser destinado a qualquer um dos computadores da rede privada rede, ou para nenhuma delas. Pode ter tido este problema quando liga para o telefone de casa de alguém - quando lhe ligam, não há problema, mas quando lhe liga não há forma de saber para quem é a chamada, por isso a pessoa errada pode responder.
E, finalmente, chegamos ao Port Forwarding
Port Forwarding é como resolvemos este problema: é uma forma de dizer ao seu router para que computador dentro da rede as ligações de entrada devem ser direccionadas. Temos três formas diferentes de o fazer:
- Faux-DMZ : muitos routers têm uma funcionalidade chamada DMZ. Isto significa “Demilitarized Zone”, que é uma espécie de configuração de segurança de rede. A DMZ nos routers domésticos é frequentemente referida como DMZ falsa porque lhe faltam as características de uma DMZ real. O que ela faz é o tipo mais simples de tratamento de ligações de entrada: todos os pedidos de ligações de entrada serão enviados para um especificado dentro da sua rede. É muito simples - você digita um endereço IP na configuração do seu router, e todas as ligações de entrada vão para lá. No entanto, isto nem sempre funciona, porque pode ter vários computadores que precisam de aceitar ligações de entrada. Para isso, nós temos…
- Reencaminhamento de portas : Todos os pedidos de ligação à rede incluem uma “porta”. A porta é apenas um número, e faz parte de como um computador sabe o que é o pacote. A IANA especificou que a porta 80 é utilizada para HTTP. Isto significa que um pacote de entrada que diz porta número 80 deve ser um pedido destinado a um servidor web. O reencaminhamento de portas no seu router permite-lhe introduzir um número de porta (ou possivelmente um intervalo ou combinação de números, dependendo do router), e um endereço IP. Todas as ligações de entrada com um número de porta correspondente serão encaminhadas para o computador interno com esse endereço.
- UPnP porta de encaminhamento : O reencaminhamento UPnP funciona exactamente da mesma forma que o reencaminhamento de portas, mas em vez de o configurar, o software num computador dentro da rede define automaticamente o router para reencaminhar o tráfego numa dada porta para ele.
Um exemplo
Vejamos um exemplo de utilização. Muitos jogos de vídeo multiplayer (como exemplo, Counter Strike) permitem-lhe correr um servidor de jogos no seu computador ao qual outras pessoas se podem ligar para jogar consigo. O seu computador não conhece todas as pessoas que querem jogar, pelo que não pode ligar-se a elas - em vez disso, têm de enviar novos pedidos de ligação ao seu computador a partir da Internet.
Se não tivesse nada configurado no router, receberia estes pedidos de ligação mas não saberia qual o computador dentro da rede que tinha o servidor de jogos, pelo que os ignoraria (ou, mais especificamente, enviaria de volta um pacote indicando que não consegue ligar-se). Felizmente, sabe o número de porta que estará nos pedidos de ligação para o servidor de jogos. Assim, no router, define-se uma porta com o número de porta que o servidor de jogos espera (por exemplo, 27015) e o endereço IP do computador com o servidor de jogos (por exemplo, 192.168.1.105).
O router saberá encaminhar os pedidos de ligação recebidos para 192.168.1.105 dentro da rede, e os computadores no exterior serão capazes de se ligar para dentro.
Outro exemplo seria uma rede local com duas máquinas, onde a segunda com o IP 192.168.1.10 aloja um website utilizando o Apache. Por conseguinte, o router deverá encaminhar para esta máquina 80 pedidos de entrada. Utilizando o reencaminhamento de portas, ambas as máquinas podem funcionar na mesma rede ao mesmo tempo.
Os videojogos são talvez o local mais comum em que os utilizadores diários se irão deparar com o reencaminhamento de portas, embora a maioria dos jogos modernos utilize o UPnP para que não tenha de o fazer manualmente (em vez disso, é totalmente automático). No entanto, terá de o fazer sempre que quiser poder ligar-se directamente a algo na sua rede (em vez de o fazer através de algum intermediário na Internet). Isto pode incluir correr o seu próprio servidor web ou ligar-se via Remote Desktop Protocol a um dos seus computadores.
Uma nota sobre segurança
Uma das coisas boas sobre NAT é que ele fornece alguma segurança incorporada e sem esforço. Muitas pessoas vagueiam pela Internet à procura de máquinas que são vulneráveis… e fazem-no tentando abrir ligações com várias portas. Estas são ligações de entrada, pelo que, tal como discutido anteriormente, o router irá abandoná-las. Isto significa que, numa configuração NAT, apenas o próprio router é vulnerável a ataques que envolvam ligações de entrada. Isto é positivo, porque o encaminhador é muito mais simples (e, portanto, menos susceptível de ser vulnerável) do que um computador com um sistema operativo completo com muito software. Deve ter em mente, então, que ao fazer uma DMZ a um computador dentro da sua rede (definindo-o como o destino DMZ) perde essa camada de segurança para esse computador: eleestá agora completamente aberta a ligações de entrada a partir da Internet, pelo que necessita de a proteger como se estivesse directamente ligada. Claro que, sempre que se encaminha uma porta, o computador na extremidade receptora fica vulnerável nessa porta específica. Por isso, certifique-se de que executa software actualizado e que está bem configurado.