Como estaticamente várias conexões NAT para um único endereço IP no iptables

1

Eu tenho usado o ipfilter no passado. Aqui está o que eu usei lá:

map-block tun0 192.168.1.0/24 -> 20.20.20.0/24

Alguns aplicativos remotos exigem que várias conexões sejam todas do mesmo endereço IP. Então, eu quero dizer ao iptables para ter um mapeamento estático entre o endereço IP e usar o mesmo endereço IP para um host (ou seja, use um pouco de mágica para escolher uma porta). Como faço isso?

    
por Bruce 11.02.2013 / 06:45

3 respostas

1

Use o alvo SNAT do iptables com a opção persistent para manter o IP escolhido para um cliente específico da mesma forma:

iptables --table nat --append POSTROUTING --out-interface tun0 --source 192.168.1.0/24 --jump SNAT --to-source 20.20.20.0/24 --persistent

    
por 11.02.2013 / 19:09
1

Você pode fazer semelhante com o netfilter:

iptables -t nat -A POSTROUTING -o tun0 -s 192.168.1.0/24 -j SNAT --to 20.20.20.0/24

Você pode ler o artigo iptables NAT aqui .

    
por 11.02.2013 / 08:36
1

Veja o iptables -j SNAT --to-source [ipaddr [-ipaddr]] --persistente

Eu não sei "quão estático" é isso. Talvez o mapeamento seja perdido na reinicialização. Se isso for um problema, você poderá configurar um mapeamento estático por uma regra explícita para cada endereço.

IIRC existe uma ferramenta (infelizmente não consigo lembrar o nome) que pode mapear endereços de origem ou destino para cadeias para que você não precise de uma cadeia com 254 entradas:

iptables ... -s 192.168.1.1 -j ...
iptables ... -s 192.168.1.2 -j ...
iptables ... -s 192.168.1.3 -j ...
    
por 11.02.2013 / 16:39

Tags