[EDIT] I put the full scope of the question in the text here but never updated the title. The title is now updated.
I started by resetting all config and connecting via MAC. What I am trying to do also covers the future requirement that only two of the subnets Im going to use should be able to talk to each other. Without using VLANs for now, I would like to figure out how to do this with routing or firewall.
But that simply doesn’t work at all since I’m still able to log in to the router via ssh(10.0.0.1) from a host on 192.168.0.0. These subnets use different bridges and these 2 bridges are on their own physical interface. 192.168.0.0 is on bridge2, 10.0.0.0 is on bridge1
If you are trying to block access to the router itself, you need to use the input chain instead of the forward chain. So to block all traffic to the 10.0.0.0/24 network you will need at least two rules, one to block traffic to the router’s interface(s) via input chain, and another to block access to hosts on the 10.0.0.0/24 that the router is routing on behalf of another host (the forward chain is applies to traffic that is being routed).
That’s the strange thing. The first rule you mentioned should work by itself. And in my case it doesn’t work with both rules installed either. Here’s my firewall filter printout:
Playing the one million block subnets game is a waste of time and energy.
Simply change the default rule that comes with the router.
All subnets are blocked immediately at L3, and all one needs to do ( and should do ) is focus on the traffic that is allowed!!
From: add action=drop chain=forward comment=
“defconf: drop all from WAN not DSTNATed” connection-nat-state=!dstnat
connection-state=new in-interface-list=WAN
TO: add action=accept chain=forward comment=“internet traffic” in-interface-list=LAN out-interface-list=WANadd action=accept chain=forward comment=“port forwarding” connection-nat-state=dstnat disabled=yes { enable if required } add action=drop chain=forward comment=“Drop all else”
Now for example if you had to allow one subnet access to another, its a simple allow rule.
Or the admin IP access to all vlans…
or all user access to common printer.
add action=accept chain=forward comment=“internet traffic” in-interface-list=LAN out-interface-list=WAN add action=accept chain=forward comment=“admin to all subnets” src-address=adminLAN-IP out-interface-list=LAN
add action=accept chain=forward comment=“home users to video subnet” src-address=home-subnet dst-address=video-subnet
add action=accept chain=forward comment=“all user to common printer on home subnet” in-interface-list=LAN out-interface=homeVLAN dst-address=IP of printer
add action=accept chain=forward comment=“port forwarding” connection-nat-state=dstnat disabled=yes { enable if required }
add action=drop chain=forward comment=“Drop all else”
OK I tried doing that but I guess that because Im using bridges (I followed the first time setup guide) that it actually breaks internet access completely.
You need to add “explicit block all”, because MT default policy is “ACCEPT” in every table/chain:
-> ( iptables -t filter -P INPUT ACCEPT ) - this is cannot be changed on Mikrotik - hardcoded.
-> ( iptables -t filter -P FORWARD ACCEPT ) - this is cannot be changed on Mikrotik - hardcoded.
-> ( iptables -t filter -P OUTPUT ACCEPT ) - this is cannot be changed on Mikrotik - hardcoded.