Securing your router

本页提供 MikroTik RouterOS 的安全建议,包括升级 RouterOS 版本、更改默认用户名和密码、通过防火墙规则和 VPN 保护访问、禁用 MAC-Telnet 和 Neighbor Discovery 等不必要的服务,以及管理 DNS 缓存以增强路由器安全性。

保护你的路由器

以下步骤是在已配置了强防火墙规则的基础上,进一步保护设备的建议。

RouterOS 版本

首先升级你的 RouterOS 版本。某些较旧的版本存在已被修复的弱点或漏洞。保持设备更新以确保其安全。在 WinBox 或 WebFig 中点击 "Check for Updates" 进行升级。建议关注我们的安全公告博客,及时了解任何新的安全问题。

访问用户名

把默认用户名 admin 改为自定义名称。使用唯一的用户名有助于在有人直接物理接触设备时保护路由器访问:

/user/add name=myname password=mypassword group=full
/user/disable admin

访问密码

MikroTik 路由器要求配置密码。我们建议使用密码生成工具创建安全且不重复的密码。所谓安全密码,是指:

  • 至少 12 个字符。
  • 包含数字、符号、大写和小写字母。
  • 不是字典单词,也不是字典单词的组合。
  • 注意密码中的引号字符需要转义。
/user/set myname password="!={Ba3N!40TуX+GvKBz?jTLIUcx/,"

保护设备访问

默认情况下,预配置的防火墙会阻断来自 WAN(面向互联网)接口的所有管理访问。这是有意为之——除非你完全理解其后果,否则不要删除这些规则。

不要将管理服务暴露到互联网

管理接口对互联网开放的网络设备会不断被自动化攻击扫描和针对。把 WinBox、SSH 或其他管理服务直接暴露到互联网可能导致:

  • 针对登录凭据的暴力破解攻击。
  • 利用未修补的 RouterOS 版本中的已知漏洞。
  • 设备被完全攻陷——攻击者可以拦截流量、重定向 DNS、安装恶意软件,或把路由器作为进一步攻击的代理。

如果你需要远程访问设备,请使用 VPN(如 WireGuard)建立加密隧道。这样管理流量完全不会经过公共互联网。

开放来自 WAN 的管理访问(高级)

下面的防火墙规则适用于无法避免直接从 WAN 访问管理服务的情况——例如 ISP 管理的基础设施或没有 VPN 网关的站点。除非你有直接面向互联网管理的特定需求,否则不要应用这些规则。

这些规则仅允许来自 WAN 接口的 ICMP(ping 和 traceroute)、WinBox 和 SSH,并丢弃其他所有流量:

/ip/firewall/filter
add chain=input action=accept connection-state=established,related,untracked comment="accept established,related,untracked"
add chain=input action=drop connection-state=invalid comment="drop invalid"
add chain=input in-interface=ether1 action=accept protocol=icmp comment="accept ICMP"
add chain=input in-interface=ether1 action=accept protocol=tcp dst-port=8291 comment="allow WinBox"
add chain=input in-interface=ether1 action=accept protocol=tcp dst-port=22 comment="allow SSH"
add chain=input in-interface=ether1 action=drop comment="block everything else"

警告

如果公网接口是 PPPoE、LTE 或其他接口类型,in-interface 应相应设置。如果选错接口,你可能会失去对设备的访问。 需要额外加固

如果你开放了来自 WAN 的管理访问,必须同时:

  • 使用强且唯一的密码(参见访问密码)。
  • 尽可能把访问限制到特定源地址。
  • 保持 RouterOS 更新到最新稳定版本。
  • 监控日志中的未授权连接尝试。 你也可以通过 Allowed Address 属性把特定用户账户限制到某些源地址:
/user/set 0 address=192.168.88.0/24

RouterOS MAC 访问

RouterOS 包含一些内置功能选项,可提供便捷的网络设备管理访问。但在生产网络中应禁用以下服务:MAC-Telnet、MAC-WinBox 和 MAC-Ping。

/tool/mac-server/set allowed-interface-list=none 
/tool/mac-server/mac-winbox/set allowed-interface-list=none 
/tool/mac-server/ping/set enabled=no

Neighbor Discovery

MikroTik Neighbor Discovery 协议用于发现和识别网络上的其他 MikroTik 路由器。要在所有接口上禁用 Neighbor Discovery,请使用以下命令:

/ip/neighbor/discovery-settings/set discover-interface-list=none

Bandwidth server

bandwidth server 用于测试两台 MikroTik 路由器之间的吞吐量。在生产环境中请禁用它:

/tool/bandwidth-server/set enabled=no 

DNS 缓存

DNS 缓存通过在路由器本地存储已解析的 DNS 查询结果来提升性能,减少客户端设备向远端服务器解析 DNS 请求所需的时间。如果路由器不需要 DNS 缓存——例如网络中另一台设备负责 DNS 缓存——你应禁用此功能以提升安全性:

/ip/dns/set allow-remote-requests=no

其他服务

RouterOS 包含若干可能根据你的配置被启用的服务。在生产环境中应禁用以下服务:caching proxy、SOCKS、UPnP 和 MikroTik Cloud 服务。

/ip/proxy/set enabled=no
/ip/socks/set enabled=no
/ip/upnp/set enabled=no
/ip/cloud/set ddns-enabled=auto update-time=no

管理服务端口

在 /ip/service 菜单中禁用你不使用的 RouterOS 管理服务:

/ip/service/disable telnet,ftp,www,api

更改默认 SSH 端口可以减少自动化暴力破解的暴露面:

/ip/service/set ssh port=2200

每项服务也可以限制到特定源地址,不过更推荐用防火墙规则(见上文)执行访问控制,因为这样连接根本到不了服务:

/ip/service/set winbox address=192.168.88.0/24

更安全的 SSH 访问

你可以在路由器上启用更严格的 SSH 安全设置。这包括启用 aes-128-ctr 加密算法,以及禁用 hmac-sha1 和使用 sha1 的 group 算法。要应用这些更安全的 SSH 设置,请使用以下命令:

/ip/ssh/set strong-crypto=yes

路由器接口

以太网/SFP 接口

禁用路由器上所有未使用的接口是良好做法,可减少对路由器的未授权访问:

/interface/print 
/interface/set X disabled=yes

其中 X 是未使用接口的编号。

LCD

某些 RouterBOARD 设备带有一块用于显示系统信息的 LCD 模块。要保护 LCD,请设置 PIN 码:

/lcd/pin/set pin-number=3659 hide-pin-number=yes

或者,你也可以完全禁用 LCD:

/lcd/set enabled=no