[Tuto] Installation et Configuration de CrowdSec avec le reverse proxy SWAG

  • Auteur du sujet Auteur du sujet EVO
  • Date de début Date de début
Hello, le voici:
@axionman
Tu utilises des MODs dans ton compose ?
Il semblerait que ce soit un MOD qui ne veuille pas s'installer...

Montre voir ton docker-compose :)
Hello, le voici:


Code:
services:

  swag:

    image: lscr.io/linuxserver/swag:latest

    container_name: swag

    network_mode: swag

    cap_add:

      - NET_ADMIN

    environment:

      - PUID=1000

      - PGID=100

      - TZ=Europe/Paris

      - URL=xxxxxxxx.duckdns.org

      - VALIDATION=duckdns

      - SUBDOMAINS=wildcard

      - DUCKDNSTOKEN=xxxxxxxxxxxxx

      - DOCKER_MODS=linuxserver/mods:swag-dashboard|linuxserver/mods:swag-crowdsec

      - CROWDSEC_LAPI_URL=http://crowdsec:8080



    volumes:

      - /srv/dev-disk-by-uuid-b431f2bc-7c9a-4e47-ab28-a33ec3998809/docker/swag/config:/config

    ports:

      - 743:443

      - 780:80

      - 81:81

    restart: unless-stopped

 

  crowdsec:

    container_name: crowdsec

    network_mode: swag

    image: crowdsecurity/crowdsec

    restart: unless-stopped

    environment:

      - COLLECTIONS=crowdsecurity/nginx crowdsecurity/http-cve

      - GID=1000

    depends_on:

      - swag

    volumes:

      - /srv/dev-disk-by-uuid-b431f2bc-7c9a-4e47-ab28-a33ec3998809/docker/swag/config/log/nginx:/var/log/nginx:ro

      - /srv/dev-disk-by-uuid-b431f2bc-7c9a-4e47-ab28-a33ec3998809/docker/jellyfin/config/log:/var/log/jellyfin:ro

      - /srv/dev-disk-by-uuid-b431f2bc-7c9a-4e47-ab28-a33ec3998809/docker/nextcloud/data/nextcloud.log:/var/log/nextcloud.log:ro

      - /srv/dev-disk-by-uuid-b431f2bc-7c9a-4e47-ab28-a33ec3998809/docker/swag/crowdsec/acquis.yaml:/etc/crowdsec/acquis.yaml

      - /srv/dev-disk-by-uuid-b431f2bc-7c9a-4e47-ab28-a33ec3998809/docker/swag/crowdsec/database:/var/lib/crowdsec/data/

      - /srv/dev-disk-by-uuid-b431f2bc-7c9a-4e47-ab28-a33ec3998809/docker/swag/crowdsec/config:/etc/crowdsec/

    security_opt:

      - no-new-privileges=true

 

  uptime-kuma:

    image: louislam/uptime-kuma:1

    container_name: uptime-kuma

    volumes:

      - /srv/dev-disk-by-uuid-b431f2bc-7c9a-4e47-ab28-a33ec3998809/docker/uptime-kuma-data:/app/data

    dns:

      - 1.0.0.1

      - 1.1.1.1

    ports:

      - 3001:3001 # <Host Port>:<Container Port>

    restart: unless-stopped
 
Dernière édition:
Suite à la dernière mise à jour de SWAG, le problème a disparu et tout fonctionne comme avant.
Merci à tous pour votre aide !

@Eirikr70 le mod maxmind fonctionne chez moi sans souci depuis la dernière MAJ (3.0.0-ls335)
 
Dernière édition:
  • J'aime
Réactions: MilesTEG et EVO
Bonjour,
j'au un doute sur l'emplacement du dossier décrit au tout début du tutorial.
Le dossier crowdsec est dans le dossier swag ou au même niveau ?

Pour moi chaque container doit avoir son propre dossier de configuration.
Le résultat serait le suivant :
/volume1/docker/swag
/volume1/docker/crowdsec


Pourtant à vous lire, dès les premières lignes on se dit qu'on va finir par avoir ce qui suit :
/volume1/docker/swag
/volume1/docker/swag/crowdsec


Merci d'avance pour votre aide.
 
Salut,

Dans mon cas j'ai bien cette config :
/volume1/docker/swag
/volume1/docker/swag/crowdsec

C'est mon organisation a ce sujet, mais vous tres bien faire différemment.

Pour l'histoire, j'ai cette organisation car SWAG et Crowdsec font partie du même fichier docker-compose.yml qui est dans /swag , ce qui est le but également de la mise en place ici. On ne re-créer pas un fichier docker-compose mais on édit celui de notre SWAG pour rajouter Crowdsec avec.
 
Oui voila, c'est juste une histoire d'organisation personnel :) Perso je ne lance pas crowdsec sans swag, les deux sont lié dans le meme conteneur sur le meme bridge
Oui, l'important c'est de bien faire le lien entre Swag et Crowdsec, en créant un agent Crowdsec dans Swag et en vérifiant qu'il est bien actif via cscli bouncers list dans le conteneur Crowdsec. Pour ma part, j'ai aussi mis un agent sur l'hôte, en lien avec le pare-feu.
 
  • J'aime
Réactions: EVO
Finalement après avoir suivi le tuto, j'ai compris que l'un tirait en dépendance l'aute et ainsi de suite.
Donc ta logique d'embarquer crowsec dans swag n'est pas fausse non plus. J'ai préféré collé à ta logique.

Maintenant ou j'en suis ?
ça a l'air de fonctionner, les logs ne me renvoient pas d'erreur, mais mais ...
le dashboard ne fonctionne pas.
Comment je peux savor s'il tourne vraiment ? Je ne sais pas où j'ai pû merder.

Eirikr70, pour ma part c'est ok ;)

docker exec -it cc46e643bbbd cscli bouncers list

Name IP Address Valid Last API pull Type Version Auth Type
bouncer-swag 172.18.0.2 ✔️ 2024-11-28T21:15:41Z crowdsec-nginx-bouncer v1.0.8 api-key
La seule erreur que je vois est la suivante :
swag | nginx: [error] [lua] crowdsec.lua:62: init(): error loading captcha plugin: no recaptcha site key provided, can't use recaptcha

Et le seul point que je ne comprends pas est le suiant :
CROWDSEC_LAPI_URL=http://crowdsec:8080
 
Dernière édition:
La seule erreur que je vois est la suivante :
swag | nginx: [error] [lua] crowdsec.lua:62: init(): error loading captcha plugin: no recaptcha site key provided, can't use recaptcha
C'est pas vraimenet une erreur, meme si elle est placé comme telle, c'est plutot un warning, puisque recaptcha n'est pas configuré, alors le module captcha n'est pas chargé. Pas de probleme en soi. J'ai la meme chose puisque je n'utilise pas cela.
Faudra que je m'y penche un jour.

On lui dit que l'adresse de crowdsec est le service "crowdsec", on aurai pu aussi indiquez l'ip interne du conteneur, mais le fait de mettre le nom du service permet d'etre plus générique. C'est pour tous pareil :)
1732830873594.png
 
Je ferai pareil.
Mais quand le tuto dit que ça doit marcher, alors je test test test ....REFAIS ... jusqu'à tant que ça marche. Si tu corriges ça sauvera du temps certainement pour des nouveaux comme moi.
En tout cas, bravo, je suis content, j'ai échangé mon reverse proxy par défaut de syno par swag, fail2ban et crowdsec.
Je me tate pour aller plus loin avec authelia.
 
Je pense que je vais surtout préciser que je ne maintien plus la partie Dashboard , elle restera dispo pour "historique" juste avec un spoiler. Mais je pense que ce n'est pas pertinent de l'afficher comme un élément indispensable a Crowdsec.
 
  • J'aime
Réactions: Eirikr70
Je suis parfaitement aligné avec les conseils d' @EVO : le tableau de bord est d'un intérêt limité ou plutôt :LOL: je ne suis même pas arrivé à le configurer ...
Pour ce qui est de cscli bouncers list, ta restitution est bonne. Il faut que tu vérifies (sauf au démarrage du conteneur où ça peut prendre quelques minutes) que l'heure affichée pour "Last API Pull" soit de l'ordre d'une minute avant ton heure d'interrogation (en temps universel). S'il y a un décalage important ou pas d'heure affichée, c'est que tu as un problème.
En tous cas bravo pour ton montage : Crowdsec offre une couche de sécurité vraiment très appréciable.