From 160bf4bbe9f90e7eecfd4d4a635d6842eb226bed Mon Sep 17 00:00:00 2001 From: Miguelangel Freitas Date: Sat, 16 Sep 2017 22:01:17 -0400 Subject: [PATCH 1/4] Adding Nginx container * Setting Nginx with SSL and basic auth, closes #20 * Set Content-Type on Kibana API config. --- docker-compose.yml | 22 ++++++++++++++-- kibana/config/wait-for-it.sh | 2 +- nginx/configure.sh | 49 ++++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 nginx/configure.sh diff --git a/docker-compose.yml b/docker-compose.yml index fe0502e4..883d80ba 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -53,8 +53,8 @@ services: image: wazuh/wazuh-kibana hostname: kibana restart: always - ports: - - "5601:5601" +# ports: +# - "5601:5601" networks: - docker_elk depends_on: @@ -65,6 +65,24 @@ services: entrypoint: sh wait-for-it.sh elasticsearch # environment: # - "WAZUH_KIBANA_PLUGIN_URL=http://your.repo/wazuhapp-2.1.0-5.5.1.zip" + nginx: + image: nginx:latest + hostname: nginx + restart: always + command: bash /configure.sh + volumes: + - ./nginx/configure.sh:/configure.sh + environment: + - NGINX_PORT=443 + ports: + - "80:80" + - "443:443" + networks: + - docker_elk + depends_on: + - kibana + links: + - kibana networks: docker_elk: diff --git a/kibana/config/wait-for-it.sh b/kibana/config/wait-for-it.sh index af6942a3..88cb344f 100644 --- a/kibana/config/wait-for-it.sh +++ b/kibana/config/wait-for-it.sh @@ -26,7 +26,7 @@ sleep 30 echo "Configuring defaultIndex to wazuh-alerts-*" -curl -s -XPUT http://$host:9200/.kibana/config/5.5.2 -d '{"defaultIndex" : "wazuh-alerts-*"}' > /dev/null +curl -s -XPUT http://$host:9200/.kibana/config/5.5.2 -H 'Content-Type: application/json' -d '{"defaultIndex" : "wazuh-alerts-*"}' > /dev/null sleep 30 diff --git a/nginx/configure.sh b/nginx/configure.sh new file mode 100644 index 00000000..2877a2ee --- /dev/null +++ b/nginx/configure.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +set -e + +if [ ! -d /etc/pki/tls/certs ]; then + echo "Generating SSL certificates" + if [ ! -x /usr/bin/openssl ]; then + apt-get update >/dev/null + apt-get -y install openssl >/dev/null + fi + mkdir -p /etc/pki/tls/certs /etc/pki/tls/private + openssl req -x509 -batch -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/kibana-access.key -out /etc/pki/tls/certs/kibana-access.pem >/dev/null +fi + +if [ ! -f /etc/nginx/conf.d/kibana.htpasswd ]; then + echo "Setting kibana credentials" + if [ ! -x /usr/bin/htpasswd ]; then + apt-get update >/dev/null + apt-get -y install apache2-utils >/dev/null + fi + echo bar|htpasswd -i -c /etc/nginx/conf.d/kibana.htpasswd foo >/dev/null +else + echo "Kibana credentials already configured" +fi + +echo "Configuring NGINX" +cat > /etc/nginx/conf.d/default.conf < Date: Mon, 25 Sep 2017 18:46:46 -0400 Subject: [PATCH 2/4] Setting wazuh-nginx image --- docker-compose.yml | 6 ++---- nginx/Dockerfile | 5 +++++ nginx/configure.sh | 12 +++--------- 3 files changed, 10 insertions(+), 13 deletions(-) create mode 100644 nginx/Dockerfile diff --git a/docker-compose.yml b/docker-compose.yml index 883d80ba..6d3614cc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -66,12 +66,10 @@ services: # environment: # - "WAZUH_KIBANA_PLUGIN_URL=http://your.repo/wazuhapp-2.1.0-5.5.1.zip" nginx: - image: nginx:latest + image: wazuh/wazuh-nginx hostname: nginx restart: always - command: bash /configure.sh - volumes: - - ./nginx/configure.sh:/configure.sh + entrypoint: sh /configure.sh environment: - NGINX_PORT=443 ports: diff --git a/nginx/Dockerfile b/nginx/Dockerfile new file mode 100644 index 00000000..f6da2fab --- /dev/null +++ b/nginx/Dockerfile @@ -0,0 +1,5 @@ +FROM nginx:latest + +RUN apt-get update && apt-get install -y openssl apache2-utils + +COPY ./configure.sh /configure.sh diff --git a/nginx/configure.sh b/nginx/configure.sh index 2877a2ee..758bdd81 100644 --- a/nginx/configure.sh +++ b/nginx/configure.sh @@ -4,20 +4,14 @@ set -e if [ ! -d /etc/pki/tls/certs ]; then echo "Generating SSL certificates" - if [ ! -x /usr/bin/openssl ]; then - apt-get update >/dev/null - apt-get -y install openssl >/dev/null - fi mkdir -p /etc/pki/tls/certs /etc/pki/tls/private openssl req -x509 -batch -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/kibana-access.key -out /etc/pki/tls/certs/kibana-access.pem >/dev/null +else + echo "SSL certificates already present" fi if [ ! -f /etc/nginx/conf.d/kibana.htpasswd ]; then - echo "Setting kibana credentials" - if [ ! -x /usr/bin/htpasswd ]; then - apt-get update >/dev/null - apt-get -y install apache2-utils >/dev/null - fi + echo "Setting Nginx credentials" echo bar|htpasswd -i -c /etc/nginx/conf.d/kibana.htpasswd foo >/dev/null else echo "Kibana credentials already configured" From 6e6912c3806cc20f92aff65bfa78e2669291d666 Mon Sep 17 00:00:00 2001 From: Miguelangel Freitas Date: Mon, 25 Sep 2017 18:48:49 -0400 Subject: [PATCH 3/4] Using Wazuh v2.1.0 --- wazuh/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wazuh/Dockerfile b/wazuh/Dockerfile index 82efb023..00d2ebac 100644 --- a/wazuh/Dockerfile +++ b/wazuh/Dockerfile @@ -9,7 +9,7 @@ RUN groupadd -g 1000 ossec RUN useradd -u 1000 -g 1000 ossec RUN curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - &&\ yum install -y nodejs -RUN yum install -y wazuh-manager wazuh-api +RUN yum install -y wazuh-manager-2.1.0 wazuh-api-2.1.0 ADD config/data_dirs.env /data_dirs.env From 845398d7c713571424fc9a15957fabb4ccbab052 Mon Sep 17 00:00:00 2001 From: Miguelangel Freitas Date: Tue, 26 Sep 2017 21:56:41 -0400 Subject: [PATCH 4/4] Nginx start script path changed --- docker-compose.yml | 2 +- nginx/Dockerfile | 2 +- nginx/{configure.sh => config/run.sh} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename nginx/{configure.sh => config/run.sh} (100%) diff --git a/docker-compose.yml b/docker-compose.yml index 6d3614cc..ce93581b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -69,7 +69,7 @@ services: image: wazuh/wazuh-nginx hostname: nginx restart: always - entrypoint: sh /configure.sh + entrypoint: sh run.sh environment: - NGINX_PORT=443 ports: diff --git a/nginx/Dockerfile b/nginx/Dockerfile index f6da2fab..4315179d 100644 --- a/nginx/Dockerfile +++ b/nginx/Dockerfile @@ -2,4 +2,4 @@ FROM nginx:latest RUN apt-get update && apt-get install -y openssl apache2-utils -COPY ./configure.sh /configure.sh +COPY ./config/run.sh /run.sh diff --git a/nginx/configure.sh b/nginx/config/run.sh similarity index 100% rename from nginx/configure.sh rename to nginx/config/run.sh