if ($answer_counter == 1): ?>
endif; ?>
OK, agora acho que entendo o que você quer. Este é um caso muito especial e diferente da abordagem normal encaminhamento de porta que eu postei anteriormente (veja abaixo). As seguintes regras devem fazê-lo.
SNAT em pacotes de entrada
Eu assumo o seguinte:
-
<x>
: IP público do servidor
-
<y>
: IP público do cliente
-
<a>
: IP interno do servidor ( 192.168.2.1
)
-
<b>
: IP "faked" interno do cliente ( 192.168.2.100
)
-
<if>
: interface externa (por exemplo, eth0
)
apenas SNAT
Esta regra irá alterar o endereço de origem do pacote:
iptables -t nat -A INPUT -p tcp -d <x> --dport 80 -s <y> -j SNAT --to-source <b>
Combinado DNAT e SNAT:
Estas regras alterarão o endereço de origem e destino do pacote:
iptables -t nat -A PREROUTING -i <if> -p tcp -d <x> --dport 80 -s <y> \
-j DNAT --to-destination <a>:80
iptables -t nat -A INPUT -p tcp -d <a> -s <y> --dport 80 \
-j SNAT --to-source <b>
Não se esqueça de ACEITAR os pacotes na tabela de filtros.
Regra de encaminhamento de porta DNAT comum para comparação (sem SNAT):
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 \
-j DNAT --to-destination 192.168.2.1:80
Isso encaminhará a porta 8080
nos pacotes recebidos na interface externa (neste exemplo eth0
) para o host interno 192.168.2.1
para porta 80
. Substitua interface , protocolo , dport e para destino com suas configurações.
Esta regra aceita o pacote modificado:
iptables -A FORWARD -i eth0 -p tcp -d 192.168.2.1 --dport 80 -j ACCEPT