
Deploy secure passwords across multiple servers
At initial startup, Splunk Enterprise creates a file $SPLUNK_HOME/etc/auth/splunk.secret
. This file contains a key used to encrypt some of your authentication information in configuration files. Each of the following files can be encrypted across a deployment using splunk.secret
. Note that the passwords and encryption methods used for each file are not necessarily interchangeable.
web.conf
: Your SSL passwords on every instance.authentication.conf
: Your LDAP passwords, if you have any.inputs.conf
: Your SSL passwords, if you usesplunktcp-ssl
to set up ssl for data distribution.outputs.conf:
: Your SSL passwords, if you usesplunktcp-ssl
to configuresplunktcp-ssl
ininputs.conf
to set up ssl for data distribution.server.conf
: pass4symmkey, if you have one.passwords.conf
: Your password for a given app.
When Splunk software starts, if it detects a clear-text password, in one of these settings, it will create or overwrite the configuration in the equivalent local folder with the encrypted password.
Note: If the pass4symmkey or SSLPassword is specified in a default apps file, the password is obfuscated in the local version of the file upon restart. The default version of the file remains in clear text. However, if the file is listed using curl
or a splunkd endpoint, the passwords appear encrypted.
When you deploy Splunk software on multiple servers, you must encrypt the passwords and ensure that they are consistent across your deployment. Splunk recommends that you use an encryption tool such as Vault's "secret/*" to secure your passwords as you distribute them.
You should perform these steps at initial deployment and also any time you need to deploy a new password for your instances:
1. Using your encryption tool, deploy the passwords to all servers.
2. On each server, place the password, in clear text, in the relevant file.
3. Immediately start/restart to encrypt all the passwords under the server's unique secret.
In a search head cluster, the captain replicates its splunk.secret
file to all other cluster members during initial deployment of the cluster, so you do not need to copy it manually. As part of its normal operation, the cluster also automatically replicates any credentials that are stored by apps for their own use.
PREVIOUS Secure your service accounts |
NEXT Harden your KV store port |
This documentation applies to the following versions of Splunk® Enterprise: 6.3.0, 6.3.1, 6.3.2, 6.3.3, 6.3.4, 6.3.5, 6.3.6, 6.3.7, 6.3.8, 6.3.9, 6.3.10, 6.3.11, 6.3.12, 6.3.13, 6.3.14, 6.4.0, 6.4.1, 6.4.2, 6.4.3, 6.4.4, 6.4.5, 6.4.6, 6.4.7, 6.4.8, 6.4.9, 6.4.10, 6.4.11, 6.5.0, 6.5.1, 6.5.1612 (Splunk Cloud only), 6.5.2, 6.5.3, 6.5.4, 6.5.5, 6.5.6, 6.5.7, 6.5.8, 6.5.9, 6.5.10, 6.6.0, 6.6.1, 6.6.2, 6.6.3, 6.6.4, 6.6.5, 6.6.6, 6.6.7, 6.6.8, 6.6.9, 6.6.10, 6.6.11, 6.6.12, 7.0.0, 7.0.1, 7.0.2, 7.0.3, 7.0.4, 7.0.5, 7.0.6, 7.0.7, 7.0.8, 7.0.9, 7.0.10, 7.0.11, 7.0.13, 7.1.0, 7.1.1, 7.1.2, 7.1.3, 7.1.4, 7.1.5, 7.1.6, 7.1.7, 7.1.8, 7.1.9, 7.2.0, 7.2.1, 7.2.2, 7.2.3, 7.2.4, 7.2.5, 7.2.6, 7.2.7, 7.2.8, 7.2.9, 7.3.0, 7.3.1, 7.3.2, 7.3.3, 8.0.0
Comments
Badarsebard,
Done! Sorry that took so long.
Cheers,
jen
Hi Intermediate,
$1$ indicates MD5 hashing, $6$ indicates SHA-512 hashing. My best guess is that this is either to do with your encryption tool(s) or it could be a configuration issue, I have emailed you directly to get more details to see if we can resolve it.
Correction to my previous comment:
"We've noticed that whenever the plain text password is used on one of these systems they come up with a unique decrypted password."
should read:
"We've noticed that whenever the plain text password is used on one of these systems they come up with a unique encrypted password."
Jworthington, are you able to provide an update please?
Also what's the difference between passwords which are encrypted with a $1$ prefix and a $6$ prefix, for example.
Currently we're having significant problems with a variety of Splunk 7.1.1 systems being unable to use the same encrypted password for "sslPassword" even though they all have the same splunk.secret file. We've noticed that whenever the plain text password is used on one of these systems they come up with a unique decrypted password. Could you please confirm that this is expected behaviour?
Thank you!
HI Tada,
Well, in a way, yeah. :)
Splunk secret is in an internal security process that can't be modified, so we didn't bother going into to much detail about how it works. But I can talk to some of our developers and see if we can add a bit more context.
Thanks for the feedback!
Jen
Why doesn't this topic detail exactly what encryption methods are being used? Security through obscurity?
Dmcgarry:
Good point. The intent was never to suggest that these different password examples use the same encryption or even should in every instance. But I can see how it might be confusing. I'll add a bit of text (with links!) to make it clear that while these passwords are stored here, users should configure their encryption using the relevant topics in the manual.
Some of the files referenced in this document use different encryption methods. You can't always mix and match encrypted passwords between them. As an example the same password encrypted in both inputs.conf and outputs.conf may not match depending on which version of splunk you are using.
Is it possible to get the passwords.conf file added to the list of files that are checked for this?
Hey,
just to mention it: "$1$ indicates MD5 hashing"
That is true in pretty much everywhere in IT, but not in Splunk - here it doesn't indicate an MD5 hash, but a value encrypted with Splunks proprietary own encryption. It's pretty confusing, so keep this in mind. ;-)