mirror of
				https://github.com/wazuh/wazuh-docker.git
				synced 2025-11-02 04:53:16 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			101 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| # Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
 | |
| 
 | |
| set -e
 | |
| 
 | |
| 
 | |
| ##############################################################################
 | |
| # Set Elasticsearch API url
 | |
| ##############################################################################
 | |
| 
 | |
| if [[ "x${ELASTICSEARCH_PROTOCOL}" = "x" || "x${ELASTICSEARCH_IP}" = "x" || "x${ELASTICSEARCH_PORT}" = "x" ]]; then
 | |
|   el_url="http://elasticsearch:9200"
 | |
| else
 | |
|   el_url="${ELASTICSEARCH_PROTOCOL}://${ELASTICSEARCH_IP}:${ELASTICSEARCH_PORT}"
 | |
| fi
 | |
| 
 | |
| echo "USERS - Elasticsearch url: $el_url"
 | |
| 
 | |
| 
 | |
| ##############################################################################
 | |
| # If Elasticsearch security is enabled get the elastic user password.
 | |
| ##############################################################################
 | |
| 
 | |
| ELASTIC_PASS=""
 | |
| 
 | |
| if [[ "x${SECURITY_CREDENTIALS_FILE}" == "x" ]]; then
 | |
|   ELASTIC_PASS=${SECURITY_ELASTIC_PASSWORD}
 | |
| else
 | |
|   input=${SECURITY_CREDENTIALS_FILE}
 | |
|   while IFS= read -r line
 | |
|   do
 | |
|     if [[ $line == *"ELASTIC_PASSWORD"* ]]; then
 | |
|       arrIN=(${line//:/ })
 | |
|       ELASTIC_PASS=${arrIN[1]}
 | |
|     fi
 | |
|   done < "$input"
 | |
|  
 | |
| fi
 | |
| 
 | |
| 
 | |
| ##############################################################################
 | |
| # If Elasticsearch security is enabled get the users credentials.
 | |
| ##############################################################################
 | |
| 
 | |
| # The user must get the credentials of the users.
 | |
| # TO DO. 
 | |
| 
 | |
| ##############################################################################
 | |
| # Set authentication for curl if Elasticsearch security is enabled.
 | |
| ##############################################################################
 | |
| 
 | |
| if [ ${SECURITY_ENABLED} != "no" ]; then
 | |
|   auth="-uelastic:${ELASTIC_PASS} -k"
 | |
|   echo "USERS - authentication for curl established."
 | |
| elif [[ ${ENABLED_XPACK} != "true" || "x${ELASTICSEARCH_USERNAME}" = "x" || "x${ELASTICSEARCH_PASSWORD}" = "x" ]]; then
 | |
|   auth=""
 | |
|   echo "USERS - authentication for curl not established."
 | |
| else
 | |
|   auth="--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}"
 | |
|   echo "USERS - authentication for curl established."
 | |
| fi
 | |
| 
 | |
| 
 | |
| ##############################################################################
 | |
| # Wait until Elasticsearch is active. 
 | |
| ##############################################################################
 | |
| 
 | |
| until curl ${auth} -XGET $el_url; do
 | |
|   >&2 echo "USERS - Elastic is unavailable - sleeping"
 | |
|   sleep 5
 | |
| done
 | |
| 
 | |
| >&2 echo "USERS - Elastic is up - executing command"
 | |
| 
 | |
| 
 | |
| ##############################################################################
 | |
| # Setup passwords for Elastic Stack users.
 | |
| ##############################################################################
 | |
| 
 | |
| # The user must add the credentials of the users.
 | |
| # TO DO.
 | |
| # Example 
 | |
| # echo "USERS - Add custom_user password and role:"
 | |
| # curl ${auth} -k -XPOST -H 'Content-Type: application/json' 'https://localhost:9200/_xpack/security/role/custom_user_role ' -d '
 | |
| # { "indices": [ { "names": [ ".kibana*" ],  "privileges": ["read"] }, { "names": [ "wazuh-monitoring*"],  "privileges": ["all"] }] }'
 | |
| # curl ${auth} -k -XPOST -H 'Content-Type: application/json' 'https://localhost:9200/_xpack/security/user/custom_user'  -d '
 | |
| # { "password":"'$CUSTOM_USER_PASSWORD'", "roles" : [ "kibana_system", "custom_user_role"],  "full_name" : "Custom User" }'
 | |
| 
 | |
| 
 | |
| ##############################################################################
 | |
| # Remove credentials file.
 | |
| ##############################################################################
 | |
| 
 | |
| if [[ "x${SECURITY_CREDENTIALS_FILE}" == "x" ]]; then
 | |
|   echo "USERS - Security credentials file not used. Nothing to do."
 | |
| else
 | |
|   shred -zvu ${SECURITY_CREDENTIALS_FILE}
 | |
|   echo "USERS - Security credentials file removed."
 | |
| fi
 | |
| 
 |