From a10fa157aa25ff9f18bf07a2fab36cef94f315cd Mon Sep 17 00:00:00 2001 From: l Date: Mon, 4 Feb 2019 18:32:55 +0100 Subject: [PATCH 1/7] Editing kibana config script so disabling xpack features is possible --- kibana/config/kibana_settings.sh | 46 +++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/kibana/config/kibana_settings.sh b/kibana/config/kibana_settings.sh index a01caf8d..d2f16e9c 100644 --- a/kibana/config/kibana_settings.sh +++ b/kibana/config/kibana_settings.sh @@ -47,4 +47,48 @@ sleep 5 # Do not ask user to help providing usage statistics to Elastic curl -POST "http://kibana:5601/api/telemetry/v1/optIn" -H "Content-Type: application/json" -H "kbn-xsrf: true" -d '{"enabled":false}' -echo "End settings" \ No newline at end of file + +kibana_config_file="/usr/share/kibana/plugins/wazuh/config.yml" +if grep -vq "#xpack features" "$kibana_config_file"; +then + +echo " +#xpack features +xpack.apm.ui.enabled: false +xpack.grokdebugger.enabled: false +xpack.searchprofiler.enabled: false +xpack.security.enabled: false +xpack.graph.enabled: false +xpack.ml.enabled: false +xpack.monitoring.enabled: false +xpack.reporting.enabled: false +xpack.watcher.enabled: false +" >> /usr/share/kibana/config/kibana.yml + +else + + +declare -A CONFIG_MAP=( + +[xpack.apm.ui.enabled]= $XPACK_APM +[xpack.grokdebugger.enabled]= $XPACK_DEVTOOLS +[xpack.searchprofiler.enabled]= $XPACK_DEVTOOLS +[xpack.security.enable]= $XPACK_SECURITY +[xpack.graph.enabled]= $XPACK_GRAPHS +[xpack.ml.enabled]=$XPACK_MACHINELEARNING +[xpack.monitoring.enabled]= $XPACK_MONITORING +[xpack.reporting.enable]= $XPACK_REPORTING +[xpack.watcher.enabled]= $XPACK_WATCHER +) + +for i in "${!CONFIG_MAP[@]}" +do + if [ "${CONFIG_MAP[$i]}" != "" ]; then + sed -i 's/.*'"$i"'.*/'"$i"': '"${CONFIG_MAP[$i]}"'/' $kibana_config_file + fi +done + +fi + + +echo "End settings" From a33445047006c572310e2cff82c568a6154562d6 Mon Sep 17 00:00:00 2001 From: l Date: Tue, 5 Feb 2019 12:30:01 +0100 Subject: [PATCH 2/7] Ordening code, disable xpack ml feature at elastic. Also the features disabled at kibana are modified --- elasticsearch/Dockerfile | 2 ++ elasticsearch/config/load_settings.sh | 21 +++++++++++++ kibana/Dockerfile | 12 +++++++- kibana/config/kibana_settings.sh | 44 --------------------------- kibana/config/xpack_config.sh | 33 ++++++++++++++++++++ 5 files changed, 67 insertions(+), 45 deletions(-) create mode 100644 kibana/config/xpack_config.sh diff --git a/elasticsearch/Dockerfile b/elasticsearch/Dockerfile index 08f772f3..ba2da793 100644 --- a/elasticsearch/Dockerfile +++ b/elasticsearch/Dockerfile @@ -7,6 +7,8 @@ ENV ALERTS_SHARDS="1" \ ENV API_USER="foo" \ API_PASS="bar" +ENV XPACK_ML="false" + ENV TEMPLATE_VERSION=v3.8.2 ADD https://raw.githubusercontent.com/wazuh/wazuh/$TEMPLATE_VERSION/extensions/elasticsearch/wazuh-elastic6-template-alerts.json /usr/share/elasticsearch/config diff --git a/elasticsearch/config/load_settings.sh b/elasticsearch/config/load_settings.sh index 282d8b0d..59f04daf 100644 --- a/elasticsearch/config/load_settings.sh +++ b/elasticsearch/config/load_settings.sh @@ -68,4 +68,25 @@ curl -XPUT "$el_url/_cluster/settings" -H 'Content-Type: application/json' -d' } ' +#Disabling xpack features + +elasticsearch_config_file="/usr/share/elasticsearch/config/elasticsearch.yml" +if grep -Fq "#xpack features" "$elasticsearch_config_file"; +then + declare -A CONFIG_MAP=( + [xpack.ml.enabled]=$XPACK_ML + ) + for i in "${!CONFIG_MAP[@]}" + do + if [ "${CONFIG_MAP[$i]}" != "" ]; then + sed -i 's/.'"$i"'.*/'"$i"': '"${CONFIG_MAP[$i]}"'/' $elasticsearch_config_file + fi + done +else + echo " + #xpack features + xpack.ml.enabled: $XPACK_ML + " >> $elasticsearch_config_file +fi + echo "Elasticsearch is ready." diff --git a/kibana/Dockerfile b/kibana/Dockerfile index 6832f55d..cc15f368 100644 --- a/kibana/Dockerfile +++ b/kibana/Dockerfile @@ -39,7 +39,13 @@ ENV PATTERN="" \ WAZUH_MONITORING_FREQUENCY="" \ WAZUH_MONITORING_SHARDS="" \ WAZUH_MONITORING_REPLICAS="" \ - ADMIN_PRIVILEGES="" + ADMIN_PRIVILEGES=""\ + XPACK_CANVAS="false"\ + XPACK_LOGS="false"\ + XPACK_INFRA="false"\ + XPACK_ML="false"\ + XPACK_DEVTOOLS="false"\ + XPACK_APM="false" COPY --chown=kibana:kibana ./config/wazuh_app_config.sh ./ @@ -50,5 +56,9 @@ COPY --chown=kibana:kibana ./config/kibana_settings.sh ./ RUN chmod +x ./kibana_settings.sh +COPY --chown=kibana:kibana ./config/xpack_config.sh ./ + +RUN chmod +x ./xpack_config.sh + ENTRYPOINT /entrypoint.sh diff --git a/kibana/config/kibana_settings.sh b/kibana/config/kibana_settings.sh index d2f16e9c..29f993e1 100644 --- a/kibana/config/kibana_settings.sh +++ b/kibana/config/kibana_settings.sh @@ -47,48 +47,4 @@ sleep 5 # Do not ask user to help providing usage statistics to Elastic curl -POST "http://kibana:5601/api/telemetry/v1/optIn" -H "Content-Type: application/json" -H "kbn-xsrf: true" -d '{"enabled":false}' - -kibana_config_file="/usr/share/kibana/plugins/wazuh/config.yml" -if grep -vq "#xpack features" "$kibana_config_file"; -then - -echo " -#xpack features -xpack.apm.ui.enabled: false -xpack.grokdebugger.enabled: false -xpack.searchprofiler.enabled: false -xpack.security.enabled: false -xpack.graph.enabled: false -xpack.ml.enabled: false -xpack.monitoring.enabled: false -xpack.reporting.enabled: false -xpack.watcher.enabled: false -" >> /usr/share/kibana/config/kibana.yml - -else - - -declare -A CONFIG_MAP=( - -[xpack.apm.ui.enabled]= $XPACK_APM -[xpack.grokdebugger.enabled]= $XPACK_DEVTOOLS -[xpack.searchprofiler.enabled]= $XPACK_DEVTOOLS -[xpack.security.enable]= $XPACK_SECURITY -[xpack.graph.enabled]= $XPACK_GRAPHS -[xpack.ml.enabled]=$XPACK_MACHINELEARNING -[xpack.monitoring.enabled]= $XPACK_MONITORING -[xpack.reporting.enable]= $XPACK_REPORTING -[xpack.watcher.enabled]= $XPACK_WATCHER -) - -for i in "${!CONFIG_MAP[@]}" -do - if [ "${CONFIG_MAP[$i]}" != "" ]; then - sed -i 's/.*'"$i"'.*/'"$i"': '"${CONFIG_MAP[$i]}"'/' $kibana_config_file - fi -done - -fi - - echo "End settings" diff --git a/kibana/config/xpack_config.sh b/kibana/config/xpack_config.sh new file mode 100644 index 00000000..b2a8ec65 --- /dev/null +++ b/kibana/config/xpack_config.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +kibana_config_file="/usr/share/kibana/config/kibana.yml" +if grep -Fq "#xpack features" "$kibana_config_file"; +then + declare -A CONFIG_MAP=( + [xpack.apm.ui.enabled]=$XPACK_APM + [xpack.grokdebugger.enabled]=$XPACK_DEVTOOLS + [xpack.searchprofiler.enabled]=$XPACK_DEVTOOLS + [xpack.ml.enabled]=$XPACK_ML + [xpack.canvas.enabled]=$XPACK_CANVAS + [xpack.logstash.enabled]=$XPACK_LOGS + [xpack.infra.enabled]=$XPACK_INFRA + ) + for i in "${!CONFIG_MAP[@]}" + do + if [ "${CONFIG_MAP[$i]}" != "" ]; then + sed -i 's/.'"$i"'.*/'"$i"': '"${CONFIG_MAP[$i]}"'/' $kibana_config_file + fi + done +else + echo " + #xpack features + xpack.apm.ui.enabled: $XPACK_APM + xpack.grokdebugger.enabled: $XPACK_DEVTOOLS + xpack.searchprofiler.enabled: $XPACK_DEVTOOLS + xpack.ml.enabled: $XPACK_ML + xpack.canvas.enabled: $XPACK_CANVAS + xpack.logstash.enabled: $XPACK_LOGS + xpack.infra.enabled: $XPACK_INFRA + console.enabled: $XPACK_INFRA + " >> $kibana_config_file +fi From 024d25236a62397158dfd4b4894fc435be52f1a5 Mon Sep 17 00:00:00 2001 From: l Date: Tue, 5 Feb 2019 13:12:33 +0100 Subject: [PATCH 3/7] Fixing bug that prevented the xpack config script be called --- kibana/config/entrypoint.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kibana/config/entrypoint.sh b/kibana/config/entrypoint.sh index e34029b7..8fcc8a78 100644 --- a/kibana/config/entrypoint.sh +++ b/kibana/config/entrypoint.sh @@ -23,4 +23,7 @@ sleep 5 ./kibana_settings.sh & + +./xpack_config.sh & + /usr/local/bin/kibana-docker From 302286a29e7bad41b998157f7060fa06b32d2a20 Mon Sep 17 00:00:00 2001 From: l Date: Tue, 5 Feb 2019 13:18:03 +0100 Subject: [PATCH 4/7] Fixing indentation at the .yml files --- elasticsearch/config/load_settings.sh | 6 +++--- kibana/config/xpack_config.sh | 20 ++++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/elasticsearch/config/load_settings.sh b/elasticsearch/config/load_settings.sh index 59f04daf..f844bb34 100644 --- a/elasticsearch/config/load_settings.sh +++ b/elasticsearch/config/load_settings.sh @@ -84,9 +84,9 @@ then done else echo " - #xpack features - xpack.ml.enabled: $XPACK_ML - " >> $elasticsearch_config_file +#xpack features +xpack.ml.enabled: $XPACK_ML + " >> $elasticsearch_config_file fi echo "Elasticsearch is ready." diff --git a/kibana/config/xpack_config.sh b/kibana/config/xpack_config.sh index b2a8ec65..5939c39a 100644 --- a/kibana/config/xpack_config.sh +++ b/kibana/config/xpack_config.sh @@ -20,14 +20,14 @@ then done else echo " - #xpack features - xpack.apm.ui.enabled: $XPACK_APM - xpack.grokdebugger.enabled: $XPACK_DEVTOOLS - xpack.searchprofiler.enabled: $XPACK_DEVTOOLS - xpack.ml.enabled: $XPACK_ML - xpack.canvas.enabled: $XPACK_CANVAS - xpack.logstash.enabled: $XPACK_LOGS - xpack.infra.enabled: $XPACK_INFRA - console.enabled: $XPACK_INFRA - " >> $kibana_config_file +#xpack features +xpack.apm.ui.enabled: $XPACK_APM +xpack.grokdebugger.enabled: $XPACK_DEVTOOLS +xpack.searchprofiler.enabled: $XPACK_DEVTOOLS +xpack.ml.enabled: $XPACK_ML +xpack.canvas.enabled: $XPACK_CANVAS +xpack.logstash.enabled: $XPACK_LOGS +xpack.infra.enabled: $XPACK_INFRA +console.enabled: $XPACK_INFRA +" >> $kibana_config_file fi From 02895ec70713bca9f13069bdc192fcc9b7910ffa Mon Sep 17 00:00:00 2001 From: l Date: Tue, 5 Feb 2019 13:32:32 +0100 Subject: [PATCH 5/7] Fixing bug that wont allow to display devtools --- kibana/config/xpack_config.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kibana/config/xpack_config.sh b/kibana/config/xpack_config.sh index 5939c39a..ddce5154 100644 --- a/kibana/config/xpack_config.sh +++ b/kibana/config/xpack_config.sh @@ -11,6 +11,7 @@ then [xpack.canvas.enabled]=$XPACK_CANVAS [xpack.logstash.enabled]=$XPACK_LOGS [xpack.infra.enabled]=$XPACK_INFRA + [console.enabled]=$XPACK_DEVTOOLS ) for i in "${!CONFIG_MAP[@]}" do @@ -28,6 +29,6 @@ xpack.ml.enabled: $XPACK_ML xpack.canvas.enabled: $XPACK_CANVAS xpack.logstash.enabled: $XPACK_LOGS xpack.infra.enabled: $XPACK_INFRA -console.enabled: $XPACK_INFRA +console.enabled: $XPACK_DEVTOOLS " >> $kibana_config_file fi From 2e3b49dcada382566d5afa58c0f9a0cd69cdd496 Mon Sep 17 00:00:00 2001 From: l Date: Wed, 6 Feb 2019 10:23:37 +0100 Subject: [PATCH 6/7] Disabling xpack monitoring in Kibana --- kibana/Dockerfile | 1 + kibana/config/xpack_config.sh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/kibana/Dockerfile b/kibana/Dockerfile index cc15f368..8e31a057 100644 --- a/kibana/Dockerfile +++ b/kibana/Dockerfile @@ -45,6 +45,7 @@ ENV PATTERN="" \ XPACK_INFRA="false"\ XPACK_ML="false"\ XPACK_DEVTOOLS="false"\ + XPACK_MONITORING="false"\ XPACK_APM="false" diff --git a/kibana/config/xpack_config.sh b/kibana/config/xpack_config.sh index ddce5154..0dbd5ce8 100644 --- a/kibana/config/xpack_config.sh +++ b/kibana/config/xpack_config.sh @@ -11,6 +11,7 @@ then [xpack.canvas.enabled]=$XPACK_CANVAS [xpack.logstash.enabled]=$XPACK_LOGS [xpack.infra.enabled]=$XPACK_INFRA + [xpack.monitoring.enabled]=$XPACK_MONITORING [console.enabled]=$XPACK_DEVTOOLS ) for i in "${!CONFIG_MAP[@]}" @@ -29,6 +30,7 @@ xpack.ml.enabled: $XPACK_ML xpack.canvas.enabled: $XPACK_CANVAS xpack.logstash.enabled: $XPACK_LOGS xpack.infra.enabled: $XPACK_INFRA +xpack.monitoring.enabled: $XPACK_MONITORING console.enabled: $XPACK_DEVTOOLS " >> $kibana_config_file fi From a6b7d6ea02cbed8c80f9f3f7b3dacb1a861ac94c Mon Sep 17 00:00:00 2001 From: l Date: Thu, 7 Feb 2019 12:58:59 +0100 Subject: [PATCH 7/7] Enabling xpack plugins by default. Fixing a bug that can cause that the desabilitation of plugins wasnt applied at kibana --- elasticsearch/Dockerfile | 2 +- elasticsearch/config/entrypoint.sh | 22 ++++++++++++++++++++++ elasticsearch/config/load_settings.sh | 20 -------------------- kibana/Dockerfile | 14 +++++++------- kibana/config/entrypoint.sh | 3 ++- 5 files changed, 32 insertions(+), 29 deletions(-) diff --git a/elasticsearch/Dockerfile b/elasticsearch/Dockerfile index ba2da793..1a41604b 100644 --- a/elasticsearch/Dockerfile +++ b/elasticsearch/Dockerfile @@ -7,7 +7,7 @@ ENV ALERTS_SHARDS="1" \ ENV API_USER="foo" \ API_PASS="bar" -ENV XPACK_ML="false" +ENV XPACK_ML="true" ENV TEMPLATE_VERSION=v3.8.2 diff --git a/elasticsearch/config/entrypoint.sh b/elasticsearch/config/entrypoint.sh index 525549cd..2c394cbd 100644 --- a/elasticsearch/config/entrypoint.sh +++ b/elasticsearch/config/entrypoint.sh @@ -19,6 +19,28 @@ run_as_other_user_if_needed() { fi } + +#Disabling xpack features + +elasticsearch_config_file="/usr/share/elasticsearch/config/elasticsearch.yml" +if grep -Fq "#xpack features" "$elasticsearch_config_file"; +then + declare -A CONFIG_MAP=( + [xpack.ml.enabled]=$XPACK_ML + ) + for i in "${!CONFIG_MAP[@]}" + do + if [ "${CONFIG_MAP[$i]}" != "" ]; then + sed -i 's/.'"$i"'.*/'"$i"': '"${CONFIG_MAP[$i]}"'/' $elasticsearch_config_file + fi + done +else + echo " +#xpack features +xpack.ml.enabled: $XPACK_ML + " >> $elasticsearch_config_file +fi + # Run load settings script. ./load_settings.sh & diff --git a/elasticsearch/config/load_settings.sh b/elasticsearch/config/load_settings.sh index f844bb34..a196e766 100644 --- a/elasticsearch/config/load_settings.sh +++ b/elasticsearch/config/load_settings.sh @@ -68,25 +68,5 @@ curl -XPUT "$el_url/_cluster/settings" -H 'Content-Type: application/json' -d' } ' -#Disabling xpack features - -elasticsearch_config_file="/usr/share/elasticsearch/config/elasticsearch.yml" -if grep -Fq "#xpack features" "$elasticsearch_config_file"; -then - declare -A CONFIG_MAP=( - [xpack.ml.enabled]=$XPACK_ML - ) - for i in "${!CONFIG_MAP[@]}" - do - if [ "${CONFIG_MAP[$i]}" != "" ]; then - sed -i 's/.'"$i"'.*/'"$i"': '"${CONFIG_MAP[$i]}"'/' $elasticsearch_config_file - fi - done -else - echo " -#xpack features -xpack.ml.enabled: $XPACK_ML - " >> $elasticsearch_config_file -fi echo "Elasticsearch is ready." diff --git a/kibana/Dockerfile b/kibana/Dockerfile index 8e31a057..60e5d3a9 100644 --- a/kibana/Dockerfile +++ b/kibana/Dockerfile @@ -40,13 +40,13 @@ ENV PATTERN="" \ WAZUH_MONITORING_SHARDS="" \ WAZUH_MONITORING_REPLICAS="" \ ADMIN_PRIVILEGES=""\ - XPACK_CANVAS="false"\ - XPACK_LOGS="false"\ - XPACK_INFRA="false"\ - XPACK_ML="false"\ - XPACK_DEVTOOLS="false"\ - XPACK_MONITORING="false"\ - XPACK_APM="false" + XPACK_CANVAS="true"\ + XPACK_LOGS="true"\ + XPACK_INFRA="true"\ + XPACK_ML="true"\ + XPACK_DEVTOOLS="true"\ + XPACK_MONITORING="true"\ + XPACK_APM="true" COPY --chown=kibana:kibana ./config/wazuh_app_config.sh ./ diff --git a/kibana/config/entrypoint.sh b/kibana/config/entrypoint.sh index 8fcc8a78..a50c3d11 100644 --- a/kibana/config/entrypoint.sh +++ b/kibana/config/entrypoint.sh @@ -21,9 +21,10 @@ done sleep 5 +./xpack_config.sh + ./kibana_settings.sh & -./xpack_config.sh & /usr/local/bin/kibana-docker