專家專欄 | Zabbix5.2安全特性-機密信息外部存儲

      網友投稿 774 2025-04-01

      一、特性介紹


      zabbix 5.2 在安全性能做了很大的改進,如支持連接加密,保密宏等。現在zabbix的所有連接都可以配置為加密模式。5.2版本引入了HashCorp Valut來保存一些機密信息到外部存儲。HashiCorp Vault 的 口號 是 A Tool for Managing Secrets,這個口號很好的描述了該產品的定位。HashiCorp是一家專注于基礎設施解決方案的公司,業務范圍涵蓋軟件開發中的部署、運維、安全等方面。5.2版本中很多敏感信息可保存在HashCorp Valut,而不保存在Zabbix數據庫里。如宏信息,數據庫連接信息,密碼,加密的key等。這進一步加強了Zabbix的安全性,對于一些場景特別適用。

      二、基礎環境

      以下為基礎環境介紹

      使用yum方案安裝zabbix,使用二進制方式安裝HashCorp Valut

      三、HashCorp Valut

      01-安裝

      主要介紹Valut的安裝及基本配置,官網下載Valut安裝包,并解壓

      wget https://releases.hashicorp.com/vault/1.5.5/vault_1.5.5_linux_amd64.zip unzip vault_1.5.5_linux_amd64.zip chown root:root vault mv vault /usr/local/bin/

      安裝命令行自動補全

      專家專欄 | Zabbix5.2安全特性-機密信息外部存儲

      vault -autocomplete-install complete -C /usr/local/bin/vault vault

      安全配置

      setcap cap_ipc_lock=+ep /usr/local/bin/vault useradd --system --home /etc/vault --shell /bin/false vault

      配置systemd啟動文件

      touch /etc/systemd/system/vault.service

      內容如下

      [Unit] Description="HashiCorp Vault - A tool for managing secrets" Documentation=https://www.vaultproject.io/docs/ Requires=network-online.target After=network-online.target ConditionFileNotEmpty=/etc/vault/vault.hcl StartLimitIntervalSec=60 StartLimitBurst=3 [Service] User=vault Group=vault ProtectSystem=full ProtectHome=read-only PrivateTmp=yes PrivateDevices=yes SecureBits=keep-caps AmbientCapabilities=CAP_IPC_LOCK Capabilities=CAP_IPC_LOCK+ep CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK NoNewPrivileges=yes ExecStart=/usr/local/bin/vault server -config=/etc/vault/vault.hcl ExecReload=/bin/kill --signal HUP $MAINPID KillMode=process KillSignal=SIGINT Restart=on-failure RestartSec=5 TimeoutStopSec=30 StartLimitInterval=60 StartLimitIntervalSec=60 StartLimitBurst=3 LimitNOFILE=65536 LimitMEMLOCK=infinity [Install] WantedBy=multi-user.target

      官方推薦使用consul來作為vault的后端數據存儲,為配置簡便,本次使用本地文件存儲作為vault的數據存儲。創建對應目錄及配置文件

      mkdir --parents /etc/vault.d touch /etc/vault.d/vault.hcl chown --recursive vault:vault /etc/vault chmod 640 /etc/vault.d/vault.hcl mkdir /opt/vault_data chown -R vault:vault /opt/vault_data/

      vault配置文件為vault.hcl,vault可配置ssl證書,可以自己生成

      disable_cache = true disable_mlock = true ui = true listener "tcp" { tls_disable = 0 address = "0.0.0.0:8200" tls_cert_file = "/etc/vault/vault.cactifans.com.pem" tls_key_file = "/etc/vault/vault.cactifans.com.key" } storage "file" { path = "/opt/vault_data" } api_addr = "https://valut.cactifans.com:8200"

      啟動vault

      systemctl enable vault systemctl start vault

      確保vault啟動。

      02-初始化

      第一次啟動vault之后需要初始化,使用以下命令進行初始化

      export VAULT_ADDR=https://vault.cactifans.com:8200 vault operator init

      會輸出如下

      Unseal Key 1: 5D3jfaZRj4ifk4Dz3hzSg4h2ts/yw65JDfe4mp6gkZr3 Unseal Key 2: U4cAMxRyGtCljAggzsV8zrGplRWtDUrAE4dwkrZ+PGea Unseal Key 3: Zh+ZmvvaQ8LTwSL7q8uVTjHu26+sSfnbOBsewe71NTvI Unseal Key 4: c/AVfHxALC9cRant4jegLIDEdqKgbRmW+2DJvoHr0pdf Unseal Key 5: efjVPwZbk7R8V2Upsci8B4GanoYxsGnCOQwycBCv69IV Initial Root Token: s.tYt0d3k55jB6sdTnmJvUY6MV Vault initialized with 5 key shares and a key threshold of 3. Please securely distribute the key shares printed above. When the Vault is re-sealed, restarted, or stopped, you must supply at least 3 of these keys to unseal it before it can start servicing requests. Vault does not store the generated master key. Without at least 3 key to reconstruct the master key, Vault will remain permanently sealed! It is possible to generate new unseal keys, provided you have a quorum of existing unseal keys shares. See "vault operator rekey" for more information.

      存儲以上幾個key及token到文本,以后不會再次顯示。每次vault啟動之后都要進行解封,才能進行數據的讀取寫入。輸入三次以下命令,輸入后會提示要輸入key,挑選之前5個key中的三個,輸入,即可解封。

      vault operator unseal

      查看vault狀態

      vault status

      狀態

      [root@vault~]# vault status Key Value --- ----- Seal Type shamir Initialized true Sealed false Total Shares 5 Threshold 3 Version 1.5.5 Cluster Name vault-cluster-fe2b21f4 Cluster ID b04d080b-662e-9a20-0699-56f6fe53a992 HA Enabled false

      確保Sealed為false狀態,否則無法操作數據。

      三、Zabbix安裝

      按照官網文檔使用yum方式安裝zabbix。創建好zabbix數據庫用戶導入sql文件后,在vault中使用以下命令創建zabbix數據庫連接信息,假如zabbix數據庫用戶為zabbix,密碼為password

      export VAULT_ADDR=https://vault.cactifans.com:8200 vault secrets enable -path=zabbix kv-v2 vault kv put zabbix /database username=zabbix password=password

      查看使用以下命令查看kv

      vault kv get zabbix /database

      結果

      [root@vault~]# vault kv get zabbix /database ======Metadata====== Key Value --- ----- created_time 2020-11-13T05:45:27.927834884Z deletion_time n/a destroyed false version 2 ======Data====== Key Value --- ----- password password username zabbix

      可以看到已經配置成功。這里再創建一個名macros的path,用于存儲zabbix的宏。這里創建一個username和password的2個key,username=monitor,password=password后續介紹使用方法。

      vault kv put zabbix/macros username=monitor password= zabbix@2020

      查看kv

      [root@vault~]# vault kv get zabbix/macros ======Metadata====== Key Value --- ----- created_time 2020-11-15T08:15:39.462966496Z deletion_time n/a destroyed false version 1 ======Data====== Key Value --- ----- password zabbix@2020 username monitor

      HashiCorp Vault 有嚴格的權限訪問控制,這里為zabbix配置對應的訪問權限,并生成對應的訪問Token。Vault的策略可以先寫成hcl文件,再導入即可。這里主要配置2個策略

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

      path "zabbix/data/database" { capabilities=["list","read"] }

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

      path "zabbix/data/database" { capabilities = ["list","read"] } path "zabbix/data/macros" { capabilities = ["list","read"] }

      寫入策略

      vault policy write zabbix-ui-policy zabbix-ui.hcl vault policy write zabbix-server-policy zabbix-server.hcl

      生成token

      vault token create -policy=zabbix-ui-policy vault token create -policy=zabbix-server-policy

      記錄token。

      [root@vault vault]# vault token create -policy=zabbix-ui-policy --- ----- token s.Op7YWWK4P0tMVKwpneQbR8wT token_accessor 6nw5I3DtoTAcLWKPXss8PfsS token_duration 768h token_renewable true token_policies ["default""zabbix-ui-policy"] identity_policies [] policies ["default" "zabbix-ui-policy"] [root@vault vault]# vault token create -policy=zabbix-server-policy Key Value --- ----- token s.XdcVY5wf4kTLxTVrKYJ98Lwu token_accessor 6SCyEeWmSFGea6jlQjzoRgGk token_duration 768h token_renewable true token_policies ["default" "zabbix-server-policy"] identity_policies [] policies ["default" "zabbix-server-policy"]

      使用以下命令可驗證配置是否正確

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

      Token為剛才創建,如果正確會顯示如下

      { "request_id":"85a25acd-a7ac-ebbf-1f78-5b59b0d3a28a", "lease_id" : "" , "renewable" : false, "lease_duration":0, "data": { "data": { "password":"password", "username":"zabbix" }, "metadata": { "created_time": "2020-11-13T05:45:27.927834884Z", "deletion_time":"", "destroyed":false, "version": 2 } }, "wrap_info": null, "warnings":null, "auth":null }

      四、Zabbix server配置Vault

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

      #DBUser=zabbix

      文件末尾配置Vault信息

      VaultToken=s.XdcVY5wf4kTLxTVrKYJ98Lwu VaultURL=https://vault.cactifans.com:8200 VaultDBPath=zabbix/database

      VaultToken為zabbix-server策略生成的token,VaultDBPath為zabbix/database 重啟zabbix server等組件

      systemctl restart zabbix-server zabbix-agent httpd php-fpm systemctl enable zabbix-server zabbix-agent httpd php-fpm

      檢查日志,如果沒有報錯表示與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

      vault kv put /macros =monitor =zabbix@2020 =123456 zabbix username password token

      查看

      vault kv get zabbix/macros

      結果

      [root@vault ~]# vault kv get zabbix/macros ======Metadata ====== Key Value --- ----- created_time 2020-11-15T08:22:36.667284971Z deletion_time n/a destroyed false version 2 ======Data====== Key Value --- ----- password zabbix@2020 token 123456 username monitor

      說明已添加完成。

      七、Vault宏使用

      下面介紹如何在zabbix中如何使用vault保存的宏。例如使用ssh agent采集時需要輸入機器的賬號和密碼,這里可使用vault存儲賬號和密碼信息。下面主要介紹此場景。在主機上執行以下命令添加系統賬號,用于ssh監控

      useradd monitor passwd monitor

      系統賬號為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的安全性,同時也方便了各種敏感信息的統一管理和使用。

      Zabbix 運維

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel表怎么按照日期排序
      下一篇:wps表格邊框粗細怎么設置(wps如何調整表格邊框粗細)
      相關文章
      亚洲AV无码专区电影在线观看| 国产成人亚洲精品91专区高清| 久久影视综合亚洲| 亚洲成a∧人片在线观看无码| 亚洲熟女综合色一区二区三区| 亚洲 日韩 色 图网站| 亚洲精品日韩专区silk| 夜夜亚洲天天久久| 久久亚洲精品无码AV红樱桃| 亚洲一区二区三区四区在线观看| 婷婷久久久亚洲欧洲日产国码AV| 久久国产亚洲电影天堂| 久久精品亚洲综合专区| 亚洲欧洲日产国产综合网| 亚洲VA中文字幕无码毛片| 亚洲AV无码乱码国产麻豆| 亚洲2022国产成人精品无码区| 亚洲高清视频在线观看| 久久久久亚洲Av无码专| 亚洲国产片在线观看| 亚洲色图激情文学| 亚洲欧美日韩中文无线码 | 久久综合亚洲色HEZYO社区| 亚洲视频一区网站| 亚洲av无码片区一区二区三区| 国产亚洲sss在线播放| 亚洲另类无码专区首页| 国产成人亚洲精品无码AV大片| 亚洲人成无码www久久久| 亚洲欧洲无码AV电影在线观看| 亚洲av激情无码专区在线播放| 亚洲欧洲综合在线| 亚洲日韩国产精品乱-久| 亚洲AV女人18毛片水真多| 亚洲AV中文无码乱人伦| 亚洲一区二区女搞男| 亚洲av网址在线观看| 亚洲精品午夜在线观看| 亚洲人成77777在线观看网| 欧美色欧美亚洲另类二区| 亚洲欧洲日产国码一级毛片 |