So something in my forward chain is allowing the traffic to still pass and stopping it from hitting the drop all rule at the bottom. The only way Ive got it to work is as I say above and to put another drop rule right underneath the first forward rule.
These rules:
add chain=forward comment="Allow BT Vision " protocol=udp
add chain=forward comment="Allow TCP Protocol 6 for PPTP" protocol=tcp
add chain=forward comment="Allow Ping Over PPTP" protocol=icmp
add action=drop chain=forward comment="Drop all other connections through the router"
Mean:
Allow any connection through the router as long as is UDP no matter in or out interface
Allow any connection through the router as long as is TCP no matter in or out interface
Allow any connection through the router as long as is ICMP no matter in or out interface
Drop everything else no matter in or out interface
You should be very specific specially when allowing: protocol, src/dst ports, src/dst address or address lists, in or out interface...
Firewalls are pure logic in their behaviour, there are really no shortcuts to understand them, take an spare hour with fresh mind and have a look at
http://wiki.mikrotik.com/wiki/How_to_co ... P_firewall
If you take a default deny approach for the firewall (which you should) you should never forget that firewall (iptables) process filters from top to bottom: the first rule that matches is what gets applied, the rest is ignored.
So there are two important things to have in mind:
1.- Allow rules come first, and should be the more specific the better
2.- Deny (drop) rules come last, and should be the more generic the better
There are two things that can help you enormously when playing with the firewall: IP > filter rule counters, and enabling logging for specific rules to see if traffic is hitting a certain rule or not.