zoukankan      html  css  js  c++  java
  • 监控案例四---zabbix数据传输基于CERT证书加密

    参考链接:https://blog.csdn.net/qq_15092079/article/details/82149807

    1. 首先zabbix server、zabbix proxy、zabbix agent 已经配置完成并可以正常展示数据。

      点击Administration----->选择Proxies------>Create proxy ,proxy name与proxy配置文件中的host name相同, proxy mode 模式选择 Active,Proxy address 填写proxy的EIP。因目前还没有配置证书所以可以先不用考虑认证选项的配置。

      注意:当前每个加密的连接均使用完整的TLS握手打开,未实现会话的缓存和票证。

         添加加密会增加检查和操作的时间,取决于网络延迟,所以为了保证数据不会因为超时而失败,需要在需要加密传输的机器配置文件中增加超时时间。

      连接加密管理:

    • 不加密(默认)
    • 基于RSA证书的加密
    • 基于PSK加密

      今天我们来讲一下如何通过RSA进行加密:

    1.   首先查看一下openssl版本,目前zabbix4.0.20支持版本1.0.1、1.0.2、1.1.0  
    # openssl version -a 

       执行命令后的结果,我目前使用的是openssl1.0.2k版本

      2. 查看openssl的配置文件openssl.cnf的存放位置,如上图可以看出配置文件位置为/etc/pki/tls下,配置文件名称为openssl.cnf。

      

      每个变量的后面都有英文注释,可以根据注释了解一个参数内容。

      3. 创建为根证书CA所需的目录及文件 

    # cd /etc/pki/CA
    # mkdir -pv {certs,crl,newcerts,private}   #有则无需创建
    # touch {serial,index.txt}
    指明证书开始编号
    # echo 01 >> serial

      4. 生成根证书的私钥(注意:私钥的文件名与存放位置要与配置文件中的设置相匹配)

    # (umask 077; openssl genrsa -out private/cakey.pem 2048)

      如下效果:

       参数说明:  

      genrsa    --产生rsa秘钥命令

      -out        指定秘钥文件输出的位置

      2048      指的是秘钥的长度位数,默认为512位

      5. 生成自签证书,即根证书CA,自签证书的存放位置也要与配置文件中设置相匹配,生成证书时需要填写相应信息。

    # openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out cacert.pem -days 3650

      参数说明:

      -new:表示生成一个新的证书签署请求。

      -x509:专用于CA生成自签证书,如果不是自签证书则不需要此选项

      -key:用到的私钥文件

      -out:证书的保存路径

      -days:证书的有效期限,单位是day(天),默认是openssl.cnf的default_days

      

      这样,根证书CA就已经完成。

      6. 在需要证书的服务器上生成私钥,然后通过此私钥生成证书签署请求,然后将请求通过可靠的方式发送给根证书CA的服务器,根证书CA服务器拿到证书签署请求后,即可颁发那一服务器的证书。

      在需要证书的服务器上,生成私钥

    # (umask 077;openssl genrsa -out proxy.key 2048)

      命令执行结果如下;

      生成证书签署请求 

    # openssl req -new -key proxy.key -out proxy.csr -days 3650

      命令执行结果如下:

       7. 在根证书服务器上,颁发证书,颁发证书即签名证书,生成crt文件

    # 创建一个req文件夹用来接收服务器发送过来的文件(签署请求的csr文件、key文件等)
    #
    mkdir /etc/pki/CA/req

    #颁发证书
    # openssl ca -in /etc/pki/CA/req/proxy.csr -out /etc/pki/CA/certs/proxy.crt -days 3650

    #查看证书信息
    # openssl x509 -in /etc/pki/CA/certs/proxy.crt -noout -serial -subject -issuer

      8. 完成证书的颁发后,我们将证书通过可靠的方式发送给申请的服务器即可。

      接下来我们使用创建的证书对zabbix-server、zabbix-proxy、zabbix-agent进行配置。因配置原理相同,我们这里就只介绍如何配置zabbix-server与zabbix-proxy实现加密通信。

    1.  首先进入zabbix-server配置文件作如下添加如下配置,并重启zabbix-server服务:
    # 指定CA根证书位置,即我们生成cakey.pem的位置
    TLSCAFile = / home / zabbix / zabbix_ca_file  
    
    # 指定生成zabbix server的私钥文件
    TLSCertFile = / home / zabbix / zabbix_server.crt
    
    # 指定生成zabbix server的key文件
    TLSKeyFile = / home / zabbix / zabbix_server.key

       2.    进入到zabbix-proxy服务器,并对zabbix-proxy配置文件做如下修改,修改完成后重启zabbix-proxy服务:

    找到 TLS相关参数配置如下:
    ####### TLS-RELATED PARAMETERS #######
    
    # 连接方式选择cert
    TLSConnect=cert
    
    # 从zabbix服务器接受哪些传入连接。用于被动代理,主动代理上被忽略
    TLSAccept=cert
    
    # 根CA证书的文件所在的完整路径
    TLSCAFile=/etc/pki/CA/cacert.pem
    
    # 代理服务器证书的完整路径名
    TLSCertFile=/etc/pki/CA/zabbix_server.crt
    
    # 代理服务器私钥的完整路径,需要将key权限调整为755。
    TLSKeyFile=/etc/pki/CA/zabbix_server.key

      接下来非常关键的一步就是去zabbix dashboard中,我们第一步配置的proxy的控制面板中,将认证改为CERT,通过zabbix-server、zabbix-proxy就可以发现数据可以正常传输了。

       注意:产生如下错误,就是因为我们没有在zabbix dashboard的proxies中配置认证选项导致的。

      

      /etc/pki/CA/zabbix_server.key私钥文件权限不调整为755,会产生如下错误:

      这样我们就完成了zabbix-server与zabbix-proxy的数据加密通信,若想实现zabbix-agent与zabbix-proxy的数据加密通信原理相同,我就不在这里详细解释了。大家可以私信操作。

    -issuer

  • 相关阅读:
    【每日一题】740. 删除并获得点数
    【每日一题】1473. 粉刷房子 III
    【每日一题】7. 整数反转
    【每日一题】554. 砖墙
    【每日一题】690. 员工的重要性
    【每日一题】137. 只出现一次的数字 II
    【每日一题】403. 青蛙过河
    【每日一题】633. 平方数之和
    【每日一题】938. 二叉搜索树的范围和
    a_lc_到达终点(数学优化)
  • 原文地址:https://www.cnblogs.com/weidongliu/p/13210489.html
Copyright © 2011-2022 走看看