😺

【splunk】初回起動時のパスワード自動設定

2023/03/06に公開

概要

  • 通常のsplunkインストール方法では、初回起動時に
    管理者アカウントのユーザ名・パスワード設定を要求されます。
  • インストールを自動化したい場合や初期パスワードを揃えたい場合は、
    後述する手順でuser-seed.confを作成することで対応可能です。

事前準備

PATH追加

echo 'export PATH=${PATH}:/opt/splunk/bin' >> ~/.bash_profile \
&& source ~/.bash_profile

バージョン確認

splunk version --accept-license --answer-yes --no-prompt 2>/dev/null
  • splunkコマンドを初めて実行する場合、
    どのオプションでも必ずライセンス同意・初期化処理に遷移します。
  • 後述のコマンド実行時に長々と処理内容が出力されても困るので、
    当たり障りのないオプションでsplunkコマンドを一度実行しておきます。

認証情報の設定

パスワード文字列の生成

splunk_pass=$(pwmake 56) ; echo ${splunk_pass}
  • ここではpwmakeコマンドでランダム文字列を生成します。
  • 存在しない場合はlibpwquality-toolsをインストールすると利用できます。

定義ファイルの作成

cat << EOF > /opt/splunk/etc/system/local/user-seed.conf
[user_info]
USERNAME = maihai
HASHED_PASSWORD = $(splunk hash-passwd $(echo ${splunk_pass}))
EOF
  • USERNAMEは任意の名前に変更可能です。
  • 必ず${SPLUNK_HOME}/etc/system/local配下に作成してください。
  • 検証環境等で同じ初期パスワードを設定したい場合は、
    当ファイルを複製することで自動設定可能です。(おすすめはしません)

動作確認

systemd設定

systemdで起動させる場合、オプション-systemd-managed 1の指定が必要です。

splunk enable boot-start -systemd-managed 1 -user splunk -group splunk

サービス起動

sudo systemctl start Splunkd
  • http://IPADDR:8080に接続し、設定した情報でログインします。
  • 設定に成功した場合、user-seed.confは自動削除されます。

パスワード定義の検証

{
    splunk_hashed=$(grep HASHED_PASSWORD /opt/splunk/etc/system/local/user-seed.conf | cut -d ' ' -f3)
    splunk_salt=$(echo ${splunk_hashed} | cut -d '$' -f3)
}
diff \
    <(echo ${splunk_hashed}) \
    <(echo ${splunk_pass} | openssl passwd -6 -salt=${splunk_salt} -stdin)
  • splunkコマンドは、salt値を付与してSHA512でハッシュ化しています。
  • splunkが付与したsalt値を使ってハッシュ化すれば、
    両方ともパスワード文字列は同じなので、同じハッシュ値が生成されるはずです。

参考情報

Discussion