簡介
本文說明如何要求密碼在高可用性(HA)設定中訪問postgres使用者。
必要條件
需求
本文件沒有特定需求。
採用元件
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
問題:CCM資料庫上的Postgres使用者不需要密碼
在HA設定中,對於低於4.8.0.1的版本,Cloud Center Manager(CCM)資料庫(DB)與CCM分離,或者如果從較低版本升級到4.8.0.1(4.8.0.1之後的clean安裝不受影響),CCM資料庫上的postgres使用者在連線到該資料庫時不需要密碼。這是一個潛在的安全漏洞。
解決方案
在每個資料庫例項上運行以下命令:
echo "*:*:*:replication:password" >> /root/.pgpass
echo "*:*:*:replication:password" >> ~postgres/.pgpass
sed -i 's/\(0.0.0.0.*\)trust/\1md5/' /var/lib/pgsql/9.5/data/pg_hba.conf
確認pg_hba.conf已將信任的所有例項更改為md5,如果未更改,請手動將trust字更改為md5。
su - postgres
/usr/pgsql-9.5/bin/pg_ctl重新載入
\q
這會重新載入配置更改的postgres,並確保資料庫未開啟以進行無口令身份驗證。
您可以確認問題是否已解決,然後登入到CCM並運行此命令。如果系統提示您輸入postgres密碼,請確保更改成功。
psql -h IP_ADDRESS_OF_DATABASE -U postgres