Compare commits

..
Author SHA1 Message Date
Victor Carlos Erenu be4c0d69db Add changes 2025-10-20 23:59:02 +07:00
Victor Carlos Erenu 02547b60d8 Add changes 2025-10-20 22:03:31 +07:00
50 changed files with 219 additions and 744 deletions
+4 -4
View File
@@ -1,6 +1,6 @@
WAZUH_VERSION=4.14.4 WAZUH_VERSION=4.14.0
WAZUH_IMAGE_VERSION=4.14.4 WAZUH_IMAGE_VERSION=4.14.0
WAZUH_TAG_REVISION=1 WAZUH_TAG_REVISION=1
FILEBEAT_TEMPLATE_BRANCH=4.14.4 FILEBEAT_TEMPLATE_BRANCH=4.14.0
WAZUH_FILEBEAT_MODULE=wazuh-filebeat-0.5.tar.gz WAZUH_FILEBEAT_MODULE=wazuh-filebeat-0.4.tar.gz
WAZUH_UI_REVISION=1 WAZUH_UI_REVISION=1
+1 -1
View File
@@ -56,7 +56,7 @@ package:
wazuh-manager: wazuh-manager:
installed: true installed: true
versions: versions:
- 4.14.4 - 4.14.0
port: port:
tcp:1514: tcp:1514:
listening: true listening: true
@@ -6,25 +6,28 @@ on:
inputs: inputs:
image_tag: image_tag:
description: 'Docker image tag' description: 'Docker image tag'
default: '4.14.4' default: '4.14.0'
required: true required: true
docker_reference: docker_reference:
description: 'wazuh-docker reference' description: 'wazuh-docker reference'
required: true required: true
filebeat_module_version:
description: 'Filebeat module version'
default: '0.5'
required: true
type: string
products: products:
description: 'Comma-separated list of the image names to build and push' description: 'Comma-separated list of the image names to build and push'
default: 'wazuh-manager,wazuh-dashboard,wazuh-indexer,wazuh-agent' default: 'wazuh-manager,wazuh-dashboard,wazuh-indexer,wazuh-agent'
required: false required: true
type: string filebeat_module_version:
description: 'Filebeat module version'
default: '0.4'
required: true
revision: revision:
description: 'Package revision' description: 'Package revision'
default: '1' default: '1'
required: true required: true
push_images:
description: 'Push images'
type: boolean
default: true
required: true
id: id:
description: "ID used to identify the workflow uniquely." description: "ID used to identify the workflow uniquely."
type: string type: string
@@ -38,28 +41,33 @@ on:
inputs: inputs:
image_tag: image_tag:
description: 'Docker image tag' description: 'Docker image tag'
default: '4.14.4' default: '4.14.0'
required: true required: true
type: string type: string
docker_reference: docker_reference:
description: 'wazuh-docker reference' description: 'wazuh-docker reference'
required: false required: false
type: string type: string
filebeat_module_version:
description: 'Filebeat module version'
default: '0.5'
required: true
type: string
products: products:
description: 'Comma-separated list of the image names to build and push' description: 'Comma-separated list of the image names to build and push'
default: 'wazuh-manager,wazuh-dashboard,wazuh-indexer,wazuh-agent' default: 'wazuh-manager,wazuh-dashboard,wazuh-indexer,wazuh-agent'
required: false required: true
type: string
filebeat_module_version:
description: 'Filebeat module version'
default: '0.4'
required: true
type: string type: string
revision: revision:
description: 'Package revision' description: 'Package revision'
default: '1' default: '1'
required: true required: true
type: string type: string
push_images:
description: 'Push images'
type: boolean
default: true
required: true
id: id:
description: "ID used to identify the workflow uniquely." description: "ID used to identify the workflow uniquely."
type: string type: string
@@ -71,22 +79,9 @@ on:
required: false required: false
jobs: jobs:
setup: build-and-push:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
permissions:
id-token: write
contents: read
env:
IMAGE_REGISTRY: ${{ inputs.dev && vars.IMAGE_REGISTRY_DEV || vars.IMAGE_REGISTRY_PROD }}
IMAGE_TAG: ${{ inputs.image_tag }}
FILEBEAT_MODULE_VERSION: ${{ inputs.filebeat_module_version }}
REVISION: ${{ inputs.revision }}
outputs:
WAZUH_COMPONENTS: ${{ steps.compute-outputs.outputs.WAZUH_COMPONENTS }}
steps: steps:
- name: Print inputs - name: Print inputs
run: | run: |
@@ -101,79 +96,19 @@ jobs:
echo "* id: ${{ inputs.id }}" echo "* id: ${{ inputs.id }}"
echo "* image_tag: ${{ inputs.image_tag }}" echo "* image_tag: ${{ inputs.image_tag }}"
echo "* docker_reference: ${{ inputs.docker_reference }}" echo "* docker_reference: ${{ inputs.docker_reference }}"
echo "* filebeat_module_version: ${{ inputs.filebeat_module_version }}"
echo "* products: ${{ inputs.products }}" echo "* products: ${{ inputs.products }}"
echo "* filebeat_module_version: ${{ inputs.filebeat_module_version }}"
echo "* revision: ${{ inputs.revision }}" echo "* revision: ${{ inputs.revision }}"
echo "* push_images: ${{ inputs.push_images }}"
echo "* dev: ${{ inputs.dev }}" echo "* dev: ${{ inputs.dev }}"
echo "---------------------------------------------" echo "---------------------------------------------"
- name: Set up variables
id: compute-outputs
run: |
if [[ "${{ inputs.products }}" != "null" && "${{ inputs.products }}" != "" ]]; then
# Convert comma-separated list to JSON array format
IFS=',' read -ra COMPONENTS <<< "${{ inputs.products }}"
JSON_ARRAY="["
for i in "${!COMPONENTS[@]}"; do
if [ $i -gt 0 ]; then
JSON_ARRAY+=","
fi
JSON_ARRAY+="\"${COMPONENTS[$i]}\""
done
JSON_ARRAY+="]"
echo "WAZUH_COMPONENTS=$JSON_ARRAY" >> $GITHUB_OUTPUT
else
echo "WAZUH_COMPONENTS=[\"wazuh-manager\",\"wazuh-dashboard\",\"wazuh-indexer\",\"wazuh-agent\"]" >> $GITHUB_OUTPUT
fi
build-and-push:
runs-on: ubuntu-22.04
permissions:
id-token: write
contents: read
needs:
- setup
strategy:
fail-fast: false # all jobs will run even if one fails
matrix:
wazuh_component: ${{ fromJson(needs.setup.outputs.WAZUH_COMPONENTS) }}
env:
IMAGE_REGISTRY: ${{ inputs.dev && vars.IMAGE_REGISTRY_DEV || vars.IMAGE_REGISTRY_PROD }}
IMAGE_TAG: ${{ inputs.image_tag }}
REVISION: ${{ inputs.revision }}
steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
ref: ${{ inputs.docker_reference }} ref: ${{ inputs.docker_reference }}
- name: free disk space
uses: ./.github/free-disk-space
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Configure aws credentials
if: ${{ inputs.dev == true }}
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_IAM_DOCKER_ROLE }}
aws-region: "${{ secrets.AWS_REGION }}"
- name: Log in to Amazon ECR
if: ${{ inputs.dev == true }}
uses: aws-actions/amazon-ecr-login@v2
- name: Log in to Docker Hub - name: Log in to Docker Hub
if: ${{ inputs.dev == false }}
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
@@ -181,7 +116,7 @@ jobs:
- name: Build Wazuh images - name: Build Wazuh images
run: | run: |
IMAGE_TAG="${{ inputs.image_tag }}" IMAGE_TAG=${{ inputs.image_tag }}
FILEBEAT_MODULE_VERSION=${{ inputs.filebeat_module_version }} FILEBEAT_MODULE_VERSION=${{ inputs.filebeat_module_version }}
REVISION=${{ inputs.revision }} REVISION=${{ inputs.revision }}
@@ -193,13 +128,13 @@ jobs:
fi fi
DEV_STAGE=${tokens[1]} DEV_STAGE=${tokens[1]}
WAZUH_VER=${tokens[0]} WAZUH_VER=${tokens[0]}
./build-images.sh -v $WAZUH_VER -r $REVISION -d $DEV_STAGE -f $FILEBEAT_MODULE_VERSION -rg $IMAGE_REGISTRY -m -c ${{ matrix.wazuh_component }} ./build-docker-images/build-images.sh -v $WAZUH_VER -r $REVISION -d $DEV_STAGE -f $FILEBEAT_MODULE_VERSION
else else
./build-images.sh -v $IMAGE_TAG -r $REVISION -f $FILEBEAT_MODULE_VERSION -rg $IMAGE_REGISTRY -m -c ${{ matrix.wazuh_component }} ./build-docker-images/build-images.sh -v $IMAGE_TAG -r $REVISION -f $FILEBEAT_MODULE_VERSION
fi fi
# Save .env file (generated by build-images.sh) contents to $GITHUB_ENV # Save .env file (generated by build-images.sh) contents to $GITHUB_ENV
ENV_FILE_PATH="../.env" ENV_FILE_PATH=".env"
if [ -f $ENV_FILE_PATH ]; then if [ -f $ENV_FILE_PATH ]; then
while IFS= read -r line || [ -n "$line" ]; do while IFS= read -r line || [ -n "$line" ]; do
@@ -209,90 +144,16 @@ jobs:
echo "The environment file $ENV_FILE_PATH does not exist!" echo "The environment file $ENV_FILE_PATH does not exist!"
exit 1 exit 1
fi fi
working-directory: ./build-docker-images
- name: Image exists validation - name: Tag and Push Wazuh images
if: ${{ inputs.dev == false }} if: ${{ inputs.push_images }}
id: validation
run: | run: |
IMAGE_TAG=${{ inputs.image_tag }} IMAGE_TAG="${{ inputs.image_tag }}$( [ "${{ inputs.dev }}" == "true" ] && echo '-dev' || true )"
PURPOSE="" IMAGE_NAMES=${{ inputs.products }}
IFS=',' read -r -a images <<< "$IMAGE_NAMES"
if [[ "$IMAGE_TAG" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then for image in "${images[@]}"; do
if docker manifest inspect $IMAGE_REGISTRY/wazuh/wazuh-manager:$IMAGE_TAG > /dev/null 2>&1; then echo "Tagging and pushing wazuh/$image:${WAZUH_VERSION} to wazuh/$image:$IMAGE_TAG"
PURPOSE="regeneration" docker tag wazuh/$image:${WAZUH_VERSION} wazuh/$image:$IMAGE_TAG
echo "Image wazuh/wazuh-manager:$IMAGE_TAG exists. Setting PURPOSE to 'regeneration'" echo "Pushing wazuh/$image:$IMAGE_TAG ..."
else docker push wazuh/$image:$IMAGE_TAG
PURPOSE="new release" done
echo "Image wazuh/wazuh-manager:$IMAGE_TAG does NOT exist. Setting PURPOSE to 'new release'"
fi
echo "✅ Release tag: '$IMAGE_TAG'"
elif [[ "$IMAGE_TAG" =~ ^[0-9]+\.[0-9]+\.[0-9]+-(alpha|beta|rc)[0-9]+$ ]]; then
PURPOSE="new stage"
echo "✅ Stage tag: '$IMAGE_TAG'. Setting PURPOSE to 'new stage'"
else
echo "❌ No release or stage tag ('$IMAGE_TAG'), the GH issue will not be created"
fi
echo "purpose=$PURPOSE" >> $GITHUB_OUTPUT
- name: GH issue notification
if: ${{ inputs.dev == false && steps.validation.outputs.purpose != '' }}
run: |
IMAGE_TAG=${{ inputs.image_tag }}
GH_TITLE=""
GH_MESSAGE=""
PURPOSE="${{ steps.validation.outputs.purpose }}"
## Setting GH issue title
GH_TITLE="Artifactory vulnerabilities update \`v$IMAGE_TAG\`"
## Setting GH issue body
GH_MESSAGE=$(cat <<- EOF | tr -d '\r' | sed 's/^[[:space:]]*//'
### Description
- [ ] Update the [Artifactory vulnerabilities](${{ secrets.NOTIFICATION_SHEET_URL }}) sheet with the \`v$IMAGE_TAG\` vulnerabilities.
**Purpose**: $PURPOSE
>[!NOTE]
>To update the \`Tentative Release\` column, follow these steps:
https://github.com/wazuh/${{ secrets.NOTIFICATION_REPO }}/issues/2049#issuecomment-2671590268
EOF
)
# Print the GH Variables content
echo "--- Variable Content ---"
echo "$GH_TITLE"
echo "------------------------"
echo "--- Variable Content ---"
echo "$GH_MESSAGE"
echo "------------------------"
## GH issue creation
ISSUE_URL=$(gh issue create \
-R wazuh/${{ secrets.NOTIFICATION_REPO }} \
--title "$GH_TITLE" \
--body "$GH_MESSAGE" \
--label "level/task" \
--label "type/maintenance" \
--label "request/operational")
## Adding the issue to the team project
PROJECT_ITEM_ID=$(gh project item-add \
${{ secrets.NOTIFICATION_PROJECT_NUMBER }} \
--url $ISSUE_URL \
--owner wazuh \
--format json \
| jq -r '.id')
## Setting Objective
gh project item-edit --id $PROJECT_ITEM_ID --project-id ${{ secrets.NOTIFICATION_PROJECT_ID }} --field-id ${{ secrets.NOTIFICATION_PROJECT_OBJECTIVE_ID }} --text "Security scans"
## Setting Priority
gh project item-edit --id $PROJECT_ITEM_ID --project-id ${{ secrets.NOTIFICATION_PROJECT_ID }} --field-id ${{ secrets.NOTIFICATION_PROJECT_PRIORITY_ID }} --single-select-option-id ${{ secrets.NOTIFICATION_PROJECT_PRIORITY_OPTION_ID }}
## Setting Size
gh project item-edit --id $PROJECT_ITEM_ID --project-id ${{ secrets.NOTIFICATION_PROJECT_ID }} --field-id ${{ secrets.NOTIFICATION_PROJECT_SIZE_ID }} --single-select-option-id ${{ secrets.NOTIFICATION_PROJECT_SIZE_OPTION_ID }}
## Setting Subteam
gh project item-edit --id $PROJECT_ITEM_ID --project-id ${{ secrets.NOTIFICATION_PROJECT_ID }} --field-id ${{ secrets.NOTIFICATION_PROJECT_SUBTEAM_ID }} --single-select-option-id ${{ secrets.NOTIFICATION_PROJECT_SUBTEAM_OPTION_ID }}
env:
GH_TOKEN: ${{ secrets.NOTIFICATION_GH_ARTIFACT_TOKEN }}
+1 -2
View File
@@ -11,8 +11,7 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Build Wazuh images - name: Build Wazuh images
run: ./build-images.sh run: build-docker-images/build-images.sh
working-directory: ./build-docker-images
- name: Create enviroment variables - name: Create enviroment variables
run: cat .env > $GITHUB_ENV run: cat .env > $GITHUB_ENV
-80
View File
@@ -1,86 +1,6 @@
# 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.
## [4.14.4]
### Added
- None
### Changed
- Backport from 5.0.0: Allow building separate targets #2177 ([#2184](https://github.com/wazuh/wazuh-docker/pull/2184))
### Fixed
- INDEXER_URL substitution fix ([#2226](https://github.com/wazuh/wazuh-docker/pull/2226))
### Deleted
- None
## [4.14.3]
### Added
- Update indexer-certs-gen README.md for clarity on procedure ([#2132](https://github.com/wazuh/wazuh-docker/pull/2132))
- Update certs generator image version to 0.0.4 ([#2130](https://github.com/wazuh/wazuh-docker/pull/2130))
### Changed
- Add IMAGE_TAG stage reference ([#2176](https://github.com/wazuh/wazuh-docker/pull/2176))
- Modify run_as parameter value - v4.14.3 ([#2157](https://github.com/wazuh/wazuh-docker/pull/2157))
- Adapt Wazuh Agent Dockerfile for multi-architecture support ([#2149](https://github.com/wazuh/wazuh-docker/pull/2149))
- Agent group parameter added ([#2127](https://github.com/wazuh/wazuh-docker/pull/2127))
- Adapt to multi architecture build ([#2120](https://github.com/wazuh/wazuh-docker/pull/2120))
### Fixed
- None
### Deleted
- None
## [4.14.2]
### Added
- Code improvements for 4.14.2 ([#2090](https://github.com/wazuh/wazuh-docker/pull/2090))
- Artifactory vulnerabilities notification ([#2078](https://github.com/wazuh/wazuh-docker/pull/2078))
### Changed
- Filebeat module version update ([#2115](https://github.com/wazuh/wazuh-docker/pull/2115))
- The location of the remove command for the wazuh-authd certificates has been changed. ([#2094](https://github.com/wazuh/wazuh-docker/pull/2094))
- Removed sslmanager key from the docker manager image to 4.14.2. ([#2093](https://github.com/wazuh/wazuh-docker/pull/2093))
### Fixed
- Add missing SSL ciphers and protocols and remove outdated ports parameters from opensearch.yml template ([#2104](https://github.com/wazuh/wazuh-docker/pull/2104))
### Deleted
- None
## [4.14.1]
### Added
- None
### Changed
- Wazuh cert tool generator improvements ([#2027](https://github.com/wazuh/wazuh-docker/pull/2027))
### Fixed
- None
### Deleted
- None
## [4.14.0] ## [4.14.0]
### Added ### Added
+1 -1
View File
@@ -18,7 +18,7 @@ The `wazuh/wazuh-docker` repository provides resources to deploy the Wazuh cyber
## Branch Convention ## Branch Convention
- `main`: Developing and testing of new features. - `main`: Developing and testing of new features.
- `X.Y.Z`: Version-specific branches (e.g., `4.14.4`, `4.13.0`, etc.). - `X.Y.Z`: Version-specific branches (e.g., `4.14.0`, `4.13.0`, etc.).
## Documentation ## Documentation
+2 -2
View File
@@ -1,4 +1,4 @@
{ {
"version": "4.14.4", "version": "4.14.0",
"stage": "rc2" "stage": "rc1"
} }
+14 -22
View File
@@ -1,40 +1,32 @@
# Wazuh Docker Image Builder # Wazuh Docker Image Builder
The creation of the images for the Wazuh stack deployment in Docker is done with the `build-docker-images/build-images.sh` script The creation of the images for the Wazuh stack deployment in Docker is done with the build-images.yml script
To execute the process, the following must be executed in the root of the wazuh-docker repository:
```
$ build-docker-images/build-images.sh
```
This script initializes the environment variables needed to build each of the images. This script initializes the environment variables needed to build each of the images.
To execute it, make sure to be in the `build-docker-images` directory: The script allows you to build images from other versions of Wazuh, to do this you must use the -v or --version argument:
```bash
cd build-docker-images
``` ```
$ build-docker-images/build-images.sh -v 4.14.0
Then execute:
```bash
./build-images.sh
```
The script also allows to build images from other versions of Wazuh by using the `-v` or `--version` argument:
```bash
./build-images.sh -v 4.14.4
``` ```
To get all the available script options use the -h or --help option: To get all the available script options use the -h or --help option:
```bash ```
./build-images.sh -h $ build-docker-images/build-images.sh -h
Usage: ./build-images.sh [OPTIONS] Usage: build-docker-images/build-images.sh [OPTIONS]
-d, --dev <ref> [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default. -d, --dev <ref> [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default.
-f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default 0.5. -f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default 0.4.
-r, --revision <rev> [Optional] Package revision. By default 1 -r, --revision <rev> [Optional] Package revision. By default 1
-rg, --registry <reg> [Optional] Set the Docker registry to push the images. -v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, 4.14.0.
-v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, 4.14.4.
-m, --multiarch [Optional] Enable multi-architecture builds.
-h, --help Show this help. -h, --help Show this help.
``` ```
+15 -113
View File
@@ -1,4 +1,8 @@
#!/bin/bash WAZUH_IMAGE_VERSION=4.14.0
WAZUH_VERSION=$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g')
WAZUH_TAG_REVISION=1
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '["]tag_name["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g')
IMAGE_VERSION=${WAZUH_IMAGE_VERSION}
# Wazuh package generator # Wazuh package generator
# Copyright (C) 2023, Wazuh Inc. # Copyright (C) 2023, Wazuh Inc.
@@ -8,14 +12,10 @@
# License (version 2) as published by the FSF - Free Software # License (version 2) as published by the FSF - Free Software
# Foundation. # Foundation.
IMAGE_TAG=4.14.4 WAZUH_IMAGE_VERSION="4.14.0"
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '["]tag_name["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g')
WAZUH_REGISTRY=docker.io
WAZUH_IMAGE_VERSION="4.14.4"
WAZUH_TAG_REVISION="1" WAZUH_TAG_REVISION="1"
WAZUH_DEV_STAGE="" WAZUH_DEV_STAGE=""
FILEBEAT_MODULE_VERSION="0.5" FILEBEAT_MODULE_VERSION="0.4"
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
@@ -43,7 +43,6 @@ build() {
if [ "${WAZUH_DEV_STAGE}" ];then if [ "${WAZUH_DEV_STAGE}" ];then
FILEBEAT_TEMPLATE_BRANCH="v${FILEBEAT_TEMPLATE_BRANCH}-${WAZUH_DEV_STAGE,,}" FILEBEAT_TEMPLATE_BRANCH="v${FILEBEAT_TEMPLATE_BRANCH}-${WAZUH_DEV_STAGE,,}"
IMAGE_TAG="${WAZUH_IMAGE_VERSION}-${WAZUH_DEV_STAGE,,}"
if ! curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/${FILEBEAT_TEMPLATE_BRANCH}"; then if ! curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/${FILEBEAT_TEMPLATE_BRANCH}"; then
echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}" echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}"
clean 1 clean 1
@@ -51,96 +50,22 @@ build() {
else else
if curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/v${FILEBEAT_TEMPLATE_BRANCH}"; then if curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/v${FILEBEAT_TEMPLATE_BRANCH}"; then
FILEBEAT_TEMPLATE_BRANCH="v${FILEBEAT_TEMPLATE_BRANCH}" FILEBEAT_TEMPLATE_BRANCH="v${FILEBEAT_TEMPLATE_BRANCH}"
IMAGE_TAG="${WAZUH_IMAGE_VERSION}"
elif curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/${FILEBEAT_TEMPLATE_BRANCH}"; then elif curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/${FILEBEAT_TEMPLATE_BRANCH}"; then
FILEBEAT_TEMPLATE_BRANCH="${FILEBEAT_TEMPLATE_BRANCH}" FILEBEAT_TEMPLATE_BRANCH="${FILEBEAT_TEMPLATE_BRANCH}"
IMAGE_TAG="${WAZUH_IMAGE_VERSION}"
else else
echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}" echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}"
clean 1 clean 1
fi fi
fi fi
echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > ../.env echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > .env
echo WAZUH_IMAGE_VERSION=$WAZUH_IMAGE_VERSION >> ../.env echo WAZUH_IMAGE_VERSION=$WAZUH_IMAGE_VERSION >> .env
echo WAZUH_TAG_REVISION=$WAZUH_TAG_REVISION >> ../.env echo WAZUH_TAG_REVISION=$WAZUH_TAG_REVISION >> .env
echo FILEBEAT_TEMPLATE_BRANCH=$FILEBEAT_TEMPLATE_BRANCH >> ../.env echo FILEBEAT_TEMPLATE_BRANCH=$FILEBEAT_TEMPLATE_BRANCH >> .env
echo WAZUH_FILEBEAT_MODULE=$WAZUH_FILEBEAT_MODULE >> ../.env echo WAZUH_FILEBEAT_MODULE=$WAZUH_FILEBEAT_MODULE >> .env
echo WAZUH_UI_REVISION=$WAZUH_UI_REVISION >> ../.env echo WAZUH_UI_REVISION=$WAZUH_UI_REVISION >> .env
echo WAZUH_REGISTRY=$WAZUH_REGISTRY >> ../.env
echo IMAGE_TAG=$IMAGE_TAG >> ../.env
set -a docker compose -f build-docker-images/build-images.yml --env-file .env build --no-cache || clean 1
source ../.env
set +a
# Define all available components
local all_components=("wazuh-indexer" "wazuh-manager" "wazuh-dashboard" "wazuh-agent")
local components_to_build=()
# Determine which components to build
if [ -z "${WAZUH_COMPONENT}" ]; then
echo "No component specified. Building all components..."
components_to_build=("${all_components[@]}")
else
# Validate component
case "${WAZUH_COMPONENT}" in
wazuh-indexer|wazuh-manager|wazuh-dashboard|wazuh-agent)
components_to_build=("${WAZUH_COMPONENT}")
;;
*)
echo "Error: Unknown component '${WAZUH_COMPONENT}'" >&2
clean 1
;;
esac
fi
# Determine build command and base options
if [ "${MULTIARCH}" ]; then
build_cmd="docker buildx build --platform linux/amd64,linux/arm64 --push --no-cache"
else
build_cmd="docker build --no-cache"
fi
# Build each component
for component in "${components_to_build[@]}"; do
echo "Building ${component} image..."
# Build common args (used by all components)
build_args=(
-t "${WAZUH_REGISTRY}/wazuh/${component}:${IMAGE_TAG}"
--build-arg WAZUH_VERSION="${WAZUH_IMAGE_VERSION}"
--build-arg WAZUH_TAG_REVISION="${WAZUH_TAG_REVISION}"
)
# Add component-specific args
case "${component}" in
wazuh-indexer)
# No additional args for wazuh-indexer
;;
wazuh-manager)
build_args+=(
--build-arg FILEBEAT_TEMPLATE_BRANCH="${FILEBEAT_TEMPLATE_BRANCH}"
--build-arg WAZUH_FILEBEAT_MODULE="${WAZUH_FILEBEAT_MODULE}"
)
;;
wazuh-dashboard)
build_args+=(
--build-arg WAZUH_UI_REVISION="${WAZUH_UI_REVISION}"
)
;;
wazuh-agent)
# No additional args for wazuh-agent
;;
esac
# Execute build
$build_cmd "${build_args[@]}" ${component}/ || clean 1
echo "${component} image built successfully!"
done
echo ""
echo "Image build process completed!"
return 0 return 0
} }
@@ -151,13 +76,10 @@ help() {
echo echo
echo "Usage: $0 [OPTIONS]" echo "Usage: $0 [OPTIONS]"
echo echo
echo " -d, --dev <ref> [Optional] Set the development stage you want to build, example rc4 or beta1, not used by default." echo " -d, --dev <ref> [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default."
echo " -f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default ${FILEBEAT_MODULE_VERSION}." echo " -f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default ${FILEBEAT_MODULE_VERSION}."
echo " -r, --revision <rev> [Optional] Package revision. By default ${WAZUH_TAG_REVISION}" echo " -r, --revision <rev> [Optional] Package revision. By default ${WAZUH_TAG_REVISION}"
echo " -rg, --registry <reg> [Optional] Set the Docker registry to push the images."
echo " -c, --component <comp> [Required] Set the Wazuh component to build. Accepted values: 'wazuh-indexer', 'wazuh-manager', 'wazuh-dashboard', 'wazuh-agent'."
echo " -v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, ${WAZUH_IMAGE_VERSION}." echo " -v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, ${WAZUH_IMAGE_VERSION}."
echo " -m, --multiarch [Optional] Enable multi-architecture builds."
echo " -h, --help Show this help." echo " -h, --help Show this help."
echo echo
exit $1 exit $1
@@ -188,10 +110,6 @@ main() {
help 1 help 1
fi fi
;; ;;
"-m"|"--multiarch")
MULTIARCH="true"
shift
;;
"-r"|"--revision") "-r"|"--revision")
if [ -n "${2}" ]; then if [ -n "${2}" ]; then
WAZUH_TAG_REVISION="${2}" WAZUH_TAG_REVISION="${2}"
@@ -200,14 +118,6 @@ main() {
help 1 help 1
fi fi
;; ;;
"-rg"|"--registry")
if [ -n "${2}" ]; then
WAZUH_REGISTRY="${2}"
shift 2
else
help 1
fi
;;
"-v"|"--version") "-v"|"--version")
if [ -n "$2" ]; then if [ -n "$2" ]; then
WAZUH_IMAGE_VERSION="$2" WAZUH_IMAGE_VERSION="$2"
@@ -216,14 +126,6 @@ main() {
help 1 help 1
fi fi
;; ;;
"-c"|"--component")
if [ -n "${2}" ]; then
WAZUH_COMPONENT="${2}"
shift 2
else
help 1
fi
;;
*) *)
help 1 help 1
esac esac
+4 -4
View File
@@ -8,7 +8,7 @@ services:
WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION} WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION}
FILEBEAT_TEMPLATE_BRANCH: ${FILEBEAT_TEMPLATE_BRANCH} FILEBEAT_TEMPLATE_BRANCH: ${FILEBEAT_TEMPLATE_BRANCH}
WAZUH_FILEBEAT_MODULE: ${WAZUH_FILEBEAT_MODULE} WAZUH_FILEBEAT_MODULE: ${WAZUH_FILEBEAT_MODULE}
image: ${WAZUH_REGISTRY}/wazuh/wazuh-manager:${IMAGE_TAG} image: merecu/wazuh-manager:${WAZUH_IMAGE_VERSION}
hostname: wazuh.manager hostname: wazuh.manager
restart: always restart: always
ports: ports:
@@ -40,7 +40,7 @@ services:
args: args:
WAZUH_VERSION: ${WAZUH_VERSION} WAZUH_VERSION: ${WAZUH_VERSION}
WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION} WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION}
image: ${WAZUH_REGISTRY}/wazuh/wazuh-agent:${IMAGE_TAG} image: merecu/wazuh-agent:${WAZUH_IMAGE_VERSION}
hostname: wazuh.agent hostname: wazuh.agent
restart: always restart: always
@@ -50,7 +50,7 @@ services:
args: args:
WAZUH_VERSION: ${WAZUH_VERSION} WAZUH_VERSION: ${WAZUH_VERSION}
WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION} WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION}
image: ${WAZUH_REGISTRY}/wazuh/wazuh-indexer:${IMAGE_TAG} image: merecu/wazuh-indexer:${WAZUH_IMAGE_VERSION}
hostname: wazuh.indexer hostname: wazuh.indexer
restart: always restart: always
ports: ports:
@@ -72,7 +72,7 @@ services:
WAZUH_VERSION: ${WAZUH_VERSION} WAZUH_VERSION: ${WAZUH_VERSION}
WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION} WAZUH_TAG_REVISION: ${WAZUH_TAG_REVISION}
WAZUH_UI_REVISION: ${WAZUH_UI_REVISION} WAZUH_UI_REVISION: ${WAZUH_UI_REVISION}
image: ${WAZUH_REGISTRY}/wazuh/wazuh-dashboard:${IMAGE_TAG} image: merecu/wazuh-dashboard:${WAZUH_IMAGE_VERSION}
hostname: wazuh.dashboard hostname: wazuh.dashboard
restart: always restart: always
ports: ports:
+6 -10
View File
@@ -10,9 +10,7 @@ ARG WAZUH_MANAGER='CHANGE_MANAGER_IP'
ARG WAZUH_MANAGER_PORT='CHANGE_MANAGER_PORT' ARG WAZUH_MANAGER_PORT='CHANGE_MANAGER_PORT'
ARG WAZUH_REGISTRATION_SERVER='CHANGE_ENROLL_IP' ARG WAZUH_REGISTRATION_SERVER='CHANGE_ENROLL_IP'
ARG WAZUH_REGISTRATION_PORT='CHANGE_ENROLL_PORT' ARG WAZUH_REGISTRATION_PORT='CHANGE_ENROLL_PORT'
ARG WAZUH_AGENT_NAME='CHANGE_AGENT_NAME' ARG WAZUH_AGENT_NAME='CHANGEE_AGENT_NAME'
ARG WAZUH_AGENT_GROUPS='CHANGE_AGENT_GROUPS'
ARG TARGETARCH
COPY config/check_repository.sh / COPY config/check_repository.sh /
@@ -25,13 +23,11 @@ RUN source /check_repository.sh
RUN yum install wazuh-agent-${WAZUH_VERSION}-${WAZUH_TAG_REVISION} -y && \ RUN yum install wazuh-agent-${WAZUH_VERSION}-${WAZUH_TAG_REVISION} -y && \
yum clean all && \ yum clean all && \
sed -i '/<authorization_pass_path>/d' /var/ossec/etc/ossec.conf && \ sed -i '/<authorization_pass_path>/d' /var/ossec/etc/ossec.conf && \
S6_ARCH="amd64" && \ curl --fail --silent -L https://github.com/just-containers/s6-overlay/releases/download/${S6_VERSION}/s6-overlay-amd64.tar.gz \
if [ "${TARGETARCH}" = "arm64" ]; then S6_ARCH="aarch64"; fi && \ -o /tmp/s6-overlay-amd64.tar.gz && \
curl --fail --silent -L https://github.com/just-containers/s6-overlay/releases/download/${S6_VERSION}/s6-overlay-${S6_ARCH}.tar.gz \ tar xzf /tmp/s6-overlay-amd64.tar.gz -C / --exclude="./bin" && \
-o /tmp/s6-overlay-${S6_ARCH}.tar.gz && \ tar xzf /tmp/s6-overlay-amd64.tar.gz -C /usr ./bin && \
tar xzf /tmp/s6-overlay-${S6_ARCH}.tar.gz -C / --exclude="./bin" && \ rm /tmp/s6-overlay-amd64.tar.gz
tar xzf /tmp/s6-overlay-${S6_ARCH}.tar.gz -C /usr ./bin && \
rm /tmp/s6-overlay-${S6_ARCH}.tar.gz
COPY config/etc/ /etc/ COPY config/etc/ /etc/
@@ -9,7 +9,6 @@ WAZUH_REGISTRATION_SERVER=${WAZUH_REGISTRATION_SERVER:-$WAZUH_MANAGER_SERVER}
WAZUH_REGISTRATION_PORT=${WAZUH_REGISTRATION_PORT:-"1515"} WAZUH_REGISTRATION_PORT=${WAZUH_REGISTRATION_PORT:-"1515"}
WAZUH_REGISTRATION_PASSWORD=$WAZUH_REGISTRATION_PASSWORD WAZUH_REGISTRATION_PASSWORD=$WAZUH_REGISTRATION_PASSWORD
WAZUH_AGENT_NAME=${WAZUH_AGENT_NAME:-"wazuh-agent-$HOSTNAME"} WAZUH_AGENT_NAME=${WAZUH_AGENT_NAME:-"wazuh-agent-$HOSTNAME"}
WAZUH_AGENT_GROUPS=${WAZUH_AGENT_GROUPS:-"default"}
############################################################################## ##############################################################################
# Aux functions # Aux functions
@@ -67,8 +66,7 @@ set_manager_conn() {
sed -i "s#<port>CHANGE_MANAGER_PORT</port>#<port>$WAZUH_MANAGER_PORT</port>#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf sed -i "s#<port>CHANGE_MANAGER_PORT</port>#<port>$WAZUH_MANAGER_PORT</port>#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf
sed -i "s#<manager_address>CHANGE_ENROLL_IP</manager_address>#<manager_address>$WAZUH_REGISTRATION_SERVER</manager_address>#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf sed -i "s#<manager_address>CHANGE_ENROLL_IP</manager_address>#<manager_address>$WAZUH_REGISTRATION_SERVER</manager_address>#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf
sed -i "s#<port>CHANGE_ENROLL_PORT</port>#<port>$WAZUH_REGISTRATION_PORT</port>#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf sed -i "s#<port>CHANGE_ENROLL_PORT</port>#<port>$WAZUH_REGISTRATION_PORT</port>#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf
sed -i "s#<agent_name>CHANGE_AGENT_NAME</agent_name>#<agent_name>$WAZUH_AGENT_NAME</agent_name>#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf sed -i "s#<agent_name>CHANGEE_AGENT_NAME</agent_name>#<agent_name>$WAZUH_AGENT_NAME</agent_name>#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf
sed -i "s#<groups>CHANGE_AGENT_GROUPS</groups>#<groups>$WAZUH_AGENT_GROUPS</groups>#g" ${WAZUH_INSTALL_PATH}/etc/ossec.conf
[ -n "$WAZUH_REGISTRATION_PASSWORD" ] && \ [ -n "$WAZUH_REGISTRATION_PASSWORD" ] && \
echo "$WAZUH_REGISTRATION_PASSWORD" > ${WAZUH_INSTALL_PATH}/etc/authd.pass && \ echo "$WAZUH_REGISTRATION_PASSWORD" > ${WAZUH_INSTALL_PATH}/etc/authd.pass && \
chown root:wazuh ${WAZUH_INSTALL_PATH}/etc/authd.pass && \ chown root:wazuh ${WAZUH_INSTALL_PATH}/etc/authd.pass && \
+12 -9
View File
@@ -5,16 +5,19 @@ ARG WAZUH_VERSION
ARG WAZUH_TAG_REVISION ARG WAZUH_TAG_REVISION
ARG WAZUH_UI_REVISION ARG WAZUH_UI_REVISION
ARG INSTALL_DIR=/usr/share/wazuh-dashboard ARG INSTALL_DIR=/usr/share/wazuh-dashboard
ARG REPO_ORIGIN=https://packages-dev.wazuh.com/pre-release
ARG TARGETARCH
ENV PKG_ARCH=${TARGETARCH}
# Update and install dependencies # Update and install dependencies
RUN yum install curl-minimal libcap openssl -y RUN dnf install curl-minimal libcap openssl -y &&\
case "$PKG_ARCH" in \
COPY config/check_repository.sh / amd64) ARCH_NAME="x86_64" ;; \
RUN chmod 775 /check_repository.sh && \ arm64) ARCH_NAME="aarch64" ;; \
source /check_repository.sh *) echo "Unsupported arch: $PKG_ARCH" && exit 1 ;; \
esac && \
RUN yum install wazuh-dashboard-${WAZUH_VERSION}-${WAZUH_TAG_REVISION} -y && \ dnf install ${REPO_ORIGIN}/yum/wazuh-dashboard-${WAZUH_VERSION}-${WAZUH_TAG_REVISION}.${ARCH_NAME}.rpm -y && \
yum clean all dnf clean all
# Create and set permissions to data directories # Create and set permissions to data directories
RUN mkdir -p $INSTALL_DIR/data/wazuh && chmod -R 775 $INSTALL_DIR/data/wazuh RUN mkdir -p $INSTALL_DIR/data/wazuh && chmod -R 775 $INSTALL_DIR/data/wazuh
@@ -60,7 +63,7 @@ ENV PATTERN="" \
WAZUH_MONITORING_REPLICAS="" WAZUH_MONITORING_REPLICAS=""
# Update and install dependencies # Update and install dependencies
RUN yum install shadow-utils -y RUN dnf install shadow-utils -y
# Create wazuh-dashboard user and group # Create wazuh-dashboard user and group
RUN getent group $GROUP || groupadd -r -g 1000 $GROUP RUN getent group $GROUP || groupadd -r -g 1000 $GROUP
@@ -5,7 +5,7 @@ wazuh_url="${WAZUH_API_URL:-https://wazuh}"
wazuh_port="${API_PORT:-55000}" wazuh_port="${API_PORT:-55000}"
api_username="${API_USERNAME:-wazuh-wui}" api_username="${API_USERNAME:-wazuh-wui}"
api_password="${API_PASSWORD:-wazuh-wui}" api_password="${API_PASSWORD:-wazuh-wui}"
api_run_as="${RUN_AS:-true}" api_run_as="${RUN_AS:-false}"
dashboard_config_file="/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml" dashboard_config_file="/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml"
+11 -8
View File
@@ -3,15 +3,18 @@ FROM amazonlinux:2023 AS builder
ARG WAZUH_VERSION ARG WAZUH_VERSION
ARG WAZUH_TAG_REVISION ARG WAZUH_TAG_REVISION
ARG REPO_ORIGIN=https://packages-dev.wazuh.com/pre-release
ARG TARGETARCH
ENV PKG_ARCH=${TARGETARCH}
RUN yum install curl-minimal openssl xz tar findutils shadow-utils -y RUN dnf install curl-minimal openssl xz tar findutils shadow-utils -y &&\
case "$PKG_ARCH" in \
COPY config/check_repository.sh / amd64) ARCH_NAME="x86_64" ;; \
RUN chmod 775 /check_repository.sh && \ arm64) ARCH_NAME="aarch64" ;; \
source /check_repository.sh *) echo "Unsupported arch: $PKG_ARCH" && exit 1 ;; \
esac && \
RUN yum install wazuh-indexer-${WAZUH_VERSION}-${WAZUH_TAG_REVISION} -y && \ dnf install ${REPO_ORIGIN}/yum/wazuh-indexer-${WAZUH_VERSION}-${WAZUH_TAG_REVISION}.${ARCH_NAME}.rpm -y && \
yum clean all dnf clean all
COPY config/opensearch.yml / COPY config/opensearch.yml /
@@ -62,6 +62,7 @@ chmod 755 $CERT_TOOL && bash /$CERT_TOOL -A
# copy to target # copy to target
mkdir -p ${TARGET_DIR}${INSTALLATION_DIR} mkdir -p ${TARGET_DIR}${INSTALLATION_DIR}
mkdir -p ${TARGET_DIR}${INSTALLATION_DIR}/opensearch-security/
mkdir -p ${TARGET_DIR}${CONFIG_DIR} mkdir -p ${TARGET_DIR}${CONFIG_DIR}
mkdir -p ${TARGET_DIR}${LIB_DIR} mkdir -p ${TARGET_DIR}${LIB_DIR}
mkdir -p ${TARGET_DIR}${LOG_DIR} mkdir -p ${TARGET_DIR}${LOG_DIR}
@@ -72,10 +73,10 @@ mkdir -p ${TARGET_DIR}/usr/lib/sysctl.d
mkdir -p ${TARGET_DIR}/usr/lib/systemd/system mkdir -p ${TARGET_DIR}/usr/lib/systemd/system
mkdir -p ${TARGET_DIR}${CONFIG_DIR}/certs mkdir -p ${TARGET_DIR}${CONFIG_DIR}/certs
# Copy Wazuh's config files for the security plugin # Copy Wazuh's config files for the security plugin
cp -pr /roles_mapping.yml ${TARGET_DIR}${CONFIG_DIR}/opensearch-security/ cp -pr /roles_mapping.yml ${TARGET_DIR}${INSTALLATION_DIR}/opensearch-security/
cp -pr /roles.yml ${TARGET_DIR}${CONFIG_DIR}/opensearch-security/ cp -pr /roles.yml ${TARGET_DIR}${INSTALLATION_DIR}/opensearch-security/
cp -pr /action_groups.yml ${TARGET_DIR}${CONFIG_DIR}/opensearch-security/ cp -pr /action_groups.yml ${TARGET_DIR}${INSTALLATION_DIR}/opensearch-security/
cp -pr /internal_users.yml ${TARGET_DIR}${CONFIG_DIR}/opensearch-security/ cp -pr /internal_users.yml ${TARGET_DIR}${INSTALLATION_DIR}/opensearch-security/
cp -pr /opensearch.yml ${TARGET_DIR}${CONFIG_DIR} cp -pr /opensearch.yml ${TARGET_DIR}${CONFIG_DIR}
# Copy Wazuh indexer's certificates # Copy Wazuh indexer's certificates
cp -pr /wazuh-certificates/demo.indexer.pem ${TARGET_DIR}${CONFIG_DIR}/certs/indexer.pem cp -pr /wazuh-certificates/demo.indexer.pem ${TARGET_DIR}${CONFIG_DIR}/certs/indexer.pem
@@ -14,13 +14,6 @@ plugins.security.ssl.transport.pemtrustedcas_filepath: /usr/share/wazuh-indexer/
plugins.security.ssl.http.enabled: true plugins.security.ssl.http.enabled: true
plugins.security.ssl.transport.enforce_hostname_verification: false plugins.security.ssl.transport.enforce_hostname_verification: false
plugins.security.ssl.transport.resolve_hostname: false plugins.security.ssl.transport.resolve_hostname: false
plugins.security.ssl.http.enabled_ciphers:
- "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
- "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
plugins.security.ssl.http.enabled_protocols:
- "TLSv1.2"
plugins.security.authcz.admin_dn: plugins.security.authcz.admin_dn:
- "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US" - "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
plugins.security.check_snapshot_restore_write_privileges: true plugins.security.check_snapshot_restore_write_privileges: true
+15 -19
View File
@@ -11,32 +11,30 @@ ARG FILEBEAT_VERSION=7.10.2
ARG FILEBEAT_REVISION=2 ARG FILEBEAT_REVISION=2
ARG WAZUH_FILEBEAT_MODULE ARG WAZUH_FILEBEAT_MODULE
ARG S6_VERSION="v2.2.0.3" ARG S6_VERSION="v2.2.0.3"
ARG REPO_ORIGIN=https://packages-dev.wazuh.com/pre-release
ARG TARGETARCH ARG TARGETARCH
ENV PKG_ARCH=${TARGETARCH}
RUN yum install curl-minimal xz gnupg tar gzip openssl findutils procps -y &&\
yum clean all
COPY config/check_repository.sh /
COPY config/filebeat_module.sh / COPY config/filebeat_module.sh /
COPY config/permanent_data.env config/permanent_data.sh / COPY config/permanent_data.env config/permanent_data.sh /
RUN chmod 775 /check_repository.sh
RUN source /check_repository.sh
RUN yum install wazuh-manager-${WAZUH_VERSION}-${WAZUH_TAG_REVISION} -y && \ RUN dnf install curl-minimal xz gnupg tar gzip openssl findutils procps -y &&\
yum clean all && \ case "$PKG_ARCH" in \
amd64) ARCH_NAME="x86_64" ;; \
arm64) ARCH_NAME="aarch64" ;; \
*) echo "Unsupported arch: $PKG_ARCH" && exit 1 ;; \
esac && \
dnf install ${REPO_ORIGIN}/yum/wazuh-manager-${WAZUH_VERSION}-${WAZUH_TAG_REVISION}.${ARCH_NAME}.rpm -y && \
dnf clean all && \
chmod 775 /filebeat_module.sh && \ chmod 775 /filebeat_module.sh && \
source /filebeat_module.sh && \ source /filebeat_module.sh && \
rm /filebeat_module.sh && \ rm /filebeat_module.sh && \
S6_ARCH="amd64" && \ curl --fail --silent -L https://github.com/just-containers/s6-overlay/releases/download/${S6_VERSION}/s6-overlay-amd64.tar.gz \
if [ "${TARGETARCH}" = "arm64" ]; then S6_ARCH="aarch64"; fi && \ -o /tmp/s6-overlay-amd64.tar.gz && \
curl --fail --silent -L https://github.com/just-containers/s6-overlay/releases/download/${S6_VERSION}/s6-overlay-${S6_ARCH}.tar.gz \ tar xzf /tmp/s6-overlay-amd64.tar.gz -C / --exclude="./bin" && \
-o /tmp/s6-overlay-${S6_ARCH}.tar.gz && \ tar xzf /tmp/s6-overlay-amd64.tar.gz -C /usr ./bin && \
tar xzf /tmp/s6-overlay-${S6_ARCH}.tar.gz -C / --exclude="./bin" && \ rm /tmp/s6-overlay-amd64.tar.gz
tar xzf /tmp/s6-overlay-${S6_ARCH}.tar.gz -C /usr ./bin && \
rm /tmp/s6-overlay-${S6_ARCH}.tar.gz && \
rm -f /var/ossec/etc/sslmanager.key && \
rm -f /var/ossec/etc/sslmanager.cert
COPY config/etc/ /etc/ COPY config/etc/ /etc/
COPY --chown=root:wazuh config/create_user.py /var/ossec/framework/scripts/create_user.py COPY --chown=root:wazuh config/create_user.py /var/ossec/framework/scripts/create_user.py
@@ -66,8 +64,6 @@ RUN mkdir -p /var/ossec/var/multigroups && \
sync && /permanent_data.sh && \ sync && /permanent_data.sh && \
sync && rm /permanent_data.sh sync && rm /permanent_data.sh
RUN rm /etc/yum.repos.d/wazuh.repo
# Services ports # Services ports
EXPOSE 55000/tcp 1514/tcp 1515/tcp 514/udp 1516/tcp EXPOSE 55000/tcp 1514/tcp 1515/tcp 514/udp 1516/tcp
@@ -6,6 +6,8 @@ source /permanent_data.env
WAZUH_INSTALL_PATH=/var/ossec WAZUH_INSTALL_PATH=/var/ossec
WAZUH_CONFIG_MOUNT=/wazuh-config-mount WAZUH_CONFIG_MOUNT=/wazuh-config-mount
AUTO_ENROLLMENT_ENABLED=${AUTO_ENROLLMENT_ENABLED:-true}
############################################################################## ##############################################################################
# Aux functions # Aux functions
@@ -68,17 +70,8 @@ apply_exclusion_data() {
mkdir -p ${DIR} mkdir -p ${DIR}
fi fi
safe_cp() {
if cp -p "$1" "$2" 2>/dev/null; then
return 0
else
echo "Warning: Could not copy $1 (may be read-only)"
return 0
fi
}
print "Updating ${exclusion_file}" print "Updating ${exclusion_file}"
exec_cmd "safe_cp ${WAZUH_INSTALL_PATH}/data_tmp/exclusion/${exclusion_file} ${exclusion_file}" exec_cmd "cp -p ${WAZUH_INSTALL_PATH}/data_tmp/exclusion/${exclusion_file} ${exclusion_file}"
fi fi
done done
} }
@@ -213,10 +206,13 @@ main() {
# Remove some files in permanent_data (i.e. .template.db) # Remove some files in permanent_data (i.e. .template.db)
remove_data_files remove_data_files
# Create wazuh-authd key and cert if not present # Generate wazuh-authd certs if AUTO_ENROLLMENT_ENABLED is true and does not exist
if [ ! -e ${WAZUH_INSTALL_PATH}/etc/sslmanager.key ] if [ $AUTO_ENROLLMENT_ENABLED == true ]
then then
create_ossec_key_cert if [ ! -e ${WAZUH_INSTALL_PATH}/etc/sslmanager.key ]
then
create_ossec_key_cert
fi
fi fi
# Mount selected files (WAZUH_CONFIG_MOUNT) to container # Mount selected files (WAZUH_CONFIG_MOUNT) to container
@@ -5,7 +5,7 @@ set -e
if [ "$INDEXER_URL" != "" ]; then if [ "$INDEXER_URL" != "" ]; then
>&2 echo "Customize Elasticsearch output IP" >&2 echo "Customize Elasticsearch output IP"
sed -i "s|hosts:.*|hosts: [$INDEXER_URL]|g" /etc/filebeat/filebeat.yml sed -i "s|hosts:.*|hosts: ['$INDEXER_URL']|g" /etc/filebeat/filebeat.yml
fi fi
# Configure filebeat.yml security settings # Configure filebeat.yml security settings
@@ -1,11 +1,5 @@
## variables ## variables
REPOSITORY="packages-dev.wazuh.com/pre-release"
WAZUH_TAG=$(curl --silent https://api.github.com/repos/wazuh/wazuh/git/refs/tags | grep '["]ref["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 11- | grep ^v${WAZUH_VERSION}$) WAZUH_TAG=$(curl --silent https://api.github.com/repos/wazuh/wazuh/git/refs/tags | grep '["]ref["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 11- | grep ^v${WAZUH_VERSION}$)
## check tag to use the correct repository dnf install ${REPO_ORIGIN}/yum/filebeat-${FILEBEAT_VERSION}-${FILEBEAT_REVISION}.${ARCH_NAME}.rpm -y && \
if [[ -n "${WAZUH_TAG}" ]]; then curl -s ${REPO_ORIGIN}/filebeat/${WAZUH_FILEBEAT_MODULE} | tar -xvz -C /usr/share/filebeat/module
REPOSITORY="packages.wazuh.com/4.x"
fi
yum install filebeat-${FILEBEAT_VERSION}-${FILEBEAT_REVISION} -y && \
curl -s https://${REPOSITORY}/filebeat/${WAZUH_FILEBEAT_MODULE} | tar -xvz -C /usr/share/filebeat/module
+4 -4
View File
@@ -13,7 +13,7 @@ This script initializes the environment variables needed to build each of the im
The script allows you to build images from other versions of Wazuh, to do this you must use the -v or --version argument: The script allows you to build images from other versions of Wazuh, to do this you must use the -v or --version argument:
``` ```
$ build-docker-images/build-images.sh -v 4.14.4 $ build-docker-images/build-images.sh -v 4.14.0
``` ```
To get all the available script options use the -h or --help option: To get all the available script options use the -h or --help option:
@@ -23,10 +23,10 @@ $ build-docker-images/build-images.sh -h
Usage: build-docker-images/build-images.sh [OPTIONS] Usage: build-docker-images/build-images.sh [OPTIONS]
-d, --dev <ref> [Optional] Set the development stage you want to build, example rc4 or beta1, not used by default. -d, --dev <ref> [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default.
-f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default 0.5. -f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default 0.4.
-r, --revision <rev> [Optional] Package revision. By default 1 -r, --revision <rev> [Optional] Package revision. By default 1
-v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, 4.14.4. -v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, 4.14.0.
-h, --help Show this help. -h, --help Show this help.
``` ```
+1 -1
View File
@@ -1,6 +1,6 @@
# Development Guide - Introduction # Development Guide - Introduction
Welcome to the Development Guide for Wazuh-docker version 4.14.4. This guide is intended for developers, contributors, and advanced users who wish to understand the development aspects of the Wazuh-Docker project, build custom Docker images, or contribute to its development. Welcome to the Development Guide for Wazuh-docker version 4.14.0. This guide is intended for developers, contributors, and advanced users who wish to understand the development aspects of the Wazuh-Docker project, build custom Docker images, or contribute to its development.
## Purpose of This Guide ## Purpose of This Guide
+3 -3
View File
@@ -1,6 +1,6 @@
# Development Guide - Setup Environment # Development Guide - Setup Environment
This section outlines the steps required to set up your local development environment for working with the Wazuh-Docker project (version 4.14.4). A proper setup is crucial for building images, running tests, and contributing effectively. This section outlines the steps required to set up your local development environment for working with the Wazuh-Docker project (version 4.14.0). A proper setup is crucial for building images, running tests, and contributing effectively.
## Prerequisites ## Prerequisites
@@ -26,12 +26,12 @@ Before you begin, ensure your system meets the following requirements:
Follow these steps to prepare your development environment: Follow these steps to prepare your development environment:
1. **Clone the Repository**: 1. **Clone the Repository**:
Clone the `wazuh-docker` repository from GitHub. It's important to check out the specific branch you intend to work with, in this case, `4.14.4`. Clone the `wazuh-docker` repository from GitHub. It's important to check out the specific branch you intend to work with, in this case, `4.14.0`.
```bash ```bash
git clone [https://github.com/wazuh/wazuh-docker.git](https://github.com/wazuh/wazuh-docker.git) git clone [https://github.com/wazuh/wazuh-docker.git](https://github.com/wazuh/wazuh-docker.git)
cd wazuh-docker cd wazuh-docker
git checkout v4.14.4 git checkout v4.14.0
``` ```
2. **Verify Docker Installation**: 2. **Verify Docker Installation**:
+3 -3
View File
@@ -1,6 +1,6 @@
# Reference Manual - Description # Reference Manual - Description
This section provides a detailed description of Wazuh-docker (version 4.14.4), its components, and its architecture when deployed using Docker containers. Understanding these aspects is key to effectively deploying and managing your Wazuh environment. This section provides a detailed description of Wazuh-docker (version 4.14.0), its components, and its architecture when deployed using Docker containers. Understanding these aspects is key to effectively deploying and managing your Wazuh environment.
## What is Wazuh? ## What is Wazuh?
@@ -18,7 +18,7 @@ Wazuh-docker is a project that provides Docker images and `docker compose` confi
## Core Components in Wazuh-Docker ## Core Components in Wazuh-Docker
The Wazuh-Docker project typically provides images for the following core Wazuh components, adapted for version 4.14.4: The Wazuh-Docker project typically provides images for the following core Wazuh components, adapted for version 4.14.0:
1. **Wazuh Manager**: 1. **Wazuh Manager**:
- The central component that collects and analyzes data from deployed Wazuh agents. - The central component that collects and analyzes data from deployed Wazuh agents.
@@ -28,7 +28,7 @@ The Wazuh-Docker project typically provides images for the following core Wazuh
2. **Wazuh Indexer**: 2. **Wazuh Indexer**:
- A highly scalable, full-text search and analytics engine. - A highly scalable, full-text search and analytics engine.
- Based on OpenSearch (or historically Elasticsearch), it stores and indexes alerts and monitoring data generated by the Wazuh manager. - Based on OpenSearch (or historically Elasticsearch), it stores and indexes alerts and monitoring data generated by the Wazuh manager.
- The Wazuh indexer container provides the data persistence layer for Wazuh alerts and events. For version 4.14.4, this is typically an OpenSearch-based component. - The Wazuh indexer container provides the data persistence layer for Wazuh alerts and events. For version 4.14.0, this is typically an OpenSearch-based component.
3. **Wazuh Dashboard**: 3. **Wazuh Dashboard**:
- A flexible visualization tool based on OpenSearch Dashboards (or historically Kibana). - A flexible visualization tool based on OpenSearch Dashboards (or historically Kibana).
+2 -2
View File
@@ -1,6 +1,6 @@
# Reference Manual - Introduction # Reference Manual - Introduction
Welcome to the Reference Manual for Wazuh-Docker, version 4.14.4. This manual provides comprehensive information about deploying, configuring, and managing your Wazuh environment using Docker. Welcome to the Reference Manual for Wazuh-Docker, version 4.14.0. This manual provides comprehensive information about deploying, configuring, and managing your Wazuh environment using Docker.
## Purpose of This Manual ## Purpose of This Manual
@@ -44,4 +44,4 @@ This manual is structured to help you find information efficiently:
- If you need to customize your deployment, refer to the [Configuration](configuration/configuration.md) section. - If you need to customize your deployment, refer to the [Configuration](configuration/configuration.md) section.
- For specific terms or concepts, consult the [Glossary](glossary.md). - For specific terms or concepts, consult the [Glossary](glossary.md).
This manual refers to version 4.14.4 of Wazuh-Docker. Ensure you are using the documentation that corresponds to your deployed version. This manual refers to version 4.14.0 of Wazuh-Docker. Ensure you are using the documentation that corresponds to your deployed version.
@@ -29,4 +29,4 @@
``` ```
Consult the official Wazuh documentation for version 4.14.4 for detailed information on all possible configuration parameters for each component. Consult the official Wazuh documentation for version 4.14.0 for detailed information on all possible configuration parameters for each component.
+1 -1
View File
@@ -1,6 +1,6 @@
# Reference Manual - Configuration # Reference Manual - Configuration
This section details how to configure your Wazuh-Docker deployment (version 4.14.4). Proper configuration is key to tailoring the Wazuh stack to your specific needs, managing data persistence, and integrating with your environment. This section details how to configure your Wazuh-Docker deployment (version 4.14.0). Proper configuration is key to tailoring the Wazuh stack to your specific needs, managing data persistence, and integrating with your environment.
## Overview of Configuration Methods ## Overview of Configuration Methods
@@ -4,14 +4,11 @@ This document outlines the environment variables applicable to the Wazuh Docker
## Table of Contents ## Table of Contents
- [Environment Variables in Wazuh Docker Deployment](#environment-variables-in-wazuh-docker-deployment) - [Wazuh Manager](#wazuh-manager)
- [Table of Contents](#table-of-contents) - [Wazuh Indexer](#wazuh-indexer)
- [Wazuh Manager](#wazuh-manager) - [Wazuh Dashboard](#wazuh-dashboard)
- [Wazuh Indexer](#wazuh-indexer) - [Wazuh Agent](#wazuh-agent)
- [Wazuh Dashboard](#wazuh-dashboard) - [Overriding Configuration Files with Environment Variables](#overriding-configuration-files-with-environment-variables)
- [Wazuh Agent](#wazuh-agent)
- [Overriding Configuration Files with Environment Variables](#overriding-configuration-files-with-environment-variables)
- [Examples:](#examples)
--- ---
@@ -91,7 +88,6 @@ environment:
- WAZUH_REGISTRATION_SERVER=wazuh.manager - WAZUH_REGISTRATION_SERVER=wazuh.manager
- WAZUH_REGISTRATION_PORT=1515 - WAZUH_REGISTRATION_PORT=1515
- WAZUH_AGENT_NAME=my-agent - WAZUH_AGENT_NAME=my-agent
- WAZUH_AGENT_GROUPS=default
- WAZUH_REGISTRATION_PASSWORD=StrongPassword - WAZUH_REGISTRATION_PASSWORD=StrongPassword
``` ```
@@ -1,6 +1,6 @@
# Reference Manual - Deployment # Reference Manual - Deployment
This section provides detailed instructions for deploying Wazuh-Docker (version 4.14.4) in various configurations. Choose the deployment model that best suits your needs, from simple single-node setups for testing to more robust multi-node configurations for production environments. This section provides detailed instructions for deploying Wazuh-Docker (version 4.14.0) in various configurations. Choose the deployment model that best suits your needs, from simple single-node setups for testing to more robust multi-node configurations for production environments.
## Overview of Deployment Options ## Overview of Deployment Options
@@ -24,11 +24,11 @@ Ensure you have:
- Met all the [System Requirements](ref/getting-started/requirements.md). - Met all the [System Requirements](ref/getting-started/requirements.md).
- Installed Docker and Docker Compose on your host(s). - Installed Docker and Docker Compose on your host(s).
- Cloned the `wazuh-docker` repository (version `4.14.4`) or downloaded the necessary deployment files. - Cloned the `wazuh-docker` repository (version `4.14.0`) or downloaded the necessary deployment files.
```bash ```bash
git clone [https://github.com/wazuh/wazuh-docker.git](https://github.com/wazuh/wazuh-docker.git) git clone [https://github.com/wazuh/wazuh-docker.git](https://github.com/wazuh/wazuh-docker.git)
cd wazuh-docker cd wazuh-docker
git checkout v4.14.4 git checkout v4.14.0
``` ```
- Made a backup of any existing Wazuh data if you are migrating or upgrading. - Made a backup of any existing Wazuh data if you are migrating or upgrading.
+3 -3
View File
@@ -1,6 +1,6 @@
# Reference Manual - Getting Started # Reference Manual - Getting Started
This section guides you through the initial steps to get your Wazuh-docker (version 4.14.4) environment up and running. We will cover the prerequisites and point you to the deployment instructions. This section guides you through the initial steps to get your Wazuh-docker (version 4.14.0) environment up and running. We will cover the prerequisites and point you to the deployment instructions.
## Overview ## Overview
@@ -27,11 +27,11 @@ Before diving into the deployment, please ensure you have reviewed:
Verify that your host system has sufficient RAM, CPU, and disk space. Ensure Docker and Docker Compose are installed and functioning correctly. Verify that your host system has sufficient RAM, CPU, and disk space. Ensure Docker and Docker Compose are installed and functioning correctly.
2. **Obtain Wazuh-docker Configuration**: 2. **Obtain Wazuh-docker Configuration**:
You'll need the Docker Compose files and any associated configuration files from the `wazuh-docker` repository for version 4.14.4. You'll need the Docker Compose files and any associated configuration files from the `wazuh-docker` repository for version 4.14.0.
```bash ```bash
git clone [https://github.com/wazuh/wazuh-docker.git](https://github.com/wazuh/wazuh-docker.git) git clone [https://github.com/wazuh/wazuh-docker.git](https://github.com/wazuh/wazuh-docker.git)
cd wazuh-docker cd wazuh-docker
git checkout v4.14.4 git checkout v4.14.0
# Navigate to the specific docker-compose directory, e.g., single-node or multi-node # Navigate to the specific docker-compose directory, e.g., single-node or multi-node
# cd docker-compose/single-node/ (example path) # cd docker-compose/single-node/ (example path)
``` ```
+1 -1
View File
@@ -1,6 +1,6 @@
# Reference Manual - Requirements # Reference Manual - Requirements
Before deploying Wazuh-Docker (version 4.14.4), it's essential to ensure your environment meets the necessary hardware and software requirements. Meeting these prerequisites will help ensure a stable and performant Wazuh deployment. Before deploying Wazuh-Docker (version 4.14.0), it's essential to ensure your environment meets the necessary hardware and software requirements. Meeting these prerequisites will help ensure a stable and performant Wazuh deployment.
## Host System Requirements ## Host System Requirements
+3 -3
View File
@@ -1,6 +1,6 @@
# Reference Manual - Glossary # Reference Manual - Glossary
This glossary defines key terms and concepts related to Wazuh, Docker, and their use together in the Wazuh-Docker project (version 4.14.4). This glossary defines key terms and concepts related to Wazuh, Docker, and their use together in the Wazuh-Docker project (version 4.14.0).
--- ---
@@ -22,7 +22,7 @@ This glossary defines key terms and concepts related to Wazuh, Docker, and their
**D** **D**
- **Dashboard (Wazuh Dashboard / OpenSearch Dashboards / Kibana)**: A web-based visualization tool used to explore, analyze, and visualize data stored in the Wazuh Indexer. It provides dashboards, visualizations, and a query interface for security events and alerts. For Wazuh 4.14.4, this is typically OpenSearch Dashboards. - **Dashboard (Wazuh Dashboard / OpenSearch Dashboards / Kibana)**: A web-based visualization tool used to explore, analyze, and visualize data stored in the Wazuh Indexer. It provides dashboards, visualizations, and a query interface for security events and alerts. For Wazuh 4.14.0, this is typically OpenSearch Dashboards.
- **Decoder**: A component in the Wazuh Manager that parses and extracts relevant information (fields) from raw log messages or event data. - **Decoder**: A component in the Wazuh Manager that parses and extracts relevant information (fields) from raw log messages or event data.
- **Docker**: An open platform for developing, shipping, and running applications inside containers. - **Docker**: An open platform for developing, shipping, and running applications inside containers.
- **Docker Compose**: A tool for defining and running multi-container Docker applications. It uses a YAML file (`docker-compose.yml`) to configure the application's services, networks, and volumes. - **Docker Compose**: A tool for defining and running multi-container Docker applications. It uses a YAML file (`docker-compose.yml`) to configure the application's services, networks, and volumes.
@@ -42,7 +42,7 @@ This glossary defines key terms and concepts related to Wazuh, Docker, and their
**I** **I**
- **Indexer (Wazuh Indexer / OpenSearch / Elasticsearch)**: The component responsible for storing, indexing, and making searchable the alerts and event data generated by the Wazuh Manager. For Wazuh 4.14.4, this is typically OpenSearch. - **Indexer (Wazuh Indexer / OpenSearch / Elasticsearch)**: The component responsible for storing, indexing, and making searchable the alerts and event data generated by the Wazuh Manager. For Wazuh 4.14.0, this is typically OpenSearch.
**L** **L**
+2 -2
View File
@@ -1,7 +1,7 @@
# Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2) # Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2)
FROM amazonlinux:2023 FROM ubuntu:focal
RUN yum update -y && yum install openssl curl-minimal -y RUN apt-get update && apt-get install openssl curl -y
WORKDIR / WORKDIR /
+4 -27
View File
@@ -1,32 +1,9 @@
# Certificate Creation Image Build # Certificate creation image build
The dockerfile hosted in this directory is used to build the image required for generating Wazuh Docker single-node and multi-node certificate files The dockerfile hosted in this directory is used to build the image used to boot Wazuh's single node and multi node stacks.
## Pre-requisites To create the image, the following command must be executed:
1. Verify the Docker Buildx plugin is properly set up
2. For multi-architecture image builds:
- Ensure QEMU is installed
- Check permissions to push images to a Docker registry
Useful documentation:
- https://docs.docker.com/build/building/multi-platform/
- https://www.qemu.org/download/
## Procedure
Execute the following to run the script used to build the wazuh-certs-generator docker image
```console
cd indexer-certs-creator
``` ```
$ docker build -t wazuh/wazuh-certs-generator:0.0.2 .
```console
./build-image.sh -v <IMAGE_TAG> [-m] [-rg <REGISTRY>]
``` ```
- Replace <IMAGE_TAG> with the new image desired tag.
- Use the `-m` flag to build a multi-architecture image (supports both `amd64` and `arm64`)
- If multiarch build is enabled, the script will attempt to push the image to the specified registry. This image upload will only work if credentials are properly configured.
- Use the `-rg <REGISTRY>` parameter to specify a custom Docker registry (default is Docker Hub)
-107
View File
@@ -1,107 +0,0 @@
#!/bin/bash
# Wazuh package generator
# Copyright (C) 2023, Wazuh Inc.
#
# This program is a free software; you can redistribute it
# and/or modify it under the terms of the GNU General Public
# License (version 2) as published by the FSF - Free Software
# Foundation.
WAZUH_CERTS_IMAGE_VERSION="0.0.4"
WAZUH_REGISTRY="docker.io"
# -----------------------------------------------------------------------------
trap ctrl_c INT
clean() {
exit_code=$1
exit ${exit_code}
}
ctrl_c() {
clean 1
}
# -----------------------------------------------------------------------------
build() {
IMAGE_TAG="${WAZUH_CERTS_IMAGE_VERSION}"
echo WAZUH_REGISTRY=$WAZUH_REGISTRY > .env
echo IMAGE_TAG=$IMAGE_TAG >> .env
set -a
source .env
set +a
if [ "${MULTIARCH}" ]; then
docker buildx bake \
--file build-image.yml \
--set *.platform=linux/amd64,linux/arm64 \
--push \
--no-cache || clean 1
else
docker buildx bake \
--file build-image.yml \
--load \
--no-cache || clean 1
fi
return 0
}
# -----------------------------------------------------------------------------
help() {
echo
echo "Usage: $0 [OPTIONS]"
echo
echo " -v, --version <ver> [Optional] Set the image version. By default ${WAZUH_CERTS_IMAGE_VERSION}."
echo " -rg, --registry <reg> [Optional] Set the Docker registry to push the images."
echo " -m, --multiarch [Optional] Enable multi-architecture builds."
echo " -h, --help Show this help."
echo
exit $1
}
# -----------------------------------------------------------------------------
main() {
while [ -n "${1}" ]
do
case "${1}" in
"-h"|"--help")
help 0
;;
"-m"|"--multiarch")
MULTIARCH="true"
shift
;;
"-rg"|"--registry")
if [ -n "${2}" ]; then
WAZUH_REGISTRY="${2}"
shift 2
else
help 1
fi
;;
"-v"|"--version")
if [ -n "$2" ]; then
WAZUH_CERTS_IMAGE_VERSION="$2"
shift 2
else
help 1
fi
;;
*)
help 1
esac
done
build || clean 1
clean 0
}
main "$@"
-8
View File
@@ -1,8 +0,0 @@
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
services:
wazuh.certs.generator:
build:
context: .
dockerfile: Dockerfile
image: ${WAZUH_REGISTRY}/wazuh/wazuh-certs-generator:${IMAGE_TAG}
hostname: wazuh-certs-generator
+17 -23
View File
@@ -8,35 +8,29 @@
## Variables ## Variables
CERT_TOOL=wazuh-certs-tool.sh CERT_TOOL=wazuh-certs-tool.sh
PASSWORD_TOOL=wazuh-passwords-tool.sh PASSWORD_TOOL=wazuh-passwords-tool.sh
PACKAGES_URL=https://packages.wazuh.com/$CERT_TOOL_VERSION/ PACKAGES_URL=https://packages.wazuh.com/4.14/
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/$CERT_TOOL_VERSION/ PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.14/
OUTPUT_FILE="/$CERT_TOOL" ## Check if the cert tool exists in S3 buckets
CERT_TOOL_PACKAGES=$(curl --silent --head --location --output /dev/null --write-out "%{http_code}" "$PACKAGES_URL$CERT_TOOL")
CERT_TOOL_PACKAGES_DEV=$(curl --silent --head --location --output /dev/null --write-out "%{http_code}" "$PACKAGES_DEV_URL$CERT_TOOL")
download_package() { ## If cert tool exists in some bucket, download it, if not exit 1
local url=$1 if [ "$CERT_TOOL_PACKAGES" = "200" ]; then
echo "Checking $url$CERT_TOOL ..." curl -o $CERT_TOOL $PACKAGES_URL$CERT_TOOL -s
if curl -fsL "$url$CERT_TOOL" -o "$OUTPUT_FILE"; then echo "The tool to create the certificates exists in the in Packages bucket"
echo "Downloaded $CERT_TOOL from $url" elif [ "$CERT_TOOL_PACKAGES_DEV" = "200" ]; then
return 0 curl -o $CERT_TOOL $PACKAGES_DEV_URL$CERT_TOOL -s
else echo "The tool to create the certificates exists in Packages-dev bucket"
return 1
fi
}
# Try first the prod URL, if it fails try the dev URL
if download_package "$PACKAGES_URL"; then
:
elif download_package "$PACKAGES_DEV_URL"; then
:
else else
echo "The tool to create the certificates does not exist in any bucket" echo "The tool to create the certificates does not exist in any bucket"
echo "ERROR: certificates were not created" echo "ERROR: certificates were not created"
exit 1 exit 1
fi fi
cp /config/certs.yml /config.yml cp /config/certs.yml /config.yml
chmod 700 "$OUTPUT_FILE"
chmod 700 /$CERT_TOOL
############################################################################## ##############################################################################
# Creating Cluster certificates # Creating Cluster certificates
+1 -1
View File
@@ -4,4 +4,4 @@ hosts:
port: 55000 port: 55000
username: wazuh-wui username: wazuh-wui
password: "MyS3cr37P450r.*-" password: "MyS3cr37P450r.*-"
run_as: true run_as: false
@@ -21,13 +21,6 @@ plugins.security.ssl.transport.pemtrustedcas_filepath: ${OPENSEARCH_PATH_CONF}/c
plugins.security.ssl.http.enabled: true plugins.security.ssl.http.enabled: true
plugins.security.ssl.transport.enforce_hostname_verification: false plugins.security.ssl.transport.enforce_hostname_verification: false
plugins.security.ssl.transport.resolve_hostname: false plugins.security.ssl.transport.resolve_hostname: false
plugins.security.ssl.http.enabled_ciphers:
- "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
- "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
plugins.security.ssl.http.enabled_protocols:
- "TLSv1.2"
plugins.security.authcz.admin_dn: plugins.security.authcz.admin_dn:
- "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US" - "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
plugins.security.check_snapshot_restore_write_privileges: true plugins.security.check_snapshot_restore_write_privileges: true
@@ -21,13 +21,6 @@ plugins.security.ssl.transport.pemtrustedcas_filepath: ${OPENSEARCH_PATH_CONF}/c
plugins.security.ssl.http.enabled: true plugins.security.ssl.http.enabled: true
plugins.security.ssl.transport.enforce_hostname_verification: false plugins.security.ssl.transport.enforce_hostname_verification: false
plugins.security.ssl.transport.resolve_hostname: false plugins.security.ssl.transport.resolve_hostname: false
plugins.security.ssl.http.enabled_ciphers:
- "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
- "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
plugins.security.ssl.http.enabled_protocols:
- "TLSv1.2"
plugins.security.authcz.admin_dn: plugins.security.authcz.admin_dn:
- "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US" - "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
plugins.security.check_snapshot_restore_write_privileges: true plugins.security.check_snapshot_restore_write_privileges: true
@@ -21,13 +21,6 @@ plugins.security.ssl.transport.pemtrustedcas_filepath: ${OPENSEARCH_PATH_CONF}/c
plugins.security.ssl.http.enabled: true plugins.security.ssl.http.enabled: true
plugins.security.ssl.transport.enforce_hostname_verification: false plugins.security.ssl.transport.enforce_hostname_verification: false
plugins.security.ssl.transport.resolve_hostname: false plugins.security.ssl.transport.resolve_hostname: false
plugins.security.ssl.http.enabled_ciphers:
- "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
- "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
plugins.security.ssl.http.enabled_protocols:
- "TLSv1.2"
plugins.security.authcz.admin_dn: plugins.security.authcz.admin_dn:
- "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US" - "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
plugins.security.check_snapshot_restore_write_privileges: true plugins.security.check_snapshot_restore_write_privileges: true
+7 -7
View File
@@ -1,7 +1,7 @@
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) # Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
services: services:
wazuh.master: wazuh.master:
image: wazuh/wazuh-manager:4.14.4 image: wazuh/wazuh-manager:4.14.0
hostname: wazuh.master hostname: wazuh.master
restart: always restart: always
ulimits: ulimits:
@@ -16,7 +16,7 @@ services:
- "514:514/udp" - "514:514/udp"
- "55000:55000" - "55000:55000"
environment: environment:
- INDEXER_URL="https://wazuh1.indexer:9200","https://wazuh2.indexer:9200","https://wazuh3.indexer:9200" - INDEXER_URL=https://wazuh1.indexer:9200
- INDEXER_USERNAME=admin - INDEXER_USERNAME=admin
- INDEXER_PASSWORD=SecretPassword - INDEXER_PASSWORD=SecretPassword
- FILEBEAT_SSL_VERIFICATION_MODE=full - FILEBEAT_SSL_VERIFICATION_MODE=full
@@ -43,7 +43,7 @@ services:
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf - ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
wazuh.worker: wazuh.worker:
image: wazuh/wazuh-manager:4.14.4 image: wazuh/wazuh-manager:4.14.0
hostname: wazuh.worker hostname: wazuh.worker
restart: always restart: always
ulimits: ulimits:
@@ -79,7 +79,7 @@ services:
- ./config/wazuh_cluster/wazuh_worker.conf:/wazuh-config-mount/etc/ossec.conf - ./config/wazuh_cluster/wazuh_worker.conf:/wazuh-config-mount/etc/ossec.conf
wazuh1.indexer: wazuh1.indexer:
image: wazuh/wazuh-indexer:4.14.4 image: wazuh/wazuh-indexer:4.14.0
hostname: wazuh1.indexer hostname: wazuh1.indexer
restart: always restart: always
ports: ports:
@@ -105,7 +105,7 @@ services:
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml
wazuh2.indexer: wazuh2.indexer:
image: wazuh/wazuh-indexer:4.14.4 image: wazuh/wazuh-indexer:4.14.0
hostname: wazuh2.indexer hostname: wazuh2.indexer
restart: always restart: always
environment: environment:
@@ -127,7 +127,7 @@ services:
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml
wazuh3.indexer: wazuh3.indexer:
image: wazuh/wazuh-indexer:4.14.4 image: wazuh/wazuh-indexer:4.14.0
hostname: wazuh3.indexer hostname: wazuh3.indexer
restart: always restart: always
environment: environment:
@@ -149,7 +149,7 @@ services:
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml
wazuh.dashboard: wazuh.dashboard:
image: wazuh/wazuh-dashboard:4.14.4 image: wazuh/wazuh-dashboard:4.14.0
hostname: wazuh.dashboard hostname: wazuh.dashboard
restart: always restart: always
ports: ports:
+1 -3
View File
@@ -1,10 +1,8 @@
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) # Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
services: services:
generator: generator:
image: wazuh/wazuh-certs-generator:0.0.4 image: wazuh/wazuh-certs-generator:0.0.2
hostname: wazuh-certs-generator hostname: wazuh-certs-generator
environment:
- CERT_TOOL_VERSION=4.14
volumes: volumes:
- ./config/wazuh_indexer_ssl_certs/:/certificates/ - ./config/wazuh_indexer_ssl_certs/:/certificates/
- ./config/certs.yml:/config/certs.yml - ./config/certs.yml:/config/certs.yml
+1 -1
View File
@@ -4,4 +4,4 @@ hosts:
port: 55000 port: 55000
username: wazuh-wui username: wazuh-wui
password: "MyS3cr37P450r.*-" password: "MyS3cr37P450r.*-"
run_as: true run_as: false
@@ -4,6 +4,8 @@ cluster.name: "wazuh-cluster"
path.data: /var/lib/wazuh-indexer path.data: /var/lib/wazuh-indexer
path.logs: /var/log/wazuh-indexer path.logs: /var/log/wazuh-indexer
discovery.type: single-node discovery.type: single-node
http.port: 9200-9299
transport.tcp.port: 9300-9399
compatibility.override_main_response_version: true compatibility.override_main_response_version: true
plugins.security.ssl.http.pemcert_filepath: /usr/share/wazuh-indexer/config/certs/wazuh.indexer.pem plugins.security.ssl.http.pemcert_filepath: /usr/share/wazuh-indexer/config/certs/wazuh.indexer.pem
plugins.security.ssl.http.pemkey_filepath: /usr/share/wazuh-indexer/config/certs/wazuh.indexer.key plugins.security.ssl.http.pemkey_filepath: /usr/share/wazuh-indexer/config/certs/wazuh.indexer.key
@@ -14,13 +16,6 @@ plugins.security.ssl.transport.pemtrustedcas_filepath: /usr/share/wazuh-indexer/
plugins.security.ssl.http.enabled: true plugins.security.ssl.http.enabled: true
plugins.security.ssl.transport.enforce_hostname_verification: false plugins.security.ssl.transport.enforce_hostname_verification: false
plugins.security.ssl.transport.resolve_hostname: false plugins.security.ssl.transport.resolve_hostname: false
plugins.security.ssl.http.enabled_ciphers:
- "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
- "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
- "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
plugins.security.ssl.http.enabled_protocols:
- "TLSv1.2"
plugins.security.authcz.admin_dn: plugins.security.authcz.admin_dn:
- "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US" - "CN=admin,OU=Wazuh,O=Wazuh,L=California,C=US"
plugins.security.check_snapshot_restore_write_privileges: true plugins.security.check_snapshot_restore_write_privileges: true
+4 -4
View File
@@ -1,7 +1,7 @@
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) # Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
services: services:
wazuh.manager: wazuh.manager:
image: wazuh/wazuh-manager:4.14.4 image: merecu/wazuh-manager:4.14.0
hostname: wazuh.manager hostname: wazuh.manager
restart: always restart: always
ulimits: ulimits:
@@ -17,7 +17,7 @@ services:
- "514:514/udp" - "514:514/udp"
- "55000:55000" - "55000:55000"
environment: environment:
- INDEXER_URL="https://wazuh.indexer:9200" - INDEXER_URL=https://wazuh.indexer:9200
- INDEXER_USERNAME=admin - INDEXER_USERNAME=admin
- INDEXER_PASSWORD=SecretPassword - INDEXER_PASSWORD=SecretPassword
- FILEBEAT_SSL_VERIFICATION_MODE=full - FILEBEAT_SSL_VERIFICATION_MODE=full
@@ -44,7 +44,7 @@ services:
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf - ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
wazuh.indexer: wazuh.indexer:
image: wazuh/wazuh-indexer:4.14.4 image: merecu/wazuh-indexer:4.14.0
hostname: wazuh.indexer hostname: wazuh.indexer
restart: always restart: always
ports: ports:
@@ -69,7 +69,7 @@ services:
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml
wazuh.dashboard: wazuh.dashboard:
image: wazuh/wazuh-dashboard:4.14.4 image: merecu/wazuh-dashboard:4.14.0
hostname: wazuh.dashboard hostname: wazuh.dashboard
restart: always restart: always
ports: ports:
+1 -3
View File
@@ -1,10 +1,8 @@
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) # Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
services: services:
generator: generator:
image: wazuh/wazuh-certs-generator:0.0.4 image: wazuh/wazuh-certs-generator:0.0.2
hostname: wazuh-certs-generator hostname: wazuh-certs-generator
environment:
- CERT_TOOL_VERSION=4.14
volumes: volumes:
- ./config/wazuh_indexer_ssl_certs/:/certificates/ - ./config/wazuh_indexer_ssl_certs/:/certificates/
- ./config/certs.yml:/config/certs.yml - ./config/certs.yml:/config/certs.yml
+1 -2
View File
@@ -20,9 +20,8 @@
<enabled>yes</enabled> <enabled>yes</enabled>
<manager_address>CHANGE_ENROLL_IP</manager_address> <manager_address>CHANGE_ENROLL_IP</manager_address>
<port>CHANGE_ENROLL_PORT</port> <port>CHANGE_ENROLL_PORT</port>
<agent_name>CHANGE_AGENT_NAME</agent_name> <agent_name>CHANGEE_AGENT_NAME</agent_name>
<authorization_pass_path>etc/authd.pass</authorization_pass_path> <authorization_pass_path>etc/authd.pass</authorization_pass_path>
<groups>CHANGE_AGENT_GROUPS</groups>
</enrollment> </enrollment>
</client> </client>
+1 -1
View File
@@ -1,7 +1,7 @@
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2) # Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
services: services:
wazuh.agent: wazuh.agent:
image: wazuh/wazuh-agent:4.14.4 image: wazuh/wazuh-agent:4.14.0
restart: always restart: always
environment: environment:
- WAZUH_MANAGER_SERVER=<WAZUH_MANAGER_IP> - WAZUH_MANAGER_SERVER=<WAZUH_MANAGER_IP>