User Manager
RouterOS 中的 User Manager 为 DHCP、Hotspot 和 PPP 等服务提供集中式的 RADIUS 认证和授权,并支持多种认证方法。它包含用于隧道配置和会话管理的可自定义 RADIUS 属性,而许可级别会影响活动会话数量。
User Manager
概述
User Manager 是 RouterOS 中的一种 RADIUS 服务器实现,为特定服务提供集中式的用户认证和授权。拥有中央用户数据库可以更好地跟踪系统用户和客户。作为一个单独的软件包,User Manager 在除 SMIPS 之外的所有架构上都可用;但是,由于可用空间有限,必须谨慎使用。它支持多种不同的认证方法,包括 PAP、CHAP、MS-CHAP、MS-CHAPv2、EAP-TLS、EAP-TTLS 和 EAP-PEAP。在 RouterOS 中,DHCP、Dot1x、Hotspot、IPsec、PPP 和 Wireless 是从 User Manager 中获益最多的功能。每个用户都可以查看其账户统计信息,并使用 WEB 界面管理可用的配置文件。此外,用户可以使用最流行的支付网关 PayPal 购买自己的数据套餐(配置文件),这使其成为服务提供商的理想系统。可以生成自定义报告,以方便计费部门处理。User Manager 按照 RFC2865 和 RFC3579 中定义的 RADIUS 标准工作。
User Manager 是受 RouterOS 许可级别限制的 RouterOS 功能之一。根据 许可级别,活动会话数量将受到限制,包括每个用户的多个连接(并非唯一账户)。

属性
Sub-menu: /user-manager/attribute
RADIUS 属性是定义在 RADIUS 服务器和客户端之间传递的授权、信息和配置参数。User Manager 允许发送在 "attributes" 菜单中定义的自定义属性。RouterOS 已经预置了一组预定义属性,但如有必要也可以添加其他属性。预定义属性:
| 属性 | Vendor ID | Type ID | 值类型 | 数据包类型 | 描述 |
|---|---|---|---|---|---|
| Framed-IP-Address | 0 (标准) | 8 | ip address | Access-Accept | RFC2865 第 5.8 节 |
| Framed-IP-Netmask | 0 (标准) | 9 | /ip/address | Access-Accept | RFC2865 第 5.9 节 |
| Session-Timeout | 0 (标准) | 27 | integer (最大值: 21474720) | Access-Accept, Access-Challenge | RFC2865 第 5.27 节 |
| Idle-Timeout | 0 (标准) | 28 | integer | Access-Accept, Access-Challenge | RFC2865 第 5.28 节 |
| Tunnel-Type | 0 (标准) | 64 | 值 | 描述 | |
| 值 | 描述 | ||||
| 1 | Point-to-Point Tunneling Protocol (PPTP) | ||||
| 2 | Layer Two Forwarding (L2F) | ||||
| 3 | Layer Two Tunneling Protocol (L2TP) | ||||
| 4 | Ascend Tunnel Management Protocol (ATMP) | ||||
| 5 | Virtual Tunneling Protocol (VTP) | ||||
| 6 | IP Authentication Header in the Tunnel-mode (AH) | ||||
| 7 | IP-in-IP Encapsulation (IP-IP) | ||||
| 8 | Minimal IP-in-IP Encapsulation (MIN-IP-IP) | ||||
| 9 | IP Encapsulating Security Payload in the Tunnel-mode (ESP) | ||||
| 10 | Generic Route Encapsulation (GRE) | ||||
| 11 | Bay Dial Virtual Services (DVS) | ||||
| 12 | IP-in-IP Tunneling | ||||
| 13 | Virtual LAN | ||||
| Tunnel-Medium-Type | 0 (标准) | 65 | 值 | 描述 | |
| 值 | 描述 | ||||
| 1 | IPv4(IP 版本 4) | ||||
| 2 | IPv6(IP 版本 6) | ||||
| 3 | NSAP | ||||
| 4 | HDLC(8 位多点) | ||||
| 5 | BBN 1822 | ||||
| 6 | 802(包括所有 802 介质以及 Ethernet "标准格式") | ||||
| 7 | E.163(POTS) | ||||
| 8 | E.164(SMDS、Frame Relay、ATM) | ||||
| 9 | F.69(Telex) | ||||
| 10 | X.121(X.25、Frame Relay) | ||||
| 11 | IPX | ||||
| 12 | Appletalk | ||||
| 13 | Decnet IV | ||||
| 14 | Banyan Vines | ||||
| 15 | E.164(带 NSAP 格式子地址) | ||||
| Tunnel-Private-Group-ID | 0 (标准) | 81 | string | Access-Accept | RFC2868 第 3.6 节 |
| Framed-Pool | 0 (标准) | 88 | string | Access-Accept | RFC2869 第 5.18 节 |
| Framed-IPv6-Prefix | 0 (标准) | 97 | ipv6 prefix | Access-Accept | RFC3162 第 2.3 节 |
| Framed-IPv6-Pool | 0 (标准) | 100 | string | Access-Accept | RFC3162 第 2.6 节 |
| Delegated-IPv6-Prefix | 0 (标准) | 123 | ipv6 prefix | Access-Accept | RFC4818 |
| Framed-IPv6-Address | 0 (标准) | 168 | ip address | Access-Accept | RFC6911 第 3.1 节 |
| Mikrotik-Recv-Limit | 14988 (Mikrotik) | 1 | integer | Access-Accept | 客户端的接收总限制(字节)。 |
| Mikrotik-Xmit-Limit | 14988 (Mikrotik) | 2 | integer | Access-Accept | 客户端的发送总限制(字节)。 |
| Mikrotik-Group | 14988 (Mikrotik) | 3 | string | Access-Accept | 本地用户的用户组。HotSpot 用户的 HotSpot 配置文件。PPP 用户的 PPP 配置文件。 |
| Mikrotik-Wireless-Forward | 14988 (Mikrotik) | 4 | integer | Access-Accept | 如果此属性设置为 "0",则不会将客户端的帧转发回无线基础设施(仅限无线)。 |
| Mikrotik-Wireless-Skip-Dot1x | 14988 (Mikrotik) | 5 | integer | Access-Accept | 如果设置为非零值,则禁用特定无线客户端的 802.1x 认证(仅限无线)。 |
| Mikrotik-Wireless-Enc-Algo | 14988 (Mikrotik) | 6 | 值 | 描述 | |
| 值 | 描述 | ||||
| 0 | 无加密 | ||||
| 1 | 40-bit-WEP | ||||
| 2 | 104-bit-WEP | ||||
| 3 | AES-CCM | ||||
| 4 | TKIP | ||||
| Mikrotik-Wireless-Enc-Key | 14988 (Mikrotik) | 7 | string | Access-Accept | 客户端的 WEP 加密密钥(仅限无线)。 |
| Mikrotik-Rate-Limit | 14988 (Mikrotik) | 8 | string | Access-Accept | 客户端的速率限制。格式为:rx-rate[/tx-rate] [rx-burst-rate[/tx-burst-rate] [rx-burst-threshold[/tx-burst-threshold] [rx-burst-time[/tx-burst-time] [priority] [rx-rate-min[/tx-rate-min]]]](从路由器的角度而言,"rx" 是客户端上传,"tx" 是客户端下载)。所有速率都应为数字,可带可选后缀 'k'(1,000)或 'M'(1,000,000)。如果未指定 tx-rate,则 rx-rate 也用作 tx-rate。tx-burst-rate、tx-burst-threshold 和 tx-burst-time 同理。如果同时未指定 rx-burst-threshold 和 tx-burst-threshold(但指定了 burst-rate),则使用 rx-rate 和 tx-rate 作为突发阈值。如果同时未指定 rx-burst-time 和 tx-burst-time,则默认使用 1s。Priority 取值为 1..8,其中 1 表示最高优先级,8 表示最低优先级。如果未指定 rx-rate-min 和 tx-rate-min,则使用 rx-rate 和 tx-rate 值。rx-rate-min 和 tx-rate-min 的值不能超过 rx-rate 和 tx-rate 的值。 |
| Mikrotik-Realm | 14988 (Mikrotik) | 9 | string | Access-Request | 如果在 /radius 菜单中设置,则会在每个 RADIUS 请求中作为 Mikrotik-Realm 属性包含。如果未设置,则发送与 MS-CHAP-Domain 属性相同的值(如果缺少 MS-CHAP-Domain,则也不包含 Realm)。 |
| Mikrotik-Host-IP | 14988 (Mikrotik) | 10 | ip address | Access-Request | 在 Universal Client 转换之前 HotSpot 客户端的 IP 地址(客户端的原始 IP 地址)。 |
| Mikrotik-Mark-Id | 14988 (Mikrotik) | 11 | string | Access-Accept | 防火墙 mangle 链名称(仅限 HotSpot)。MikroTik RADIUS 客户端在收到此属性后,会创建一条动态防火墙 mangle 规则,其 action=jump chain=hotspot,jump-target 等于该属性值。Mangle 链名称可以带有后缀 .in 或 .out,这样将仅为传入或传出流量安装该规则。可以提供多个 Mark-id 属性,但仅使用传入和传出的最后一个。 |
| Mikrotik-Advertise-URL | 14988 (Mikrotik) | 12 | string | Access-Accept | 应显示给客户端的广告页面 URL。如果指定了此属性,则会自动启用广告,包括透明代理,即使已在相应用户配置文件中显式禁用。RADIUS 服务器可以发送多个属性实例来指定其他 URL,这些 URL 以轮询方式选择。 |
| Mikrotik-Advertise-Interval | 14988 (Mikrotik) | 13 | integer | Access-Accept | 两个相邻广告之间的时间间隔。RADIUS 服务器可以发送多个属性实例来指定其他间隔。所有间隔值被视为一个列表,并在每次成功显示广告时依次取用。如果到达列表末尾,则继续使用最后一个值。 |
| Mikrotik-Recv-Limit-Gigawords | 14988 (Mikrotik) | 14 | integer | Access-Accept | 4G(2^32)字节的接收总限制(第 32..63 位,而第 0..31 位在 Mikrotik-Recv-Limit 中传递)。 |
| Mikrotik-Xmit-Limit-Gigawords | 14988 (Mikrotik) | 15 | integer | Access-Accept | 4G(2^32)字节的发送总限制(第 32..63 位,而第 0..31 位在 Mikrotik-Xmit-Limit 中传递)。 |
| Mikrotik-Wireless-PSK | 14988 (Mikrotik) | 16 | string | Access-Accept | |
| Mikrotik-Total-Limit | 14988 (Mikrotik) | 17 | integer | Access-Accept | |
| Mikrotik-Total-Limit-Gigawords | 14988 (Mikrotik) | 18 | integer | Access-Accept | |
| Mikrotik-Address-List | 14988 (Mikrotik) | 19 | string | Access-Accept | |
| Mikrotik-Wireless-MPKey | 14988 (Mikrotik) | 20 | string | Access-Accept | |
| Mikrotik-Wireless-Comment | 14988 (Mikrotik) | 21 | string | Access-Accept | |
| Mikrotik-Delegated-IPv6-Pool | 14988 (Mikrotik) | 22 | string | Access-Accept | 用于前缀委派(Prefix Delegation)的 IPv6 池。 |
| Mikrotik-DHCP-Option-Set | 14988 (Mikrotik) | 23 | string | Access-Accept | |
| Mikrotik-DHCP-Option-Param-STR1 | 14988 (Mikrotik) | 24 | string | Access-Accept | |
| Mikrotik-DHCP-Option-Param-STR2 | 14988 (Mikrotik) | 25 | string | Access-Accept | |
| Mikrotik-Wireless-VLANID | 14988 (Mikrotik) | 26 | integer | Access-Accept | 客户端的 VLAN ID(仅限无线)。 |
| Mikrotik-Wireless-VLANIDtype | 14988 (Mikrotik) | 27 | 值 | 描述 | |
| 值 | 描述 | ||||
| 0 | 802.1q | ||||
| 1 | 802.1ad | ||||
| Mikrotik-Wireless-Minsignal | 14988 (Mikrotik) | 28 | string | Access-Accept | |
| Mikrotik-Wireless-Maxsignal | 14988 (Mikrotik) | 29 | string | Access-Accept | |
| Mikrotik-Switching-Filter | 14988 (Mikrotik) | 30 | string | Access-Accept | 允许在使用 dot1x 服务器认证客户端时创建动态交换规则。 |
属性
| 属性 | 描述 |
|---|---|
| name (string; 默认: ) | 属性名称。 |
| packet-types (string; 默认: access-accept) | access-accept - 在 RADIUS Access-Accept 消息中使用此属性access-challenge - 在 RADIUS Access-Challenge 消息中使用此属性 |
| type-id (integer:1..255; 默认: ) | 来自特定供应商属性数据库的属性标识号。 |
| value-type (string; 默认: ) | hexip-address - IPv4 或 IPv6 IP 地址ip6-prefix - IPv6 prefixmacrostringuint32 |
| vendor-id (integer; 默认: 0) | 由 IANA 分配的特定企业标识号。 |
数据库
Sub-menu: /user-manager/database
所有与 RADIUS 相关的信息都存储在单独的 User Manager 数据库中,可在 "database" 子菜单下配置。"Enabled" 和 "db-path" 是唯一不存储在 User Manager 数据库中、而是存储在主 RouterOS 配置表中的参数,这意味着这些参数会受到 RouterOS 配置重置的影响。其余配置、会话和付款数据存储在设备 FLASH 存储上的单独 SQLite 数据库中。对数据库执行任何操作时,建议在任何活动前后进行备份。
属性
| 属性 | 描述 |
|---|---|
| db-path (string; 默认: ) | 存储数据库文件的位置路径。 |
只读属性
| 属性 | 描述 |
|---|---|
| db-size | 数据库的当前大小。 |
| free-disk-space | 存储数据库的磁盘上的剩余可用空间。 |
命令
| 属性 | 描述 |
|---|---|
| load (name) | 恢复先前创建的 .umb 格式备份文件。 |
| migrate-legacy-db (database-path; overwrite) | 将旧版 User Manager(来自 RouterOS v6 或更早版本)转换为新标准。可以覆盖当前数据库。 |
| optimize-db () | |
| save (name; overwrite) | 保存 User Manager 数据库的当前状态。 |
限制
Sub-menu: /user-manager/limitation
Limitations 由 Profiles 使用,并通过 Profile-Limitations 链接在一起。必须启用 RADIUS 计费和 Interim 更新,才能在多个 limitations 之间无缝切换,或在达到 download-limit、upload-limit 或 uptime-limit 时断开活动会话。
要将已活动的会话从 User Manager 断开,必须在 RADIUS 客户端一侧将 accept 设置为 yes。如果并发会话限制不是无限制(shared-users)并且已达到允许的最大数量,则路由器将首先尝试断开较早的用户会话。
User-Manager 会在接受新用户之前尝试断开活动会话(在设置了相应限制的情况下)。因此在此类设置中,建议将 /radius/client/timeout 设置为 1s。
危险
RouterOS 中的 IPsec 服务不支持速率限制。
属性
| 属性 | 描述 |
|---|---|
| comment (string; 默认: ) | 限制的简短描述。 |
| download-limit (integer; 默认: 0) | 用户可下载的总流量(字节)。 |
| name (string; 默认: ) | 限制的唯一名称。 |
| rate-limit-burst-rx () | MT-Rate-Limit RADIUS 属性的一部分。请参阅 Queues#SimpleQueue。 |
| rate-limit-burst-threshold-rx () | MT-Rate-Limit RADIUS 属性的一部分。请参阅 Queues#SimpleQueue。 |
| rate-limit-burst-threshold-tx () | MT-Rate-Limit RADIUS 属性的一部分。请参阅 Queues#SimpleQueue。 |
| rate-limit-burst-time-rx () | MT-Rate-Limit RADIUS 属性的一部分。请参阅 Queues#SimpleQueue。 |
| rate-limit-burst-time-tx () | MT-Rate-Limit RADIUS 属性的一部分。请参阅 Queues#SimpleQueue。 |
| rate-limit-burst-tx () | MT-Rate-Limit RADIUS 属性的一部分。请参阅 Queues#SimpleQueue。 |
| rate-limit-min-rx () | MT-Rate-Limit RADIUS 属性的一部分。请参阅 Queues#SimpleQueue。 |
| rate-limit-min-tx () | MT-Rate-Limit RADIUS 属性的一部分。请参阅 Queues#SimpleQueue。 |
| rate-limit-priority () | MT-Rate-Limit RADIUS 属性的一部分。请参阅 Queues#SimpleQueue。 |
| rate-limit-rx () | MT-Rate-Limit RADIUS 属性的一部分。请参阅 Queues#SimpleQueue。 |
| rate-limit-tx () | MT-Rate-Limit RADIUS 属性的一部分。请参阅 Queues#SimpleQueue。 |
| reset-counters-interval (hourly | daily | weekly | monthly | disabled); 默认: disabled) | 从 reset-counters-start-time 开始计算的时间间隔,到期后清除所有关联的用户统计信息。 |
| reset-counters-start-time (datetime; 默认: ) | 用于计算 reset-counters-interval 的静态日期和时间值。 |
| transfer-limit (integer; 默认: 0) | 聚合(下载+上传)总流量(字节)。 |
| upload-limit (integer; 默认: 0) | 用户可上传的总流量(字节)。 |
| uptime-limit (time; 默认: 00:00:00) | 用户可保持活动的总运行时长。 |
付款
Sub-menu: /user-manager/payment
本节提供有关所有已收到付款的信息。
只读属性
| 属性 | 描述 |
|---|---|
| currency (string) | 交易中使用的货币。 |
| method (string) | 用于交易的服务(目前仅支持 PayPal)。 |
| price (decimal) | 用户支付的金额。 |
| profile (profile) | 用户购买的 profile 名称。 |
| trans-end (datetime) | 交易结束的日期和时间。 |
| trans-start (datetime) | 交易开始的日期和时间。 |
| trans-status (string) | 交易状态。可能的状态 - started、pending、approved、declined、error、timeout、aborted、user approved。只有 approved 才应视为完整交易。 |
| user (string; 默认: ) | 执行交易的用户的名称。 |
| user-message (string; 默认: ) |
配置文件
Sub-menu: /user-manager/profile
属性
| 属性 | 描述 |
|---|---|
| comment (string; 默认: ) | 条目的简短描述。 |
| name (string; 默认: ) | 配置文件的唯一名称。 |
| name-for-users (string; 默认: ) | 将在网页上向用户显示的配置文件名称。 |
| override-shared-users (decimal | off | unlimited; 默认: off) | 是否允许同一用户名有多个会话。这会覆盖 shared-users 设置。 |
| price (decimal; 默认: 0.00) | |
| starts-when (assigned | first-auth; 默认: assigned) | 配置文件变为活动状态的时间。Assigned - 在创建 User Profile 条目时立即生效。First-auth - 在来自用户的首次认证请求时生效。 |
| validity (time | unlimited; 默认: unlimited) | 用户可使用此配置文件的总时长。 |
Profile 限制
Sub-menu: /user-manager/profile-limitation
Profile-Limitations 表将 Limitations 和 Profiles 关联在一起,并定义其有效期。当为同一个 Profile 分配多个 Limitations 时,用户必须遵守所有 Limitations 才能建立会话。这允许创建更复杂的设置,例如单独的每月和每日带宽限制。
属性
| 属性 | 描述 |
|---|---|
| comment (string; 默认: ) | 条目的简短描述。 |
| from-time (time; 默认: 00:00:00) | 限制应开始的一天中的时间。 |
| limitation (limitation; 默认: ) | 已创建的 Limitation 的名称。 |
| profile (profile; 默认: ) | 已创建的 Profile 的名称。 |
| till-time (time; 默认: 23:59:59) | 限制应结束的一天中的时间。 |
| weekdays (day of week; 默认: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday) | 限制应处于活动状态的一周中的日期。 |
路由器
Sub-menu: /user-manager/router
在这里你可以定义可将 User Manager 用作 RADIUS 服务器的 NAS 设备。
属性
| 属性 | 描述 |
|---|---|
| coa-port (integer:1..65535; 默认: 3799) | CoA(Change of Authorization)通信的端口号。 |
| address (IP/IPv6**;** 默认: ) | RADIUS 客户端的 IP 地址。 |
| comment (string; 默认: ) | NAS 的简短描述。 |
| disabled (yes | no; 默认: no) | 控制该条目当前是否处于活动状态。 |
| name (string; 默认: ) | RADIUS 客户端的唯一名称。 |
| protocol(radsec| udp;默认 udp) | 与路由器一起使用的协议。 |
| shared-secret (string; 默认: ) 敏感 | 用于保护 RADIUS 服务器与 RADIUS 客户端之间的通信。 |
命令
| 属性 | 描述 |
|---|---|
| reset-counters () | 清除特定 RADIUS 客户端的所有统计信息。 |
会话
Sub-menu: /user-manager/session
只有在 NAS 上启用计费时才会记录会话。
只读属性
| 属性 | 描述 |
|---|---|
| acct-session-id (string) | 计费会话的唯一标识。 |
| active (yes | no) | 该会话当前是否被使用。 |
| calling-station-id (string) | 用户的标识符,通常是 IP 地址或 MAC 地址。 |
| download (Bytes) | 已下载的流量。 |
| ended (datetime) | 会话关闭的日期和时间。对于活动会话为空。 |
| last-accounting-packet (datetime) | 收到最后一次计费更新的日期和时间。 |
| nas-ip-address (IP address) | NAS 的 IP 地址。 |
| nas-port-id (string) | 正在认证用户的 NAS 端口标识符。 |
| nas-port-type (string) | 正在认证用户的端口类型(physical 或 virtual)。 |
| started (datetime) | 会话建立的日期和时间。 |
| status (list of statuses) | 会话可能的状态:start - 已收到计费消息 Start,stop - 已收到计费消息 Stop,interim - Interim update 已收到,close-acked - 会话成功关闭,expired. |
| terminate-cause (string) | 会话关闭的原因。 |
| upload (Bytes) | 已上传的流量。 |
| uptime (time) | 会话上记录的运行时长总和。 |
| user (string) | 用户的名称。 |
| user-address (IP address) | 提供给用户的 IP 地址。 |
设置
Sub-menu: /user-manager
属性
| 属性 | 描述 |
|---|---|
| accounting-port (integer; 默认: 1813) | 用于监听 RADIUS 计费请求的端口。 |
| authentication-port(integer; 默认: 1812) | 用于监听 RADIUS 认证请求的端口。 |
| certificate (certificate; 默认: ) | 证书存储中的证书,用于 EAP TLS 类型认证方法。 |
| enabled (yes | no; 默认: no) | 是否启用 User Manager 功能。 |
| radsec-certificate(certificate; 默认:) | 证书存储中的证书,用于 RadSec 协议。 |
| use-profiles(yes | no; 默认: no) | 是否使用 Profiles 和 Limitations。当设置为 no 时,运行 User Manager 仅需要 User 配置。 |
高级
Sub-menu: /user-manager/advanced
属性
| 属性 | 描述 |
|---|---|
| paypal-allow (yes | no; 默认: no) | 是否为 User Manager 启用 PayPal 功能。 |
| paypal-currency (string; 默认: USD) | 与 price 设置相关的货币,用户将以此货币计费。 |
| paypal-password (string; 默认: ) 敏感 | 你的 PayPal API 账户的密码。 |
| paypal-signature (string; 默认: ) | 你的 PayPal API 账户的签名。 |
| paypal-use-sandbox (yes | no; 默认: no) | 是否出于测试目的使用 PayPal 的沙盒环境。 |
| paypal-user (string; 默认: ) | 你的 PayPal API 账户的用户名。 |
| web-private-password (string; 默认: ) 敏感 | 通过 HTTP 访问 /um/PRIVATE/ 部分的密码。 |
| web-private-username (string; 默认: ) | 通过 HTTP 访问 /um/PRIVATE/ 部分的用户名。 |
用户
Sub-menu: /user-manager/user
属性
| 属性 | 描述 |
|---|---|
| attributes (array of attributes; 默认: ) | 自定义的 Attributes 集合及其值,它们会额外添加到 Access-Accept 消息中。 |
| caller-id(string; 默认: ) | 允许使用特定的 Calling-Station-Id 值对用户进行认证。 |
| comment (string; 默认: ) | 用户的简短描述。 |
| disabled (yes | no; 默认: no) | 控制该用户是否可以使用。 |
| group (group; 默认: default) | 该用户关联的 Group 名称。 |
| name (string; 默认: ) | 用于会话认证的用户名。 |
| otp-secret (string; 默认: ) 敏感 | 附加到密码上的一次性密码令牌。 |
| password (string; 默认: ) 敏感 | 用于会话认证的用户密码。 |
| shared-users (integer | unlimited; 默认: 1) | 该用户可同时建立的会话总数。 |
命令
| 属性 | 描述 |
|---|---|
| add-batch-users () | 该命令可以根据各种参数生成多个用户账户。 |
| generate-voucher () | 基于 voucher-template 生成一个文件,可将其呈现给最终用户。 |
| monitor () | 显示用户的总体统计信息。统计信息包括 total-uptime、total-download、total-upload、active-sessions、actual-profile、attributes-details。 |
用户组
Sub-menu: /user-manager/user/group
用户组定义多个用户的通用特征,例如允许的认证方法和 RADIUS 属性。User Manager 中已经有两个组,分别称为 default 和 default-anonymous。
属性
| 属性 | 描述 |
|---|---|
| attributes (array of attributes; 默认: ) | 自定义的 Attributes 集合及其值,它们会额外添加到该组中用户的 Access-Accept 消息中。 |
| comment (string; 默认: ) | 组的简短描述。 |
| inner-auths (list of auths; 默认: ) | 用于隧道(外部)认证方法的允许认证方法列表。支持的内层认证方法 - ttls-pap、ttls-chap、ttls-mschap1、ttls-mschap2、peap-mschap2。 |
| name (string; 默认: ) | 组的唯一名称。 |
| outer-auths (list of auths; 默认: ) | 允许的认证方法列表。支持的外层认证方法 - pap、chap、mschap1、mschap2、eap-tls、eap-ttls、eap-peap、eap-mschap2。 |
用户配置文件
Sub-menu: /user-manager/user-profile
此菜单为用户分配配置文件并跟踪配置文件的状态。单个用户可以分配多个配置文件;但是同一时间只能使用一个。当当前活动的配置文件过期时,用户会无缝切换到下一个配置文件,而不会中断用户的会话。
属性
| 属性 | 描述 |
|---|---|
| profile (profile; 默认: ) | 要分配给用户的配置文件名称。 |
| user(user; 默认: ) | 要使用特定配置文件的用户名称。 |
只读属性
| 属性 | 描述 |
|---|---|
| end-time (datetime) | User Profile 将过期的日期和时间。 |
| state (running active | running | used) | User Profile 的当前状态。Running active - 用户当前正在使用的配置文件。Running - 配置文件已准备好可使用。Used - 已过期且无法再激活的配置文件。 |
命令
| 属性 | 描述 |
|---|---|
| activate-user-profile () | 立即激活 User Profile 条目。 |
WEB 界面
每个用户都可以使用 WEB 界面访问其个人配置文件。可以通过在路由器的 IP 或域名后添加 "/um/" 目录来访问 WEB 界面,例如 http://example.com/um/。请注意,WEB 界面受 IP 服务 "www" 和 "www-ssl" 的影响。可以使用 CSS、JavaScript 和 HTML 自定义 WEB 界面。
可自定义文件参考
| 文件 | 描述 |
|---|---|
| css/login.css | 登录提示页面中使用的层叠样式表文件。 |
| css/user.css | 用户个人资料页面中使用的层叠样式表文件。 |
| img/PayPal_mark_37x23.gif | PayPal 徽标图像。 |
| img/ajax-loader.gif | 处理页面切换时显示的加载 gif。 |
| img/mikrotik_logo.png | 所有页面上显示的 MikroTik 徽标。 |
| js/generic.js | 所有页面上使用的 Javascript 文件。 |
| js/login.js | 登录提示页面中使用的 Javascript 文件。 |
| js/user.js | 用户个人资料页面中使用的 Javascript 文件。 |
| user/login_dynamic.html | 登录提示页面的布局。 |
| user/user_dynamic.html | 用户个人资料页面的布局。 |
应用指南
批量创建用户
可以创建多个具有随机生成的用户名和密码的新用户。例如,以下命令将生成 3 个新用户,用户名为 6 个小写符号,密码为 6 个小写字母、大写字母和数字。
/user-manager/user
add-batch-users number-of-users=3 password-characters=lowercase,numbers,uppercase password-length=6 username-characters=lowercase username-length=6
可以通过打印用户表来查看命令生成的用户:
/user-manager/user/print
Flags: X - disabled
0 name="olsgkl" password="86a6zH" otp-secret="" group=default shared-users=1 attributes=""
1 name="lkbwss" password="jaKY5V" otp-secret="" group=default shared-users=1 attributes=""
2 name="cwxbwu" password="a62yZd" otp-secret="" group=default shared-users=1 attributes=""
为 NAS 提供自定义 RADIUS 属性
可以在认证过程中发送附加 RADIUS 属性,以向 NAS 提供有关会话的自定义信息,例如应为请求方分配什么 IP 地址,或使用什么地址池进行地址分配。
为用户提供静态 IP 地址
要为最终用户分配静态 IP 地址,可以使用 Framed-IP-Address 属性。使用静态 IP 地址分配时,必须将 shared-sessions 设置为 1,以防止用户有多个并发会话但只有一个 IP 地址的情况。例如:
/user-manager/user
set [find name=username] shared-users=1 attributes=Framed-IP-Address:192.168.1.4
为一组用户指定地址池
我们可以将多个相似用户分组,并一次性为所有用户分配 RADIUS 属性。首先,创建一个新组:
/user-manager/user/group
add name=location1 outer-auths=chap,eap-mschap2,eap-peap,eap-tls,eap-ttls,mschap1,mschap2,pap \
inner-auths=peap-mschap2,ttls-chap,ttls-mschap1,ttls-mschap2,ttls-pap attributes=Framed-Pool:pool1
下一步是将用户分配到该组:
/user-manager/user
set [find name=username] group=location1
在这种情况下,认证时将向用户分配来自 pool1 的 IP 地址——请确保在 NAS 设备上创建了 pool1。
使用 TOTP(基于时间的一次性密码)进行用户认证
User Manager 支持在用户的密码字段中添加基于时间的认证令牌,该令牌每 30 秒重新生成一次。
危险
OTP 依赖于时钟,因此请确保时间设置配置正确。
TOTP 的工作方式是:在请求方(客户端)和认证服务器(User Manager)上有一个共享密钥。要在 RouterOS 上配置 TOTP,只需为用户设置 otp-secret。例如:
/user-manager/user
set [find name=username] password=mypass otp-secret=mysecret
要在请求方一侧计算 TOTP 令牌,可以使用许多广泛可用的应用程序,例如 Google Authenticator 或 https://totp.app/。将 mysecret 添加到 TOTP 令牌生成器将提供一个新的唯一 6 位代码,必须将其添加到用户密码中。

以下示例将接受用户在常用密码上加上计算出的 TOTP 令牌进行认证,直到生成新的 TOTP 令牌。
User-Name=username
User-Password=mypass620872
导出用户凭据
单个用户的可打印登录凭据
要生成单个用户的可打印凭证卡,只需使用 generate-voucher 命令。指定用户的 RouterOS ID 号,或使用 find 命令指定用户名。User Manager 的安装中已包含一个模板,可在设备的 Files 部分中找到。你可以根据需要自定义该模板。
/user-manager/user
generate-voucher voucher-template=printable_vouchers.html [find where name=username]
通过使用 WEB 浏览器访问路由器并导航到 /um/PRIVATE/GENERATED/vouchers/gen_printable_vouchers.html,即可获取生成的凭证卡
默认情况下,可打印卡片如下所示:

警告
要通过 WEB 浏览器访问 /um/ 目录的 PRIVATE 路径,必须配置 private-username 和 private-password。请参阅 Settings 部分。
生成凭证时可以使用不同的变量。目前支持的变量有:
$(username) - 表示 User Manager 用户名
$(password) - 用户名的密码
$(userprofname) - 该特定用户当前活动的配置文件
$(userprofendtime) - 配置文件的失效结束时间(如果指定)
多个用户凭据导出
通过使用 export.xml 或 export.csv 作为 voucher-template,可以一次生成包含多个或所有用户凭据的 CSV 或 XML 文件。
/user-manager/user
generate-voucher voucher-template=export.xml [find]
该命令会生成一个 XML 文件 um5files/PRIVATE/GENERATED/vouchers/gen_export.xml,可以通过 WEB 浏览器或任何其他文件访问工具访问。
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user>
<username>olsgkl</username>
<password>86a6zH</password>
</user>
<user>
<username>lkbwss</username>
<password>jaKY5V</password>
</user>
<user>
<username>cwxbwu</username>
<password>a62yZd</password>
</user>
<user>
<username>username</username>
<password>secretpassword</password>
</user>
</users>
生成使用报告
在公司计费或法务团队需要可呈现的网络使用信息的情况下,可以使用 generate-report 命令创建自动化的会话导出。该命令需要输入报告模板——模板示例位于 um5files/PRIVATE/TEMPLATES/reports/report_default.html。报告生成示例:
/user-manager
generate-report report-template=report_default.html columns=username,uptime,download,upload
通过使用 WEB 浏览器访问路由器并导航到 /um/PRIVATE/GENERATED/reports/gen_report_default.html,即可获取生成的报告

购买配置文件
通过 WEB 浏览器访问路由器的 /um/ 目录(例如 http://example.com/um/)登录用户的私人配置文件后,他将能够在相应菜单中看到所有可用的 Profiles。指定了 price 值的配置文件将显示 Buy this Profile 按钮。

按下 Buy this Profile 按钮后,系统会要求用户从可用的交易服务提供商中选择(目前仅提供 PayPal),随后用户会被重定向到 PayPal 的支付处理页面。

付款完成后,User Manager 将请求 PayPal 批准交易。批准后,配置文件将分配给该用户并可供使用。
从 RouterOS v6 迁移
当你将 User Manager 路由器从 RouterOS v6 升级到 v7 时,新的 User Manager 将使用新的数据库文件和配置。要继续使用旧的用户、路由器、配置文件等配置,你必须手动执行 migrate 命令。为此,你必须拥有旧 User Manager 服务器文件夹 "user-manager" 中的文件。该文件夹可以重命名,但必须将旧安装中的所有内容传输到新的 v7 安装中(你可以将旧配置从一台路由器移动到另一台运行 v7 的路由器,但必须复制 "user-manager" 文件夹)。之后,你只需执行以下命令 - /user-manager/database/migrate-legacy-db database-path=<path_to_old_user_manager_folder>。
导入过程将尝试转换以下配置 - users、profiles、user-profiles、limitations、profile-limitations、user-counters、routers 和 sessions。
应用示例
使用 User Manager 认证的基本 L2TP/IPsec 服务器

User Manager 配置
首先启用 User Manager 功能。
/user-manager
set enabled=yes
允许从 localhost(路由器本身)接收 RADIUS 请求。
/user-manager/router
add address=127.0.0.1 comment=localhost name=local shared-secret=test
接下来,添加客户端用于向服务器认证的用户及其凭据。
/user-manager/user
add name=user1 password=password
配置 RADIUS 客户端
要使路由器使用 RADIUS 服务器进行用户认证,需要添加一个新的 RADIUS 客户端,其共享密钥与我们已在 User Manager 上配置的相同。
/radius
add address=127.0.0.1 secret=test service=ipsec
L2TP/IPsec 服务器配置
配置 IP 池(将从中向用户分配 IP 地址),并将其分配到 PPP Profile。
/ip/pool
add name=vpn-pool range=192.168.99.2-192.168.99.100
/ppp/profile
set default-encryption local-address=192.168.99.1 remote-address=vpn-pool
启用 RADIUS 用于 PPP 认证。
/ppp/aaa
set use-radius=yes
启用带 IPsec 加密的 L2TP 服务器。
/interface/l2tp-server/server
set enabled=yes use-ipsec=required ipsec-secret=mySecret
就是这样。你的路由器现在已准备好接受 L2TP/IPsec 连接,并通过内部 User Manager 对它们进行认证。
RouterOS 用户登录的双因素认证(MFA/2FA)
由于 User-Manager 支持 TOTP(基于时间的一次性密码),因此可以为不同服务设置所谓的 MFA 认证。这里我们将研究通过 User Manager(radius)进行 RouterOS 用户认证,并使用每 30 秒更改一次的基于时间的密码。
以下是你的 MikroTik 路由器上必要的配置选项。
为 /user 菜单启用 RADIUS,并从 /user/group 菜单设置 default-group。请记住,会首先检查本地 /user 数据库,然后再联系 RADIUS。
/user/aaa/set use-radius=yes default-group=full
为登录服务启用 radius 客户端。由于我们在同一台路由器上运行 User Manager,因此使用 127.0.0.1,
/radius/add address=127.0.0.1 service=login secret=mystrongsecret
以下是 User Manager 的配置步骤,
确保已将你的受管设备添加到 "Routers" 菜单,
/user-manager/router/add name=myrouter address=127.0.0.1 shared-secret=mystrongsecret
向 User-Manager user 表中添加一个带 OTP secret 参数的用户。要正确配置 OTP 还需要几个步骤。
选择一个 OTP-secret 名称并将其转换为 base32 格式(有很多在线转换器可将 utf-8 转换为 base32 格式)。对于我的配置,我使用 "mysupersecret",其 base32 表示为 NV4XG5LQMVZHGZLDOJSXI===
/user-manager/user/add name=mikrotik password=mysuperpassword otp-secret="NV4XG5LQMVZHGZLDOJSXI==="
请注意,在你最喜欢的认证器应用中,添加新的时间密码实例时,你需要手动为用户设置此密钥 "NV4XG5LQMVZHGZLDOJSXI==="。
要登录你的 MikroTik 设备,请打开 Winbox/Console 并连接到你的路由器地址,然后使用 login:mikrotik 和 password:mysuperpasswordxxxxxx,其中 xxxxxx 是你最喜欢的认证应用中的 6 位代码。
密码每 30 秒更改一次,可从你最喜欢的应用中获取。
