Gama de portas DNAT com um intervalo de portas interno diferente com o Iptables

4

A maneira padrão de DNAT uma porta única para uma porta diferente em uma rede interna é algo assim:

ip(6)tables -t nat -A PREROUTING -i wan0 -p tcp --dport 80 --to-destination 10.0.0.1:8080

Se você precisar de um intervalo de portas, poderá usar -m multiport junto com --dports da seguinte forma:

ip(6)tables -t nat -A PREROUTING -i wan0 -p tcp -m multiport --dports 1000:2000 --to-destination 10.0.0.1

Agora, o que eu quero saber é se você pode combinar as duas técnicas para mapear um intervalo de portas (por exemplo, 1000-2000) para um diferente do mesmo tamanho (por exemplo, 12000-13000). Isso é possível com o Iptables usando um kernel até o Linux 4.1?

    
por Lorenz 18.10.2015 / 22:28

1 resposta

6

Para responder à sua pergunta, sim .

Eu executei uma regra de exemplo na minha caixa Debian ...

iptables -t nat -A PREROUTING -i xenbr0 -p tcp --dport 64000:65000 -j DNAT --to 172.16.10.10:61000-62000

... que não produziu saída, indicando sucesso. Estou executando o kernel 3.16.0-4-amd64 .

Verificando a regra NAT via iptables -t nat -vnL PREROUTING , vejo a regra listada ...

DNAT       tcp  --  xenbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpts:64000:65000 to:172.16.10.10:61000-62000

MadHatter está correto, você não precisa de -m multiport para intervalos de portas, apenas para listas de portas separadas por vírgulas. O : é necessário para especificar intervalos de porta para a opção --dport , mas é necessário um - para especificar intervalos de porta no DNAT target.

O quão bem esta regra funcionará na prática eu não posso dizer, mas teoricamente ela deve atingir seu objetivo.

Mais informações sobre DNAT target podem ser encontradas aqui .

Espero que isso ajude.

    
por 22.01.2016 / 16:28