Configurando NAT para várias redes isoladas com iptables

3

Eu tenho uma máquina de gateway conectada a várias redes internas nas quais gostaria de configurar o NAT. O problema, no entanto, é que essas redes precisam ser isoladas umas das outras, o que eu não consegui descobrir. Aqui está minha configuração:

eth0: 192.168.1.0/28 (upstream), o gateway é atribuído 192.168.1.1
eth1: 192.168.1.16/28 (downstream 1), o gateway é atribuído 192.168.1.16
eth2: 192.168.1.32/28 (downstream 2), o gateway é atribuído 192.168.1.32

Até agora, configurei o iptables para permitir cadeias padrão:

iptables -P INPUT ALLOW
iptables -P OUTPUT ALLOW
iptables -P FORWARD ALLOW

Então, eu habilitei o encaminhamento de IP no kernel e configurei o iptables:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.1
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT

No entanto, esta configuração permite que uma máquina na eth1 acesse outra máquina na eth2, mesmo que eu não tenha explicitamente especificado uma regra para permitir isso. Como isolar essas redes ou, no máximo, apenas permitir acesso a determinados hosts / portas?

    
por user192826 06.10.2013 / 03:43

2 respostas

2

Você define a política da FORWARD chain como ALLOW , por isso, mesmo que nada na cadeia corresponda, o tráfego será permitido.

Você provavelmente deve configurá-lo para DROP .

    
por 06.10.2013 / 03:45
0

Como observado na resposta a M. Hampton, você deve manter o recurso de encaminhamento para o NAT funcionar.

Como um hack rápido, eu tentaria bloquear o encaminhamento entre as sub-redes internas, por exemplo. adicione esses comandos ao seu:

iptables -A FORWARD -i eth1 -o eth2 -j DENY
iptables -A FORWARD -i eth2 -o eth1 -j DENY

Isso será confuso com 3 sub-redes internas, pois você terá 6 regras de bloqueio e bastante assustador para 4:).

    
por 07.10.2013 / 10:02

Tags