为提高Zabbix Web的安全性,7.0版本添加二步验证,增加了MFA(多因子认证),目前支持TOTP和 Duo Universal Prompt二种类型的MFA。

2025.10 山西省临汾市洪洞县·广胜寺

开启

功能开启

以使用TOTP配置MFA为例,点击用户认证,选择MFA 设置,点击添加。

配置用户

在Zabbix 7 中不能通过设置用户属性来添加MFA功能,需要配置MFA用户组来对用户添加功能。

验证

生成验证码

只有当退出当前用户,再次登录就可以看到验证码的QR界面。可以通过手机APP或者网页插件来实现验证码的生成

日常登录

排错

世事无常,把root密码忘掉是常有的事情,配置完成之后就搞丢MFA验证码的事也常有。常见的问题一个是遗忘MFA验证码,方法就是删除现有的totp_secret就可以;另外一个就是QR码的兼容性问题,这个需要修改加密方式。

相关数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# MFA验证方法
mysql> SELECT * FROM mfa;
+-------+------+-----------+---------------+-------------+--------------+----------+---------------+
| mfaid | type | name | hash_function | code_length | api_hostname | clientid | client_secret |
+-------+------+-----------+---------------+-------------+--------------+----------+---------------+
| 1 | 1 | MFA口令 | 2 | 6 | | | |
+-------+------+-----------+---------------+-------------+--------------+----------+---------------+
1 row in set (0.00 sec)

# MFA数据存储
mysql> select * from mfa_totp_secret ;
+-------------------+-------+--------+----------------------------------+--------+----------------+
| mfa_totp_secretid | mfaid | userid | totp_secret | status | used_codes |
+-------------------+-------+--------+----------------------------------+--------+----------------+
| 1 | 1 | 1 | EAJOVNJDD3PBLYOABBS6L4IR5T74GBXP | 1 | ,307828,645831 |
+-------------------+-------+--------+----------------------------------+--------+----------------+
1 row in set (0.00 sec)

加密方式的变更

1
2
3
4
# 将SHA-256变更为默认的SHA-1
mysql> update mfa set hash_function = 1 where name = 'MFA口令';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

清空已有验证码

1
2
3
# 删除已有MFA口令,重新生成验证码
mysql> delete from mfa_totp_secret where mfaid =1;
Query OK, 1 row affected (0.00 sec)