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
![136a34afca3d801b0af19d64aae8dc26.png](https://img-blog.csdnimg.cn/img_convert/136a34afca3d801b0af19d64aae8dc26.png)
临时保存此字符串,稍后会用到。
3.下载使用openssl编译过的windows agent包
![7f637df466870a1c33e9d90e50190160.png](https://img-blog.csdnimg.cn/img_convert/7f637df466870a1c33e9d90e50190160.png)
官方下载地址:https://www.zabbix.com/cn/download_agents#tab:30LTS
4.给windows 安装该agent
在C:Program Files目录下新建一个名为ZABBIX_AGENT3的文件夹,然后把下载的agent包解压到该目录下,结果如下:
![b96ce9151917bb66d51e0de9ea96b7b9.png](https://img-blog.csdnimg.cn/img_convert/b96ce9151917bb66d51e0de9ea96b7b9.png)
打开CMD,执行命令:
cd "C:ProgramFilesZABBIX_AGENT3bin"
zabbix_agentd.exe -i -c "C:ProgramFilesZABBIX_AGENT3confzabbix_agentd.conf"
![77ea93f97812782a3859e02282a1ee68.png](https://img-blog.csdnimg.cn/img_convert/77ea93f97812782a3859e02282a1ee68.png)
5.修改agent配置文件
用记事本打开C:Program FilesZABBIX_AGENT3conf目录下的配置文件
修改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:ProgramFilesZABBIX_AGENT3confzabbix_agentd.psk.txt
修改完成后记得保存。
在C:Program FilesZABBIX_AGENT3conf 目录下新建名为zabbix_agentd.psk的文本文档(文件全名zabbix_agentd.psk.txt)
编辑文本文档:
粘贴第2步生成的PSK字符串,结果如下:
![b3ba4cc03019da97a89a314901a210c0.png](https://img-blog.csdnimg.cn/img_convert/b3ba4cc03019da97a89a314901a210c0.png)
修改完成后保存。
6.启动agent
Win+R 快捷键打开运行,输入services.msc
![745602269180794894c24f02ad9b25ab.png](https://img-blog.csdnimg.cn/img_convert/745602269180794894c24f02ad9b25ab.png)
右键Zabbix Agent服务,选择启动,结果如下:
![46d6bf80b350fd54f69e035d2c8565f7.png](https://img-blog.csdnimg.cn/img_convert/46d6bf80b350fd54f69e035d2c8565f7.png)
![430e019aefb0ea7cbaf3b096f8f3bece.png](https://img-blog.csdnimg.cn/img_convert/430e019aefb0ea7cbaf3b096f8f3bece.png)
7.在zabbix上监控该windows
新建主机,主机名称为:WIN7-47(与agent配置文件的Hostname参数对应),agent接口IP地址填写windows主机的IP地址,模板使用一个适合的监控模板。
点击“加密”选项卡,如下图配置:
(共享密钥(PSK)填写的是第2步随机生成的PSK密钥。)
![5e8e641f8ee5258bbd7c9143067d60cf.png](https://img-blog.csdnimg.cn/img_convert/5e8e641f8ee5258bbd7c9143067d60cf.png)
成功后,可在主机界面看到以下信息:
(agent加密处,共享密钥PSK亮了)
![696e0a8692d1c9e814583d01bfdb4f97.png](https://img-blog.csdnimg.cn/img_convert/696e0a8692d1c9e814583d01bfdb4f97.png)
参考链接:
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
![f686fa8e00bd211eb9fc358d15538836.png](https://img-blog.csdnimg.cn/img_convert/f686fa8e00bd211eb9fc358d15538836.png)