Device mode
device-mode 功能可限制对路由器的访问并限制配置选项以增强安全性,根据设备类型和 RouterOS 版本提供 advanced、home、basic 或 ros 模式。更改需要物理确认(通过断电循环或按下按钮),更新尝试次数有限,以防止未经授权的模式更改。
设备模式
device-mode 是一项对设备设置特定限制,或限制对特定配置选项访问的功能。它有助于保护您的路由器和网络,防止攻击者获得未授权访问并将其用作攻击其他网络的网关。
可用的 device-mode 有 advanced、home、basic 和 rose。device-mode 配置在路由器出厂时预装(适用于 MikroTik RouterOS v7.17 或更高版本的设备)。Advanced(以前称为 enterprise)模式为 CCR 和 1100 系列设备配置,home 模式为家用路由器配置,basic 模式为任何其他类型的设备配置。对于运行 RouterOS 7.17 之前版本的设备,所有设备都使用 advanced/enterprise 模式。
device-mode 从 /system/device-mode 菜单进行配置。
[admin@MikroTik] > /system/device-mode/print
mode: advanced
allowed-versions: 7.13+,6.49.8+
flagged: no
flagging-enabled: yes
scheduler: yes
socks: yes
fetch: yes
pptp: yes
l2tp: yes
bandwidth-test: yes
traffic-gen: no
sniffer: yes
ipsec: yes
romon: yes
proxy: yes
hotspot: yes
smb: yes
email: yes
zerotier: yes
container: no
install-any-version: no
partitions: no
routerboard: yes
attempt-count: 0
device-mode 参数可由授权的 RouterOS 用户更改,但需要物理访问设备才能批准更改。 更改 device-mode 后,您需要通过按下设备本身的按钮来确认,或执行"冷重启"——即拔掉电源。更改确认后,无论采用哪种确认方式,设备都将重启。
更改 device-mode
可以使用 update 命令更改可用模式或特定功能。
例如,将模式更改为 home:
[admin@MikroTik] > /system/device-mode/update mode=home
update: please activate by turning power off or pressing reset or mode button
in 5m00s
-- [Q quit|D dump|C-z pause]
如果在指定时间内未执行断电或按下按钮,模式更改将被取消。如果同时运行另一个 update 命令,两者都会被取消。
危险
有一些 EOL 产品不会通过按下 reset 按钮来确认模式更改。这些路由器只能通过断电重启来确认模式更改。 为了保护设备免受可能悄悄获得路由器访问权限、用某些脚本滥用它并试图等到您重启路由器而您甚至不知道当时正在接受某个入侵者请求的更改的攻击者,您只能更新模式三次。一个计数器会跟踪进行了多少次更新尝试,并且不允许更多更新。只有当管理员在模式设置更新尝试时看到警告后进行断电重启或按下按钮(与接受任何更新相同)时,此计数器才会重置。
[admin@MikroTik] > /system/device-mode/update container=yes
update: too many unsuccessful attempts, turn off power or reboot by pressing reset or mode button in 4m55s to reset attempt-count
如果 update 命令指定了任何模式参数,则此更新将替换整个 device-mode 配置。在这种情况下,所有按功能设置都将丢失,除非在此命令中指定。例如:
[admin@MikroTik] > /system/device-mode/update mode=home email=yes fetch=yes
[admin@MikroTik] > /system/device-mode/print config
mode: home
fetch: yes
email: yes
[admin@MikroTik] > /system/device-mode/update mode=advanced sniffer=no
-- reboot --
[admin@MikroTik] > /system/device-mode/print config
mode: advanced
sniffer: no
我们看到 fetch = yes 和 email = yes 缺失了,因为它们被模式更改覆盖了。但是,仅指定按功能设置将只更改这些:
[admin@MikroTik] > /system/device-mode/update hotspot=no
-- reboot --
[admin@MikroTik] > /system/device-mode/print config
mode: advanced
sniffer: no
hotspot: no
如果功能被禁用,交互式命令会显示错误消息:
[admin@MikroTik] > /system/device-mode/print config
mode: advanced
sniffer: no
hotspot: no
[admin@MikroTik] > /tool/sniffer/quick
failure: not allowed by device-mode
但是,可以向已禁用的功能添加配置,但会有一个注释显示 device-mode 中禁用的功能:
[admin@MikroTik] > /ip/hotspot/add interface=ether1
[admin@MikroTik] > /ip/hotspot/print
Flags: X, S - HTTPS
Columns: NAME, INTERFACE, PROFILE, IDLE-TIMEOUT
# NAME INTERFACE PROFILE IDLE-TIMEOUT
;;; inactivated, not allowed by device-mode
0 X hotspot1 ether1 default 5m
使用 Netinstall 或 FlashFig 更改 device-mode 设置
从 RouterOS 7.22 开始,可以配置 device-mode 和 protected-routerboot 以及其他设置。
有关更多信息,请参阅 Netinstall 和 FlashFig 文档。
可用的 device-mode 模式
有四种可用于配置的设备模式(advanced 是默认模式),每种模式都有一组在使用时不允许的功能子集。没有一种模式启用所有功能——即使启用了 advanced 模式,某些功能也需要启用。ROSE device-mode 与 advanced 模式非常相似,但它是为 RDS 及类似设备设计的,具有更广泛的磁盘使用选项,出厂即支持容器安装。有关每个功能控制内容的更多详细信息,请参阅下表。如下表所示,traffic-gen、container、partitions 和 routerboard 功能始终禁用,除非管理员用户特别启用。
| 功能 / 属性 | 操作/不可用菜单 | Home | Basic | Advanced | ROSE |
|---|---|---|---|---|---|
| 带宽测试 | /tool/bandwidth-test, /tool/bandwidth-server, /tool/speed-test | 否 | 否 | 是 | 是 |
| 容器 | 所有容器功能。 | 否 | 否 | 否 | 是 |
| 电子邮件 | /tool/e-mail | 否 | 是 | 是 | 是 |
| Fetch | /tool/fetch | 否 | 是 | 是 | 是 |
| 热点 | /ip/hotspot | 否 | 否 | 是 | 是 |
| 安装任意版本 | RouterOS 将不再允许安装低于 allowed-versions 列表的版本。 | 否 | 否 | 否 | 否 |
| IPsec | /ip/ipsec | 是 | 是 | 是 | 是 |
| L2TP | /interface/l2tp-server, /interface/l2tp-client | 是 | 是 | 是 | 是 |
| 分区 | /partitions — 不允许更改分区数量。如果您的路由器无法启动,它仍然能够启动到您的其他分区。崩溃恢复没有限制。 | 否 | 否 | 否 | 否 |
| PPTP | /interface/pptp-server, /interface/pptp-client | 是 | 是 | 是 | 是 |
| 代理 | /ip/proxy | 否 | 否 | 是 | 是 |
| RoMon | /tool/romon | 否 | 是 | 是 | 是 |
| Routerboard 设置 | /system/routerboard/settings(自动升级选项除外) | 否 | 否 | 否 | 否 |
| 调度器 | /system/scheduler | 否 | 是 | 是 | 是 |
| SMB | /ip/smb | 是 | 是 | 是 | 是 |
| Sniffer | /tool/sniffer | 否 | 是 | 是 | 是 |
| SOCKS 代理 | /ip/socks | 否 | 否 | 是 | 是 |
| 流量生成器 | /tool/traffic-generator, /tool/flood-ping, /tool/ping-speed | 否 | 否 | 否 | 否 |
| ZeroTier | /zerotier | 否 | 否 | 是 | 是 |
可以对可用功能进行更具体的控制。device-mode 控制的每个功能都可以单独打开或关闭。
例如,scheduler 将不允许在 /system/scheduler 中执行任何操作。所使用的 device-mode 会禁用所有列出的功能。例如,如果使用 mode=home,但您的设置需要 zerotier,则需要执行 device-mode 更新 /system/device-mode/update zerotier=yes,并物理访问设备以按下按钮或断电。
允许的版本
设备模式在其参数中列出一个名为 allowed-versions 的参数。这是一个 MikroTik 认为安全、且不包含攻击者可利用的严重漏洞的版本列表。
此设置不依赖于已安装的 RouterOS 版本,而是作为单独的保护层工作,以防止攻击者逐步降级版本以达到已知存在漏洞的 RouterOS 版本。当您将 RouterOS 升级到提供更新 allowed-versions 列表的版本时,最旧的列表将被覆盖。如果您降级 RouterOS,allowed-versions 列表不会改变,并将保持更新为最新列表。如果启用了 device-mode 的 install-any-version,则忽略此列表。
标记状态
除了 device-mode 功能外,RouterOS 还可以在系统启动时分析整个配置,以确定是否存在对路由器进行未授权访问的迹象。如果检测到可疑配置,它将被禁用,并且 flagged 参数将设置为 yes。设备现在处于标记状态,并强制执行某些限制。
[admin@MikroTik] > /system/device-mode/print
mode: advanced
flagged: yes
...
如果系统处于此标记状态,当前配置可以工作,但无法执行以下操作:
- bandwidth-test、traffic-generator 和 sniffer
- 为以下对象启用或创建新条目的配置操作(仍可以禁用或删除它们):system scheduler、SOCKS proxy、PPTP、L2TP、IPsec、proxy 和 SMB。
当路由器处于标记状态时执行上述操作,您将收到错误消息:
[admin@MikroTik] > /tool/sniffer/quick
failure: configuration flagged, check all router configuration for unauthorized changes and update device-mode
[admin@MikroTik] > /int l2tp-client/add connect-to=1.1.1.1 user=user
failure: configuration flagged, check all router configuration for unauthorized changes and update device-mode
要退出标记状态,您必须执行命令 /system/device-mode/update flagged=no。系统将要求您按下按钮,或执行硬重启(物理断电或对虚拟机执行硬重启)。
重要! 尽管系统已禁用任何触发标记状态的恶意规则,但在退出标记状态之前,务必检查所有配置中是否有其他未知内容。如果您的系统已被标记,请假定您的系统已被入侵,并在重新启用系统使用之前对所有设置进行全面审计。完成审计后,更改所有系统密码并升级到最新的 RouterOS 版本。
警告
从 RouterOS 7.17 版本开始,device-mode 限制双启动设备的 SwOS/RouterOS 切换。要启用它:
/system/device-mode/updaterouterboard=yes