😺
【splunk】初回起動時のパスワード自動設定
概要
- 通常の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