Evite eth0:0
nas regras do Netfilter, use apenas eth0
(se precisar).
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
Evite eth0:0
nas regras do Netfilter, use apenas eth0
(se precisar).
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.
Tags iptables firewall forwarding