When we added another bridge (bridge1-wifi), this caused issues while bridge1-wifi users are trying to use a secure DNS server located on the default bridge. Therefore “simplistic” negative rules strategy is no longer acceptable. Also, the out-interface-list becomes another filter factor, because by accepting only the out-interface-list in the rules, you exclude any in-interface-list matches.
With these rules we have isolated “wifi-user” from “clients”. With these rules, we don’t have to worry about unexpected packets getting in because we only accept what we ask for. These rules have been thoroughly tested using the system shown in the attached drawing. Not sure why this drawing is in-line, I did not select that option. I also attached this rule set file.
So the bottom line is that all these rules are tailored to allow those desired “new” packets which then become “tracked” and now that connection’s future packets only get to (Rule 2) before being “forwarded”. This prevents future packets from having to go through all the other rules again. This same strategy applies to both “forward” & “input” packet chains.
(Rule 1) Forward all “established” & “related” packets (defconf:=Mikrotik default rule).
(Rule 2) You can never have “new” in your (Rule 2) because that would allow “new” unsolicited packets to be treated the same as established and related packets. The drop all at the end will drop any first time “new” packet (not desired) that was not matched by the rule set. So if some rule other than (Rule 2) is a match, then the “new” packet gets accepted and that connection is now established and tracked in the “forward” chain. (defconf:)
(Rule 3) Dropping any rule that has a connection state of “invalid”. This means that the packet has something wrong with the packet structure. So it does nothing for a “new” packet. (defconf:)
(Rules 4&5) “Forward” “new” in/out Ipsec packets, now tracked.
(Rule 6) “Forward” “client” “new” packets going out the LAN interface, now tracked.
(Rule 7) Because of (Rule 8) below, this rule will drop any “new” “wifi user” packets going out the WAN to “clients” before this “new” packets gets to (Rule 8). This is an exception rule. Don’t know why but this rules works with both LAN and WAN. I think it is possible that LAN has access to all router functions and WAN does not?
(Rule 8) “Forward” “WIFI users” “new” packets to the LAN interface, now tracked.
(Rule 9) Same as (Rule 2) accepting “new” “input” chain to router-admin.
(Rule 10) Same as (Rule 3) dropping “new” “input” chain “invalid” packet.
(Rule 11) Drop “WIFI user” “new” “input” chain to router-admin. This rule will not work using in-interface-list=LAN but works with in-interface-list=WAN. I suspect this is because the in-interface-list for bridge1-wifi is set to WAN.
(Rule 12) Accept all “new” ICMP “input” chain packets to router-admin.
(Rule 13) Accept all “new” local loopback “input” chain packets to router-admin.
(Rule 14) Disabled, no longer needed using accept strategy. Fix the obvious and the not so obvious often goes away.
Accept all “new” “output” chain packets to “wifi user”. This is required for the router to answer secure DNS queries from the “wifi user” since they are on a different network.
(Rule 15) Accept all “new” (tcp) “input” chain packets to Port 53 (DNS) using bridge in-interface for “clients” to query secure DNS (in-interface-list=LAN doesn’t work probably due to 2 separate bridges pointing to LAN.
(Rule 16) Same as (Rule 15) except for “wifi users” on bridge1-wifi.
(Rule 17) Accept all “new” (udp) “input” chain packets to Port 53 (DNS) using bridge1-wifi in-interface for “clients” to query secure DNS (using the LAN approach did not work)
(Rule 18) Same as (Rule 17) except for “wifi-users” on bridge1-wifi.
(Rule 19) Allow all “new” “client” to “router” packets to access router-admin.
(Rule 20) Drop all packets not expected.
Rules 7 & 11 are trying to tell us something about in-interface-list capabilities. I just don’t fully understand it yet.

rules-lynn88.rsc (2.71 KB)