Encaminhar o tráfego para dentro e para fora, NAT iptables

1

Eu tenho uma configuração de caixa como Servidor DHCP com o encaminhamento IPv4 NAT ativado. Atualmente a caixa usa eth0 para se conectar a uma rede local e tem acesso à internet, possui outras 3 interfaces, eth1 , eth2 e < strong> eth3 que se conectam a outras caixas. As outras 3 caixas podem falar umas com as outras e a caixa principal.

Eu gostaria de permitir que as outras 3 caixas acessem a internet através da caixa principal através da interface eth0 , então acredito que eu preciso configurar as regras de iptable. Não há regras de portas especiais ou algo específico, gostaria apenas de tráfego de eth1 , eth2 e eth3 para passar por eth0 ao acessar a internet pública.

para detalhamento aqui está o meu arquivo /etc/network/interface

auto lo

iface lo inet loopback
iface eth0 inet dhcp

iface eth1 inet static
  address 192.168.1.1
  netmask 255.255.255.0

iface eth2 inet static
  address 192.168.2.1
  netmask 255.255.255.0

iface eth3 inet static
  address 192.168.3.1
  netmask 255.255.255.0

A partir das informações aqui em SO e em toda a web, é assim que meu iptables-save se parece

*nat
:PREROUTING ACCEPT [1799:327587]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [23:2190]
-A POSTROUTING -j MASQUERADE 
COMMIT
*filter
:INPUT ACCEPT [3474:500657]
:FORWARD ACCEPT [24:1613]
:OUTPUT ACCEPT [857:128814]
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -s 192.168.1.101 -i eth1 -o eth0 -m conntrack --ctstate NEW -j ACCEPT 
-A FORWARD -s 192.168.2.102 -i eth2 -o eth0 -m conntrack --ctstate NEW -j ACCEPT 
-A FORWARD -s 192.168.3.103 -i eth3 -o eth0 -m conntrack --ctstate NEW -j ACCEPT 
COMMIT

As regras são persistentes na reinicialização via pre-up

Como não tenho um bom entendimento das regras de iptable, as perguntas atuais sobre serverfault são difíceis de entender / entender o que estou realmente fazendo.

    
por rwxes 24.11.2014 / 03:45

3 respostas

1

Existem alguns problemas em como você escreveu suas regras.

-A POSTROUTING -j MASQUERADE 

Esta regra aplica-se de forma muito ampla. Você só precisa de tal regra para conexões da LAN que sai da sua rede. Uma maneira de fazer isso seria especificar em qual interface de saída se aplica:

-A POSTROUTING -o eth0 -j MASQUERADE 

Além disso, sua tabela de filtros não faz muito sentido:

*filter
:INPUT ACCEPT [3474:500657]
:FORWARD ACCEPT [24:1613]
:OUTPUT ACCEPT [857:128814]
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -s 192.168.1.101 -i eth1 -o eth0 -m conntrack --ctstate NEW -j ACCEPT 
-A FORWARD -s 192.168.2.102 -i eth2 -o eth0 -m conntrack --ctstate NEW -j ACCEPT 
-A FORWARD -s 192.168.3.103 -i eth3 -o eth0 -m conntrack --ctstate NEW -j ACCEPT 
COMMIT

Cada uma de suas regras ACEITA pacotes de acordo com determinados critérios. No entanto, tudo é redundante, pois, no final, você vai ACEITÁ-LO com a política padrão da cadeia. Então o resultado é que você ACEITA tudo, o que também seria o caso se você removesse todas as regras.

    
por 24.11.2014 / 09:11
2

Antes de alguém pular diretamente para as regras de firewall, deve-se também realizar uma simples verificação de encaminhamento. Tal como quando se verifica o cabo de alimentação está ligado antes de desmontar o hardware.

Executar:

cat /proc/sys/net/ipv4/ip_forward

Se você obtiver um zero, o IPv4 não encaminhará. Você precisará ativar isso.

Para ativá-lo imediatamente e efêmero para verificar o comportamento:

echo 1 > /proc/sys/net/ipv4/ip_forward

O acima o ativa para a máquina, mas está simplesmente modificando a configuração do kernel e não será "salvo".

Edite o arquivo sysctl.conf para fazer a alteração permanente adequada e assegure a seguinte configuração:

net.ipv4.ip_forward = 1
    
por 24.11.2014 / 05:26
1

Além da resposta de Magellan, não use -j MASQUERADE , a menos que você realmente saiba o que isso faz e deva usá-lo. Em vez disso, use -j SNAT --to <source address> . Em segundo lugar, sua regra POSTROUTING precisa incluir -o eth0 , caso contrário, conexões MASQUERADEing estão voltando em , o que suas caixas internas provavelmente não têm idéia de como lidar.

    
por 24.11.2014 / 09:09