解决Zabbix6.2不支持sha-256和aes-256认证加密

管理网络设备,通常使用SNMP设置连接Zabbix来获取设备状态,一般使用的是SNMPv2c版本,如果是边界防火墙和核心交换机网络设备,就必须使用SNMPv3设置,如下两图:

要是觉得SNMPv2c也能监控,没必要使用SNMPv3,那就次打住。而使用SNMPv3监控,网络上文章基本是SHA认证算法+DES加密算法,一篇文章抄来抄去,你想使用这些算法,这些安全厂商也不会给你用这种算法,就像下面这个设备:

如果使用yum install net-snmp环境,使用zabbix添加SNMPv3主机后,会提示Unsupported authentication protocol [3]错误,那么就无法正常监控,而且使用cat命令查看netsnmp库文件,也没有对应算法输出,可以使用下面命令验证:

1
2
3
4
5
# 查看是否支持sha-256认证算法
cat /usr/lib64/libnetsnmp.so.31 | grep -ia sha-256

# 查看是否支持aes-256加密算法
cat /usr/lib64/libnetsnmp.so.31 | grep -ia aes-256

如果编译安装zabbix时是使用yum install net-snmp*,那么zabbix就不会支持更高的加密认证算法,边界防火墙又不支持旧的加密认证算法,那么使用SNMPv3监控就行不通。解决的思路就是重新编译zabbix,但别覆盖安装,特别是重新编译时,需要先编译最新openssl,然后编译net-snmp最新版时指定openssl,两个都编译安装成功,在把编译好的openssl和net-snmp指定路径,加到zabbix编译参数中,zabbix编译完成再把二进制可执行文件替换到zabbix安装目录下,重新启动zabbix就完成SNMPv3支持。