Zabbix 实现Server和windows的Agent通信加密

理论知识请看zabbix官方文档:

https://www.zabbix.com/documentation/4.0/zh/manual/encryption

本次实验,使用OpenSSL进行加密。

1.编译Zabbix支持加密

Zabbix使用TransportLayerSecurity (TLS) protocol v1.2进行加密,为了让Zabbix支持加密功能,在源码编译安装时必须要链接到下面三个加密库中的其中一个。

mbed TLS:早期也叫PolarSSL,目前仅支持1.3.x版本。注意不支持2.x版本。

GnuTLS:支持v3.1.18及更高的版本。

OpenSSL:支持v1.0.1及更高的版本。

根据你的选择,configure脚本可以使用下面的某个选项:

--with-mbedtls[=DIR]

--with-gnutls[=DIR]

--with-openssl[=DIR]

例如:

./configure--enable-server --enable-agent--with-mysql --enable-ipv6 --with-net-snmp--with-libcurl --with-libxml2--with-openssl

在编译安装Zabbix的不同组件时可以使用不同的加密库,例如server使用OpenSSL,agent使用GnuTLS。建议使用OpenSSL,在实际测试中OpenSSL是最快的,接下来是GnuTLS。

如果你使用安装包安装Zabbix组件时,默认已经支持加密功能。你可以通过查看日志文件确定Zabbix安装的功能特性。例如下面是Zabbixserver启动时显示的特性列表。

vi/var/log/zabbix/zabbix_server.log

1065:20150817:103017.520** Enabled features **

1065:20150817:103017.520 SNMP monitoring: YES

1065:20150817:103017.520 IPMI monitoring: YES

1065:20150817:103017.520 Webmonitoring: YES

1065:20150817:103017.520 VMware monitoring: YES

1065:20150817:103017.520 SMTP authentication: YES

1065:20150817:103017.520 Jabber notifications: YES

1065:20150817:103017.520 EzTexting notifications: YES

1065:20150817:103017.520 ODBC: YES

1065:20150817:103017.520 SSH2 support: YES

1065:20150817:103017.520 IPv6 support: YES

1065:20150817:103017.520 TLSsupport: YES

1065:20150817:103017.520**

2.生成PSK

执行以下命令生成PSK:

openssl rand -hex 32
[技术干货] Zabbix 实现Server和windows的Agent通信加密

临时保存此字符串,稍后会用到。

3.下载使用openssl编译过的windows agent包

[技术干货] Zabbix 实现Server和windows的Agent通信加密

官方下载地址:https://www.zabbix.com/cn/download_agents#tab:30LTS

4.给windows 安装该agent

在C:\Program Files\目录下新建一个名为ZABBIX_AGENT3的文件夹,然后把下载的agent包解压到该目录下,结果如下:
[技术干货] Zabbix 实现Server和windows的Agent通信加密

打开CMD,执行命令:

cd "C:\ProgramFiles\ZABBIX_AGENT3\bin"

zabbix_agentd.exe -i -c "C:\ProgramFiles\ZABBIX_AGENT3\conf\zabbix_agentd.conf"
[技术干货] Zabbix 实现Server和windows的Agent通信加密

5.修改agent配置文件

用记事本打开C:\Program Files\ZABBIX_AGENT3\conf目录下的配置文件

修改Server=127.0.0.1 为Server=(zabbix服务器的IP地址)

修改ServerActive=127.0.0.1 为ServerActive=(zabbix服务器的IP地址)

修改# ListenPort=10050 为 ListenPort=10050 (取消注释)

修改Hostname=Windows host 为Hostname=WIN7-47 (主机名字可自定义)

文件最后增加以下4行:

TLSConnect=psk

TLSAccept=psk

TLSPSKIdentity=agent

TLSPSKFile=C:\ProgramFiles\ZABBIX_AGENT3\conf\zabbix_agentd.psk.txt

修改完成后记得保存。

在C:\Program Files\ZABBIX_AGENT3\conf\ 目录下新建名为zabbix_agentd.psk的文本文档(文件全名zabbix_agentd.psk.txt)

编辑文本文档:

粘贴第2步生成的PSK字符串,结果如下:
[技术干货] Zabbix 实现Server和windows的Agent通信加密

修改完成后保存。

6.启动agent

Win+R 快捷键打开运行,输入services.msc
[技术干货] Zabbix 实现Server和windows的Agent通信加密

右键Zabbix Agent服务,选择启动,结果如下:
[技术干货] Zabbix 实现Server和windows的Agent通信加密
[技术干货] Zabbix 实现Server和windows的Agent通信加密

7.在zabbix上监控该windows

新建主机,主机名称为:WIN7-47(与agent配置文件的Hostname参数对应),agent接口IP地址填写windows主机的IP地址,模板使用一个适合的监控模板。

点击“加密”选项卡,如下图配置:

(共享密钥(PSK)填写的是第2步随机生成的PSK密钥。)
[技术干货] Zabbix 实现Server和windows的Agent通信加密

成功后,可在主机界面看到以下信息:

(agent加密处,共享密钥PSK亮了)
[技术干货] Zabbix 实现Server和windows的Agent通信加密

参考链接:

https://blog.csdn.net/wu2700222/article/details/81331198

https://cloud.tencent.com/info/f93aa5166cba141322f09af895a01ded.html

https://www.zabbix.com/cn/download_agents#tab:30LTS

https://www.zabbix.com/documentation/4.0/zh/manual/encryption