iptables: la regla ADELANTE no tiene efecto

1

Tengo una caja de Linux que ejecuta iptables. El tráfico lo atraviesa entrando en wlan0 y saliendo en wlan1. Quiero permitir que solo pasen máquinas específicas. Lo intenté por MAC, falló, luego lo intenté por IP y para mi sorpresa, también falló.

Para ambos casos puse la política FORWARD como DROP

$ iptables -P FORWARD DROP

Entonces lo hice

$ iptables -A FORWARD -i wlan0 -m mac --mac-source 76:AB:BF:80:4E:B3 -j ACCEPT

Cuando no funcionó, activé el registro con:

$ iptables -I FORWARD -i wlan0 -j LOG

kern.log mostró que mi dirección MAC de origen era la MAC del linux wlan0. Luego probé por dirección IP:

$ iptables -A FORWARD -s 192.168.1.10 -j ACCEPT

También falló. Luego intenté dejar la política como aceptar y poner lo siguiente, para dejar todo, después de mi regla anterior:

$ iptables -A FORWARD -j DROP 

Pero aún así no funcionó ya que mi cliente perdió su paquete. Solo funciona cuando la política es ACEPTAR (pero luego no hay filtrado). Eso me hace creer que la regla no coincide con el tráfico. ¿Qué estoy haciendo mal?

EDITAR:

Mis cadenas completas de iptables:

$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             MAC 76:AB:BF:80:4E:B3
ACCEPT     all  --  192.168.1.10         anywhere           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   
Adriano_epifas
fuente
el -A es APPEND que lo convierte en la última regla en la lista. Al no tener idea de cómo se ve su cadena completa, no podemos decirle a dónde debe ir.
cybernard
Edité la pregunta con las cadenas completas. Gracias
Adriano_epifas
cambie -J ACCEPT a -J LOG --log-prefix "test MAC match" y vea lo que aparece en dmesg
cybernard