Zabbix学习资源由浅入深 关于我们 联系我们 加入我们
5

Zabbix5.2安全特性-机密信息外部存储

一、特性介绍

Zabbix 5.2 在安全性能做了很大的改进,如支持连接加密,保密宏等。现在zabbix的所有连接都可以配置为加密模式。5.2版本引入了HashCorp Valut来保存一些机密信息到外部存储。HashiCorp Vault 的 口号 是 A Tool for Managing Secrets,这个口号很好的描述了该产品的定位。HashiCorp是一家专注于基础设施解决方案的公司,业务范围涵盖软件开发中的部署、运维、安全等方面。5.2版本中很多敏感信息可保存在HashCorp Valut,而不保存在Zabbix数据库里。如宏信息,数据库连接信息,密码,加密的key等。这进一步加强了Zabbix的安全性,对于一些场景特别适用。

二、基础环境

以下为基础环境介绍

image.png

使用yum方案安装zabbix,使用二进制方式安装HashCorp Valut

三、HashCorp Valut

01-安装

主要介绍Valut的安装及基本配置,官网下载Valut安装包,并解压

bbf9b605e37f8bcfc1c552bc778bc25.png

安装命令行自动补全

9a914dd27d08182bc1b79c67c00684e.png

配置systemd启动文件

133e8cb9bb2adf22417beb66fff3bfb.png

内容如下

b10aa66c00af60d8e00d334fbec4b81.png

官方推荐使用consul来作为vault的后端数据存储,为配置简便,本次使用本地文件存储作为vault的数据存储。创建对应目录及配置文件

d4fe9a24d0692ae82870ed33359ff29.png

vault配置文件为vault.hcl,vault可配置ssl证书,可以自己生成

202ae2025eef62628ebbcd8f019e701.png

启动vault

9e7ade466c0a82d36d6fe07b9302600.png

确保vault启动。

02-初始化

第一次启动vault之后需要初始化,使用以下命令进行初始化


edd38ae6d2cd2decc72918e78c3dd12.png

会输出如下

48d2f4e6acf3bb8ed2c9d94d34c7d54.png

存储以上几个key及token到文本,以后不会再次显示。每次vault启动之后都要进行解封,才能进行数据的读取写入。输入三次以下命令,输入后会提示要输入key,挑选之前5个key中的三个,输入,即可解封。

  1. vault operator unseal

查看vault状态

vault status

状态

5f13e298d1c575ad1c05f5ad1e74efd.png

确保Sealed为false状态,否则无法操作数据。

三、Zabbix安装

按照官网文档使用yum方式安装zabbix。创建好zabbix数据库用户导入sql文件后,在vault中使用以下命令创建zabbix数据库连接信息,假如zabbix数据库用户为zabbix,密码为password

3187490c2a52ccfeb91abac96a6fa33.png

查看使用以下命令查看kv

e540acc1a6d59681582c31592beaa90.png

结果

2b106ad73a522ce70435ce9f75c2926.png

HashiCorp Vault 有严格的权限访问控制,这里为zabbix配置对应的访问权限,并生成对应的访问Token。Vault的策略可以先写成hcl文件,再导入即可。这里主要配置2个策略

68cd0f4622c1f100dc00bdbea434ad7.png

创建策略文件/etc/vault/zabbix-ui.hcl 内容如下

9594758712e96499c9bbb4607c7d28c.png

创建策略文件/etc/vault/zabbix-server.hcl 内容如下

2ebfc2f1f1ac77fddac72a393fbedc9.png

写入策略

c853e93f3840ae845e0964aa7d105c3.png

生成token

80237dbf103afc992a14c29768174c7.png

记录token。

79b9cb2ede30613ed0ae52b6f20791e.png

使用以下命令可验证配置是否正确

  1. curl -s --header "X-Vault-Token: s.XdcVY5wf4kTLxTVrKYJ98Lwu" https://vault.cactifans.com:8200/v1/zabbix/data/database |jq

Token为刚才创建,如果正确会显示如下

5c2f85a140a99986119dfb5f2a6dc46.png

四、Zabbix server配置Vault

修改zabbix server配置文件/etc/zabbix/zabbix_server.conf ,注释

  1. #DBUser=zabbix

  2. 文件末尾配置Vault信息

  3. c3a3311cf31f56b842d71cab51b04ee.png

  4. VaultToken为zabbix-server策略生成的token,VaultDBPath为zabbix/database 重启zabbix server等组件


5b644ac821f6460114f81bde199755c.png

检查日志,如果没有报错表示与Vault通信正常。

五、Zabbix Web配置Vault

打开zabbix web安装页面,到此页面输入vault信息

图片

path为secret/zabbix/database,token为zabbix-ui策略生成的token,直接点击下一步,如提示错误可能是地址或者策略配置文件,如连接ok会到下一步

图片


六、Vault存储宏

新版本可将zabbix 宏存储在Vault中,之前已在Vault创建一个名为macros的path,后期可使用以下命令创建需要的macros,直接写在后面即可,如添加一个key为token,value为123456

a45e742346820eab342bf8704bb935a.png

查看

e1aaefb6801e740f735ef7fcaadefcb.png

结果

54736af6a41f2a4a405099cae3adf4a.png

说明已添加完成。

七、Vault宏使用

下面介绍如何在zabbix中如何使用vault保存的宏。例如使用ssh agent采集时需要输入机器的账号和密码,这里可使用vault存储账号和密码信息。下面主要介绍此场景。在主机上执行以下命令添加系统账号,用于ssh监控

994c0f6a27764017589b28f2f54e0a3.png

系统账号为monitor,并配置密码为zabbix@2020 在主机上配置2个宏,分别为 {$USERNAME} 和 {$PASSWORD}。注意宏的类型为Vault secret 并配置path为zabbix/macros:username和zabbix/macros:password

图片

并创建如下ssh agent类型的item

图片




username及password字段配置为刚才添加宏名称,执行命令为free -g。配置之后点击保存。过一会可在最数据里查看,获取正常说明宏调用ok

图片历史数据

图片

八、Tips

HashiCorp Vault有Web页面,可使用浏览器访问,默认端口为8200,可使用Token登录进行操作。

图片

九、结语

以上为新版本配合HashCorp Valut的使用。HashCorp Valut的使用大大加强了zabbix的安全性,同时也方便了各种敏感信息的统一管理和使用。

图片

   Zabbix5.0认证培训来啦   

  • 优势:Zabbix认证培训可能是性价比最高的学习Zabbix方式! 

  • 特点:Zabbix5.0认证培训天数增加,内容更丰富,包含4.0、4.2、4.4、5.0,理论+实践+咨询,全面到位、深度解析!

  • 资料:欢迎联系培训小姐姐获取内容大纲和相关信息

图片

培训负责人Jenny


2023-04-25