Desconcertado por uma regra de ebtables que não funciona: Permitindo apenas tráfego LAN local

1

Gostaria de limitar um MAC específico à comunicação apenas com dispositivos na LAN LOCAL. Aqui está minha tentativa (saída do comando "ebtables -t nat -L" )

Bridge table: nat

Bridge chain: PREROUTING, entries: 0, policy: ACCEPT

Bridge chain: OUTPUT, entries: 0, policy: ACCEPT

Bridge chain: POSTROUTING, entries: 1, policy: ACCEPT
-d f0:de:f1:1e:e4:83 -j LOCAL

Bridge chain: LOCAL, entries: 1, policy: DROP
-p IPv4 --ip-src 192.168.6.0/24 -j OKAY

Bridge chain: OKAY, entries: 1, policy: ACCEPT
-j ACCEPT

Quando essas regras estão em vigor, o roteador linux torna-se inacessível a partir do dispositivo f0: de: f1: 1e: e4: 83 que possui o endereço IP 192.168.6.70. O ping ICMP para junto com todos os outros serviços.

Se eu alterar a política da cadeia denominada LOCAL para "ACEITAR", todos os serviços continuarão funcionando para f0: de: f1: 1e: e4: 83. Isso me diz que a regra POSTROUTING está funcionando e estamos avaliando as regras LOCAL que devem permitir que apenas os pacotes originados da LAN passem.

Então por que o "-p IPv4 --ip-src 192.168.6.0/24 -j OKAY" não permite trocas de ping ICMP entre 192.168.6.70 e 192.168.6.254?

    
por Mike Agar 04.04.2017 / 15:41

1 resposta

1

Acontece que a ethernet (controlada por ebtables) suporta muitos protocolos além do IPV4. Crucialmente os pacotes ARP estavam sendo descartados pela política padrão na cadeia LOCAL acima.

A correção era enviar apenas pacotes IPv4 para a cadeia LOCAL em POSTROUTING e permitir que o padrão ACCEPT em POSTROUTING permitisse que os quadros da rede ARP passassem pela ponte.

Bridge chain: POSTROUTING, entries: 1, policy: ACCEPT
-p IPv4 -d f0:de:f1:1e:e4:83 -j LOCAL
    
por 09.06.2017 / 22:24

Tags