Questão O que é o encaminhamento de porta e para que é usado?


Há muitas perguntas sobre 'encaminhamento de porta' mas não parece haver um que afirme claramente o que é e para que é usado. Assim:

  1. O que é o encaminhamento de porta?

  2. Para que é usado e por que eu precisaria disso?


191


origem


Eu acho que isso é bom o suficiente: portforward.com/help/portforwarding.htm - Koray Tugay


Respostas:


O básico

Para realmente explicar o encaminhamento de porta, primeiro você precisa entender um pouco mais sobre o que roteador faz. Seu provedor de serviços de internet atribui 1 Endereço IP para sua conexão com a 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 só quer saber como fazer isso: http://portforward.com/ tem um how-to com screenshots para literalmente centenas de diferentes roteadores. A documentação está escondida atrás de uma página de anúncios para sua ferramenta portconfig automática. (Basta clicar um pouco e você vai encontrá-lo.)

NAT - O que é isso? Porque usamos isso?

Seu roteador doméstico tem uma função chamada Network Address Translation ou NAT, embutida. Dentro de 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. Esses endereços são oficialmente atribuídos pela IANA para serem usados ​​dentro de redes privadas. Seu roteador atribui automaticamente tal endereço a cada computador conectado via DHCP. Esses endereços são como os computadores da sua rede se comunicam com o roteador e entre si.

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

Os detalhes

Embora isso possa parecer complicado, na verdade é bem simples como o seu roteador faz isso. Toda vez que um computador dentro de 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 Gateway Padrão parâmetro está definido para o endereço do roteador). O roteador, em seguida, recebe essa solicitação de conexão (uma "solicitação SYN" no TCP / IP) e altera o endereço de origem (o "responder para" ou o endereço de retorno) e o altera do IP privado do computador para o IP público do roteador, para que a resposta seja enviada ao roteador. Em seguida, toma nota em um banco de dados (chamado de Tabela NAT) que a conexão foi iniciada, para que 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 àquele host naquela porta foi iniciada anteriormente por um computador particular em sua rede, altera o destino endereço para o endereço privado do computador e encaminha-o para dentro de sua rede. Dessa forma, os pacotes podem continuar transitando entre as redes, com o roteador mudando os endereços de forma transparente para que funcione. Quando a conexão é finalizada, 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ê é um agente de carga nos EUA que trabalha com clientes chineses. Eles precisam enviar pacotes para muitos clientes nos EUA, mas é mais fácil, por motivos de alfândega / papelada, enviar pacotes apenas para um único local. Assim, um pacote chega até você de um de seus clientes na China (a rede privada, neste exemplo) com um destino real em algum lugar nos EUA (a internet). Você altera a etiqueta de endereço na caixa para o endereço dos EUA (público) e altera o endereço de retorno para seu próprio endereço público (já 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 chega até você. Você procura em seus registros e vê de que empresa vem a China e muda o destino para essa empresa (seu endereço particular) e o endereço de retorno para seu endereço particular, para que eles possam enviar um substituto através de você.

Isso funciona muito bem, mas há um pequeno problema. E se um cliente precisar enviar algo para a empresa, digamos uma ordem de pagamento em pagamento de algo? Ou digamos que um computador na Internet inicie uma conexão com o roteador (uma solicitação SYN), digamos, para um servidor da Web que esteja na rede. A letra / pacote só tem o endereço público do roteador, então o roteador na verdade 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 tido esse problema quando ligou para o telefone de casa de alguém - quando ligam para você, não é problema, mas quando você liga para eles, não há como eles saberem quem é a chamada, então a pessoa errada pode responder.

Embora seja fácil o suficiente 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

Port Forwarding é como resolvemos esse problema: é uma maneira de informar ao seu roteador em qual computador dentro da rede as conexões de entrada devem ser direcionadas. Nós temos três maneiras diferentes de fazer isso:

  • Faux-DMZ: muitos roteadores possuem 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 tratamento de conexões de entrada: todas as solicitações de conexão de entrada serão enviadas para uma especificada dentro de sua rede. É muito simples - você digita um endereço IP na configuração do seu roteador e todas as conexões de entrada vão para lá. Isso nem sempre funciona, porque você pode ter vários computadores que precisam aceitar conexões de entrada. Para isso, nós temos ...
  • Encaminhamento de porta: todas as solicitações de conexão de rede incluem uma "porta". A porta é apenas um número e faz parte de como um computador sabe qual é o pacote. A IANA especificou que a porta 80 é usada para HTTP. Isso significa que um pacote de entrada que diz o número da porta 80 deve ser um pedido destinado a um servidor da web. O encaminhamento de porta em seu roteador permite que você insira 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.
  • Porta UPnP para frente: o encaminhamento UPnP funciona exatamente da mesma forma 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.


Um exemplo

Vamos ver um exemplo de uso. Muitos videogames multiplayer (como o Counter Strike, por exemplo) permitem que você execute um servidor de jogos no computador que outras pessoas possam conectar para jogar com você. Seu computador não conhece todas as pessoas que querem jogar, por isso não pode se conectar a elas. Em vez disso, elas precisam enviar novas solicitações de conexão ao 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 do jogo, por isso simplesmente as 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á em solicitações 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 de entrada 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 de entrada de porta 80 para esta máquina. Usando o encaminhamento de porta, ambas as máquinas podem rodar na mesma rede ao mesmo tempo.

Port Forwarding Example

Os videogames são talvez o lugar mais comum que os usuários do dia-a-dia encontram no encaminhamento de porta, embora a maioria dos jogos modernos use o 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 (em vez de usar algum intermediário na Internet). Isso pode incluir a execução de seu próprio servidor da Web ou a conexão via protocolo de área de trabalho remota a um dos seus computadores.

Uma nota sobre segurança

Uma das boas coisas do NAT é que ele oferece segurança incorporada sem esforço. Muitas pessoas vagam pela internet procurando máquinas vulneráveis ​​... e fazem isso tentando abrir conexões com várias portas. Estas são conexões de entrada, então, como discutido acima, o roteador irá soltá-las. Isso significa que, em uma configuração NAT, somente o próprio roteador é vulnerável a ataques envolvendo conexões de entrada. Isso é bom, porque o roteador é muito mais simples (e, portanto, menos vulnerável) do que um computador executando um sistema operacional completo com muitos softwares. Você deve ter em mente, então, que ao desmembrar um computador dentro de sua rede (configurando-o como destino DMZ), você perde essa camada de segurança para aquele computador: agora ele está completamente aberto para conexões de entrada da Internet, então você precisa prenda-o como se estivesse conectado diretamente. Naturalmente, sempre que você encaminha uma porta, o computador na extremidade receptora fica vulnerável nessa porta específica. Portanto, certifique-se de executar um software atualizado e bem configurado.


282



+1. Muito obrigado por um ótimo curso de curta duração. Saudações, - Xavierjazz
Agora vamos adicionar alguns gráficos! - slhck
Bons gráficos. Bom trabalho, slhck. - jcrawfordor
Você mencionou resumidamente, mas talvez queira expor a importância dos usos de encaminhamento de porta no estilo DMZ. Não consigo pensar em uma única instância em que seria uma boa idéia, em um ambiente de produção, expor algo como um servidor sql (ou qualquer outro) para o mundo externo. O encaminhamento de portas pode permitir obter recursos protegidos sem comprometer seriamente a segurança. - Brian Vandenberg
Um detalhe não expandido na seção NAT é o fato de que, se os computadores em sua rede usam 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 ficar confuso. É melhor evitar isso configurando o endereçamento de rede de cada computador manualmente. O portforward.com enfatiza a importância disso e tem um guia descrevendo 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