diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..c183558 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,212 @@ +# Change Log +All notable changes to this project will be documented in this file. + +## [4.10.0] + +### Added + +- None + +### Changed + +- Migrated the OVA construction files to the wazuh-virtual-machines repository ([#29](https://github.com/wazuh/wazuh-virtual-machines/pull/29)) - (OVA) + +### Fixed + +- None + +### Deleted + +- None + +## [4.9.0] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.9.0 + +## [4.8.1] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.8.1 + +## [4.8.0] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.8.0 + +## [4.7.5] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.7.5 + +## [4.7.4] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.7.4 + +## [4.7.3] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.7.3 + +## [4.7.2] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.7.2 + +## [4.7.1] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.7.1 + +## [v4.7.0] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.7.0 + +## [v4.6.0] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.6.0 + +## [v4.5.4] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.5.4 + +## [v4.5.3] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.5.3 + +## [v4.5.2] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.5.2 + +## [v4.5.1] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.5.1 + +## [v4.5.0] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.5.0 + +## [v4.4.5] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.4.5 + +## [v4.4.4] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.4.4 + +## [v4.4.3] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.4.3 + +## [v4.4.2] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.4.2 + +## [v4.3.11] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.3.11 + +## [v4.4.1] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.4.1 + +## [v4.4.0] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.4.0 + +## [v4.3.10] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.3.10 + +## [v4.3.9] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.3.9 + +## [v4.3.8] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.3.8 + +## [v4.3.7] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.3.7 + +## [v4.3.6] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.3.6 + +## [v4.3.5] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.3.5 + +## [v4.3.4] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.3.4 + +## [v4.3.3] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.3.3 + +## [v4.3.2] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.3.2 + +## [v4.2.7] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.2.7 + +## [v4.3.1] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.3.1 + +## [v4.3.0] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.3.0 + +## [v4.2.6] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.2.6 + +## [v4.2.5] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.2.5 + +## [v4.2.4] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.2.4 + +## [v4.2.3] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.2.3 + +## [v4.2.2] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.2.2 + +## [v4.2.1] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.2.1 + +## [v4.2.0] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.2.0 + +## [v4.1.5] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.1.5 + +## [v4.1.4] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.1.4 + +## [v4.1.3] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.1.3 + +## [v4.1.2] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.1.2 + +## [v4.1.1] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.1.1 + +## [v4.0.2] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.0.2 + +## [v4.0.0] + +- https://github.com/wazuh/wazuh-packages/releases/tag/v4.0.0 diff --git a/README.md b/README.md index c82e242..18d5dfe 100644 --- a/README.md +++ b/README.md @@ -1 +1,23 @@ -# wazuh-virtual-machines \ No newline at end of file +# Wazuh Virtual Machines + +[![Slack](https://img.shields.io/badge/slack-join-blue.svg)](https://wazuh.com/community/join-us-on-slack/) +[![Email](https://img.shields.io/badge/email-join-blue.svg)](https://groups.google.com/forum/#!forum/wazuh) +[![Documentation](https://img.shields.io/badge/docs-view-green.svg)](https://documentation.wazuh.com) +[![Documentation](https://img.shields.io/badge/web-view-green.svg)](https://wazuh.com) + +Wazuh is an Open Source Host-based Intrusion Detection System that performs log analysis, file integrity monitoring, policy monitoring, rootkit detection, real-time alerting, active response, vulnerability detector, etc. + +In this repository, you can find the necessary tools to build your own OVA file with all Wazuh components installed. + +## Building OVA file: + +Please, visit the following link for the full OVA building documentation: [Generate Wazuh virtual machine.](https://documentation.wazuh.com/current/development/packaging/generate-ova.html) + +## Contribute + +If you want to contribute to our project please don't hesitate to send a pull request. You can also join our users [mailing list](https://groups.google.com/d/forum/wazuh) by sending an email to [wazuh+subscribe@googlegroups.com](mailto:wazuh+subscribe@googlegroups.com) or join to our Slack channel by filling this [form](https://wazuh.com/community/join-us-on-slack/) to ask questions and participate in discussions. + +## License and copyright + +WAZUH +Copyright (C) 2015 Wazuh Inc. (License GPLv2) diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..2da4316 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +4.10.0 diff --git a/ova/.gitignore b/ova/.gitignore index c3f8a3c..566b940 100644 --- a/ova/.gitignore +++ b/ova/.gitignore @@ -1,4 +1,4 @@ .vagrant *.ova *.ovf -*.vmdk \ No newline at end of file +*.vmdk diff --git a/ova/assets/custom/automatic_set_ram.sh b/ova/assets/custom/automatic_set_ram.sh index afbac10..8f918ed 100644 --- a/ova/assets/custom/automatic_set_ram.sh +++ b/ova/assets/custom/automatic_set_ram.sh @@ -17,4 +17,4 @@ if [[ "${value}" != "${ram}" ]]; then eval "sed -i "s/^-Xmx.*$/-Xmx${ram}m/" ${file} ${debug}" fi -systemctl stop updateIndexerHeap.service \ No newline at end of file +systemctl stop updateIndexerHeap.service diff --git a/ova/assets/custom/functions.sh b/ova/assets/custom/functions.sh index c149e08..31ac9d7 100644 --- a/ova/assets/custom/functions.sh +++ b/ova/assets/custom/functions.sh @@ -26,4 +26,4 @@ function installCommon_changePasswords() { passwords_runSecurityAdmin fi -} \ No newline at end of file +} diff --git a/ova/assets/custom/grub/grub b/ova/assets/custom/grub/grub index 6cc85d8..7054bdd 100644 --- a/ova/assets/custom/grub/grub +++ b/ova/assets/custom/grub/grub @@ -5,4 +5,4 @@ GRUB_HIDDEN_TIMEOUT=2 GRUB_DISABLE_RECOVERY="true" GRUB_DISABLE_SUBMENU=y GRUB_DISABLE_LINUX_UUID=true -GRUB_BACKGROUND="/boot/grub2/wazuh.png" \ No newline at end of file +GRUB_BACKGROUND="/boot/grub2/wazuh.png" diff --git a/ova/assets/custom/removeVagrant.service b/ova/assets/custom/removeVagrant.service index 759a238..f817836 100644 --- a/ova/assets/custom/removeVagrant.service +++ b/ova/assets/custom/removeVagrant.service @@ -11,4 +11,4 @@ User=root Group=root WorkingDirectory=/home/USER Restart=always -RestartSec=3 \ No newline at end of file +RestartSec=3 diff --git a/ova/assets/postProvision.sh b/ova/assets/postProvision.sh index a44275c..1340a19 100644 --- a/ova/assets/postProvision.sh +++ b/ova/assets/postProvision.sh @@ -28,4 +28,4 @@ find /var/log/filebeat -type f -execdir sh -c 'cat /dev/null > "$1"' _ {} \; find /usr/share/wazuh-dashboard/data/wazuh/logs -type f -execdir sh -c 'cat /dev/null > "$1"' _ {} \; history -c -shutdown -r now > /dev/null 2>&1 \ No newline at end of file +shutdown -r now > /dev/null 2>&1 diff --git a/ova/generate_ova.sh b/ova/generate_ova.sh index 329917a..49c5463 100755 --- a/ova/generate_ova.sh +++ b/ova/generate_ova.sh @@ -22,8 +22,6 @@ scriptpath=$( OUTPUT_DIR="${scriptpath}/output" CHECKSUM_DIR="${scriptpath}/checksum" -UNATTENDED_RESOURCES_FOLDER="unattended_installer" -UNATTENDED_PATH="../${UNATTENDED_RESOURCES_FOLDER}" VERSION_FILE="../VERSION" PACKAGES_REPOSITORY="prod" @@ -39,6 +37,10 @@ help () { echo -e " $(basename "$0") -r | -s | -c | -f | -h" echo -e "" echo -e "DESCRIPTION" + echo -e " -a, --installation-assistant" + echo -e " Set the installation assistant branch for building the OVA." + echo -e " By default the same branch name as wazuh-virtual-machines will be used." + echo -e "" echo -e " -r, --repository" echo -e " Use development or production repository." echo -e " Values: [prod|dev|staging]. By default: ${PACKAGES_REPOSITORY}." @@ -67,7 +69,8 @@ clean() { cd "${scriptpath}" vagrant destroy -f OVA_VMDK="wazuh-${OVA_VERSION}-disk001.vmdk" - rm -f "${OVA_VM}" "${OVF_VM}" "${OVA_VMDK}" "${OVA_FIXED}" + rm -f "${OVA_VM}" "${OVF_VM}" "${OVA_VMDK}" "${OVA_FIXED}" "${INSTALLER}" + rm -rf "${WAZUH_INSTALLATION_ASSISTANT}" exit "${exit_code}" } @@ -122,7 +125,6 @@ build_ova() { echo "Cannot find python" clean 1 fi - # Make output dir of OVA file mkdir -p "${OUTPUT_DIR}" @@ -139,6 +141,16 @@ main() { help 0 ;; + "-a" | "--installation-assistant") + if [ -n "$2" ]; then + INSTALLATION_ASSISTANT_BRANCH="$2" + shift 2 + else + echo "ERROR: Need installation assistant branch" + help 1 + fi + ;; + "-r" | "--repository") if [ -n "$2" ]; then if [ "$2" != "prod" ] && [ "$2" != "dev" ] && [ "$2" != "staging" ]; then @@ -200,22 +212,58 @@ main() { CHECKSUM_DIR="${OUTPUT_DIR}" fi - [[ ${PACKAGES_REPOSITORY} = "prod" ]] && REPO="production" || REPO="development" - - cp -r ../${UNATTENDED_RESOURCES_FOLDER} . - OVA_VERSION=$(cat ${VERSION_FILE}) if [ "${OVA_VERSION:0:1}" == "v" ]; then OVA_VERSION=${OVA_VERSION:1} fi + if [ -z "${INSTALLATION_ASSISTANT_BRANCH}" ]; then + INSTALLATION_ASSISTANT_BRANCH=$(git rev-parse --abbrev-ref HEAD) + fi + if [ "${INSTALLATION_ASSISTANT_BRANCH:0:1}" == "v" ]; then + REMOTE_TYPE="--tags" + else + REMOTE_TYPE="--heads" + fi + + INSTALLER="wazuh-install.sh" + WAZUH_INSTALLATION_ASSISTANT="wazuh-installation-assistant" + WAZUH_INSTALLATION_ASSISTANT_URL="https://github.com/wazuh/${WAZUH_INSTALLATION_ASSISTANT}.git" + BUILDER_ARGS="-i" + + if [[ "${PACKAGES_REPOSITORY}" == "dev" ]]; then + BUILDER_ARGS+=" -d" + elif [[ "${PACKAGES_REPOSITORY}" == "staging" ]]; then + BUILDER_ARGS+=" -d staging" + fi + + echo "Building Wazuh OVA version ${OVA_VERSION}" + if git ls-remote ${REMOTE_TYPE} ${WAZUH_INSTALLATION_ASSISTANT_URL} ${INSTALLATION_ASSISTANT_BRANCH} | grep -q "${INSTALLATION_ASSISTANT_BRANCH}"; then + echo "Cloning Wazuh installation assistant repository" + git clone ${WAZUH_INSTALLATION_ASSISTANT_URL} -b ${INSTALLATION_ASSISTANT_BRANCH} >> /dev/null 2>&1 + echo "Using ${INSTALLATION_ASSISTANT_BRANCH} branch of ${WAZUH_INSTALLATION_ASSISTANT} repository" + cd ${WAZUH_INSTALLATION_ASSISTANT} + WIA_VERSION=$(cat VERSION) + if [ "${OVA_VERSION}" != "${WIA_VERSION}" ]; then + echo "Wazuh installation assistant version ${WIA_VERSION} does not match with OVA version ${OVA_VERSION}" + clean 1 + fi + echo "Building Wazuh installation assistant from ${INSTALLATION_ASSISTANT_BRANCH} branch" + else + echo "Branch ${INSTALLATION_ASSISTANT_BRANCH} not found in wazuh-installation-assistant repository" + clean 1 + fi + bash builder.sh ${BUILDER_ARGS} + + cp ${INSTALLER} ../ + cd .. + rm -rf ${WAZUH_INSTALLATION_ASSISTANT} # Build OVA file (no standard) + [[ ${PACKAGES_REPOSITORY} = "prod" ]] && REPO="production" || REPO="development" echo "Version to build: ${OVA_VERSION} with ${REPO} repository" build_ova - rm -rf ${UNATTENDED_RESOURCES_FOLDER} - # Standarize OVA bash setOVADefault.sh "${scriptpath}" "${OUTPUT_DIR}/${OVA_VM}" "${OUTPUT_DIR}/${OVA_VM}" "${scriptpath}/wazuh_ovf_template" "${OVA_VERSION}" || clean 1 diff --git a/ova/provision.sh b/ova/provision.sh index d6b94b1..5cce591 100755 --- a/ova/provision.sh +++ b/ova/provision.sh @@ -3,9 +3,7 @@ PACKAGES_REPOSITORY=$1 DEBUG=$2 -RESOURCES_PATH="/tmp/unattended_installer" -BUILDER="builder.sh" -INSTALLER="wazuh-install.sh" +INSTALLER="/tmp/wazuh-install.sh" SYSTEM_USER="wazuh-user" HOSTNAME="wazuh-server" INDEXES=("wazuh-alerts-*" "wazuh-archives-*" "wazuh-states-vulnerabilities-*" "wazuh-statistics-*" "wazuh-monitoring-*") @@ -13,15 +11,8 @@ INDEXES=("wazuh-alerts-*" "wazuh-archives-*" "wazuh-states-vulnerabilities-*" "w CURRENT_PATH="$( cd $(dirname $0) ; pwd -P )" ASSETS_PATH="${CURRENT_PATH}/assets" CUSTOM_PATH="${ASSETS_PATH}/custom" -BUILDER_ARGS="-i" INSTALL_ARGS="-a" -if [[ "${PACKAGES_REPOSITORY}" == "dev" ]]; then - BUILDER_ARGS+=" -d" -elif [[ "${PACKAGES_REPOSITORY}" == "staging" ]]; then - BUILDER_ARGS+=" -d staging" -fi - if [[ "${DEBUG}" = "yes" ]]; then INSTALL_ARGS+=" -v" fi @@ -30,9 +21,7 @@ echo "Using ${PACKAGES_REPOSITORY} packages" . ${ASSETS_PATH}/steps.sh -# Build install script -bash ${RESOURCES_PATH}/${BUILDER} ${BUILDER_ARGS} -WAZUH_VERSION=$(cat ${RESOURCES_PATH}/${INSTALLER} | grep "wazuh_version=" | cut -d "\"" -f 2) +WAZUH_VERSION=$(cat ${INSTALLER} | grep "wazuh_version=" | cut -d "\"" -f 2) # System configuration systemConfig @@ -41,7 +30,7 @@ systemConfig preInstall # Install -bash ${RESOURCES_PATH}/${INSTALLER} ${INSTALL_ARGS} +bash ${INSTALLER} ${INSTALL_ARGS} systemctl stop filebeat wazuh-manager diff --git a/ova/setOVADefault.sh b/ova/setOVADefault.sh index 6126eaf..8743860 100755 --- a/ova/setOVADefault.sh +++ b/ova/setOVADefault.sh @@ -17,7 +17,6 @@ tar -xvf ${path_ova} --directory ${workspace}/new-ova/ echo "OVF extracted" mv "${workspace}"/new-ova/*.ovf ${workspace}/new-ova/${file}.ovf -mv "${workspace}"/new-ova/*.mf ${workspace}/new-ova/${file}.mf mv "${workspace}"/new-ova/*.vmdk ${workspace}/new-ova/${file}-disk-1.vmdk echo "Files renamed" @@ -27,7 +26,7 @@ sed -i "s/{WAZUH_VERSION}/${wazuh_version}/" ${workspace}/new-ova/${file}.ovf echo "OVF Version changed" ovf_size=$(stat --printf=%s ${workspace}/new-ova/${file}-disk-1.vmdk) -sed -i "s/{SIZE}/${ovf_size}/" "${workspace}/new-ova/${file}.ovf" +sed -i "s/{SIZE}/${ovf_size}/" "${workspace}/new-ova/${file}.ovf" echo "OVF Size changed" export workspace @@ -48,4 +47,4 @@ tar -cvf "${dest_ova}" -C "${workspace}/new-ova/" ${file}.ovf ${file}-disk-1.vmd echo "New OVA created" rm -rf ${workspace}/new-ova/ -echo "Cleaned temporary directory" \ No newline at end of file +echo "Cleaned temporary directory" diff --git a/ova/wazuh_ovf_template b/ova/wazuh_ovf_template index e65d539..3598867 100644 --- a/ova/wazuh_ovf_template +++ b/ova/wazuh_ovf_template @@ -106,4 +106,4 @@ - \ No newline at end of file +