mirror of
				https://github.com/wazuh/wazuh-docker.git
				synced 2025-10-30 19:43:30 +00:00 
			
		
		
		
	Compare commits
	
		
			133 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | ddc03699e5 | ||
|  | b28ae3b3ab | ||
|  | 67dc3e6e36 | ||
|  | a34e0af547 | ||
|  | 42c2ea5dba | ||
|  | b95e02d41d | ||
|  | 8e8b53e6e1 | ||
|  | 40f55cfb53 | ||
|  | a626216643 | ||
|  | 0d7d4694fd | ||
|  | 8ae1cd3f9d | ||
|  | f06a7ec961 | ||
|  | 3656850b56 | ||
|  | 426670017f | ||
|  | 22958aaf5e | ||
|  | 35dfd86837 | ||
|  | d4b0d60a54 | ||
|  | 19a5a37bdf | ||
|  | 0e2d942666 | ||
|  | 0c2cb412fb | ||
|  | 8748cd1ae2 | ||
|  | 604232960b | ||
|  | 5e211d2b13 | ||
|  | 1a60522c27 | ||
|  | e9c2f59c94 | ||
|  | 451e91e407 | ||
|  | 439a3fe252 | ||
|  | 17389682a4 | ||
|  | 719dc7dd16 | ||
|  | 131c44ba63 | ||
|  | 27a7479774 | ||
|  | fea54b3ca7 | ||
|  | f711968c2f | ||
|  | adfaab647d | ||
|  | 237b180ff5 | ||
|  | d5550caa26 | ||
|  | 637d5ccae1 | ||
|  | 95207b0777 | ||
|  | a40c510bba | ||
|  | 7fdb1a91e5 | ||
|  | 3b740e5dce | ||
|  | 281f74582a | ||
|  | 5418494f95 | ||
|  | c6314893f2 | ||
|  | 5d5f01ab45 | ||
|  | 4b1c420fdd | ||
|  | 3d4a7073ef | ||
|  | c1ca498617 | ||
|  | ac92c2f1c0 | ||
|  | ec16fdf24c | ||
|  | 525bb0ca2c | ||
|  | a8bd7cba31 | ||
|  | 9fb941f3e5 | ||
|  | f67f8d1d3b | ||
|  | 1645f8bac2 | ||
|  | 7d394698a7 | ||
|  | 73c25e86d6 | ||
|  | add81b07e4 | ||
|  | 8f6d24de77 | ||
|  | 2fdb06d824 | ||
|  | d578dfbd39 | ||
|  | d7e937d2f8 | ||
|  | 0313563a0c | ||
|  | 0f2fd84173 | ||
|  | 437fbe63d1 | ||
|  | de28f0babc | ||
|  | 8795763cd2 | ||
|  | de1e435e26 | ||
|  | 5591833d2f | ||
|  | 8b2f64a3f8 | ||
|  | 290affdaa3 | ||
|  | d1499136f6 | ||
|  | 613dc9fbb7 | ||
|  | 77520d56ea | ||
|  | 111f04fb0b | ||
|  | 30ed0e6bb4 | ||
|  | 3ab210f8c0 | ||
|  | 19fdf93942 | ||
|  | 9ef724b46c | ||
|  | 2e0a7b7c3d | ||
|  | 66dda69a91 | ||
|  | cacc8fc3d3 | ||
|  | 11b3160aa4 | ||
|  | bb7723d6be | ||
|  | 54756054bc | ||
|  | e0c7194444 | ||
|  | ba3409acee | ||
|  | 19e5c24a2e | ||
|  | b7a55ab174 | ||
|  | 111cfca50c | ||
|  | 704b183002 | ||
|  | 579fa10551 | ||
|  | dfa11c08a4 | ||
|  | ceb920e87a | ||
|  | 330763bcb0 | ||
|  | 571fad7a08 | ||
|  | ccc781023d | ||
|  | 7e26034e22 | ||
|  | 182029155e | ||
|  | 872c121ba9 | ||
|  | 7e8055f128 | ||
|  | 469f7db61a | ||
|  | ec6bfa962d | ||
|  | 5f063fc445 | ||
|  | 9fdf342fa3 | ||
|  | b10a00cade | ||
|  | 3d3a3d1274 | ||
|  | 3a87d83deb | ||
|  | d22547b9c5 | ||
|  | bb11f13e86 | ||
|  | 79ac17ddbd | ||
|  | 59ad1b171c | ||
|  | 894ba9df12 | ||
|  | 5211401620 | ||
|  | 65f499c042 | ||
|  | db3d37aef6 | ||
|  | b1e13d3b72 | ||
|  | baa24a7614 | ||
|  | 4e975f8dd1 | ||
|  | e1fc82af79 | ||
|  | 5b03281631 | ||
|  | fe104c7ffb | ||
|  | 2d77063934 | ||
|  | bbeb831ceb | ||
|  | a40c870e78 | ||
|  | 8746063177 | ||
|  | e39f5a9ab5 | ||
|  | 316db4f384 | ||
|  | 8b39bff31d | ||
|  | e99476a99b | ||
|  | c2712a3929 | ||
|  | cb06e15a74 | ||
|  | 43d86dd5c8 | 
							
								
								
									
										74
									
								
								.github/.goss.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										74
									
								
								.github/.goss.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -1,53 +1,3 @@ | |||||||
| file: |  | ||||||
|   /etc/filebeat/filebeat.yml: |  | ||||||
|     exists: true |  | ||||||
|     mode: "0644" |  | ||||||
|     owner: root |  | ||||||
|     group: root |  | ||||||
|     filetype: file |  | ||||||
|     contains: [] |  | ||||||
|   /var/ossec/bin/wazuh-control: |  | ||||||
|     exists: true |  | ||||||
|     mode: "0750" |  | ||||||
|     owner: root |  | ||||||
|     group: root |  | ||||||
|     filetype: file |  | ||||||
|     contains: [] |  | ||||||
|   /var/ossec/etc/lists/audit-keys: |  | ||||||
|     exists: true |  | ||||||
|     mode: "0660" |  | ||||||
|     owner: wazuh |  | ||||||
|     group: wazuh |  | ||||||
|     filetype: file |  | ||||||
|     contains: [] |  | ||||||
|   /var/ossec/etc/ossec.conf: |  | ||||||
|     exists: true |  | ||||||
|     mode: "0660" |  | ||||||
|     owner: root |  | ||||||
|     group: wazuh |  | ||||||
|     filetype: file |  | ||||||
|     contains: [] |  | ||||||
|   /var/ossec/etc/rules/local_rules.xml: |  | ||||||
|     exists: true |  | ||||||
|     mode: "0660" |  | ||||||
|     owner: wazuh |  | ||||||
|     group: wazuh |  | ||||||
|     filetype: file |  | ||||||
|     contains: [] |  | ||||||
|   /var/ossec/etc/sslmanager.cert: |  | ||||||
|     exists: true |  | ||||||
|     mode: "0640" |  | ||||||
|     owner: root |  | ||||||
|     group: root |  | ||||||
|     filetype: file |  | ||||||
|     contains: [] |  | ||||||
|   /var/ossec/etc/sslmanager.key: |  | ||||||
|     exists: true |  | ||||||
|     mode: "0640" |  | ||||||
|     owner: root |  | ||||||
|     group: root |  | ||||||
|     filetype: file |  | ||||||
|     contains: [] |  | ||||||
| package: | package: | ||||||
|   filebeat: |   filebeat: | ||||||
|     installed: true |     installed: true | ||||||
| @@ -56,7 +6,7 @@ package: | |||||||
|   wazuh-manager: |   wazuh-manager: | ||||||
|     installed: true |     installed: true | ||||||
|     versions: |     versions: | ||||||
|     - 4.3.4 |     - 4.3.4-1 | ||||||
| port: | port: | ||||||
|   tcp:1514: |   tcp:1514: | ||||||
|     listening: true |     listening: true | ||||||
| @@ -70,28 +20,6 @@ port: | |||||||
|     listening: true |     listening: true | ||||||
|     ip: |     ip: | ||||||
|     - 0.0.0.0 |     - 0.0.0.0 | ||||||
| user: |  | ||||||
|   wazuh: |  | ||||||
|     exists: true |  | ||||||
|     groups: |  | ||||||
|     - wazuh |  | ||||||
|     home: /var/ossec |  | ||||||
|     shell: /sbin/nologin |  | ||||||
|   wazuh: |  | ||||||
|     exists: true |  | ||||||
|     groups: |  | ||||||
|     - wazuh |  | ||||||
|     home: /var/ossec |  | ||||||
|     shell: /sbin/nologin |  | ||||||
|   wazuh: |  | ||||||
|     exists: true |  | ||||||
|     groups: |  | ||||||
|     - wazuh |  | ||||||
|     home: /var/ossec |  | ||||||
|     shell: /sbin/nologin |  | ||||||
| group: |  | ||||||
|   wazuh: |  | ||||||
|     exists: true |  | ||||||
| process: | process: | ||||||
|   filebeat: |   filebeat: | ||||||
|     running: true |     running: true | ||||||
|   | |||||||
							
								
								
									
										18
									
								
								.github/multi-node-fb-check.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										18
									
								
								.github/multi-node-fb-check.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | fbout1=$(docker exec multi-node_wazuh.master_1 sh -c 'filebeat test output') | ||||||
|  | fbstatus1=$(echo "${fbout1}" | grep -c OK) | ||||||
|  | if [[ fbstatus1 -eq 7 ]]; then | ||||||
|  |  echo "No errors in master filebeat" | ||||||
|  | else | ||||||
|  |  echo "Errors in master filebeat" | ||||||
|  |  echo "${fbout1}" | ||||||
|  |  exit 1 | ||||||
|  | fi | ||||||
|  | fbout2=$(docker exec multi-node_wazuh.worker_1 sh -c 'filebeat test output') | ||||||
|  | fbstatus2=$(echo "${fbout2}" | grep -c OK) | ||||||
|  | if [[ fbstatus2 -eq 7 ]]; then | ||||||
|  |  echo "No errors in worker filebeat" | ||||||
|  | else | ||||||
|  |  echo "Errors in worker filebeat" | ||||||
|  |  echo "${fbout2}" | ||||||
|  |  exit 1 | ||||||
|  | fi | ||||||
							
								
								
									
										16
									
								
								.github/multi-node-log-check.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										16
									
								
								.github/multi-node-log-check.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | log1=$(docker exec multi-node_wazuh.master_1 sh -c 'cat /var/ossec/logs/ossec.log' | grep -P "ERR|WARN|CRIT") | ||||||
|  | if [[ -z "$log1" ]]; then | ||||||
|  |  echo "No errors in master ossec.log" | ||||||
|  | else | ||||||
|  |  echo "Errors in master ossec.log:" | ||||||
|  |  echo "${log1}" | ||||||
|  |  exit 1 | ||||||
|  | fi | ||||||
|  | log2=$(docker exec multi-node_wazuh.worker_1 sh -c 'cat /var/ossec/logs/ossec.log' | grep -P "ERR|WARN|CRIT") | ||||||
|  | if [[ -z "${log2}" ]]; then | ||||||
|  |  echo "No errors in worker ossec.log" | ||||||
|  | else | ||||||
|  |  echo "Errors in worker ossec.log:" | ||||||
|  |  echo "${log2}" | ||||||
|  |  exit 1 | ||||||
|  | fi | ||||||
							
								
								
									
										9
									
								
								.github/single-node-fb-check.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								.github/single-node-fb-check.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | fbout=$(docker exec single-node_wazuh.manager_1 sh -c 'filebeat test output') | ||||||
|  | fbstatus=$(echo "${fbout}" | grep -c OK) | ||||||
|  | if [[ fbstatus -eq 7 ]]; then | ||||||
|  |   echo "No errors in filebeat" | ||||||
|  | else | ||||||
|  |   echo "Errors in filebeat" | ||||||
|  |   echo "${fbout}" | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
							
								
								
									
										8
									
								
								.github/single-node-log-check.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								.github/single-node-log-check.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | log=$(docker exec single-node_wazuh.manager_1 sh -c 'cat /var/ossec/logs/ossec.log' | grep -P "ERR|WARN|CRIT") | ||||||
|  | if [[ -z "$log" ]]; then | ||||||
|  |  echo "No errors in ossec.log" | ||||||
|  | else | ||||||
|  |  echo "Errors in ossec.log:" | ||||||
|  |  echo "${log}" | ||||||
|  |  exit 1 | ||||||
|  | fi | ||||||
							
								
								
									
										210
									
								
								.github/workflows/push.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										210
									
								
								.github/workflows/push.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| name: Wazuh Docker pipeline | name: Wazuh Docker pipeline | ||||||
|  |  | ||||||
| on: [push] | on: [pull_request] | ||||||
|  |  | ||||||
| jobs: | jobs: | ||||||
|   build-stack: |   build-stack: | ||||||
| @@ -8,24 +8,210 @@ jobs: | |||||||
|     steps: |     steps: | ||||||
|  |  | ||||||
|     - name: Check out code |     - name: Check out code | ||||||
|       uses: actions/checkout@v2 |       uses: actions/checkout@v3 | ||||||
|  |  | ||||||
|     - name: Build the docker-compose stack |     - name: Build Wazuh images | ||||||
|       run: docker-compose -f build-wazuh-images.yml up -d --build |       run: build-docker-images/build-images.sh | ||||||
|  |  | ||||||
|     - name: Check running containers |     - name: Create enviroment variables | ||||||
|       run: docker ps -a |       run: cat .env > $GITHUB_ENV | ||||||
|  |  | ||||||
|     - name: Shutdown the stack |  | ||||||
|       run: docker-compose -f build-wazuh-images.yml kill |  | ||||||
|  |  | ||||||
|     - name: Install Goss |     - name: Install Goss | ||||||
|       uses: e1himself/goss-installation-action@v1.0.3 |       uses: e1himself/goss-installation-action@v1.0.3 | ||||||
|       with: |       with: | ||||||
|         version: v0.3.16 |         version: v0.3.16 | ||||||
|  |  | ||||||
|     - name: Execute Goss tests (wazuh-odfe) |     - name: Execute Goss tests (wazuh-manager) | ||||||
|       run: dgoss run wazuh/wazuh-manager:4.3.4 |       run: dgoss run wazuh/wazuh-manager:${{env.WAZUH_IMAGE_VERSION}} | ||||||
|       env: |       env: | ||||||
|         GOSS_SLEEP: 30 |         GOSS_SLEEP: 30 | ||||||
|         GOSS_FILE: .github/.goss.yaml |         GOSS_FILE: .github/.goss.yaml | ||||||
|  |  | ||||||
|  |     - name: Create single node certficates | ||||||
|  |       run: docker-compose -f single-node/generate-indexer-certs.yml run --rm generator | ||||||
|  |  | ||||||
|  |     - name: Start single node stack | ||||||
|  |       run: docker-compose -f single-node/docker-compose.yml up -d | ||||||
|  |  | ||||||
|  |     - name: Check Wazuh indexer start | ||||||
|  |       run: | | ||||||
|  |        sleep 60 | ||||||
|  |        status_green="`curl -XGET "https://0.0.0.0:9200/_cluster/health" -u admin:SecretPassword -k -s | grep green | wc -l`" | ||||||
|  |        if [[ $status_green -eq 1 ]]; then | ||||||
|  |         curl -XGET "https://0.0.0.0:9200/_cluster/health" -u admin:SecretPassword -k -s | ||||||
|  |        else | ||||||
|  |         curl -XGET "https://0.0.0.0:9200/_cluster/health" -u admin:SecretPassword -k -s | ||||||
|  |         exit 1 | ||||||
|  |        fi | ||||||
|  |        status_index="`curl -XGET "https://0.0.0.0:9200/_cat/indices" -u admin:SecretPassword -k -s | wc -l`" | ||||||
|  |        status_index_green="`curl -XGET "https://0.0.0.0:9200/_cat/indices" -u admin:SecretPassword -k -s | grep -E "green" | wc -l`" | ||||||
|  |        if [[ $status_index_green -eq $status_index ]]; then | ||||||
|  |         curl -XGET "https://0.0.0.0:9200/_cat/indices" -u admin:SecretPassword -k -s | ||||||
|  |        else | ||||||
|  |         curl -XGET "https://0.0.0.0:9200/_cat/indices" -u admin:SecretPassword -k -s | ||||||
|  |         exit 1 | ||||||
|  |        fi | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     - name: Check Wazuh indexer nodes | ||||||
|  |       run: | | ||||||
|  |        nodes="`curl -XGET "https://0.0.0.0:9200/_cat/nodes" -u admin:SecretPassword -k -s | grep -E "indexer" | wc -l`" | ||||||
|  |        if [[ $nodes -eq 1 ]]; then | ||||||
|  |         echo "Wazuh indexer nodes: ${nodes}" | ||||||
|  |        else | ||||||
|  |         echo "Wazuh indexer nodes: ${nodes}" | ||||||
|  |         exit 1 | ||||||
|  |        fi | ||||||
|  |  | ||||||
|  |     - name: Check documents into wazuh-alerts index | ||||||
|  |       run: | | ||||||
|  |        docs="`curl -XGET "https://0.0.0.0:9200/wazuh-alerts*/_doc/_search" -u admin:SecretPassword -k -s | jq -r ".hits.total.value"`" | ||||||
|  |        if [[ $docs -gt 100 ]]; then | ||||||
|  |         echo "wazuh-alerts index documents: ${docs}" | ||||||
|  |        else | ||||||
|  |         echo "wazuh-alerts index documents: ${docs}" | ||||||
|  |         exit 1 | ||||||
|  |        fi | ||||||
|  |  | ||||||
|  |     - name: Check Wazuh templates | ||||||
|  |       run: | | ||||||
|  |        qty_templates="`curl -XGET "https://0.0.0.0:9200/_cat/templates" -u admin:SecretPassword -k -s | grep -E "wazuh ||wazuh-agent||wazuh-statistics" | wc -l`" | ||||||
|  |        templates="`curl -XGET "https://0.0.0.0:9200/_cat/templates" -u admin:SecretPassword -k -s | grep -E "wazuh ||wazuh-agent||wazuh-statistics"`" | ||||||
|  |        if [[ $qty_templates -eq 3 ]]; then | ||||||
|  |         echo "wazuh templates:" | ||||||
|  |         echo "${templates}" | ||||||
|  |        else | ||||||
|  |         echo "wazuh templates:" | ||||||
|  |         echo "${templates}" | ||||||
|  |         exit 1 | ||||||
|  |        fi | ||||||
|  |  | ||||||
|  |     - name: Check Wazuh manager start | ||||||
|  |       run: | | ||||||
|  |         services="`curl -k -s -X GET "https://0.0.0.0:55000/manager/status?pretty=true" -H  "Authorization: Bearer ${{env.TOKEN}}" | jq -r .data.affected_items | grep running | wc -l`" | ||||||
|  |         if [[ $services -gt 9 ]]; then | ||||||
|  |           echo "Wazuh Manager Services: ${services}" | ||||||
|  |           echo "OK" | ||||||
|  |         else | ||||||
|  |           echo "Wazuh indexer nodes: ${nodes}" | ||||||
|  |           curl -k -X GET "https://0.0.0.0:55000/manager/status?pretty=true" -H  "Authorization: Bearer ${{env.TOKEN}}" | jq -r .data.affected_items | ||||||
|  |           exit 1 | ||||||
|  |         fi | ||||||
|  |       env: | ||||||
|  |         TOKEN: $(curl -s -u wazuh-wui:MyS3cr37P450r.*- -k -X GET "https://0.0.0.0:55000/security/user/authenticate?raw=true") | ||||||
|  |  | ||||||
|  |     - name: Check errors in ossec.log | ||||||
|  |       run: ./.github/single-node-log-check.sh | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     - name: Check filebeat output | ||||||
|  |       run: ./.github/single-node-fb-check.sh | ||||||
|  |  | ||||||
|  |     - name: Check Wazuh dashboard service URL | ||||||
|  |       run: | | ||||||
|  |        status=$(curl -XGET --silent  https://0.0.0.0:443/app/status -k -u admin:SecretPassword -I -s | grep -E "^HTTP" | awk  '{print $2}') | ||||||
|  |        if [[ $status -eq 200 ]]; then | ||||||
|  |         echo "Wazuh dashboard status: ${status}" | ||||||
|  |        else | ||||||
|  |         echo "Wazuh dashboard status: ${status}" | ||||||
|  |         exit 1 | ||||||
|  |        fi | ||||||
|  |  | ||||||
|  |     - name: Stop single node stack | ||||||
|  |       run: docker-compose -f single-node/docker-compose.yml down | ||||||
|  |  | ||||||
|  |     - name: Create multi node certficates | ||||||
|  |       run: docker-compose -f multi-node/generate-indexer-certs.yml run --rm generator | ||||||
|  |  | ||||||
|  |     - name: Start multi node stack | ||||||
|  |       run: docker-compose -f multi-node/docker-compose.yml up -d | ||||||
|  |  | ||||||
|  |     - name: Check Wazuh indexer start | ||||||
|  |       run: | | ||||||
|  |        sleep 120 | ||||||
|  |        status_green="`curl -XGET "https://0.0.0.0:9200/_cluster/health" -u admin:SecretPassword -k -s | grep green | wc -l`" | ||||||
|  |        if [[ $status_green -eq 1 ]]; then | ||||||
|  |         curl -XGET "https://0.0.0.0:9200/_cluster/health" -u admin:SecretPassword -k -s | ||||||
|  |        else | ||||||
|  |         curl -XGET "https://0.0.0.0:9200/_cluster/health" -u admin:SecretPassword -k -s | ||||||
|  |         exit 1 | ||||||
|  |        fi | ||||||
|  |        status_index="`curl -XGET "https://0.0.0.0:9200/_cat/indices" -u admin:SecretPassword -k -s | wc -l`" | ||||||
|  |        status_index_green="`curl -XGET "https://0.0.0.0:9200/_cat/indices" -u admin:SecretPassword -k -s | grep -E "green" | wc -l`" | ||||||
|  |        if [[ $status_index_green -eq $status_index ]]; then | ||||||
|  |         curl -XGET "https://0.0.0.0:9200/_cat/indices" -u admin:SecretPassword -k -s | ||||||
|  |        else | ||||||
|  |         curl -XGET "https://0.0.0.0:9200/_cat/indices" -u admin:SecretPassword -k -s | ||||||
|  |         exit 1 | ||||||
|  |        fi | ||||||
|  |  | ||||||
|  |     - name: Check Wazuh indexer nodes | ||||||
|  |       run: | | ||||||
|  |        nodes="`curl -XGET "https://0.0.0.0:9200/_cat/nodes" -u admin:SecretPassword -k -s | grep -E "indexer" | wc -l`" | ||||||
|  |        if [[ $nodes -eq 3 ]]; then | ||||||
|  |         echo "Wazuh indexer nodes: ${nodes}" | ||||||
|  |        else | ||||||
|  |         echo "Wazuh indexer nodes: ${nodes}" | ||||||
|  |         exit 1 | ||||||
|  |        fi | ||||||
|  |  | ||||||
|  |     - name: Check documents into wazuh-alerts index | ||||||
|  |       run: | | ||||||
|  |        docs="`curl -XGET "https://0.0.0.0:9200/wazuh-alerts*/_doc/_search" -u admin:SecretPassword -k -s | jq -r ".hits.total.value"`" | ||||||
|  |        if [[ $docs -gt 200 ]]; then | ||||||
|  |         echo "wazuh-alerts index documents: ${docs}" | ||||||
|  |        else | ||||||
|  |         echo "wazuh-alerts index documents: ${docs}" | ||||||
|  |         exit 1 | ||||||
|  |        fi | ||||||
|  |  | ||||||
|  |     - name: Check Wazuh templates | ||||||
|  |       run: | | ||||||
|  |        qty_templates="`curl -XGET "https://0.0.0.0:9200/_cat/templates" -u admin:SecretPassword -k -s | grep "wazuh" | wc -l`" | ||||||
|  |        templates="`curl -XGET "https://0.0.0.0:9200/_cat/templates" -u admin:SecretPassword -k -s | grep "wazuh"`" | ||||||
|  |        if [[ $qty_templates -gt 0 ]]; then | ||||||
|  |         echo "wazuh templates:" | ||||||
|  |         echo "${templates}" | ||||||
|  |        else | ||||||
|  |         echo "wazuh templates:" | ||||||
|  |         echo "${templates}" | ||||||
|  |         exit 1 | ||||||
|  |        fi | ||||||
|  |  | ||||||
|  |     - name: Check Wazuh manager start | ||||||
|  |       run: | | ||||||
|  |         services="`curl -k -s -X GET "https://0.0.0.0:55000/manager/status?pretty=true" -H  "Authorization: Bearer ${{env.TOKEN}}" | jq -r .data.affected_items | grep running | wc -l`" | ||||||
|  |         if [[ $services -gt 10 ]]; then | ||||||
|  |           echo "Wazuh Manager Services: ${services}" | ||||||
|  |           echo "OK" | ||||||
|  |         else | ||||||
|  |           echo "Wazuh indexer nodes: ${nodes}" | ||||||
|  |           curl -k -s -X GET "https://0.0.0.0:55000/manager/status?pretty=true" -H  "Authorization: Bearer ${{env.TOKEN}}" | jq -r .data.affected_items | ||||||
|  |           exit 1 | ||||||
|  |         fi | ||||||
|  |         nodes=$(curl -k -s -X GET "https://0.0.0.0:55000/cluster/nodes" -H "Authorization: Bearer ${{env.TOKEN}}" | jq -r ".data.affected_items[].name" | wc -l) | ||||||
|  |         if [[ $nodes -eq 2 ]]; then | ||||||
|  |          echo "Wazuh manager nodes: ${nodes}" | ||||||
|  |         else | ||||||
|  |          echo "Wazuh manager nodes: ${nodes}" | ||||||
|  |          exit 1 | ||||||
|  |         fi | ||||||
|  |       env: | ||||||
|  |         TOKEN: $(curl -s -u wazuh-wui:MyS3cr37P450r.*- -k -X GET "https://0.0.0.0:55000/security/user/authenticate?raw=true") | ||||||
|  |  | ||||||
|  |     - name: Check errors in ossec.log | ||||||
|  |       run: ./.github/multi-node-log-check.sh | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     - name: Check filebeat output | ||||||
|  |       run: ./.github/multi-node-fb-check.sh | ||||||
|  |  | ||||||
|  |     - name: Check Wazuh dashboard service URL | ||||||
|  |       run: | | ||||||
|  |        status=$(curl -XGET --silent  https://0.0.0.0:443/app/status -k -u admin:SecretPassword -I | grep -E "^HTTP" | awk  '{print $2}') | ||||||
|  |        if [[ $status -eq 200 ]]; then | ||||||
|  |         echo "Wazuh dashboard status: ${status}" | ||||||
|  |        else | ||||||
|  |         echo "Wazuh dashboard status: ${status}" | ||||||
|  |         exit 1 | ||||||
|  |        fi | ||||||
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| single-node/config/wazuh_indexer_ssl_certs/*.pem | single-node/config/wazuh_indexer_ssl_certs/*.pem | ||||||
| single-node/config/wazuh_indexer_ssl_certs/*.key | single-node/config/wazuh_indexer_ssl_certs/*.key | ||||||
| multi-node/config/wazuh_indexer_ssl_certs/*.pem | multi-node/config/wazuh_indexer_ssl_certs/*.pem | ||||||
| multi-node/config/wazuh_indexer_ssl_certs/*.key | multi-node/config/wazuh_indexer_ssl_certs/*.key | ||||||
							
								
								
									
										15
									
								
								build-docker-images/build-images.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								build-docker-images/build-images.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | WAZUH_IMAGE_VERSION=4.3.4 | ||||||
|  | WAZUH_VERSION=$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g') | ||||||
|  | WAZUH_ACTUAL_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') | ||||||
|  |  | ||||||
|  | ## If wazuh manager exists in apt dev repository, change variables, if not, exit 1 | ||||||
|  | if [ "$WAZUH_VERSION" -le "$WAZUH_ACTUAL_VERSION" ]; then | ||||||
|  |   IMAGE_VERSION=${WAZUH_IMAGE_VERSION} | ||||||
|  | else | ||||||
|  |   IMAGE_VERSION=${WAZUH_IMAGE_VERSION}-dev | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > .env | ||||||
|  | echo WAZUH_IMAGE_VERSION=$IMAGE_VERSION >> .env | ||||||
|  |  | ||||||
|  | docker-compose -f build-docker-images/build-images.yml --env-file .env build --no-cache | ||||||
| @@ -3,8 +3,11 @@ version: '3.7' | |||||||
| 
 | 
 | ||||||
| services: | services: | ||||||
|   wazuh.manager: |   wazuh.manager: | ||||||
|     build:  wazuh-manager/ |     build: | ||||||
|     image: wazuh/wazuh-manager:4.3.4 |       context: wazuh-manager/ | ||||||
|  |       args: | ||||||
|  |         - WAZUH_VERSION=${WAZUH_VERSION} | ||||||
|  |     image: wazuh/wazuh-manager:${WAZUH_IMAGE_VERSION} | ||||||
|     hostname: wazuh.manager |     hostname: wazuh.manager | ||||||
|     restart: always |     restart: always | ||||||
|     ports: |     ports: | ||||||
| @@ -31,8 +34,11 @@ services: | |||||||
|       - filebeat_var:/var/lib/filebeat |       - filebeat_var:/var/lib/filebeat | ||||||
| 
 | 
 | ||||||
|   wazuh.indexer: |   wazuh.indexer: | ||||||
|     build: wazuh-indexer/ |     build: | ||||||
|     image: wazuh/wazuh-indexer:4.3.4 |       context: wazuh-indexer/ | ||||||
|  |       args: | ||||||
|  |         - WAZUH_VERSION=${WAZUH_VERSION} | ||||||
|  |     image: wazuh/wazuh-indexer:${WAZUH_IMAGE_VERSION} | ||||||
|     hostname: wazuh.indexer |     hostname: wazuh.indexer | ||||||
|     restart: always |     restart: always | ||||||
|     ports: |     ports: | ||||||
| @@ -48,8 +54,11 @@ services: | |||||||
|         hard: 65536 |         hard: 65536 | ||||||
| 
 | 
 | ||||||
|   wazuh.dashboard: |   wazuh.dashboard: | ||||||
|     build: wazuh-dashboard/ |     build: | ||||||
|     image: wazuh/wazuh-dashboard:4.3.4 |       context: wazuh-dashboard/ | ||||||
|  |       args: | ||||||
|  |         - WAZUH_VERSION=${WAZUH_VERSION} | ||||||
|  |     image: wazuh/wazuh-dashboard:${WAZUH_IMAGE_VERSION} | ||||||
|     hostname: wazuh.dashboard |     hostname: wazuh.dashboard | ||||||
|     restart: always |     restart: always | ||||||
|     ports: |     ports: | ||||||
| @@ -1,8 +1,7 @@ | |||||||
| # Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2) | # Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2) | ||||||
| FROM ubuntu:focal AS builder | FROM ubuntu:focal AS builder | ||||||
|  |  | ||||||
| ARG WAZUH_VERSION=4.3.4 | ARG WAZUH_VERSION | ||||||
| ARG WAZUH_UI_REVISION=1 |  | ||||||
| ARG INSTALL_DIR=/usr/share/wazuh-dashboard | ARG INSTALL_DIR=/usr/share/wazuh-dashboard | ||||||
|  |  | ||||||
| # Update and install dependencies | # Update and install dependencies | ||||||
| @@ -20,8 +19,14 @@ COPY config/config.sh . | |||||||
| COPY config/config.yml / | COPY config/config.yml / | ||||||
| RUN bash config.sh | RUN bash config.sh | ||||||
|  |  | ||||||
| # Install Wazuh App | # Create and configure Wazuh dashboard keystore | ||||||
| RUN $INSTALL_DIR/bin/opensearch-dashboards-plugin install https://packages.wazuh.com/4.x/ui/dashboard/wazuh-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip --allow-root | RUN $INSTALL_DIR/bin/opensearch-dashboards-keystore create --allow-root && \ | ||||||
|  |     echo kibanaserver | $INSTALL_DIR/bin/opensearch-dashboards-keystore add opensearch.username --stdin --allow-root && \ | ||||||
|  |     echo kibanaserver | $INSTALL_DIR/bin/opensearch-dashboards-keystore add opensearch.password --stdin --allow-root | ||||||
|  |  | ||||||
|  | COPY config/install_wazuh_app.sh / | ||||||
|  | RUN chmod 775 /install_wazuh_app.sh | ||||||
|  | RUN bash /install_wazuh_app.sh | ||||||
|  |  | ||||||
| # Copy and set permissions to config files | # Copy and set permissions to config files | ||||||
| COPY config/opensearch_dashboards.yml $INSTALL_DIR/config/ | COPY config/opensearch_dashboards.yml $INSTALL_DIR/config/ | ||||||
|   | |||||||
| @@ -0,0 +1,12 @@ | |||||||
|  | ## Variables | ||||||
|  | WAZUH_IMAGE_VERSION=$(echo $WAZUH_VERSION | sed -e 's/\.//g') | ||||||
|  | WAZUH_ACTUAL_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') | ||||||
|  | ## If wazuh manager exists in apt dev repository, change variables, if not exit 1 | ||||||
|  | if [ "$WAZUH_IMAGE_VERSION" -le "$WAZUH_ACTUAL_VERSION" ]; then | ||||||
|  |   WAZUH_APP=https://packages.wazuh.com/4.x/ui/dashboard/wazuh-${WAZUH_VERSION}-1.zip | ||||||
|  | else | ||||||
|  |   WAZUH_APP=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuh-${WAZUH_VERSION}-1.zip | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | # Install Wazuh App | ||||||
|  | $INSTALL_DIR/bin/opensearch-dashboards-plugin install $WAZUH_APP --allow-root | ||||||
| @@ -1,6 +1,8 @@ | |||||||
| # Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2) | # Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2) | ||||||
| FROM ubuntu:focal AS builder | FROM ubuntu:focal AS builder | ||||||
|  |  | ||||||
|  | ARG WAZUH_VERSION | ||||||
|  |  | ||||||
| RUN apt-get update -y && apt-get install curl openssl xz-utils -y | RUN apt-get update -y && apt-get install curl openssl xz-utils -y | ||||||
|  |  | ||||||
| COPY config/opensearch.yml / | COPY config/opensearch.yml / | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ export TARGET_DIR=${CURDIR}/debian/${NAME} | |||||||
| # Package build options | # Package build options | ||||||
| export USER=${NAME} | export USER=${NAME} | ||||||
| export GROUP=${NAME} | export GROUP=${NAME} | ||||||
| export VERSION=4.3.4 | export VERSION=${WAZUH_VERSION} | ||||||
| export LOG_DIR=/var/log/${NAME} | export LOG_DIR=/var/log/${NAME} | ||||||
| export LIB_DIR=/var/lib/${NAME} | export LIB_DIR=/var/lib/${NAME} | ||||||
| export PID_DIR=/run/${NAME} | export PID_DIR=/run/${NAME} | ||||||
|   | |||||||
| @@ -1,7 +1,9 @@ | |||||||
| # Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2) | # Wazuh Docker Copyright (C) 2017, Wazuh Inc. (License GPLv2) | ||||||
| FROM ubuntu:focal | FROM ubuntu:focal | ||||||
|  |  | ||||||
| ARG WAZUH_VERSION=4.3.4 | RUN rm /bin/sh && ln -s /bin/bash /bin/sh | ||||||
|  |  | ||||||
|  | ARG WAZUH_VERSION | ||||||
| ARG TEMPLATE_VERSION=4.3 | ARG TEMPLATE_VERSION=4.3 | ||||||
| ARG FILEBEAT_CHANNEL=filebeat-oss | ARG FILEBEAT_CHANNEL=filebeat-oss | ||||||
| ARG FILEBEAT_VERSION=7.10.2 | ARG FILEBEAT_VERSION=7.10.2 | ||||||
| @@ -9,9 +11,12 @@ ARG WAZUH_FILEBEAT_MODULE="wazuh-filebeat-0.2.tar.gz" | |||||||
|  |  | ||||||
| RUN apt-get update && apt install curl apt-transport-https lsb-release gnupg -y | RUN apt-get update && apt install curl apt-transport-https lsb-release gnupg -y | ||||||
|  |  | ||||||
| RUN apt-key adv --fetch-keys https://packages.wazuh.com/key/GPG-KEY-WAZUH && \ | COPY config/check_repository.sh / | ||||||
|     echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list && \ |  | ||||||
|     apt-get update && \ | RUN chmod 775 /check_repository.sh | ||||||
|  | RUN source /check_repository.sh | ||||||
|  |  | ||||||
|  | RUN apt-get update && \ | ||||||
|     apt-get install wazuh-manager=${WAZUH_VERSION}-1 |     apt-get install wazuh-manager=${WAZUH_VERSION}-1 | ||||||
|  |  | ||||||
| RUN curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/${FILEBEAT_CHANNEL}-${FILEBEAT_VERSION}-amd64.deb &&\ | RUN curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/${FILEBEAT_CHANNEL}-${FILEBEAT_VERSION}-amd64.deb &&\ | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								build-docker-images/wazuh-manager/config/check_repository.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								build-docker-images/wazuh-manager/config/check_repository.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | ## Variables | ||||||
|  | WAZUH_IMAGE_VERSION=$(echo $WAZUH_VERSION | sed -e 's/\.//g') | ||||||
|  | WAZUH_ACTUAL_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') | ||||||
|  | ## If wazuh manager exists in apt dev repository, change variables, if not exit 1 | ||||||
|  | if [ "$WAZUH_IMAGE_VERSION" -le "$WAZUH_ACTUAL_VERSION" ]; then | ||||||
|  |   APT_KEY=https://packages.wazuh.com/key/GPG-KEY-WAZUH | ||||||
|  |   REPOSITORY="deb https://packages.wazuh.com/4.x/apt/ stable main" | ||||||
|  | else | ||||||
|  |   APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH | ||||||
|  |   REPOSITORY="deb https://packages-dev.wazuh.com/pre-release/apt/ unstable main" | ||||||
|  | fi | ||||||
|  | apt-key adv --fetch-keys ${APT_KEY} | ||||||
|  | echo ${REPOSITORY} | tee -a /etc/apt/sources.list.d/wazuh.list | ||||||
| @@ -349,24 +349,9 @@ | |||||||
|     <location>/var/ossec/logs/active-responses.log</location> |     <location>/var/ossec/logs/active-responses.log</location> | ||||||
|   </localfile> |   </localfile> | ||||||
|  |  | ||||||
|   <localfile> |  | ||||||
|     <log_format>syslog</log_format> |  | ||||||
|     <location>/var/log/auth.log</location> |  | ||||||
|   </localfile> |  | ||||||
|  |  | ||||||
|   <localfile> |  | ||||||
|     <log_format>syslog</log_format> |  | ||||||
|     <location>/var/log/syslog</location> |  | ||||||
|   </localfile> |  | ||||||
|  |  | ||||||
|   <localfile> |   <localfile> | ||||||
|     <log_format>syslog</log_format> |     <log_format>syslog</log_format> | ||||||
|     <location>/var/log/dpkg.log</location> |     <location>/var/log/dpkg.log</location> | ||||||
|   </localfile> |   </localfile> | ||||||
|  |  | ||||||
|   <localfile> |  | ||||||
|     <log_format>syslog</log_format> |  | ||||||
|     <location>/var/log/kern.log</location> |  | ||||||
|   </localfile> |  | ||||||
|  |  | ||||||
| </ossec_config> | </ossec_config> | ||||||
| @@ -349,24 +349,9 @@ | |||||||
|     <location>/var/ossec/logs/active-responses.log</location> |     <location>/var/ossec/logs/active-responses.log</location> | ||||||
|   </localfile> |   </localfile> | ||||||
|  |  | ||||||
|   <localfile> |  | ||||||
|     <log_format>syslog</log_format> |  | ||||||
|     <location>/var/log/auth.log</location> |  | ||||||
|   </localfile> |  | ||||||
|  |  | ||||||
|   <localfile> |  | ||||||
|     <log_format>syslog</log_format> |  | ||||||
|     <location>/var/log/syslog</location> |  | ||||||
|   </localfile> |  | ||||||
|  |  | ||||||
|   <localfile> |   <localfile> | ||||||
|     <log_format>syslog</log_format> |     <log_format>syslog</log_format> | ||||||
|     <location>/var/log/dpkg.log</location> |     <location>/var/log/dpkg.log</location> | ||||||
|   </localfile> |   </localfile> | ||||||
|  |  | ||||||
|   <localfile> |  | ||||||
|     <log_format>syslog</log_format> |  | ||||||
|     <location>/var/log/kern.log</location> |  | ||||||
|   </localfile> |  | ||||||
|  |  | ||||||
| </ossec_config> | </ossec_config> | ||||||
							
								
								
									
										6
									
								
								single-node/prueba.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								single-node/prueba.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | nodes="`curl -XGET "https://0.0.0.0:9200/_cat/nodes" -u admin:SecretPassword -k  | grep -E "indexer" | wc -l`" | ||||||
|  | if [[ $nodes -eq 1 ]]; then | ||||||
|  |  echo "bien" | ||||||
|  | else | ||||||
|  |  echo "mal" | ||||||
|  | fi | ||||||
		Reference in New Issue
	
	Block a user