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 IDType ID值类型数据包类型描述
Framed-IP-Address0 (标准)8ip addressAccess-AcceptRFC2865 第 5.8 节
Framed-IP-Netmask0 (标准)9/ip/addressAccess-AcceptRFC2865 第 5.9 节
Session-Timeout0 (标准)27integer (最大值: 21474720)Access-Accept, Access-ChallengeRFC2865 第 5.27 节
Idle-Timeout0 (标准)28integerAccess-Accept, Access-ChallengeRFC2865 第 5.28 节
Tunnel-Type0 (标准)64值描述
值描述
1Point-to-Point Tunneling Protocol (PPTP)
2Layer Two Forwarding (L2F)
3Layer Two Tunneling Protocol (L2TP)
4Ascend Tunnel Management Protocol (ATMP)
5Virtual Tunneling Protocol (VTP)
6IP Authentication Header in the Tunnel-mode (AH)
7IP-in-IP Encapsulation (IP-IP)
8Minimal IP-in-IP Encapsulation (MIN-IP-IP)
9IP Encapsulating Security Payload in the Tunnel-mode (ESP)
10Generic Route Encapsulation (GRE)
11Bay Dial Virtual Services (DVS)
12IP-in-IP Tunneling
13Virtual LAN
Tunnel-Medium-Type0 (标准)65值描述
值描述
1IPv4(IP 版本 4)
2IPv6(IP 版本 6)
3NSAP
4HDLC(8 位多点)
5BBN 1822
6802(包括所有 802 介质以及 Ethernet "标准格式")
7E.163(POTS)
8E.164(SMDS、Frame Relay、ATM)
9F.69(Telex)
10X.121(X.25、Frame Relay)
11IPX
12Appletalk
13Decnet IV
14Banyan Vines
15E.164(带 NSAP 格式子地址)
Tunnel-Private-Group-ID0 (标准)81stringAccess-AcceptRFC2868 第 3.6 节
Framed-Pool0 (标准)88stringAccess-AcceptRFC2869 第 5.18 节
Framed-IPv6-Prefix0 (标准)97ipv6 prefixAccess-AcceptRFC3162 第 2.3 节
Framed-IPv6-Pool0 (标准)100stringAccess-AcceptRFC3162 第 2.6 节
Delegated-IPv6-Prefix0 (标准)123ipv6 prefixAccess-AcceptRFC4818
Framed-IPv6-Address0 (标准)168ip addressAccess-AcceptRFC6911 第 3.1 节
Mikrotik-Recv-Limit14988 (Mikrotik)1integerAccess-Accept客户端的接收总限制(字节)。
Mikrotik-Xmit-Limit14988 (Mikrotik)2integerAccess-Accept客户端的发送总限制(字节)。
Mikrotik-Group14988 (Mikrotik)3stringAccess-Accept本地用户的用户组。HotSpot 用户的 HotSpot 配置文件。PPP 用户的 PPP 配置文件。
Mikrotik-Wireless-Forward14988 (Mikrotik)4integerAccess-Accept如果此属性设置为 "0",则不会将客户端的帧转发回无线基础设施(仅限无线)。
Mikrotik-Wireless-Skip-Dot1x14988 (Mikrotik)5integerAccess-Accept如果设置为非零值,则禁用特定无线客户端的 802.1x 认证(仅限无线)。
Mikrotik-Wireless-Enc-Algo14988 (Mikrotik)6值描述
值描述
0无加密
140-bit-WEP
2104-bit-WEP
3AES-CCM
4TKIP
Mikrotik-Wireless-Enc-Key14988 (Mikrotik)7stringAccess-Accept客户端的 WEP 加密密钥(仅限无线)。
Mikrotik-Rate-Limit14988 (Mikrotik)8stringAccess-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-Realm14988 (Mikrotik)9stringAccess-Request如果在 /radius 菜单中设置,则会在每个 RADIUS 请求中作为 Mikrotik-Realm 属性包含。如果未设置,则发送与 MS-CHAP-Domain 属性相同的值(如果缺少 MS-CHAP-Domain,则也不包含 Realm)。
Mikrotik-Host-IP14988 (Mikrotik)10ip addressAccess-Request在 Universal Client 转换之前 HotSpot 客户端的 IP 地址(客户端的原始 IP 地址)。
Mikrotik-Mark-Id14988 (Mikrotik)11stringAccess-Accept防火墙 mangle 链名称(仅限 HotSpot)。MikroTik RADIUS 客户端在收到此属性后,会创建一条动态防火墙 mangle 规则,其 action=jump chain=hotspot,jump-target 等于该属性值。Mangle 链名称可以带有后缀 .in 或 .out,这样将仅为传入或传出流量安装该规则。可以提供多个 Mark-id 属性,但仅使用传入和传出的最后一个。
Mikrotik-Advertise-URL14988 (Mikrotik)12stringAccess-Accept应显示给客户端的广告页面 URL。如果指定了此属性,则会自动启用广告,包括透明代理,即使已在相应用户配置文件中显式禁用。RADIUS 服务器可以发送多个属性实例来指定其他 URL,这些 URL 以轮询方式选择。
Mikrotik-Advertise-Interval14988 (Mikrotik)13integerAccess-Accept两个相邻广告之间的时间间隔。RADIUS 服务器可以发送多个属性实例来指定其他间隔。所有间隔值被视为一个列表,并在每次成功显示广告时依次取用。如果到达列表末尾,则继续使用最后一个值。
Mikrotik-Recv-Limit-Gigawords14988 (Mikrotik)14integerAccess-Accept4G(2^32)字节的接收总限制(第 32..63 位,而第 0..31 位在 Mikrotik-Recv-Limit 中传递)。
Mikrotik-Xmit-Limit-Gigawords14988 (Mikrotik)15integerAccess-Accept4G(2^32)字节的发送总限制(第 32..63 位,而第 0..31 位在 Mikrotik-Xmit-Limit 中传递)。
Mikrotik-Wireless-PSK14988 (Mikrotik)16stringAccess-Accept
Mikrotik-Total-Limit14988 (Mikrotik)17integerAccess-Accept
Mikrotik-Total-Limit-Gigawords14988 (Mikrotik)18integerAccess-Accept
Mikrotik-Address-List14988 (Mikrotik)19stringAccess-Accept
Mikrotik-Wireless-MPKey14988 (Mikrotik)20stringAccess-Accept
Mikrotik-Wireless-Comment14988 (Mikrotik)21stringAccess-Accept
Mikrotik-Delegated-IPv6-Pool14988 (Mikrotik)22stringAccess-Accept用于前缀委派(Prefix Delegation)的 IPv6 池。
Mikrotik-DHCP-Option-Set14988 (Mikrotik)23stringAccess-Accept
Mikrotik-DHCP-Option-Param-STR114988 (Mikrotik)24stringAccess-Accept
Mikrotik-DHCP-Option-Param-STR214988 (Mikrotik)25stringAccess-Accept
Mikrotik-Wireless-VLANID14988 (Mikrotik)26integerAccess-Accept客户端的 VLAN ID(仅限无线)。
Mikrotik-Wireless-VLANIDtype14988 (Mikrotik)27值描述
值描述
0802.1q
1802.1ad
Mikrotik-Wireless-Minsignal14988 (Mikrotik)28stringAccess-Accept
Mikrotik-Wireless-Maxsignal14988 (Mikrotik)29stringAccess-Accept
Mikrotik-Switching-Filter14988 (Mikrotik)30stringAccess-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.gifPayPal 徽标图像。
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 秒更改一次,可从你最喜欢的应用中获取。