MikroTik - RouterOS: Secure your router
In this post I will show you can secure your MikroTik RouterOS router.
User Management
Creating a New User and New Group Policy:
user add name=devopstales group=full password=Password1
user group add name=monitor policy=read,telnet,winbox,local
user add name=nmc group=monitor password=Password1
user print
Columns: NAME, GROUP, LAST-LOGGED-IN
# NAME GROUP LAST-LOGGED-IN
;;; system default user
0 admin full jun/14/2022 10:21:31
1 vagrant full jul/17/2022 09:47:17
2 devopstales full
3 nmc monitor
Enable Disable User:
user disable 3
user print
Flags: X - DISABLED
Columns: NAME, GROUP, LAST-LOGGED-IN
# NAME GROUP LAST-LOGGED-IN
;;; system default user
0 admin full jun/14/2022 10:21:31
1 vagrant full jul/17/2022 09:47:17
2 devopstales full
3 X nmc monitor
user enable 3
user print
Columns: NAME, GROUP, LAST-LOGGED-IN
# NAME GROUP LAST-LOGGED-IN
;;; system default user
0 admin full jun/14/2022 10:21:31
1 vagrant full jul/17/2022 09:47:17
2 devopstales full
3 nmc monitor
Restrict User Access for MikroTik by IP Address:
user set nmc address=202.4.100.35,172.16.1.0/24,2405:7600:b:4::2
user print
Columns: NAME, GROUP, ADDRESS, LAST-LOGGED-IN
# NAME GROUP ADDRESS LAST-LOGGED-IN
;;; system default user
0 admin full jun/14/2022 10:21:31
1 vagrant full jul/17/2022 09:47:17
2 devopstales full
3 nmc monitor 202.4.100.35/32
172.16.1.0/24
2405:7600:b:4::2/128
Restrict access by IP
# RouterOS 6
/user set admin allowed-address=192.168.88.0/24
# RouterOS 7
/user set admin address=192.168.88.0/24
MAC Connectivity Access
By default connecting to the router by MAC adress is allowd from all interface. This is a security risk so we will disable on the WAN interface:
First we will create an inteface list and add the interfaces we want to allow the connection to this list:
/interface list add name=listBridge
/interface list member add list=listBridge interface=ether2
Allow the connection only from this list:
# Apply newly created list to the MAC server:
tool mac-server set allowed-interface-list=listBridge
# Do the same for Winbox MAC access
tool mac-server mac-winbox set allowed-interface-list=listBridge
Neighbor Discovery
MikroTik Neighbor discovery protocol is used to show and recognize other MikroTik routers in the network. Disable neighbor discovery on public interfaces:
/ip neighbor discovery-settings set discover-interface-list=listBridge
Firewall rules
IP connectivity on the WAN interface must be limited in the firewall. We will accept only ICMP(ping/traceroute), IP Winbox, and ssh access.
/ip firewall filter
add chain=input connection-state=established,related action=accept comment="accept established,related";
add chain=input connection-state=invalid action=drop;
add chain=input in-interface=ether1 protocol=icmp action=accept comment="allow ICMP";
add chain=input in-interface=ether1 protocol=tcp port=8291 action=accept comment="allow Winbox";
add chain=input in-interface=ether1 protocol=tcp port=22 action=accept comment="allow SSH";
add chain=input in-interface=ether1 action=drop comment="block everything else";
Although the firewall protects the router from the public interface, you may still want to disable RouterOS services.
/ip service disable telnet,ftp,www,api
Change default service ports, this will immediately stop most of the random SSH brute force login attempts:
/ip service set ssh port=2200
Additionally, each service can be secured by allowed IP address:
/ip service set winbox address=192.168.88.0/24