Para que serve o MASQUERADE?

1

Um redirecionamento simples é usado no meu servidor, com regras do iptables:

$ iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 13.37.42.1:80

$ iptables -t nat -A POSTROUTING -j MASQUERADE

Eu não entendo a utilidade da segunda linha (mascarada). Por que / WhatFor é útil neste exemplo?

EDITAR: Por que - não teoricamente, mas IRL - você usaria isso em um exemplo?

Obrigado

    
por ArchiT3K 03.07.2015 / 16:23

1 resposta

2

MASQUERADE faz o que o nome sugere: Ele esconde tudo "por trás" do host. Você faria isso para fornecer Internet para vários hosts quando você tiver apenas um endereço IP de uplink. Essa tecnologia é usada na maioria dos roteadores de acesso à Internet, chamados de "NAT".

Quando o servidor de contatos do host A S via MASQUERADE ing router R, o servidor não será capaz de ver a conexão se origina do host A. Em vez disso, para o servidor parece que está se comunicando com o roteador R. Router R no entanto sabe que essa conexão era originalmente do host A e encaminhará as mensagens de acordo. O host A sabe que está conectado ao servidor S e que o servidor S enviou a resposta.

No IPTables, você normalmente usa isso apenas na interface voltada para a Internet. Algo assim:

-t nat -A POSTROUTING -i eth0 -j MASQUERADE

Significa que todo pacote IP que foi roteado e sai por eth0 receberá o tratamento.

Quando usado em seu exemplo, ele parece em 13.37.42.1 (host S) como se sua máquina (daqui em diante host Y) iniciasse a conexão. Isso significa que a resposta chegará ao host Y, que o encaminha para o destino real (host A). Para hospedar A, parecerá que a mensagem veio do host Y. Não é possível ver ou saber que o host S realmente a enviou, porque MASQUERADE funciona nos dois sentidos aqui.

Se você não usar essa regra, o host S verá uma mensagem originada do host A. Ele enviará a resposta diretamente para o host A. O host A, no entanto, não conhece o host S. Ele está conectado ao host Y e espera uma resposta de lá. Como tal, a resposta do host S é tratada como tráfego não solicitado e descartada. A conexão irá expirar.

    
por 03.07.2015 / 16:49