Zabbix数据加密传输

Zabbix版本从3.0之后,开始支持Zabbix server, Zabbix proxy, Zabbix agent, zabbix_sender and zabbix_get之间的通信加密,加密方式有预共享密钥(PSK)和证书加密。加密配置是可选项,一些proxies和agents可以使用证书认证加密通信,另外一些可以使用PSK加密通信,而剩余的可以不使用加密进行通信。

  • 在启动期间,rivate键以纯文本形式存储在Zabbix组件可读的文件中。
  • 预共享密钥在Zabbix前端输入,并以纯文本形式存储在Zabbix数据库中。
  • 内置加密不保护通信:
    1.在运行Zabbix前端和用户Web浏览器的Web服务器之间
    2.在Zabbix前端和Zabbix服务器之间
    3.Zabbix服务器(代理)和Zabbix数据库之间
  • 每个加密连接都打开一个完整的TLS握手,没有实现会话缓存和票证。
  • 添加加密会增加检查和操作的时间,具体取决于网络延迟。

  • 网络发现不支持加密。通过网络发现执行的Zabbix代理检查将是未加密的,如果Zabbix代理配置为拒绝未加密的连接,则此类检查将不会成功。

编译支持加密功能

要想支持加密功能,我们必须在编译安装的时候把加密库编译进Zabbix里面,编译的时候加上--with-openssl

./configure \
--prefix=/usr/local/zabbix \
--enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-openssl

使用共享密钥(PSK)加密

使用OpenSSL工具生成psk

# openssl rand -hex 32
af8ced32dfe8714e548694e2d29e1a14ba6fa13f216cb35c19d0feb1084b0429

配置zabbix的agent端
创建一个文件/etc/zabbix/zabbix_agentd.conf.d/zabbix_agentd.psk,存入刚刚生成的psk。然后编辑/etc/zabbix/zabbix_agentd.conf,添加如下内容。

TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/etc/zabbix/zabbix_agentd.conf.d/zabbix_agentd.psk    #定义zabbix_agentd.psk文件路径
TLSPSKIdentity=PSK 001    #定义预共享秘钥

配置好以上文件重启Server端和Agent端,最后使用zabbix_get测试

zabbix_get -s 127.0.0.1 -k "system.cpu.load[all,avg1]" --tls-connect=psk --tls-psk-identity="PSK 001" --tls-psk-file=/etc/zabbix/zabbix_agentd.conf.d/zabbix_agentd.psk

测试没问题后,开始在Web页面配置
Web页面配置

最后修改:2019 年 05 月 19 日
-