Setup erkennt Docker oder Podman und deployt entsprechend

- setup.sh erkennt Engine (Docker, Podman, podman-docker-Wrapper) und
  Compose-Werkzeug (docker compose, docker-compose, podman-compose, podman compose)
- Rootless Podman wird mit Hinweis abgelehnt (Ulimits, Port 443, Zertifikatsrechte)
- Als root: vm.max_map_count, firewalld-Port und podman-restart.service setzen
- Neue Befehle: up, down, ps, logs, info; WAZUH_SKIP_SYSCTL und CONTAINER_ENGINE
- Images voll qualifiziert (docker.io/..., localhost/...) wegen Podman-Short-Name-Policy
- Bind-Mounts mit :z fuer SELinux (RHEL)
- README: Abschnitt Red Hat / Podman, Befehle ueber setup.sh

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
duffyduck
2026-10-07 12:21:32 +02:00
co-authored by Claude Opus 5.5
parent 8ddceda9e2
commit 61232af61c
6 changed files with 223 additions and 61 deletions
+28 -24
View File
@@ -2,7 +2,11 @@
# + sshpull-collector: holt Logs per SSH von Hosts, auf die nur per SSH zugegriffen werden kann
# + Manager-Erweiterung: Agentless-Integritaets- und Befehls-Checks per SSH
#
# Vor dem ersten Start: ./setup.sh
# Vor dem ersten Start: ./setup.sh (erkennt Docker/Podman selbst, danach ./setup.sh up)
#
# Kompatibel mit docker compose, docker-compose, podman-compose und "podman compose":
# - Images voll qualifiziert (docker.io/..., localhost/...) wegen Podman-Short-Name-Policy
# - Bind-Mounts mit ":z" fuer SELinux (RHEL/Fedora); ohne SELinux wirkungslos
services:
wazuh.manager:
@@ -11,7 +15,7 @@ services:
dockerfile: manager/Dockerfile
args:
WAZUH_VERSION: ${WAZUH_VERSION}
image: sshpull/wazuh-manager:${WAZUH_VERSION}
image: localhost/sshpull/wazuh-manager:${WAZUH_VERSION}
hostname: wazuh.manager
restart: always
ulimits:
@@ -49,17 +53,17 @@ services:
- wazuh_wodles:/var/ossec/wodles
- filebeat_etc:/etc/filebeat
- filebeat_var:/var/lib/filebeat
- ./config/wazuh_indexer_ssl_certs/root-ca-manager.pem:/etc/ssl/root-ca.pem:ro
- ./config/wazuh_indexer_ssl_certs/wazuh.manager.pem:/etc/ssl/filebeat.pem:ro
- ./config/wazuh_indexer_ssl_certs/wazuh.manager-key.pem:/etc/ssl/filebeat.key:ro
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf:ro
- ./config/wazuh_indexer_ssl_certs/root-ca-manager.pem:/etc/ssl/root-ca.pem:ro,z
- ./config/wazuh_indexer_ssl_certs/wazuh.manager.pem:/etc/ssl/filebeat.pem:ro,z
- ./config/wazuh_indexer_ssl_certs/wazuh.manager-key.pem:/etc/ssl/filebeat.key:ro,z
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf:ro,z
# sshpull
- ./hosts.yml:/sshpull/hosts.yml:ro
- ./ssh:/sshpull/ssh:ro
- ./hosts.yml:/sshpull/hosts.yml:ro,z
- ./ssh:/sshpull/ssh:ro,z
- remote_logs:/remote-logs:ro
wazuh.indexer:
image: wazuh/wazuh-indexer:${WAZUH_VERSION}
image: docker.io/wazuh/wazuh-indexer:${WAZUH_VERSION}
hostname: wazuh.indexer
restart: always
environment:
@@ -73,16 +77,16 @@ services:
hard: 65536
volumes:
- wazuh-indexer-data:/var/lib/wazuh-indexer
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-indexer/config/certs/root-ca.pem:ro
- ./config/wazuh_indexer_ssl_certs/wazuh.indexer-key.pem:/usr/share/wazuh-indexer/config/certs/wazuh.indexer.key:ro
- ./config/wazuh_indexer_ssl_certs/wazuh.indexer.pem:/usr/share/wazuh-indexer/config/certs/wazuh.indexer.pem:ro
- ./config/wazuh_indexer_ssl_certs/admin.pem:/usr/share/wazuh-indexer/config/certs/admin.pem:ro
- ./config/wazuh_indexer_ssl_certs/admin-key.pem:/usr/share/wazuh-indexer/config/certs/admin-key.pem:ro
- ./config/wazuh_indexer/wazuh.indexer.yml:/usr/share/wazuh-indexer/config/opensearch.yml:ro
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml:ro
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-indexer/config/certs/root-ca.pem:ro,z
- ./config/wazuh_indexer_ssl_certs/wazuh.indexer-key.pem:/usr/share/wazuh-indexer/config/certs/wazuh.indexer.key:ro,z
- ./config/wazuh_indexer_ssl_certs/wazuh.indexer.pem:/usr/share/wazuh-indexer/config/certs/wazuh.indexer.pem:ro,z
- ./config/wazuh_indexer_ssl_certs/admin.pem:/usr/share/wazuh-indexer/config/certs/admin.pem:ro,z
- ./config/wazuh_indexer_ssl_certs/admin-key.pem:/usr/share/wazuh-indexer/config/certs/admin-key.pem:ro,z
- ./config/wazuh_indexer/wazuh.indexer.yml:/usr/share/wazuh-indexer/config/opensearch.yml:ro,z
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml:ro,z
wazuh.dashboard:
image: wazuh/wazuh-dashboard:${WAZUH_VERSION}
image: docker.io/wazuh/wazuh-dashboard:${WAZUH_VERSION}
hostname: wazuh.dashboard
restart: always
ports:
@@ -96,10 +100,10 @@ services:
- API_USERNAME=wazuh-wui
- API_PASSWORD=${API_PASSWORD}
volumes:
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard.pem:ro
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard-key.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard-key.pem:ro
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-dashboard/certs/root-ca.pem:ro
- ./config/wazuh_dashboard/opensearch_dashboards.yml:/usr/share/wazuh-dashboard/config/opensearch_dashboards.yml:ro
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard.pem:ro,z
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard-key.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard-key.pem:ro,z
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-dashboard/certs/root-ca.pem:ro,z
- ./config/wazuh_dashboard/opensearch_dashboards.yml:/usr/share/wazuh-dashboard/config/opensearch_dashboards.yml:ro,z
- wazuh-dashboard-config:/usr/share/wazuh-dashboard/data/wazuh/config
- wazuh-dashboard-custom:/usr/share/wazuh-dashboard/plugins/wazuh/public/assets/custom
depends_on:
@@ -110,7 +114,7 @@ services:
build:
context: .
dockerfile: collector/Dockerfile
image: sshpull/collector:latest
image: localhost/sshpull/collector:latest
hostname: sshpull.collector
restart: always
environment:
@@ -118,8 +122,8 @@ services:
- MANAGER_HOST=wazuh.manager
- MAX_LOG_MB=${COLLECTOR_MAX_LOG_MB}
volumes:
- ./hosts.yml:/sshpull/hosts.yml:ro
- ./ssh:/ssh # rw, damit "keyscan" known_hosts schreiben kann
- ./hosts.yml:/sshpull/hosts.yml:ro,z
- ./ssh:/ssh:z # rw, damit "keyscan" known_hosts schreiben kann
- remote_logs:/remote-logs
- collector_state:/state
depends_on: