iptables encaminhamento entre sub-redes

1

Eu quero encaminhar o tráfego entre duas sub-redes, não estou muito familiarizado com o iptables. O encaminhamento funciona, exceto quando o iptables está ativado. Deve haver algo errado com as regras, embora intuitivamente pareçam que deveriam funcionar.

Estas são as regras que tentei, também as testei sem endereços de destino e de origem ...

Chain INPUT (policy DROP 76 packets, 6424 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   52  6866 ACCEPT     all  --  lo     any     anywhere             anywhere            
 1117 92168 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    1   152 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh 

Chain FORWARD (policy DROP 24 packets, 1812 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  eth0   eth0:0  anywhere             184.107.60.0/24     
    0     0 ACCEPT     all  --  eth0:0 eth0    184.107.60.0/24      anywhere            

Chain OUTPUT (policy ACCEPT 95 packets, 9660 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain sshguard (0 references)
 pkts bytes target     prot opt in     out     source               destination

Apenas por precaução, aqui está o meu ifconfig ...

eth0      Link encap:Ethernet  HWaddr 00:25:90:25:61:41  
          inet addr:174.142.61.201  Bcast:174.142.61.223  Mask:255.255.255.224
          inet6 addr: fe80::225:90ff:fe25:6141/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:205399 errors:0 dropped:0 overruns:0 frame:0
          TX packets:105545 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:251555745 (239.9 MiB)  TX bytes:34853743 (33.2 MiB)
          Interrupt:16 Memory:d0180000-d01a0000 

eth0:0    Link encap:Ethernet  HWaddr 00:25:90:25:61:41  
          inet addr:184.107.60.176  Bcast:184.107.60.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:16 Memory:d0180000-d01a0000 

Eu tentei isso com regras diferentes que não especificam interfaces e ainda nada acontece quando o iptables está habilitado.

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh 

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  184.107.60.0/24      anywhere            
ACCEPT     all  --  anywhere             184.107.60.0/24     

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain sshguard (0 references)
target     prot opt source               destination         
DROP       all  --  email.globaltravelerusa.com  anywhere

As regras são executadas em um servidor dedicado que possui seu adaptador em ponte com máquinas virtuais. Eu preciso encaminhar pacotes entre o alias e a interface física principal, porque os outros endereços IP que eu recebo estão em outra sub-rede. As regras atualmente funcionam se eu tiver apenas uma política de permissão direta. Tecnicamente, isso resolveu o problema, mas ao aceitar essa solução, não aprendo nada sobre o que faço com o iptables. Obviamente, o encaminhamento de IP está ativado, e eu posso acessar o servidor do meu computador de casa em outro país com o iptables configurado para permitir todo o encaminhamento.

O problema é simples: quais são as regras corretas a serem usadas para encaminhamento entre sub-redes? Os mostrados não funcionam, por algum motivo.

Isso está funcionando ...

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain sshguard (0 references)
target     prot opt source               destination         
DROP       all  --  1.93.29.150          anywhere            
DROP       all  --  42.96.131.14         anywhere            
DROP       all  --  42.62.3.18           anywhere
    
por John Tate 16.02.2014 / 01:08

2 respostas

1

Evite eth0:0 nas regras do Netfilter, use apenas eth0 (se precisar).

Veja: Por que minha regra iptables não funciona?

    
por 16.02.2014 / 07:00
0

Não estou certo de que você possa rotear entre alias de interfaces, mas suponho que você possa por enquanto;

Os conjuntos de regras que você está mostrando na pergunta não estão completos, pois não mostram as interfaces envolvidas. Em vez de iptables -L, por favor, forneça a saída de iptables -L -v -n para garantir que todo o conjunto de regras seja exibido completamente.

Para ajudar você a depurar a situação, visto que seu segundo conjunto de regras iptables está permitindo o seu encaminhamento e a única diferença que vejo é que a política FORWARD está definida como ACCEPT, você pode adicionar uma regra LOG no final do primeiro conjunto de regras para ver qual tráfego está sendo descartado na cadeia FORWARD. Assim:

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  184.107.60.0/24      anywhere            
ACCEPT     all  --  anywhere             184.107.60.0/24    

# iptables -A FORWARD -j LOG --log-prefix "dropped_by_fwd_policy "

Então você pode ver no seu log de kernel quais pacotes estão sendo descartados e a partir daí você pode descobrir porque isso está acontecendo.

    
por 01.03.2018 / 22:25