Encaminhar broadcast para IP fixo usando IPTables

2

Eu preciso encaminhar (encaminhar) pacotes de broadcast de vários clientes sem fio para um único servidor na rede fixa. As redes sem fio e fixa não são conectadas por motivos de segurança.

Com as seguintes linhas, os pacotes aparecem no log da cadeia INPUT

iptables -I INPUT -i $IF_WIFI -p udp --dport 6000 -j LOG --log-prefix "I " 
iptables -I FORWARD -i $IF_WIFI -p udp --dport 6000 -j LOG --log-prefix "F "

Agora adiciono a seguinte regra

iptables -t nat -A PREROUTING -p udp -d 255.255.255.255 --dport 6000 -j DNAT --to 10.0.0.10:6000

Agora, os pacotes não serão exibidos no registro INPUT ou FORWARD e não serão roteados para a rede fixa. Eu esperaria ver o pacote no log FORWARD

A regra PREROUTING é atingida de acordo com

iptables -t nat -v --list

Chain PREROUTING (policy ACCEPT 466 packets, 28575 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  404 25819 DNAT       udp  --  any    any     anywhere             255.255.255.255     udp dpt:6000 to:10.0.0.10:6000 

(atualização) O encaminhamento de IP está ativado

# cat /proc/sys/net/ipv4/ip_forward 
1

Eu negligenciei alguma coisa?

    
por MightyZen 03.06.2011 / 10:37

1 resposta

3

A solução mais simples é configurar uma ponte, mas use ebtables em vez de iptables para aplicar a regra "somente pacotes de transmissão podem atravessar a ponte". Você deseja definir a política FORWARD como DROP e usar uma regra como:

ebtables -A FORWARD -s FF:FF:FF:FF:FF:FF -j DROP

Isso teria o mesmo efeito, mas deveria contornar as dificuldades que você está vendo.

(Na verdade, não estou convencido de que permitir a transmissão apenas é muito mais seguro do que permitir que tudo passe, independentemente de como você o implementa)

    
por 04.01.2012 / 04:10