4 MFA
概述
多因素认证(MFA)可用于登录 Zabbix,提供比仅使用用户名和密码更高的安全层级。
使用 MFA,用户必须在 Zabbix 中存在,登录时必须提供 Zabbix 凭据,并且还必须通过其他手段证明其身份,通常是用户手机上认证器应用生成的代码。
多种 MFA 方法可供选择,允许用户选择最符合其安全需求和偏好的选项。 这些方法包括基于时间的一次性密码(TOTP)和 Duo Universal Prompt。
配置

配置参数:
| 参数 | 描述 |
|---|---|
| 启用多因素认证 | 勾选此框以启用多因素认证。 |
| 方法 | 点击 添加 来配置一个多因素认证方法(参见下面的 方法配置)。 |
方法配置

方法配置参数:
| Parameter | Description |
|---|---|
| Type | 选择 MFA 方法的类型: TOTP - 使用身份验证器应用生成基于时间的一次性密码; Duo Universal Prompt - 使用 Duo 身份验证服务提供多因素身份验证。 |
| Name | 输入一个名称,该名称将作为账户名称显示给身份验证器应用中的所有 MFA 用户(例如,“Zabbix”)。 |
| Hash function | 选择用于生成 TOTP 代码的哈希函数(SHA-1、SHA-256 或 SHA-512)。 如果 MFA 方法类型设置为 “TOTP”,则此参数可用。 请注意,选择 SHA-256 或 SHA-512 可能会显著限制兼容性,因为目前许多应用程序不支持这些函数。 |
| Code length | 选择验证码长度(6 或 8)。 如果 MFA 方法类型设置为 “TOTP”,则此参数可用。 |
| API hostname | 输入 Duo 身份验证服务提供的 API 主机名。 如果 MFA 方法类型设置为 “Duo Universal Prompt”,则此参数可用。 |
| Client ID | 输入 Duo 身份验证服务提供的客户端 ID。 如果 MFA 方法类型设置为 “Duo Universal Prompt”,则此参数可用。 |
| Client secret | 输入 Duo 身份验证服务提供的客户端密钥。 如果 MFA 方法类型设置为 “Duo Universal Prompt”,则此参数可用。 |
配置示例
本节提供了使用基于时间的一次性密码(TOTP)和Duo Universal Prompt配置MFA的示例。
TOTP
对于 TOTP,用户必须使用身份验证器应用验证其身份(例如 Google Authenticator 应用)。
1. 前往 Zabbix 中 用户 → 认证 下的 MFA 设置,并启用多因素认证。
2. 使用以下配置添加一个新的 MFA 方法:
- 类型:TOTP
- 名称:Zabbix TOTP
- 哈希函数:SHA-1
- 代码长度:6
3. 单击 添加 按钮,然后单击 更新 按钮。
4. 前往 用户 → 用户组,并使用以下配置创建一个新的用户组:
- 组名:TOTP 组
- 用户:Admin
- 多因素认证:默认(如果未将 “Zabbix TOTP” 设置为默认值,则选择 “Zabbix TOTP”)
5. 退出 Zabbix,然后使用您的凭据重新登录。 成功登录后,系统会提示您注册 MFA,并显示一个二维码和一个密钥。

6. 扫描二维码或将密钥输入到 Google Authenticator 应用中。 该应用将生成一个验证码,您应输入该验证码以完成登录过程。
7. 在后续登录时,从 Google Authenticator 应用获取验证码,并在登录过程中输入。
Duo Universal Prompt
对于 Duo Universal Prompt,用户必须使用 Duo Mobile 身份验证器应用验证其身份。
Duo Universal Prompt MFA 方法要求安装 php-curl 扩展,通过 HTTPS 访问 Zabbix,并允许向 Duo 服务器发起出站连接。 此外,如果您已在 Web 服务器上启用内容安全策略(CSP),请确保在虚拟主机配置文件的 CSP 指令中添加 "duo.com"。
1. 在 Duo Signup 注册一个免费的 Duo 管理员账户。
2. 打开 Duo 管理面板,前往 Applications → Protect an Application,搜索 Web SDK 应用程序,然后点击 Protect。
3. 记下在 Zabbix 中配置 MFA 方法所需的凭据(Client ID、Client secret、API hostname)。
4. 在 Zabbix 中前往 Users → Authentication 下的 MFA 设置,并启用多因素身份验证。
5. 使用以下配置添加一个新的 MFA 方法:
- 类型:Duo Universal Prompt
- 名称:Zabbix Duo
- API hostname:(使用 Duo 提供的 API hostname)
- Client ID:(使用 Duo 提供的 Client ID)
- Client secret:(使用 Duo 提供的 Client secret)
6. 点击 Add 按钮,然后点击 Update 按钮。
7. 前往 Users → User groups,并使用以下配置创建一个新的用户组:
- 组名:Duo group
- 用户:Admin
- 多因素身份验证:Default(如果未将其设为默认值,则选择“Zabbix Duo”)
8. 退出 Zabbix,然后使用您的凭据重新登录。 成功登录后,系统将提示您注册 MFA,并将您重定向到 Duo。 完成 Duo 设置,并使用手机上的 Duo 应用验证您的用户身份以登录。
9. 在后续登录时,使用 Duo 应用提供的相应 MFA 方法(例如获取验证码、响应推送通知或使用硬件密钥),并在登录过程中输入所需信息。