forked from wazuh/wazuh-docker
Adding Nginx container
* Setting Nginx with SSL and basic auth, closes #20 * Set Content-Type on Kibana API config.
This commit is contained in:
+20
-2
@@ -53,8 +53,8 @@ services:
|
|||||||
image: wazuh/wazuh-kibana
|
image: wazuh/wazuh-kibana
|
||||||
hostname: kibana
|
hostname: kibana
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
# ports:
|
||||||
- "5601:5601"
|
# - "5601:5601"
|
||||||
networks:
|
networks:
|
||||||
- docker_elk
|
- docker_elk
|
||||||
depends_on:
|
depends_on:
|
||||||
@@ -65,6 +65,24 @@ services:
|
|||||||
entrypoint: sh wait-for-it.sh elasticsearch
|
entrypoint: sh wait-for-it.sh elasticsearch
|
||||||
# environment:
|
# environment:
|
||||||
# - "WAZUH_KIBANA_PLUGIN_URL=http://your.repo/wazuhapp-2.1.0-5.5.1.zip"
|
# - "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:
|
networks:
|
||||||
docker_elk:
|
docker_elk:
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ sleep 30
|
|||||||
|
|
||||||
echo "Configuring defaultIndex to wazuh-alerts-*"
|
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
|
sleep 30
|
||||||
|
|
||||||
|
|||||||
@@ -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 <<EOF
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
return 301 https://\$host:$NGINX_PORT\$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen $NGINX_PORT default_server;
|
||||||
|
listen [::]:$NGINX_PORT;
|
||||||
|
ssl on;
|
||||||
|
ssl_certificate /etc/pki/tls/certs/kibana-access.pem;
|
||||||
|
ssl_certificate_key /etc/pki/tls/private/kibana-access.key;
|
||||||
|
location / {
|
||||||
|
auth_basic "Restricted";
|
||||||
|
auth_basic_user_file /etc/nginx/conf.d/kibana.htpasswd;
|
||||||
|
proxy_pass http://kibana:5601/;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "Starting Nginx"
|
||||||
|
nginx -g 'daemon off; error_log /dev/stdout info;'
|
||||||
Reference in New Issue
Block a user