NAT e deturpação de pacotes com o iptablesNa 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.
|
| 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.
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 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.
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:
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.
|
|