From 9250d7caa2c95c64538e5d7f368e3f772d46e065 Mon Sep 17 00:00:00 2001 From: erenJag Date: Tue, 23 Feb 2021 12:55:36 +0100 Subject: [PATCH] fix group permission on database in crowdsec docker image --- docker/docker_start.sh | 9 +++ examples/docker-compose/README.md | 37 ++++++++++++ examples/docker-compose/app/index.html | 1 + examples/docker-compose/crowdsec/acquis.yaml | 4 ++ .../crowdsec/dashboard/Dockerfile | 3 + examples/docker-compose/docker-compose.yml | 53 ++++++++++++++++++ .../docker-compose/reverse-proxy/nginx.conf | 24 ++++++++ examples/docker-compose/schema.png | Bin 0 -> 46937 bytes 8 files changed, 131 insertions(+) create mode 100644 examples/docker-compose/README.md create mode 100644 examples/docker-compose/app/index.html create mode 100644 examples/docker-compose/crowdsec/acquis.yaml create mode 100644 examples/docker-compose/crowdsec/dashboard/Dockerfile create mode 100644 examples/docker-compose/docker-compose.yml create mode 100644 examples/docker-compose/reverse-proxy/nginx.conf create mode 100644 examples/docker-compose/schema.png diff --git a/docker/docker_start.sh b/docker/docker_start.sh index b9fe225d1..a601fef6c 100644 --- a/docker/docker_start.sh +++ b/docker/docker_start.sh @@ -16,6 +16,15 @@ if [ "$DISABLE_ONLINE_API" == "" ] && [ "$CONFIG_FILE" == "" ] ; then fi fi +# crowdsec sqlite database permissions +if [ "$GID" != "" ]; then + IS_SQLITE=$(yq eval '.db_config.type == "sqlite"' /etc/crowdsec/config.yaml) + DB_PATH=$(yq eval '.db_config.db_path' /etc/crowdsec/config.yaml) + if [ "$IS_SQLITE" == "true" ]; then + chown :$GID $DB_PATH + fi +fi + ## Install collections, parsers & scenarios cscli hub update cscli collections upgrade crowdsecurity/linux diff --git a/examples/docker-compose/README.md b/examples/docker-compose/README.md new file mode 100644 index 000000000..650c4a4a6 --- /dev/null +++ b/examples/docker-compose/README.md @@ -0,0 +1,37 @@ +# Docker Compose + +This example explains how to integrate Crowdsec in environment deployed with docker-compose. It set up multiple containers : + +![Schema](schema.png) + +This example contains multiple containers : +* app : apache server serving index.html containing an `hello world` +* reverse-proxy : nginx that serving this app from the host +* crowdsec : it will read reverse-proxy logs from the shared volume +* dashboard : we use [metabase](https://hub.docker.com/r/metabase/metabase) to display crowdsec database data. + +We have chosen the simplest way to collect logs (by sharing volumes between containers), if you are in production, you are probably using logging-driver to centralize logs with rsyslog or another driver, so don't forget to adapt the crowdsec docker-compose configuration to read the logs properly. + +**Prerequisites:** [Docker](https://docs.docker.com/engine/install/) / [Docker Compose](https://docs.docker.com/compose/install/) + +## Step 1: Run all services in docker-compose.yml + +[docker compose file](docker-compose.yml) contains the yaml configuration to deploy all the containers together by on command. + +Deploy the stack using : `docker-compose up -d` + +Then to see the status : `docker-compose ps` + +## Step 2: Install & Configure bouncer on host + + +## Step 3: Configure dashboard + +The dashboard is deployed using static metabase.db ([explained here](https://docs.crowdsec.net/faq/#how-to-have-a-dashboard-without-docker)), so you have to use the defaults credentials to connect to the database, then update immediatly those credentials. + +Then you need to update the crowdsec database path : +* Go to `http://localhost:3003/` and connect with defaults credentials +* Go to `http://localhost:3003/admin/databases/2` and modify the file path `/var/lib/crowdsec/data/crowdsec.db` +* Save changes and go back to the home, you'll see the active decisions pulled from the online API. + +## Step 4: Simulate an attack and check detection + prevention diff --git a/examples/docker-compose/app/index.html b/examples/docker-compose/app/index.html new file mode 100644 index 000000000..93b493a51 --- /dev/null +++ b/examples/docker-compose/app/index.html @@ -0,0 +1 @@ +Hello world ! \ No newline at end of file diff --git a/examples/docker-compose/crowdsec/acquis.yaml b/examples/docker-compose/crowdsec/acquis.yaml new file mode 100644 index 000000000..6273c7726 --- /dev/null +++ b/examples/docker-compose/crowdsec/acquis.yaml @@ -0,0 +1,4 @@ +filenames: + - /var/log/nginx/example.*.log +labels: + type: nginx \ No newline at end of file diff --git a/examples/docker-compose/crowdsec/dashboard/Dockerfile b/examples/docker-compose/crowdsec/dashboard/Dockerfile new file mode 100644 index 000000000..002484a3c --- /dev/null +++ b/examples/docker-compose/crowdsec/dashboard/Dockerfile @@ -0,0 +1,3 @@ +FROM metabase/metabase + +RUN mkdir /data/ && wget https://crowdsec-statics-assets.s3-eu-west-1.amazonaws.com/metabase_sqlite.zip && unzip metabase_sqlite.zip -d /data/ \ No newline at end of file diff --git a/examples/docker-compose/docker-compose.yml b/examples/docker-compose/docker-compose.yml new file mode 100644 index 000000000..7109569d6 --- /dev/null +++ b/examples/docker-compose/docker-compose.yml @@ -0,0 +1,53 @@ +version: '3' + +services: + app: + image: httpd:alpine + restart: always + volumes: + - ./app/:/usr/local/apache2/htdocs/ + + reverse-proxy: + image: nginx:alpine + restart: always + ports: + - 8000:80 + depends_on: + - 'app' + volumes: + - ./reverse-proxy/nginx.conf:/etc/nginx/nginx.conf + - logs:/var/log/nginx + + crowdsec: + image: crowdsecurity/crowdsec:v1.0.7 + #build: ../.. + environment: + COLLECTIONS: "crowdsecurity/nginx" + GID: "${GID-1000}" + depends_on: + - 'reverse-proxy' + volumes: + - /home/hess/cs/crowdsec/docker/docker_start.sh:/docker_start.sh + - ./crowdsec/acquis.yaml:/etc/crowdsec/acquis.yaml + - logs:/var/log/nginx + - crowdsec-db:/var/lib/crowdsec/data/ + - crowdsec-config:/etc/crowdsec/ + + dashboard: + build: ./crowdsec/dashboard + ports: + - 3003:3000 + environment: + MB_DB_FILE: /data/metabase.db + MGID: "${GID-1000}" + depends_on: + - 'crowdsec' + volumes: + - crowdsec-db:/metabase-data/ + links: + - crowdsec + +volumes: + logs: + crowdsec-db: + crowdsec-config: \ No newline at end of file diff --git a/examples/docker-compose/reverse-proxy/nginx.conf b/examples/docker-compose/reverse-proxy/nginx.conf new file mode 100644 index 000000000..c2a381224 --- /dev/null +++ b/examples/docker-compose/reverse-proxy/nginx.conf @@ -0,0 +1,24 @@ +worker_processes 1; + +events { worker_connections 1024; } + +http { + + sendfile on; + + upstream docker-app { + server app:80; + } + + access_log /var/log/nginx/example.access.log; + error_log /var/log/nginx/example.error.log; + + server { + listen 80; + + location / { + proxy_pass http://docker-app; + proxy_redirect off; + } + } +} \ No newline at end of file diff --git a/examples/docker-compose/schema.png b/examples/docker-compose/schema.png new file mode 100644 index 0000000000000000000000000000000000000000..584b7a17e2b1f00463c01505ebe4556be3cc2273 GIT binary patch literal 46937 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 literal 0 HcmV?d00001