NAT e deturpação de pacotes com o iptables

Na primeira parte deste artigo, vamos aprender a executar Network Address Translation (NAT) e Port Address Translation (PAT), também conhecido como Network Address Translation e Porta (NAPT), com o iptables. Depois disso, vamos aprender o que desconfiguração pacote é e como mangle pacotes.

Uma Breve Introdução ao NAT e PAT (NAPT)

  

De acordo com o modo TCP / IP funciona, para que os hosts para se comunicar na Internet, cada um deve ter um endereço IP único.
No entanto, devido à escassez de endereços IP públicos disponíveis, é necessário utilizar um endereço IP para os hosts que usam NAT.
Network Address Translation é uma maneira de traduzir um endereço IP em outro. Isto implica um roteador NAT (Linux no nosso caso) que reescreve a origem ou o destino de um dispositivo de trás do router NAT.
Há muitas pequenas caixas chamados roteadores SOHO ou routers NAT que pode ser usado para executar a NAT para uma pequena rede local privada. Eles são baratos e geralmente você só pode ligá-los e tudo funciona. Se você já usou um, você verá que há muitas coisas que você pode fazer com o Linux.


SNAT e Masquerade

SNAT é um apelido para Source Network Address Translation. É assim chamado porque apenas o endereço IP de origem é traduzida. A caixa NAT irá substituir o endereço de origem no cabeçalho IP de todos os pacotes enviados por uma caixa atrás de NAT para um ou vários endereços IP.
Um ou muitos anfitriões podem ser traduzidos em um ou vários endereços IP público somente quando estiver acessando a Internet, mas quando uma solicitação da internet é feita para o endereço IP público (ES), o pedido não atingirá nenhum dos hospedeiros (se o Endereço traduzido é o roteador, ele vai chegar ao roteador, caso contrário os pacotes serão descartados). Esta é uma boa proteção para redes locais e guarda uma grande quantidade de endereços IP públicos.
Se um ou vários anfitriões por trás do NAT são convertidos em um único endereço IP público, o processo é chamado SNAT estático. Se eles são traduzidos em vários endereços IP públicos (geralmente um intervalo de endereços IP), o processo é chamado SNAT dinâmica. No caso de SNAT dinâmico, o roteador NAT escolhe um endereço IP de um intervalo; assim um computador que acessa a Internet é muito provável que seja traduzida em diferentes endereços IP para cada conexão ele inicia. Para SNAT dinâmico, iptables escolhe o menos usado endereço IP do intervalo especificado. Se muitos endereços IP do intervalo não são utilizados em todos, iptables escolhe aleatoriamente um desses.
Masquerade ou MASQ funciona exatamente como faz SNAT estático, exceto que você não pode especificar o endereço IP público a ser utilizado. Ele irá automaticamente usar o endereço IP da interface de saída do roteador NAT.

SNAT foi introduzido com o iptables, e não existe no netfilter para kernels inferior a 2,4. No entanto, Masquerade foi mantido em iptables, simplesmente porque com interfaces como adaptadores PPP que recebem um endereço IP atribuído dinamicamente, é mais simples fazer um MASQ ao invés de encontrar o endereço IP atribuído dinamicamente e fazer SNAT.

 

Se o computador for SNATed ou Masqueraded, o roteador Linux irá alterar o endereço IP de origem no cabeçalho do pacote de 192.168.1.3 para 1.1.1.1 e passar o pacote para 2.2.2.2 acordo com o processo de roteamento. Informações sobre essa conexão é armazenado em / proc ip_conntrack / net /.
Quando 2.2.2.2 respostas, o pacote IP que chega no roteador Linux terá endereço IP de origem 2.2.2.2 e destino endereço IP 1.1.1.1. Pesquisas Linux para obter informações sobre este pacote em / proc ip_conntrack / net /, e encontra um jogo contra a informações armazenadas na etapa anterior. Neste ponto, o Linux irá alterar o endereço IP de destino no cabeçalho do pacote para 192.168.1.3 e passará o pacote IP para o computador NATed de acordo com o processo de roteamento.

DNAT

Destino Rede DNAT ou mapas Address Translations um endereço IP público a um endereço IP privado. DNAT é o inverso do SNAT, assim, se você SNAT para traduzir um endereço IP privado para um endereço IP público e DNAT para traduzir o mesmo endereço IP público para o mesmo endereço IP privado, o resultado será NAT completa.
DNAT geralmente é usado quando você tem servidores atrás de NAT, para o mesmo endereço IP público é mapeado para endereços IP privado diferente dependendo portas ou protocolos. Este processo também é chamado encaminhamento de porta.
Normalmente, 2.2.2.2 não pode iniciar uma comunicação para 192.168.1.3 porque este é um endereço IP privado e não são roteados na Internet.
2.2.2.2 tenta iniciar uma conexão com 1.1.1.1. Se uma regra DNAT é compensada por este pacote, o roteador Linux irá alterar o endereço IP de destino no cabeçalho do pacote IP de 1.1.1.1 para 192.168.1.3, passar o pacote para 192.168.1.3, e manter uma faixa de esta ligação.
Quando 192.168.1.3 respostas, o pacote é encontrado na tabela conntrack do roteador Linux para que ele "sabe" que o pacote pertence à conexão iniciada por 2.2.2.2 a 1.1.1.1. O roteador Linux irá alterar o endereço IP de origem no cabeçalho do pacote IP de 192.168.1.3 para 1.1.1.1.

Se for configurado DNAT, SNAT, mas não é, 2.2.2.2 será capaz de estabelecer conexões para 192.168.1.3 usando 1.1.1.1 como o endereço IP de destino, mas 192.168.1.3 não será capaz de iniciar ligações a 2.2.2.2.

 

Em outras palavras, o NAT é completa SNAT e DNAT como apresentado anteriormente.
Esta é a função que SOHO routers chamada "DMZ", como explicado anteriormente. A razão que eles chamam esta função "DMZ" é que os pacotes IP que não pertence a uma conexão iniciada por qualquer host da rede 192.168.1.0/24 privada será encaminhada para 192.168.1.3, e assim este alojamento não tem a proteção fornecida pelo fato de que ele tem um endereço IP privado.

No caso aqui apresentado, 1.1.1.1 pode ser o endereço IP do roteador NAT ou ele pode apenas ser encaminhado para ele. Se ele é o endereço IP do roteador público (como nos diagramas anteriores), o roteador NAT não pode ser acessado a partir da Internet (por exemplo, você não pode SSH para ele), porque ele irá transmitir todos os pacotes de 192.168.1.3.

PAT ou NAPT

PAT representa Port Address Translation, e é também chamado de NAPT, que significa Network Address Translation Port. A idéia por trás do PAT é traduzir não apenas o endereço IP, mas também o número da porta para hosts específicos e portas.
O servidor web da empresa está por trás de NAT e tem o endereço IP 192.168.1.100. Tendo apenas um endereço IP público, http://www. . com é configurado para responder a 1.1.1.1. Para o servidor web para ser acessado a partir da Internet, temos que reescrever o endereço 1.1.1.1 a 192.168.1.100 sempre que um pedido vem em nosso roteador NAT com o porto de destino 80.
Mais do que isso, temos um servidor de intranet da empresa com o endereço IP 192.168.1.200, executando um servidor web na porta 80. Ao ser no escritório, os funcionários tem que digitar http://192.168.1.200 em seu web browser e que podem fazer logon no servidor web da intranet.
Se queremos permitir aos usuários fazer logon no servidor de intranet quando eles estão fora do escritório, PAT é a resposta. Com o PAT, podemos escolher uma porta que não abriu no roteador NAT (por exemplo, 2143), e sempre que um pedido vem da Internet com o endereço IP de destino 217.156.123.3 ea porta de destino 2143, o roteador NAT reescreve o endereço IP de destino a 192.168.1.200 ea porta de destino 2143-80.
Dessa forma, a partir da Internet quando um usuário digita:

  1. http://www. . com / o pedido é encaminhado para 192.168.1.100 na porta 80 e na página da empresa na Internet é exibida
  2. http://www. . com: 2143 / o pedido é encaminhado para 192.168.1.200 na porta 80 e na página da empresa na Internet intranet é exibido

Nós não temos que reescrever a porta quando um pacote tem o endereço IP de origem 192.168.1.200; nós apenas temos de criar ou Masquerade SNAT para que o servidor de intranet acessa a Internet usando 1.1.1.1.

um artigo submetido por Philip A Clare


Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre.
Importante: Este artigo "NAT e deturpação de pacotes com o iptables" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.


Online: 266 users browsing the articles directory