Enterprise wireless security with User Manager v5
本指南说明如何将 MikroTik RouterOS User Manager v5 配置为企业无线网络的认证服务器,涵盖安装、为 PEAP 和 EAP-TLS 等安全 EAP 方法生成 TLS 证书,以及为接入点设置基于证书的认证。
Enterprise wireless security with User Manager v5
User Manager version 5(适用于 RouterOS v7)支持通过 Extensible Authentication Protocol (EAP) 进行用户认证。
本指南将说明将 User Manager v5 配置为 MikroTik 无线接入点的认证服务器所需的步骤,并向用户提供 PEAP 和 EAP-TLS 认证方法。
本指南假设有一台运行 User Manager 的独立设备,网络地址为 10.0.0.10,以及 2 个 Access Point——一个在 10.0.0.11,另一个在 10.0.0.12。
Installing User Manager
User Manager v5 可以在 RouterOS v7 最新版本的 'Extra packages' 归档中找到。
下载适用于相应 CPU 架构的归档,解压它,将 User Manager 软件包上传到路由器并重启它。
Generating TLS certificates
使用安全 EAP 方法时,客户端设备(supplicant)在向其发送自身凭据之前会验证认证服务器的身份。
为此,认证服务器需要一张 TLS 证书。
此证书应:
- 有效并由客户端设备信任的证书颁发机构签名。
- 在 Common Name (CN) 和 Subject Alt Name 字段中具有完全限定域名。
- 具有 Extended Key Usage 属性,表明它被授权用于认证 TLS 服务器。
- 有效期不超过 825 天。
EAP-TLS 方法要求客户端设备具有 TLS 证书(而不是密码)。
要被 User Manager 视为有效,客户端证书必须:
- 有效并由运行 User Manager 的设备所信任的机构签名
- 在 Subject Alt Name (SAN) 字段中具有用户名。为了向后兼容,您也可以将其添加到 CN 字段中。更多信息请参见:https://datatracker.ietf.org/doc/html/rfc5216#section-5.2
最后,WPA3 企业规范包含一个额外的安全模式,提供 192 位加密安全。
此模式要求使用带有以下证书的 EAP-TLS:
- 使用 P-384 椭圆曲线密钥或长度至少为 3072 位的 RSA 密钥。
- 使用 SHA384 作为摘要(哈希)算法。
为简洁起见(并展示更多 RouterOS 的能力),本指南将展示如何在运行 User Manager 的设备上生成所有证书,但在大规模企业环境中,认证服务器和客户端设备会各自在本地生成私钥和证书签名请求,然后将 CSR 上传到证书颁发机构进行签名。
在运行 User Manager 的设备上执行的命令:
# Generating a Certificate Authority
/certificate
add name=radius-ca common-name="RADIUS CA" key-size=secp384r1 digest-algorithm=sha384 days-valid=1825 key-usage=key-cert-sign,crl-sign
sign radius-ca ca-crl-host=radius.mikrotik.test
# Generating a server certificate for User Manager
add name=userman-cert common-name=radius.mikrotik.test subject-alt-name=DNS:radius.mikrotik.test key-size=secp384r1 digest-algorithm=sha384 days-valid=800 key-usage=tls-server
sign userman-cert ca=radius-ca
# Generating a client certificate
add name=maija-client-cert common-name=maija@mikrotik.test subject-alt-name=email:maija@mikrotik.test key-usage=tls-client days-valid=800 key-size=secp384r1 digest-algorithm=sha384
sign maija-client-cert ca=radius-ca
# Exporting the public key of the CA as well as the generated client private key and certificate for distribution to client devices
export-certificate radius-ca file-name=radius-ca
# A passphrase is needed for the export to include the private key
export-certificate maija-client-cert type=pkcs12 export-passphrase="true zebra capacitor ziptie"
Configuring User Manager
在运行 User Manager 的设备上执行的命令:
# Enabling User Manager and specifying, which certificate to use
/user-manager
set enabled=yes certificate=userman-cert
# Enabling CRL checking to avoid accepting revoked user certificates
/certificate/settings
set crl-download=yes crl-use=yes
# Adding access points
/user-manager/router
add name=ap1 address=10.0.0.11 shared-secret="Use a secure password generator for this"
add name=ap2 address=10.0.0.12 shared-secret="Use a secure password generator for this too"
# Limiting allowed authentication methods
/user-manager/user/group
set [find where name=default] outer-auths=eap-tls,eap-peap
add name=certificate-authenticated outer-auths=eap-tls
# Adding users
/user-manager/user
add name=maija@mikrotik.test group=certificate-authenticated
add name=paija@mikrotik.test group=default password="right mule accumulator nail"
信息
使用 CAPsMAN 控制器配置 AP 时,您可以使用下面所示的完全相同配置来配置 CAP。只需使用 SSID + wpa2-eap/wpa3-eap 认证类型配置 CAP 即可。
使用 CAPsMAN 时,CAPsMAN 应作为/radius客户端(而不是下面独立设置示例中所示的 AP)。
Configuring access points
AP running regular wireless package
在 ap1 上执行的命令:
# Configuring radius client
/radius
add address=10.0.0.10 secret="Use a secure password generator for this" service=wireless timeout=1s
/radius/incoming
set accept=yes
# Adding a security profile and applying it to wireless interfaces
/interface/wireless/security-profile
add name=radius mode=dynamic-keys authentication-types=wpa2-eap
/interface/wireless
set [find] security-profile=radius
AP running wifi-qcom package
在 ap2 上执行的命令:
# Configuring radius client
/radius
add address=10.0.0.10 secret="Use a secure password generator for this too" service=wireless timeout=1s
/radius/incoming
set accept=yes
# Configuring enabled authentication types. Can also be done via a security profile, but note that interface properties, if specified, override profile properties
/interface/wifi/set [find] security.authentication-types=wpa2-eap,wpa3-eap
wifi-qcom AP 也可以配置为使用额外的安全 wpa3-eap-192 模式,但请注意,它要求所有客户端设备都支持 GCMP-256 密码并使用 EAP-TLS 认证。
Notes on client device configuration
Windows
在 Windows 中手动安装 CA 时,请确保明确将其放入 'Trusted Root Certification Authorities' 证书存储中。它不会被自动放置在那里。
Android
连接到使用 EAP 认证的网络时,Android 设备会要求用户指定一个 'domain'。这指的是 RADIUS 服务器 TLS 证书中包含的主机名的预期域(在我们的示例中为 'mikrotik.test')。
默认情况下,Android 设备使用其内置的根 CA 列表来验证 RADIUS 服务器的证书。使用您自己的 CA 时,需要在相应的下拉菜单中选择它。
iOS
Apple iOS 似乎实际上并不信任手动导入的 CA 来认证 RADIUS 服务器。除非该 CA 是使用 Apple 专有的 'Configurator' 实用工具或经批准的第三方 MDM 工具导入的,否则服务器证书会被标记为 'Not Trusted'。