iptables: redireciona pacotes para outro ip sem nat

0

Para ter vários ips públicos na minha conexão de casa, alugo um VPS com poucos IPs, configurei um servidor openvpn e todos os servidores da minha casa que precisam de um ip público, tenho uma conexão vpn e estou fazendo DNAT / SNAT no VPS para redirecionar o tráfego destinado a um ip público específico para o meu servidor inicial através do openvpn.

-A PREROUTING -d xxx.xxx.xxx.xxx/32 -j DNAT --to-destination 172.17.0.6
-A POSTROUTING -s 172.17.0.6/32 -j SNAT --to-source xxx.xxx.xxx.xxx

Funciona assim por mais de um ano em um servidor de e-mail / web / ect .., é bem legal

Eu só tenho um problema, o pacote de entrada no meu servidor é chamado com o ip do servidor VPN, então eu não posso usar listas de acesso baseadas no ip, nem RBL no servidor de email.

Existe alguma maneira de dizer ao iptable para redirecionar o tráfego sem fazer o NAT?

No meu cliente, o gateway padrão é meu servidor vpn, então o pacote voltará na vpn de qualquer forma.

Obrigado

    
por makz 06.03.2018 / 20:11

1 resposta

2

Se você quiser alterar o destino, mas não a fonte, acabe com a regra "SNAT".

Desculpe não leu a pergunta com cuidado o suficiente.

let's say, my server y.y.y.y is pinging x.x.x.x, it come on my vpn server and i dnat "destination x.x.x.x to 172.17.0.6 and on my home server i get packets with source 172.17.0.1

O DNAT somente altera o destino de uma conexão, não a origem. Se você está vendo uma fonte de 172.17.0.1, então você deve ter outra regra SNAT ou MASQUERADE que não esteja listada na sua pergunta que está afetando o pacote. Você precisa remover essa regra ou limitar seu escopo para que ela não afete as conexões que chegam ao seu servidor doméstico.

Se você quiser mais ajuda, por favor poste uma lista completa das regras do iptables para o seu servidor, não apenas aquelas que você acha que são relevantes.

it go back on my vpn and get snat to go back to y.y.y.y

Não, ele é convertido de forma reversa usando o rastreamento de estado estabelecido quando o primeiro pacote da conexão (psuedo-) foi processado. iptables tabelas nat apenas são processadas para o primeiro pacote de uma conexão.

    
por 06.03.2018 / 20:16