路漫漫其修远兮
吾将上下而求索

zabbix学习:加密配置

1、前言

但默认情况下,zabbix是通过不安全的线路进行传输的,有可能造成数据泄露等危险,为此我为我的zabbix服务添加数据证书的配置以便通过加密通道传输数据。

2、生成数字证书

当配置好zabbix服务端和agent后,即可继续配置数字证书的部分,首先需要使用openssl生成数字证书。

我们需要先生成ca证书,然后通过ca证书签发服务器证书与客户端证书。先建立一个文件夹以便存放所有证书文件:

[root@localhost ~]#mkdir crt
[root@localhost ~]#cd crt/

然后使用以下命令建立所需要的证书文件。其中CN部分可以修改为服务器的域名或IP,在实际应用中推荐修改为服务器的域名:

#生成ca私钥
[root@localhost ~/crt]#openssl genrsa 2048 > ca.key
Generating RSA private key, 2048 bit long modulus
..........+++
.......+++
e is 65537 (0x10001)
[root@localhost ~/crt]#ll
total 4
-rw-r--r-- 1 root root 1675 Dec 31 10:33 ca.key
 
#使用ca私钥建立ca证书
[root@localhost ~/crt]#openssl req -new -x509 -nodes -days 3650 -key ca.key -subj /CN=Signing\ CA/OU=Development\ group/O=Zabbix\ SIA/DC=zabbix/DC=com > ca.crt 
[root@localhost ~/crt]#ll
total 16
-rw-r--r-- 1 root root 1350 Dec 31 10:38 ca.crt
-rw-r--r-- 1 root root 1675 Dec 31 10:33 ca.key

 
#生成服务器csr证书请求文件
[root@localhost ~/crt]#openssl req -newkey rsa:2048 -days 3650 -nodes -keyout server.key -subj /CN=server/OU=Development\ grout/O=Zabbix\ SIA/DC=zabbix/DC=com > server.csr
Generating a 2048 bit RSA private key
.......................................+++
..................................+++
writing new private key to 'server.key'
-----
[root@localhost ~/crt]#ll
total 12
-rw-r--r-- 1 root root 1350 Dec 31 10:38 ca.crt
-rw-r--r-- 1 root root 1675 Dec 31 10:33 ca.key
-rw-r--r-- 1 root root 1013 Dec 31 10:36 server.csr
-rw-r--r-- 1 root root 1708 Dec 31 10:36 server.key
 
#使用ca证书与私钥签发服务器证书
[root@localhost ~/crt]#openssl x509 -req -in server.csr -days 3650 -CA ca.crt -CAkey ca.key -set_serial 01 > server.crt    
Signature ok
subject=/CN=server/OU=Development grout/O=Zabbix SIA/DC=zabbix/DC=com
Getting CA Private Key
[root@localhost ~/crt]#ll
total 20
-rw-r--r-- 1 root root 1350 Dec 31 10:38 ca.crt
-rw-r--r-- 1 root root 1675 Dec 31 10:33 ca.key
-rw-r--r-- 1 root root 1216 Dec 31 10:39 server.crt
-rw-r--r-- 1 root root 1013 Dec 31 10:36 server.csr
-rw-r--r-- 1 root root 1708 Dec 31 10:36 server.key
 
#生成客户端csr证书请求文件
[root@localhost ~/crt]#openssl req -newkey rsa:2048 -days 3650 -nodes -keyout client.key -subj /CN=client/OU=Development\ group/O=Zabbix\ SIA/DC=zabbix/DC=com > client.csr    
Generating a 2048 bit RSA private key
................................+++
...............................................................................................+++
writing new private key to 'client.key'
-----
[root@localhost ~/crt]#ll
total 28
-rw-r--r-- 1 root root 1350 Dec 31 10:38 ca.crt
-rw-r--r-- 1 root root 1675 Dec 31 10:33 ca.key
-rw-r--r-- 1 root root 1013 Dec 31 10:41 client.csr
-rw-r--r-- 1 root root 1708 Dec 31 10:41 client.key
-rw-r--r-- 1 root root 1216 Dec 31 10:39 server.crt
-rw-r--r-- 1 root root 1013 Dec 31 10:36 server.csr
-rw-r--r-- 1 root root 1708 Dec 31 10:36 server.key
 
#使用ca证书与私钥签发客户端证书
[root@localhost ~/crt]#openssl x509 -req -in client.csr -days 3650 -CA ca.crt -CAkey ca.key -set_serial 01 > client.crt    
Signature ok
subject=/CN=client/OU=Development group/O=Zabbix SIA/DC=zabbix/DC=com
Getting CA Private Key

完成后,该目录下一共有8个文件:
[root@localhost ~/crt]#ll
total 32
-rw-r--r-- 1 root root 1350 Dec 31 10:38 ca.crt
-rw-r--r-- 1 root root 1675 Dec 31 10:33 ca.key
-rw-r--r-- 1 root root 1216 Dec 31 10:42 client.crt
-rw-r--r-- 1 root root 1013 Dec 31 10:41 client.csr
-rw-r--r-- 1 root root 1708 Dec 31 10:41 client.key
-rw-r--r-- 1 root root 1216 Dec 31 10:39 server.crt
-rw-r--r-- 1 root root 1013 Dec 31 10:36 server.csr
-rw-r--r-- 1 root root 1708 Dec 31 10:36 server.key

3、服务端配置

将所有生成文件复制到zabbix的配置目录备份(此步是备份文件,不是必须)
[root@localhost ~]#mkdir -p /usr/local/zabbix_server/etc/zabbix_crt
[root@localhost ~/crt]#cp * /usr/local/zabbix_server/etc/zabbix_crt

将以下文件复制到/usr/local/zabbix_server/etc/zabbix_server.conf.d下,作为服务的配置文件:
[root@localhost /usr/local/zabbix_server/etc]#cp zabbix_crt/ca.crt zabbix_server.conf.d/
[root@localhost /usr/local/zabbix_server/etc]#cp zabbix_crt/server.crt zabbix_server.conf.d/
[root@localhost /usr/local/zabbix_server/etc]#cp zabbix_crt/server.key zabbix_server.conf.d/
[root@localhost /usr/local/zabbix_server/etc]#cd zabbix_server.conf.d/
[root@localhost /usr/local/zabbix_server/etc/zabbix_server.conf.d]#ll
total 16
-rw-r--r-- 1 root root 1350 Dec 31 10:48 ca.crt 
-rw-r--r-- 1 root root 1216 Dec 31 10:48 server.crt 
-rw-r--r-- 1 root root 1708 Dec 31 10:48 server.key

#修改配置文件zabbix_server.conf:
[root@localhost /usr/local/zabbix_server/etc]#vim zabbix_server.conf
#修改TLSCAFile配置
TLSCAFile=/usr/local/zabbix_server/etc/zabbix_server.conf.d/ca.crt
#修改TLSCertFile配置
TLSCertFile=/usr/local/zabbix_server/etc/zabbix_server.conf.d/server.crt
#修改TLSKeyFile配置
TLSKeyFile=/usr/local/zabbix_server/etc/zabbix_server.conf.d/server.key

#重启服务
[root@localhost /usr/local/zabbix_server/etc]#service zabbix_server restart
Shutting down zabbix_server:                               [  OK  ]
Starting zabbix_server:                                    [  OK  ]

4、客户端配置

客户端和服务端类似
将文件复制到/usr/local/zabbix_agent/etc/zabbix_agentd.conf.d下,作为服务的配置文件:
[root@localhost /usr/local/zabbix_agent/etc/zabbix_agentd.conf.d]#ll
total 20
-rw-r--r-- 1 root root 1350 Dec 31 10:45 ca.crt
-rw-r--r-- 1 root root 1216 Dec 31 10:45 client.crt
-rw-r--r-- 1 root root 1708 Dec 31 10:45 client.key

#修改配置文件zabbix_agentd.conf:
[root@localhost /usr/local/zabbix_agent/etc]#vim zabbix_agentd.conf
#修改agent连接模式
TLSConnect=cert
#修改TLSCAFile配置
TLSCAFile=/usr/local/zabbix_agent/etc/zabbix_agentd.conf.d/ca.crt
#修改TLSCertFile配置
TLSCertFile=/usr/local/zabbix_agent/etc/zabbix_agentd.conf.d/client.crt
#修改TLSKeyFile配置
TLSKeyFile=/usr/local/zabbix_agent/etc/zabbix_agentd.conf.d/client.key

#重启服务
[root@localhost /usr/local/zabbix_agent]#service zabbix_agentd restart
Shutting down zabbix_agentd:                               [  OK  ]
Starting zabbix_agentd:                                    [  OK  ]

5、界面配置

image.png

然后就可以

image.png

6、说明

ca的公钥在客户端和服务端都需要,用来验证服务端和客户端证书是否合法

客户端接收到服务端证书后,用ca证书验证服务端证书是否合法(是否为此ca签发,能用ca公钥解开,即合法),如果合法,用服务端证书将文件加密,发送到服务端,服务端用自己的私钥将文件解密(应该用在主动模式,客户端主动连接服务端)

服务端接收到客户端证书后,用ca证书验证客户端证书是否合法(是否为此ca签发,能用ca公钥解开,即合法),如果合法,用客户端证书将文件加密,发送到客户端,客户端用自己的私钥将文件解密(应该用在被动模式,服务端主动连接客户端)

参考文档:

https://enginx.net/2017/01/08/%E4%B8%BAzabbix%E6%9C%8D%E5%8A%A1%E9%85%8D%E7%BD%AE%E6%95%B0%E5%AD%97%E8%AF%81%E4%B9%A6%E5%8A%A0%E5%AF%86%E9%80%9A%E9%81%93.html

https://www.zabbix.com/documentation/3.0/manual/encryption

http://www.cnblogs.com/xuliangwei/p/6658834.html  里面的配置文件解释

未经允许不得转载:江哥架构师笔记 » zabbix学习:加密配置

分享到:更多 ()

评论 抢沙发

评论前必须登录!