iptables - Port Forwarding from Multiple Sources

0

(Originalmente perguntado no StackOverflow. Obrigado Ken White por me redirecionar aqui.)

Ubuntu 16.04 amd64 com 3 NICs

NIC1: IP externo $WAN_IP
NIC2: LAN interna $LAN_IP
NIC3: Infraestrutura LAN $INF_IP (a LAN de infra-estrutura é onde todos os servidores residem, propositadamente longe de computadores pessoais e desktops)

Desejo encaminhar pedidos de encaminhamento da NIC1 e NIC2 para um servidor específico na NIC3. Eu sou capaz de fazer isso e tudo funciona corretamente. Meu problema é que não consigo definir com confiança o campo --to-source no iptables.

Isso é o que eu tenho até agora:

iptables -A PREROUTING -t nat -p udp -d $WAN_IP --dport 1194 -j DNAT --to-destination 192.168.26.105 # VPN Server on the $INF_IP subnet
iptables -A PREROUTING -t nat -p udp -d $LAN_IP --dport 1194 -j DNAT --to-destination 192.168.26.105
iptables -A PREROUTING -t nat -p udp -d $INF_IP --dport 1194 -j DNAT --to-destination 192.168.26.105
# The above code routes port 1194:udp (openvpn) to the VPN Server 26.105 properly
# The -j SNAT below is where I encounter problems
iptables -A POSTROUTING -t nat -p udp -m udp -s 192.168.26.105 --dport 1194 -j SNAT --to-source ????

O acima ???? no POSTROUTING -j SNAT é onde me deparo com o problema. Eu tenho 3 IPs potenciais que eu posso definir isso, e não há maneira confiável de configurá-lo. Se eu configurá-lo para $WAN_IP , qualquer coisa em $LAN_IP e $INF_IP receberá os pacotes de origem incorretos.

Como posso usar o iptables (ou alternativa) para definir corretamente o endereço SOURCE , independentemente de qual interface o pedido venha?

Obrigado em avançado.

    
por timtj 13.11.2017 / 02:56

0 respostas