mirror of
https://github.com/wazuh/wazuh-docker.git
synced 2025-11-03 13:33:15 +00:00
Compare commits
69 Commits
3.9.1_7.1.
...
v3.11.1_7.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
17865358d8 | ||
|
|
95cb2fa3aa | ||
|
|
bba5b90716 | ||
|
|
afb1c1fba3 | ||
|
|
95b6b70a70 | ||
|
|
44a7a9b16f | ||
|
|
49f1b476b5 | ||
|
|
e83a092449 | ||
|
|
380ba92708 | ||
|
|
7e8e11bfd6 | ||
|
|
3c7d0f441d | ||
|
|
23fffddf95 | ||
|
|
88ec0fc043 | ||
|
|
774d14ee18 | ||
|
|
66f50039b0 | ||
|
|
99361ee0e4 | ||
|
|
89eda06a27 | ||
|
|
6c0af46903 | ||
|
|
846ff81102 | ||
|
|
35914c35e1 | ||
|
|
237f55d7e2 | ||
|
|
8cdfca24cf | ||
|
|
60f04d3987 | ||
|
|
2c31757953 | ||
|
|
505767ef31 | ||
|
|
6c9fce8964 | ||
|
|
1f7e3a4498 | ||
|
|
6d44063077 | ||
|
|
8fc6512164 | ||
|
|
aaed0058ce | ||
|
|
57e71d5545 | ||
|
|
6d393f976a | ||
|
|
f7eaf56691 | ||
|
|
2c9c0f6cea | ||
|
|
c2f43d0d29 | ||
|
|
a2dd5867a1 | ||
|
|
adc4efb694 | ||
|
|
62e39920cd | ||
|
|
2a77c6a6e6 | ||
|
|
1562808cf6 | ||
|
|
b0782505e1 | ||
|
|
507d27a448 | ||
|
|
40bb635036 | ||
|
|
61b1f45bc4 | ||
|
|
881a0abfa5 | ||
|
|
d8c14e108c | ||
|
|
60b32d0d21 | ||
|
|
a481d9c376 | ||
|
|
9740ddcf3e | ||
|
|
5db7509b52 | ||
|
|
e00cd1081a | ||
|
|
7a6c3f5f5e | ||
|
|
3aff6de0d0 | ||
|
|
8a6225856d | ||
|
|
e6cddf8e1d | ||
|
|
ad4084a8da | ||
|
|
11b926ffa3 | ||
|
|
d81ab1e304 | ||
|
|
a6b453b9df | ||
|
|
ee0303fd36 | ||
|
|
286714606b | ||
|
|
0af05f88fa | ||
|
|
f60195a075 | ||
|
|
7c49e389a8 | ||
|
|
b43b1b4299 | ||
|
|
03f87a0927 | ||
|
|
dab0f53634 | ||
|
|
c01c17623a | ||
|
|
582e93b955 |
62
CHANGELOG.md
62
CHANGELOG.md
@@ -1,6 +1,68 @@
|
|||||||
# Change Log
|
# Change Log
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## Wazuh Docker v3.11.1_7.5.1
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Update to Wazuh version 3.11.1_7.5.1
|
||||||
|
- Filebeat configuration file updated to latest version ([@manuasir](https://github.com/manuasir)) [#271](https://github.com/wazuh/wazuh-docker/pull/271)
|
||||||
|
- Allow using the hostname as node_name for managers ([@JPLachance](https://github.com/JPLachance)) [#261](https://github.com/wazuh/wazuh-docker/pull/261)
|
||||||
|
|
||||||
|
## Wazuh Docker v3.11.0_7.5.1
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Update to Wazuh version 3.11.0_7.5.1
|
||||||
|
|
||||||
|
## Wazuh Docker v3.10.2_7.5.0
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Update to Wazuh version 3.10.2_7.5.0
|
||||||
|
|
||||||
|
## Wazuh Docker v3.10.2_7.3.2
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Update to Wazuh version 3.10.2_7.3.2
|
||||||
|
|
||||||
|
## Wazuh Docker v3.10.0_7.3.2
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Update to Wazuh version 3.10.0_7.3.2
|
||||||
|
|
||||||
|
## Wazuh Docker v3.9.5_7.2.1
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Update to Wazuh version 3.9.5_7.2.1
|
||||||
|
|
||||||
|
## Wazuh Docker v3.9.4_7.2.0
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Update to Wazuh version 3.9.4_7.2.0
|
||||||
|
- Implemented Wazuh Filebeat Module ([jm404](https://www.github.com/jm404)) [#2a77c6a](https://github.com/wazuh/wazuh-docker/commit/2a77c6a6e6bf78f2492adeedbade7a507d9974b2)
|
||||||
|
|
||||||
|
## Wazuh Docker v3.9.3_7.2.0
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Wazuh-docker reinserts cluster settings after resuming containers ([@manuasir](https://github.com/manuasir)) [#213](https://github.com/wazuh/wazuh-docker/pull/213)
|
||||||
|
|
||||||
|
## Wazuh Docker v3.9.2_7.1.1
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Update to Wazuh version 3.9.2_7.1.1
|
||||||
|
|
||||||
|
## Wazuh Docker v3.9.2_6.8.0
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Update to Wazuh version 3.9.2_6.8.0
|
||||||
|
|
||||||
## Wazuh Docker v3.9.1_7.1.0
|
## Wazuh Docker v3.9.1_7.1.0
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ In addition, a docker-compose file is provided to launch the containers mentione
|
|||||||
|
|
||||||
* `stable` branch on correspond to the latest Wazuh-Docker stable version.
|
* `stable` branch on correspond to the latest Wazuh-Docker stable version.
|
||||||
* `master` branch contains the latest code, be aware of possible bugs on this branch.
|
* `master` branch contains the latest code, be aware of possible bugs on this branch.
|
||||||
* `Wazuh.Version_ElasticStack.Version` (for example 3.9.1_6.8.2) branch. This branch contains the current release referenced in Docker Hub. The container images are installed under the current version of this branch.
|
* `Wazuh.Version_ElasticStack.Version` (for example 3.10.2_7.5.0) branch. This branch contains the current release referenced in Docker Hub. The container images are installed under the current version of this branch.
|
||||||
|
|
||||||
## Credits and Thank you
|
## Credits and Thank you
|
||||||
|
|
||||||
|
|||||||
4
VERSION
4
VERSION
@@ -1,2 +1,2 @@
|
|||||||
WAZUH-DOCKER_VERSION="3.9.1_7.1.0"
|
WAZUH-DOCKER_VERSION="3.11.1_7.5.1"
|
||||||
REVISION="3911"
|
REVISION="31110"
|
||||||
|
|||||||
@@ -1,36 +1,36 @@
|
|||||||
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
|
# Wazuh App Copyright (C) 2019 Wazuh Inc. (License GPLv2)
|
||||||
version: '2'
|
version: '2'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
wazuh:
|
wazuh:
|
||||||
build: wazuh
|
image: wazuh/wazuh:3.11.1_7.5.1
|
||||||
hostname: wazuh-manager
|
hostname: wazuh-manager
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- '1514:1514/udp'
|
- "1514:1514/udp"
|
||||||
- '1515:1515'
|
- "1515:1515"
|
||||||
- '514:514/udp'
|
- "514:514/udp"
|
||||||
- '55000:55000'
|
- "55000:55000"
|
||||||
|
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
build: elasticsearch
|
image: wazuh/wazuh-elasticsearch:3.11.1_7.5.1
|
||||||
hostname: elasticsearch
|
hostname: elasticsearch
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- '9200:9200'
|
- "9200:9200"
|
||||||
environment:
|
environment:
|
||||||
- node.name=node-1
|
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
|
||||||
- cluster.name=wazuh
|
- ELASTIC_CLUSTER=true
|
||||||
- network.host=localhost
|
- CLUSTER_NODE_MASTER=true
|
||||||
- discovery.type=single-node
|
- CLUSTER_MASTER_NODE_NAME=es01
|
||||||
- bootstrap.memory_lock=true
|
|
||||||
- 'ES_JAVA_OPTS=-Xms1g -Xmx1g'
|
|
||||||
ulimits:
|
ulimits:
|
||||||
memlock:
|
memlock:
|
||||||
soft: -1
|
soft: -1
|
||||||
hard: -1
|
hard: -1
|
||||||
mem_limit: 2g
|
mem_limit: 2g
|
||||||
|
|
||||||
kibana:
|
kibana:
|
||||||
build: kibana
|
image: wazuh/wazuh-kibana:3.11.1_7.5.1
|
||||||
hostname: kibana
|
hostname: kibana
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
@@ -39,15 +39,15 @@ services:
|
|||||||
- elasticsearch:elasticsearch
|
- elasticsearch:elasticsearch
|
||||||
- wazuh:wazuh
|
- wazuh:wazuh
|
||||||
nginx:
|
nginx:
|
||||||
build: nginx
|
image: wazuh/wazuh-nginx:3.11.1_7.5.1
|
||||||
hostname: nginx
|
hostname: nginx
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
- NGINX_PORT=443
|
- NGINX_PORT=443
|
||||||
- NGINX_CREDENTIALS
|
- NGINX_CREDENTIALS
|
||||||
ports:
|
ports:
|
||||||
- '80:80'
|
- "80:80"
|
||||||
- '443:443'
|
- "443:443"
|
||||||
depends_on:
|
depends_on:
|
||||||
- kibana
|
- kibana
|
||||||
links:
|
links:
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
|
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
|
||||||
FROM docker.elastic.co/elasticsearch/elasticsearch:7.1.0
|
ARG ELASTIC_VERSION=7.5.1
|
||||||
|
FROM docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}
|
||||||
|
ARG S3_PLUGIN_URL="https://artifacts.elastic.co/downloads/elasticsearch-plugins/repository-s3/repository-s3-${ELASTIC_VERSION}.zip"
|
||||||
|
|
||||||
ENV ELASTICSEARCH_URL="http://elasticsearch:9200"
|
ENV ELASTICSEARCH_URL="http://elasticsearch:9200"
|
||||||
|
|
||||||
@@ -13,17 +15,18 @@ ENV XPACK_ML="true"
|
|||||||
|
|
||||||
ENV ENABLE_CONFIGURE_S3="false"
|
ENV ENABLE_CONFIGURE_S3="false"
|
||||||
|
|
||||||
ENV TEMPLATE_VERSION=v3.9.1
|
ARG TEMPLATE_VERSION=v3.11.1
|
||||||
|
|
||||||
# Elasticearch cluster configuration environment variables
|
# Elasticearch cluster configuration environment variables
|
||||||
# If ELASTIC_CLUSTER is set to "true" the following variables will be added to the Elasticsearch configuration
|
# If ELASTIC_CLUSTER is set to "true" the following variables will be added to the Elasticsearch configuration
|
||||||
# CLUSTER_INITIAL_MASTER_NODES set to own node by default.
|
# CLUSTER_INITIAL_MASTER_NODES set to own node by default.
|
||||||
ENV ELASTIC_CLUSTER="false" \
|
ENV ELASTIC_CLUSTER="false" \
|
||||||
CLUSTER_NAME="wazuh" \
|
CLUSTER_NAME="wazuh" \
|
||||||
CLUSTER_NODE_MASTER="true" \
|
CLUSTER_NODE_MASTER="false" \
|
||||||
CLUSTER_NODE_DATA="true" \
|
CLUSTER_NODE_DATA="true" \
|
||||||
CLUSTER_NODE_INGEST="true" \
|
CLUSTER_NODE_INGEST="true" \
|
||||||
CLUSTER_NODE_NAME="wazuh-elasticsearch" \
|
CLUSTER_NODE_NAME="wazuh-elasticsearch" \
|
||||||
|
CLUSTER_MASTER_NODE_NAME="master-node" \
|
||||||
CLUSTER_MEMORY_LOCK="true" \
|
CLUSTER_MEMORY_LOCK="true" \
|
||||||
CLUSTER_DISCOVERY_SERVICE="wazuh-elasticsearch" \
|
CLUSTER_DISCOVERY_SERVICE="wazuh-elasticsearch" \
|
||||||
CLUSTER_NUMBER_OF_MASTERS="2" \
|
CLUSTER_NUMBER_OF_MASTERS="2" \
|
||||||
@@ -31,8 +34,6 @@ ENV ELASTIC_CLUSTER="false" \
|
|||||||
CLUSTER_DELAYED_TIMEOUT="1m" \
|
CLUSTER_DELAYED_TIMEOUT="1m" \
|
||||||
CLUSTER_INITIAL_MASTER_NODES="wazuh-elasticsearch"
|
CLUSTER_INITIAL_MASTER_NODES="wazuh-elasticsearch"
|
||||||
|
|
||||||
ADD https://raw.githubusercontent.com/wazuh/wazuh/$TEMPLATE_VERSION/extensions/elasticsearch/7.x/wazuh-template.json /usr/share/elasticsearch/config
|
|
||||||
|
|
||||||
COPY config/entrypoint.sh /entrypoint.sh
|
COPY config/entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
RUN chmod 755 /entrypoint.sh
|
RUN chmod 755 /entrypoint.sh
|
||||||
@@ -41,7 +42,7 @@ COPY --chown=elasticsearch:elasticsearch ./config/load_settings.sh ./
|
|||||||
|
|
||||||
RUN chmod +x ./load_settings.sh
|
RUN chmod +x ./load_settings.sh
|
||||||
|
|
||||||
RUN bin/elasticsearch-plugin install --batch https://artifacts.elastic.co/downloads/elasticsearch-plugins/repository-s3/repository-s3-7.1.0.zip
|
RUN ${bin/elasticsearch-plugin install --batch S3_PLUGIN_URL}
|
||||||
|
|
||||||
COPY config/configure_s3.sh ./config/configure_s3.sh
|
COPY config/configure_s3.sh ./config/configure_s3.sh
|
||||||
RUN chmod 755 ./config/configure_s3.sh
|
RUN chmod 755 ./config/configure_s3.sh
|
||||||
|
|||||||
@@ -3,39 +3,55 @@
|
|||||||
|
|
||||||
elastic_config_file="/usr/share/elasticsearch/config/elasticsearch.yml"
|
elastic_config_file="/usr/share/elasticsearch/config/elasticsearch.yml"
|
||||||
|
|
||||||
|
remove_single_node_conf(){
|
||||||
|
if grep -Fq "discovery.type" $1; then
|
||||||
|
sed -i '/discovery.type\: /d' $1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# If Elasticsearch cluster is enable
|
remove_cluster_config(){
|
||||||
if [[ $ELASTIC_CLUSTER == "true" ]]
|
sed -i '/# cluster node/,/# end cluster config/d' $1
|
||||||
then
|
}
|
||||||
|
|
||||||
# Set the cluster.name and discovery.zen.minimun_master_nodes variables
|
|
||||||
sed -i 's:cluster.name\: "docker-cluster":cluster.name\: "'$CLUSTER_NAME'":g' $elastic_config_file
|
|
||||||
#sed -i 's:discovery.zen.minimum_master_nodes\: 1:discovery.zen.minimum_master_nodes\: '$CLUSTER_NUMBER_OF_MASTERS':g' $elastic_config_file
|
|
||||||
|
|
||||||
# Add the cluster configuration
|
# If Elasticsearch cluster is enable, then set up the elasticsearch.yml
|
||||||
echo "
|
if [[ $ELASTIC_CLUSTER == "true" && $CLUSTER_NODE_MASTER != "" && $CLUSTER_NODE_DATA != "" && $CLUSTER_NODE_INGEST != "" && $CLUSTER_MASTER_NODE_NAME != "" ]]; then
|
||||||
#cluster node
|
# Remove the old configuration
|
||||||
node:
|
remove_single_node_conf $elastic_config_file
|
||||||
master: ${CLUSTER_NODE_MASTER}
|
remove_cluster_config $elastic_config_file
|
||||||
data: ${CLUSTER_NODE_DATA}
|
|
||||||
ingest: ${CLUSTER_NODE_INGEST}
|
|
||||||
name: ${CLUSTER_NODE_NAME}
|
|
||||||
max_local_storage_nodes: ${CLUSTER_MAX_NODES}
|
|
||||||
|
|
||||||
bootstrap:
|
if [[ $CLUSTER_NODE_MASTER == "true" ]]; then
|
||||||
memory_lock: ${CLUSTER_MEMORY_LOCK}
|
# Add the master configuration
|
||||||
|
# cluster.initial_master_nodes for bootstrap the cluster
|
||||||
cluster.initial_master_nodes:
|
cat > $elastic_config_file << EOF
|
||||||
- '${CLUSTER_INITIAL_MASTER_NODES}'
|
# cluster node
|
||||||
|
network.host: 0.0.0.0
|
||||||
" >> $elastic_config_file
|
node.name: $CLUSTER_MASTER_NODE_NAME
|
||||||
else
|
node.master: $CLUSTER_NODE_MASTER
|
||||||
|
cluster.initial_master_nodes:
|
||||||
cat >> $elastic_config_file <<'EOF'
|
- $CLUSTER_MASTER_NODE_NAME
|
||||||
cluster.initial_master_nodes:
|
# end cluster config"
|
||||||
- 'elasticsearch'
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# echo 'discovery.type: single-node'
|
elif [[ $CLUSTER_NODE_NAME != "" ]];then
|
||||||
|
# Remove the old configuration
|
||||||
|
remove_single_node_conf $elastic_config_file
|
||||||
|
remove_cluster_config $elastic_config_file
|
||||||
|
|
||||||
|
cat > $elastic_config_file << EOF
|
||||||
|
# cluster node
|
||||||
|
network.host: 0.0.0.0
|
||||||
|
node.name: $CLUSTER_NODE_NAME
|
||||||
|
node.master: false
|
||||||
|
discovery.seed_hosts:
|
||||||
|
- $CLUSTER_MASTER_NODE_NAME
|
||||||
|
- $CLUSTER_NODE_NAME
|
||||||
|
# end cluster config"
|
||||||
|
EOF
|
||||||
fi
|
fi
|
||||||
|
# If the cluster is disabled, then set a single-node configuration
|
||||||
|
else
|
||||||
|
# Remove the old configuration
|
||||||
|
remove_single_node_conf $elastic_config_file
|
||||||
|
remove_cluster_config $elastic_config_file
|
||||||
|
echo "discovery.type: single-node" >> $elastic_config_file
|
||||||
|
fi
|
||||||
@@ -5,11 +5,6 @@ set -e
|
|||||||
|
|
||||||
el_url=${ELASTICSEARCH_URL}
|
el_url=${ELASTICSEARCH_URL}
|
||||||
|
|
||||||
if [ "x${WAZUH_API_URL}" = "x" ]; then
|
|
||||||
wazuh_url="https://wazuh"
|
|
||||||
else
|
|
||||||
wazuh_url="${WAZUH_API_URL}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${ENABLED_XPACK} != "true" || "x${ELASTICSEARCH_USERNAME}" = "x" || "x${ELASTICSEARCH_PASSWORD}" = "x" ]]; then
|
if [[ ${ENABLED_XPACK} != "true" || "x${ELASTICSEARCH_USERNAME}" = "x" || "x${ELASTICSEARCH_PASSWORD}" = "x" ]]; then
|
||||||
auth=""
|
auth=""
|
||||||
@@ -43,44 +38,6 @@ if [ $ENABLE_CONFIGURE_S3 ]; then
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#Insert default templates
|
|
||||||
|
|
||||||
API_PASS_Q=`echo "$API_PASS" | tr -d '"'`
|
|
||||||
API_USER_Q=`echo "$API_USER" | tr -d '"'`
|
|
||||||
API_PASSWORD=`echo -n $API_PASS_Q | base64`
|
|
||||||
|
|
||||||
echo "Setting API credentials into Wazuh APP"
|
|
||||||
CONFIG_CODE=$(curl -s -o /dev/null -w "%{http_code}" -XGET $el_url/.wazuh/_doc/1513629884013 ${auth})
|
|
||||||
|
|
||||||
if [ "x$CONFIG_CODE" != "x200" ]; then
|
|
||||||
curl -s -XPOST $el_url/.wazuh/_doc/1513629884013 ${auth} -H 'Content-Type: application/json' -d'
|
|
||||||
{
|
|
||||||
"api_user": "'"$API_USER_Q"'",
|
|
||||||
"api_password": "'"$API_PASSWORD"'",
|
|
||||||
"url": "'"$wazuh_url"'",
|
|
||||||
"api_port": "55000",
|
|
||||||
"insecure": "true",
|
|
||||||
"component": "API",
|
|
||||||
"cluster_info": {
|
|
||||||
"manager": "wazuh-manager",
|
|
||||||
"cluster": "Disabled",
|
|
||||||
"status": "disabled"
|
|
||||||
},
|
|
||||||
"extensions": {
|
|
||||||
"oscap": true,
|
|
||||||
"audit": true,
|
|
||||||
"pci": true,
|
|
||||||
"aws": true,
|
|
||||||
"virustotal": true,
|
|
||||||
"gdpr": true,
|
|
||||||
"ciscat": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
' > /dev/null
|
|
||||||
else
|
|
||||||
echo "Wazuh APP already configured"
|
|
||||||
fi
|
|
||||||
sleep 5
|
|
||||||
|
|
||||||
curl -XPUT "$el_url/_cluster/settings" ${auth} -H 'Content-Type: application/json' -d'
|
curl -XPUT "$el_url/_cluster/settings" ${auth} -H 'Content-Type: application/json' -d'
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,18 +1,19 @@
|
|||||||
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
|
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
|
||||||
FROM docker.elastic.co/kibana/kibana:7.1.0
|
FROM docker.elastic.co/kibana/kibana:7.5.1
|
||||||
ARG WAZUH_APP_VERSION=3.9.1_7.1.0
|
USER kibana
|
||||||
|
ARG ELASTIC_VERSION=7.5.1
|
||||||
|
ARG WAZUH_VERSION=3.11.1
|
||||||
|
ARG WAZUH_APP_VERSION="${WAZUH_VERSION}_${ELASTIC_VERSION}"
|
||||||
|
|
||||||
|
#ADD https://packages.wazuh.com/wazuhapp/wazuhapp-${WAZUH_APP_VERSION}.zip /usr/share/kibana/
|
||||||
|
|
||||||
|
RUN /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/wazuhapp/wazuhapp-${WAZUH_APP_VERSION}.zip
|
||||||
|
# RUN rm -rf /tmp/wazuhapp-${WAZUH_APP_VERSION}.zip
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ADD https://packages.wazuh.com/wazuhapp/wazuhapp-${WAZUH_APP_VERSION}.zip /tmp
|
|
||||||
|
|
||||||
RUN /usr/share/kibana/bin/kibana-plugin install file:///tmp/wazuhapp-${WAZUH_APP_VERSION}.zip
|
|
||||||
RUN rm -rf /tmp/wazuhapp-${WAZUH_APP_VERSION}.zip
|
|
||||||
|
|
||||||
COPY config/entrypoint.sh ./entrypoint.sh
|
COPY config/entrypoint.sh ./entrypoint.sh
|
||||||
RUN chmod 755 ./entrypoint.sh
|
RUN chmod 755 ./entrypoint.sh
|
||||||
|
|
||||||
USER kibana
|
|
||||||
|
|
||||||
ENV PATTERN="" \
|
ENV PATTERN="" \
|
||||||
CHECKS_PATTERN="" \
|
CHECKS_PATTERN="" \
|
||||||
CHECKS_TEMPLATE="" \
|
CHECKS_TEMPLATE="" \
|
||||||
@@ -69,7 +70,7 @@ COPY --chown=kibana:kibana ./config/welcome_wazuh.sh ./
|
|||||||
RUN chmod +x ./welcome_wazuh.sh
|
RUN chmod +x ./welcome_wazuh.sh
|
||||||
|
|
||||||
RUN ./welcome_wazuh.sh
|
RUN ./welcome_wazuh.sh
|
||||||
|
USER kibana
|
||||||
RUN /usr/local/bin/kibana-docker --optimize
|
RUN /usr/local/bin/kibana-docker --optimize
|
||||||
|
|
||||||
ENTRYPOINT ./entrypoint.sh
|
ENTRYPOINT ./entrypoint.sh
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ else
|
|||||||
el_url="${ELASTICSEARCH_URL}"
|
el_url="${ELASTICSEARCH_URL}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ${ENABLED_XPACK} != "true" || "x${ELASTICSEARCH_USERNAME}" = "x" || "x${ELASTICSEARCH_PASSWORD}" = "x" ]; then
|
if [[ ${ENABLED_XPACK} != "true" || "x${ELASTICSEARCH_USERNAME}" = "x" || "x${ELASTICSEARCH_PASSWORD}" = "x" ]]; then
|
||||||
auth=""
|
auth=""
|
||||||
else
|
else
|
||||||
auth="--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}"
|
auth="--user ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}"
|
||||||
|
|||||||
@@ -74,6 +74,6 @@ curl -POST "http://$kibana_ip:5601/api/kibana/settings" -H "Content-Type: applic
|
|||||||
|
|
||||||
sleep 5
|
sleep 5
|
||||||
# Do not ask user to help providing usage statistics to Elastic
|
# Do not ask user to help providing usage statistics to Elastic
|
||||||
curl -POST "http://$kibana_ip:5601/api/telemetry/v1/optIn" -H "Content-Type: application/json" -H "kbn-xsrf: true" -d '{"enabled":false}'
|
curl -POST "http://$kibana_ip:5601/api/telemetry/v2/optIn" -H "Content-Type: application/json" -H "kbn-xsrf: true" -d '{"enabled":false}'
|
||||||
|
|
||||||
echo "End settings"
|
echo "End settings"
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
|
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
|
||||||
|
|
||||||
kibana_config_file="/usr/share/kibana/plugins/wazuh/config.yml"
|
wazuh_url="${WAZUH_API_URL:-https://wazuh}"
|
||||||
|
wazuh_port="${API_PORT:-55000}"
|
||||||
|
api_user="${API_USER:-foo}"
|
||||||
|
api_password="${API_PASS:-bar}"
|
||||||
|
|
||||||
|
kibana_config_file="/usr/share/kibana/plugins/wazuh/wazuh.yml"
|
||||||
|
|
||||||
declare -A CONFIG_MAP=(
|
declare -A CONFIG_MAP=(
|
||||||
[pattern]=$PATTERN
|
[pattern]=$PATTERN
|
||||||
@@ -38,3 +43,23 @@ do
|
|||||||
sed -i 's/.*#'"$i"'.*/'"$i"': '"${CONFIG_MAP[$i]}"'/' $kibana_config_file
|
sed -i 's/.*#'"$i"'.*/'"$i"': '"${CONFIG_MAP[$i]}"'/' $kibana_config_file
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# remove default API entry (new in 3.11.0_7.5.1)
|
||||||
|
sed -ie '/- default:/,+4d' $kibana_config_file
|
||||||
|
|
||||||
|
CONFIG_CODE=$(curl -s -o /dev/null -w "%{http_code}" -XGET $el_url/.wazuh/_doc/1513629884013 ${auth})
|
||||||
|
|
||||||
|
grep -q 1513629884013 $kibana_config_file
|
||||||
|
_config_exists=$?
|
||||||
|
|
||||||
|
if [[ "x$CONFIG_CODE" != "x200" && $_config_exists -ne 0 ]]; then
|
||||||
|
cat << EOF >> $kibana_config_file
|
||||||
|
- 1513629884013:
|
||||||
|
url: $wazuh_url
|
||||||
|
port: $wazuh_port
|
||||||
|
user: $api_user
|
||||||
|
password: $api_password
|
||||||
|
EOF
|
||||||
|
else
|
||||||
|
echo "Wazuh APP already configured"
|
||||||
|
fi
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ then
|
|||||||
[xpack.searchprofiler.enabled]=$XPACK_DEVTOOLS
|
[xpack.searchprofiler.enabled]=$XPACK_DEVTOOLS
|
||||||
[xpack.ml.enabled]=$XPACK_ML
|
[xpack.ml.enabled]=$XPACK_ML
|
||||||
[xpack.canvas.enabled]=$XPACK_CANVAS
|
[xpack.canvas.enabled]=$XPACK_CANVAS
|
||||||
[xpack.logstash.enabled]=$XPACK_LOGS
|
|
||||||
[xpack.infra.enabled]=$XPACK_INFRA
|
[xpack.infra.enabled]=$XPACK_INFRA
|
||||||
[xpack.monitoring.enabled]=$XPACK_MONITORING
|
[xpack.monitoring.enabled]=$XPACK_MONITORING
|
||||||
[console.enabled]=$XPACK_DEVTOOLS
|
[console.enabled]=$XPACK_DEVTOOLS
|
||||||
@@ -29,7 +28,6 @@ xpack.grokdebugger.enabled: $XPACK_DEVTOOLS
|
|||||||
xpack.searchprofiler.enabled: $XPACK_DEVTOOLS
|
xpack.searchprofiler.enabled: $XPACK_DEVTOOLS
|
||||||
xpack.ml.enabled: $XPACK_ML
|
xpack.ml.enabled: $XPACK_ML
|
||||||
xpack.canvas.enabled: $XPACK_CANVAS
|
xpack.canvas.enabled: $XPACK_CANVAS
|
||||||
xpack.logstash.enabled: $XPACK_LOGS
|
|
||||||
xpack.infra.enabled: $XPACK_INFRA
|
xpack.infra.enabled: $XPACK_INFRA
|
||||||
xpack.monitoring.enabled: $XPACK_MONITORING
|
xpack.monitoring.enabled: $XPACK_MONITORING
|
||||||
console.enabled: $XPACK_DEVTOOLS
|
console.enabled: $XPACK_DEVTOOLS
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
|
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
|
||||||
FROM phusion/baseimage:latest
|
FROM phusion/baseimage:latest
|
||||||
ARG FILEBEAT_VERSION=7.1.0
|
|
||||||
ARG WAZUH_VERSION=3.9.1-1
|
ARG FILEBEAT_VERSION=7.5.1
|
||||||
|
|
||||||
|
ARG WAZUH_VERSION=3.11.1-1
|
||||||
|
|
||||||
ENV API_USER="foo" \
|
ENV API_USER="foo" \
|
||||||
API_PASS="bar"
|
API_PASS="bar"
|
||||||
|
|
||||||
ENV TEMPLATE_VERSION="v3.9.1"
|
ARG TEMPLATE_VERSION="v3.11.1"
|
||||||
|
|
||||||
# Set repositories.
|
# Set repositories.
|
||||||
RUN set -x && echo "deb https://packages.wazuh.com/3.x/apt/ stable main" | tee /etc/apt/sources.list.d/wazuh.list && \
|
RUN set -x && echo "deb https://packages.wazuh.com/3.x/apt/ stable main" | tee /etc/apt/sources.list.d/wazuh.list && \
|
||||||
@@ -18,8 +20,8 @@ RUN set -x && echo "deb https://packages.wazuh.com/3.x/apt/ stable main" | tee /
|
|||||||
|
|
||||||
RUN add-apt-repository universe && apt-get update && apt-get upgrade -y -o Dpkg::Options::="--force-confold" && \
|
RUN add-apt-repository universe && apt-get update && apt-get upgrade -y -o Dpkg::Options::="--force-confold" && \
|
||||||
apt-get --no-install-recommends --no-install-suggests -y install openssl postfix bsd-mailx python-boto python-pip \
|
apt-get --no-install-recommends --no-install-suggests -y install openssl postfix bsd-mailx python-boto python-pip \
|
||||||
apt-transport-https vim expect nodejs python-cryptography mailutils libsasl2-modules wazuh-manager \
|
apt-transport-https vim expect nodejs python-cryptography mailutils libsasl2-modules wazuh-manager=${WAZUH_VERSION} \
|
||||||
wazuh-api && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && rm -f \
|
wazuh-api=${WAZUH_VERSION} && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && rm -f \
|
||||||
/var/ossec/logs/alerts/*/*/*.log && rm -f /var/ossec/logs/alerts/*/*/*.json && rm -f \
|
/var/ossec/logs/alerts/*/*/*.log && rm -f /var/ossec/logs/alerts/*/*/*.json && rm -f \
|
||||||
/var/ossec/logs/archives/*/*/*.log && rm -f /var/ossec/logs/archives/*/*/*.json && rm -f \
|
/var/ossec/logs/archives/*/*/*.log && rm -f /var/ossec/logs/archives/*/*/*.json && rm -f \
|
||||||
/var/ossec/logs/firewall/*/*/*.log && rm -f /var/ossec/logs/firewall/*/*/*.json
|
/var/ossec/logs/firewall/*/*/*.log && rm -f /var/ossec/logs/firewall/*/*/*.json
|
||||||
@@ -30,6 +32,7 @@ COPY config/init.bash /init.bash
|
|||||||
RUN mkdir /entrypoint-scripts
|
RUN mkdir /entrypoint-scripts
|
||||||
COPY config/entrypoint.sh /entrypoint.sh
|
COPY config/entrypoint.sh /entrypoint.sh
|
||||||
COPY config/00-wazuh.sh /entrypoint-scripts/00-wazuh.sh
|
COPY config/00-wazuh.sh /entrypoint-scripts/00-wazuh.sh
|
||||||
|
COPY config/01-config_filebeat.sh /entrypoint-scripts/01-config_filebeat.sh
|
||||||
|
|
||||||
# Sync calls are due to https://github.com/docker/docker/issues/9547
|
# Sync calls are due to https://github.com/docker/docker/issues/9547
|
||||||
RUN chmod 755 /init.bash && \
|
RUN chmod 755 /init.bash && \
|
||||||
@@ -38,10 +41,11 @@ RUN chmod 755 /init.bash && \
|
|||||||
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${FILEBEAT_VERSION}-amd64.deb &&\
|
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${FILEBEAT_VERSION}-amd64.deb &&\
|
||||||
dpkg -i filebeat-${FILEBEAT_VERSION}-amd64.deb && rm -f filebeat-${FILEBEAT_VERSION}-amd64.deb && \
|
dpkg -i filebeat-${FILEBEAT_VERSION}-amd64.deb && rm -f filebeat-${FILEBEAT_VERSION}-amd64.deb && \
|
||||||
chmod 755 /entrypoint.sh && \
|
chmod 755 /entrypoint.sh && \
|
||||||
chmod 755 /entrypoint-scripts/00-wazuh.sh
|
chmod 755 /entrypoint-scripts/00-wazuh.sh && \
|
||||||
|
chmod 755 /entrypoint-scripts/01-config_filebeat.sh
|
||||||
|
|
||||||
COPY config/filebeat.yml /etc/filebeat/
|
COPY config/filebeat.yml /etc/filebeat/
|
||||||
RUN chmod go-w /etc/filebeat/filebeat.yml
|
RUN chmod go-w /etc/filebeat/filebeat.yml
|
||||||
|
|
||||||
# Setting volumes
|
# Setting volumes
|
||||||
VOLUME ["/var/ossec/data"]
|
VOLUME ["/var/ossec/data"]
|
||||||
@@ -74,4 +78,3 @@ RUN chmod go-w /etc/filebeat/wazuh-template.json
|
|||||||
|
|
||||||
# Run all services
|
# Run all services
|
||||||
ENTRYPOINT ["/entrypoint.sh"]
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
|
||||||
|
|||||||
@@ -104,6 +104,17 @@ function ossec_shutdown(){
|
|||||||
${WAZUH_INSTALL_PATH}/bin/ossec-control stop;
|
${WAZUH_INSTALL_PATH}/bin/ossec-control stop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Allow users to set the container hostname as <node_name> dynamically on
|
||||||
|
# container start.
|
||||||
|
#
|
||||||
|
# To use this:
|
||||||
|
# 1. Create your own ossec.conf file
|
||||||
|
# 2. In your ossec.conf file, set to_be_replaced_by_hostname as your node_name
|
||||||
|
# 3. Mount your custom ossec.conf file at $WAZUH_CONFIG_MOUNT/etc/ossec.conf
|
||||||
|
##############################################################################
|
||||||
|
sed -i 's/<node_name>to_be_replaced_by_hostname<\/node_name>/<node_name>'"${HOSTNAME}"'<\/node_name>/g' ${WAZUH_INSTALL_PATH}/etc/ossec.conf
|
||||||
|
|
||||||
# Trap exit signals and do a proper shutdown
|
# Trap exit signals and do a proper shutdown
|
||||||
trap "ossec_shutdown; exit" SIGINT SIGTERM
|
trap "ossec_shutdown; exit" SIGINT SIGTERM
|
||||||
|
|
||||||
|
|||||||
19
wazuh/config/01-config_filebeat.sh
Normal file
19
wazuh/config/01-config_filebeat.sh
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Wazuh App Copyright (C) 2019 Wazuh Inc. (License GPLv2)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
WAZUH_FILEBEAT_MODULE=wazuh-filebeat-0.1.tar.gz
|
||||||
|
|
||||||
|
# Modify the output to Elasticsearch if th ELASTICSEARCH_URL is set
|
||||||
|
if [ "$ELASTICSEARCH_URL" != "" ]; then
|
||||||
|
>&2 echo "Customize Elasticsearch ouput IP."
|
||||||
|
sed -i 's|http://elasticsearch:9200|'$ELASTICSEARCH_URL'|g' /etc/filebeat/filebeat.yml
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install Wazuh Filebeat Module
|
||||||
|
|
||||||
|
curl -s "https://packages.wazuh.com/3.x/filebeat/${WAZUH_FILEBEAT_MODULE}" | tar -xvz -C /usr/share/filebeat/module
|
||||||
|
mkdir -p /usr/share/filebeat/module/wazuh
|
||||||
|
chmod 755 -R /usr/share/filebeat/module/wazuh
|
||||||
|
|
||||||
@@ -1,53 +1,15 @@
|
|||||||
# Wazuh Docker Copyright (C) 2019 Wazuh Inc. (License GPLv2)
|
# Wazuh - Filebeat configuration file
|
||||||
filebeat.inputs:
|
filebeat.modules:
|
||||||
- type: log
|
- module: wazuh
|
||||||
paths:
|
alerts:
|
||||||
- '/var/ossec/logs/alerts/alerts.json'
|
enabled: true
|
||||||
|
archives:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
setup.template.json.enabled: true
|
setup.template.json.enabled: true
|
||||||
setup.template.json.path: "/etc/filebeat/wazuh-template.json"
|
setup.template.json.path: '/etc/filebeat/wazuh-template.json'
|
||||||
setup.template.json.name: "wazuh"
|
setup.template.json.name: 'wazuh'
|
||||||
setup.template.overwrite: true
|
setup.template.overwrite: true
|
||||||
|
setup.ilm.enabled: false
|
||||||
|
|
||||||
processors:
|
output.elasticsearch.hosts: ['http://elasticsearch:9200']
|
||||||
- decode_json_fields:
|
|
||||||
fields: ['message']
|
|
||||||
process_array: true
|
|
||||||
max_depth: 200
|
|
||||||
target: ''
|
|
||||||
overwrite_keys: true
|
|
||||||
- drop_fields:
|
|
||||||
fields: ['message', 'ecs', 'beat', 'input_type', 'tags', 'count', '@version', 'log', 'offset', 'type', 'host']
|
|
||||||
- rename:
|
|
||||||
fields:
|
|
||||||
- from: "data.aws.sourceIPAddress"
|
|
||||||
to: "@src_ip"
|
|
||||||
ignore_missing: true
|
|
||||||
fail_on_error: false
|
|
||||||
when:
|
|
||||||
regexp:
|
|
||||||
data.aws.sourceIPAddress: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
|
|
||||||
- rename:
|
|
||||||
fields:
|
|
||||||
- from: "data.srcip"
|
|
||||||
to: "@src_ip"
|
|
||||||
ignore_missing: true
|
|
||||||
fail_on_error: false
|
|
||||||
when:
|
|
||||||
regexp:
|
|
||||||
data.srcip: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
|
|
||||||
- rename:
|
|
||||||
fields:
|
|
||||||
- from: "data.win.eventdata.ipAddress"
|
|
||||||
to: "@src_ip"
|
|
||||||
ignore_missing: true
|
|
||||||
fail_on_error: false
|
|
||||||
when:
|
|
||||||
regexp:
|
|
||||||
data.win.eventdata.ipAddress: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
|
|
||||||
|
|
||||||
output.elasticsearch:
|
|
||||||
hosts: ['http://elasticsearch:9200']
|
|
||||||
#pipeline: geoip
|
|
||||||
indices:
|
|
||||||
- index: 'wazuh-alerts-3.x-%{+yyyy.MM.dd}'
|
|
||||||
Reference in New Issue
Block a user