O que é encaminhamento de porta e para que é usado?


Respostas:


318

O básico

Para realmente explicar o encaminhamento de porta, primeiro você precisa entender um pouco mais sobre o que o seu roteador faz. O seu provedor de serviços de Internet atribui um endereço IP à sua conexão à Internet. Todos os computadores na Internet precisam de um endereço IP exclusivo, mas você tem vários computadores em sua casa e apenas um endereço. Então, como isso funciona?

Se você sabe o que é e apenas quer saber como fazê-lo : http://portforward.com/ tem um tutorial com capturas de tela para literalmente centenas de roteadores diferentes. A documentação está escondida atrás de uma página de anúncio para a ferramenta automática portconfig. (Basta clicar um pouco e você a encontrará.)

NAT - O que é isso? Porque usamos isso?

O seu roteador doméstico possui uma função chamada Network Address Translation, ou NAT, incorporada. Dentro da sua rede, os computadores possuem endereços como 192.168.1.100. Todos os endereços no intervalo 192.168. * (Ou no intervalo 10. *) são endereços " particulares " ou " reservados " . Esses endereços são oficialmente designados pela IANA para serem usados ​​dentro de redes privadas. Seu roteador atribui automaticamente esse endereço a cada computador conectado via DHCP . Esses endereços mostram como os computadores da sua rede se comunicam com o roteador e entre si.

Seu roteador possui uma interface de rede separada que o conecta à Internet. Essa interface possui um endereço muito diferente, atribuído pelo seu ISP. Este é o único endereço que eu mencionei antes, e seu roteador o usa para se comunicar com outros computadores na Internet. Os computadores dentro da sua rede têm endereços IP privados não roteáveis , o que significa que, se eles enviarem pacotes diretamente para a Internet, os pacotes serão descartados automaticamente (pacotes com endereços privados não podem atravessar a Internet por motivos de estabilidade). Mas o seu roteador tem um endereço roteável . A tradução de endereços de rede, como o nome sugere, traduz entre esses dois tipos de endereços, permitindo que vários computadores dentro da sua rede apareçam na Internet como um computador com um endereço.

Os detalhes

Embora isso possa parecer complicado, é realmente muito simples como o seu roteador faz isso. Sempre que um computador dentro da sua rede deseja se conectar a um computador na Internet, ele envia a solicitação de conexão ao roteador (ele sabe enviá-lo ao roteador porque o parâmetro Default Gateway está definido como o endereço do roteador). O roteador pega a solicitação de conexão (uma "solicitação SYN" em TCP / IP) e altera o endereço de origem (a "resposta a" ou o endereço de retorno) e a altera do IP privado do computador para o IP público do roteador, para que a resposta seja enviada ao roteador. Em seguida, ele anota em um banco de dados (chamado tabela NAT ) que a conexão foi iniciada, para que ela se lembre mais tarde.

Quando a resposta volta do computador remoto (um "SYN-ACK"), o roteador procura em sua tabela NAT e vê que uma conexão com esse host nessa porta foi iniciada anteriormente por um computador privado na sua rede, altera o destino endereço para o endereço privado do computador e encaminha-o para dentro da sua rede. Dessa maneira, os pacotes podem continuar a transitar entre redes, com o roteador alterando os endereços de forma transparente para que funcione. Quando a conexão é encerrada, o roteador apenas a remove da tabela NAT.

Ou pense dessa maneira

Isso pode ser um pouco mais fácil de visualizar com uma metáfora - digamos que você seja um despachante de carga nos EUA trabalhando com clientes chineses. Eles precisam enviar pacotes para muitos clientes nos EUA, mas é mais fácil, por questões alfandegárias / de papelada, enviar pacotes apenas para um local. Portanto, um pacote chega até você de um de seus clientes na China (a rede privada, neste exemplo) com um destino real em algum lugar dos EUA (a Internet). Você altera a etiqueta de endereço na caixa para o endereço (público) dos EUA e o endereço de retorno para o seu próprio endereço público (uma vez que não pode ser devolvido diretamente para a China sem incomodar o cliente) e o entrega ao serviço postal . Se o cliente devolver o produto, ele será enviado a você. Pesquise nos seus registros e veja de que empresa na China veio,

Isso funciona muito bem, mas há um pouco de problema. E se um cliente precisar enviar algo para a empresa, digamos que uma ordem de pagamento seja paga? Ou, digamos que um computador na Internet inicie uma conexão com o roteador (uma solicitação SYN), digamos, para um servidor web que esteja na rede. A carta / pacote possui apenas o endereço público do roteador, portanto, o roteador realmente não sabe para onde enviá-lo! poderia ser destinado a qualquer um dos computadores da rede privada ou a nenhum deles. Você pode ter esse problema ao ligar para o telefone residencial de alguém - quando ele liga para você, não há problema, mas quando você liga para ele, não há como saber quem é o chamado, para que a pessoa errada atenda.

Embora seja fácil o bastante para os humanos resolverem isso, é muito mais complicado para os computadores, porque nem todos os computadores da sua rede conhecem todos os outros computadores.

E finalmente chegamos ao Port Forwarding

O encaminhamento de porta é como solucionamos esse problema: é uma maneira de informar ao seu roteador para qual computador as conexões de entrada de rede devem ser direcionadas. Temos três maneiras diferentes de fazer isso:

  • Faux-DMZ : muitos roteadores têm um recurso chamado DMZ. Isso significa Zona Desmilitarizada, que é um tipo de configuração de segurança de rede. A DMZ nos roteadores domésticos geralmente é chamada de faux-DMZ porque não possui os recursos de uma DMZ real. O que ele faz é o tipo mais simples de manipulação de conexão de entrada: todas as solicitações de conexão de entrada serão enviadas para uma especificada dentro da sua rede. É simples: você digita um endereço IP na configuração do seu roteador e todas as conexões de entrada vão para lá. Porém, isso nem sempre funciona, porque você pode ter vários computadores que precisam aceitar conexões de entrada. Para isso, temos ...
  • Encaminhamento de porta : todas as solicitações de conexão de rede incluem uma "porta". A porta é apenas um número e é parte de como um computador sabe qual é o pacote. A IANA especificou que a porta 80 é usada para HTTP. Isso significa que um pacote recebido que diz a porta número 80 deve ser uma solicitação destinada a um servidor da web. O encaminhamento de porta no seu roteador permite inserir um número de porta (ou possivelmente um intervalo ou combinação de números, dependendo do roteador) e um endereço IP. Todas as conexões de entrada com um número de porta correspondente serão encaminhadas para o computador interno com esse endereço.
  • Encaminhamento de porta UPnP : O encaminhamento UPnP funciona exatamente da mesma maneira que o encaminhamento de porta, mas, em vez de você configurá-lo, o software em um computador dentro da rede define automaticamente o roteador para encaminhar o tráfego em uma determinada porta para ele.

Um exemplo

Vejamos um exemplo de uso. Muitos videogames para vários jogadores (por exemplo, Counter Strike) permitem que você execute um servidor de jogos no seu computador ao qual outras pessoas possam se conectar para jogar com você. Seu computador não conhece todas as pessoas que desejam jogar e, portanto, não pode se conectar a elas. Em vez disso, elas precisam enviar novas solicitações de conexão para o seu computador pela Internet.

Se você não tivesse nada configurado no roteador, ele receberia essas solicitações de conexão, mas não saberia qual computador dentro da rede tinha o servidor de jogos, portanto, apenas os ignoraria (ou, mais especificamente, enviaria de volta um pacote indicando que ele não pode se conectar). Felizmente, você sabe o número da porta que estará nos pedidos de conexão para o servidor do jogo. Portanto, no roteador, você define uma porta para a frente com o número da porta que o servidor do jogo espera (por exemplo, 27015) e o endereço IP do computador com o servidor do jogo (por exemplo, 192.168.1.105).
O roteador saberá encaminhar as solicitações de conexão recebidas para 192.168.1.105 dentro da rede e os computadores externos poderão se conectar.

Outro exemplo seria uma rede local com duas máquinas, onde a segunda com o IP 192.168.1.10 hospeda um site usando o Apache. Portanto, o roteador deve encaminhar solicitações da porta 80 de entrada para esta máquina. Usando o encaminhamento de porta, as duas máquinas podem executar na mesma rede ao mesmo tempo.

Gráfico de exemplo de encaminhamento de porta

Os videogames são talvez o local mais comum em que os usuários comuns encontrarão o encaminhamento de portas, embora a maioria dos jogos modernos use UPnP para que você não precise fazer isso manualmente (em vez disso, é totalmente automático). Você precisará fazer isso sempre que quiser conectar-se diretamente a algo em sua rede (e não através de algum intermediário na Internet). Isso pode incluir a execução do seu próprio servidor da Web ou a conexão via Remote Desktop Protocol a um dos seus computadores.

Uma nota sobre segurança

Uma das coisas boas do NAT é que ele fornece segurança integrada e sem esforço. Muitas pessoas andam na Internet procurando máquinas vulneráveis ​​... e fazem isso tentando abrir conexões com várias portas. Essas conexões são recebidas e, como discutido acima, o roteador as descartará. Isso significa que, em uma configuração NAT, somente o roteador é vulnerável a ataques que envolvem conexões de entrada. Isso é bom, porque o roteador é muito mais simples (e, portanto, menos provável de ser vulnerável) do que um computador executando um sistema operacional completo com muito software. Lembre-se de que, ao fazer a DMZ de um computador dentro da sua rede (configurando-o como destino da DMZ), você perde essa camada de segurança para esse computador: agora ele está completamente aberto às conexões de entrada da Internet, então você precisa protegê-lo como se estivesse diretamente conectado. Obviamente, sempre que você encaminha uma porta, o computador no lado receptor fica vulnerável nessa porta específica. Portanto, certifique-se de executar um software atualizado e bem configurado.


2
Você o mencionou brevemente, mas pode expor a importância dos usos do estilo DMZ do encaminhamento de porta. Não consigo pensar em uma única instância em que seria uma boa ideia, em um ambiente de produção, expor algo como um servidor sql (ou o que seja) ao mundo exterior. O encaminhamento de porta pode possibilitar o acesso a recursos protegidos sem comprometer seriamente a segurança.
Brian Vandenberg

11
Um detalhe não expandido na seção NAT é o fato de que, se os computadores da sua rede usarem DHCP para obter seus endereços IP privados não roteáveis ​​internos, é possível que o atribuído a eles varie e, se isso acontecer, o encaminhamento de porta será ficar bagunçado. É melhor evitar isso configurando o endereçamento de rede de cada computador manualmente. O portforward.com enfatiza a importância disso e possui um guia que descreve como configurar um endereço IP estático em um sistema, no entanto, eles não mencionam a necessidade de também configurar o DHCP do roteador para evitar esses endereços NAT agora reservados.
martineau

2
@jcrawfordor, Oi, você se importa de explicar como exatamente o UPnP é totalmente automático? O que é o UPnP e como ele funciona?
Pacerier 26/11/16

11
A @martineau reservar endereços DHCP é uma boa maneira de fazer isso. Alguns roteadores podem ser encaminhados para clientes específicos, não para endereços, o que é ainda mais preferível.
Baldrickk

2
A parte da resposta que diz: "A porta é apenas um número e é parte de como um computador sabe qual é o pacote". é enganoso. Fixar um número de porta para um aplicativo é uma convenção, não é um fator para determinar o tipo de pacote. Na melhor das hipóteses um pacote destinado a porta 80 pode ser imaginado para ser HTTP, nada mais, é inteiramente dependerá (na camada de aplicação) A aplicação escuta na porta 80.
codeman48
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.