iptables is wonderful when the schema is thoroughly thought out and optimised for the environment, but it requires serious intellectual effort to get right!
I think of it like this:
INPUT - to the box
FORWARD - around the box
OUTPUT - from the box
You appear to have subnetted Class A 10.* to a Class C 10.0.0.* I assume you want 10.0.0.255 broadcasts on eth0/eth1.
Therefore, to block just broadcasts on 10.0.0.255 to and from wlan0 and prevent them being forwarded:
$IPTABLES -A FORWARD -i wlan0 -d 10.0.0.255/32 -j DROP
$IPTABLES -A FORWARD -o wlan0 -d 10.0.0.255/32 -j DROP
$IPTABLES -A INPUT -i wlan0 -d 10.0.0.255/32 -j DROP
$IPTABLES -A OUTPUT -o wlan0 -d 10.0.0.255/32 -j DROP
To block the forwarding for 10.0.0.255/32 on all interfaces:
$IPTABLES -A FORWARD -d 10.0.0.255/32 -j DROP
This would still allow it to be used, but won't cross interfaces in any direction.
I would also add a lot more rules to stop spoofing, bogons, selected icmps and igmp and lock down exactly what addresses/ports get forwarded and blocked to/from each combination of interfaces, so that there is no chance of private addresses leaking to the net, or spoofed addresses getting in, or one hacked machine getting into other machines that it shouldn't.
My iptables ruleset is around 25,000 lines, but most of those are geoip rules to decide what countries can send mail at what times, as well as banned users, brute force attackers, known spamhaus offenders etc.
Maybe I'm paranoid, but as a system administrator it is required!
-d 10.0.0.255
, but the full rules list-d 10.0.0.0/24
, which is not the same thing. Also it is hard to tell whether you are trying to block inbound broadcast packets (so you don't even see them), or trying to prevent them from being forwarded.