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

@EVOTk

id mon_user
Code:
uid=1000(Moi) gid=100(users)

A qui appartient /srv/dev-disk-by-uuid-d710ceb1-028d-468d-b7eb-22b53d74e619/App/Swag/crowdsec/crowdsec-db ?
Code:
root@monnas:~# ls -alh /srv/dev-disk-by-uuid-d710ceb1-028d-468d-b7eb-22b53d74e619/App/Swag/crowdsec/crowdsec-db
-rw-rw----+ 1 Moi users  56K  6 nov.  21:00 crowdsec.db

le MGID est bon ?
Code:
  environment:
       - MB_DB_FILE=/data/metabase.db
      - MGID=100

J'espère que je réponds bien ... 😅
 
@EVOTk
j'ai passé l'étape grâce à toi (y)
Les 3 sont installés, swag, crowdsec et crowdsec-dashboard
mais lorsque je consulte les logs de crowdsec-dashboard, ils indiquent
Code:
addgroup: gid '100' in use
adduser: unknown group metabase
su: unknown user metabase
et là, pour moi c'est un mystère ???? une idée ?
Ceci dit, il n'y a pas le feu, on peut voir ça demain, tranquille
Merci beaucoup pour ton aide très appréciée ;)
Je crois que j'ai moi aussi eu ces messages là...
Pas su m'en dépêtrer...
 
  • J'aime
Réactions: granks
En dessous de :
Code:
- MGID=100

Rajoute :
Code:
- MUID=1000

Voir : https://www.metabase.com/docs/lates...-docker#docker-specific-environment-variables

Afin d'avoir :
Code:
  environment:
       - MB_DB_FILE=/data/metabase.db
       - MGID=100
       - MUID=1000

Assure toi ensuite d'avoir bien supprimé le conteneur, et re-créer le

Mise a par cela, j'ai pas trop d'idée
 
  • J'aime
Réactions: granks et MilesTEG
Je viens d'appliquer les modifications, en supprimant le conteneur swag et en cochant bien la case "retirer les non persistant volumes"...
Code:
  environment:
       - MB_DB_FILE=/data/metabase.db
       - MGID=100
       - MUID=1000
même message d'erreur dans crowdsec-dashboard>Logs
Code:
addgroup: gid '100' in use
adduser: unknown group metabase
su: unknown user metabase
J'ai ensuite recommencé en ajoutant UID=1000 dans l'environnement de crowdsec pour essayer, idem, même erreur...

Je vais chercher sur la toile car je n'ai pas trop d'idée non plus, en attendant, je vais me passer provisoirement de cette interface. ;)
Merci encore pour ton temps !
 
  • J'aime
Réactions: MilesTEG
Je viens d'appliquer les modifications, en supprimant le conteneur swag et en cochant bien la case "retirer les non persistant volumes"...
Code:
  environment:
       - MB_DB_FILE=/data/metabase.db
       - MGID=100
       - MUID=1000
même message d'erreur dans crowdsec-dashboard>Logs
Code:
addgroup: gid '100' in use
adduser: unknown group metabase
su: unknown user metabase
J'ai ensuite recommencé en ajoutant UID=1000 dans l'environnement de crowdsec pour essayer, idem, même erreur...

Je vais chercher sur la toile car je n'ai pas trop d'idée non plus, en attendant, je vais me passer provisoirement de cette interface. ;)
Merci encore pour ton temps !
Si tu trouves une solution, je suis preneur ^^

PS : as-tu essayé avec Portainer EE ? (plutôt que le CE )
 
  • J'aime
Réactions: axionman
D'accord, pour le moment je n'ai pas trouvé grand chose...


Non, jamais essayé, jusque là, je pensais qu'il était payant, et toi ?
Il y a une gratuité sur les 5 permiers "nodes" que tu connecteras.
En gros 5 machines.
Essaye ^^
J'ai obtenu une clé de licence et je m'en sers sur mon 920+ et sur le AS6704T :)
 
  • J'aime
Réactions: granks
Mais est-ce que c'est une solution pour l'installation du Dashboard avec succès ?
Je ne sais pas XD Je n'ai pas réessayé depuis ^^
Pour ce qui est de la version Business de Portainer, pas sur qu'elle apporte un gain faramineux...
Mais j'ai l'impression que les nouvelles fonctionnalités sortent d'abord sur cette version avant la CE...
 
  • J'aime
Réactions: granks
@MilesTEG1 et @granks même problème que vous, en utilisant Portainer BE (Business Edition).
Je sèche sur le 3e container donc (dashboard) alors que j'ai bien suivi le tuto, pour le moment je le passe en commentaires.

version: "2.1"
services:
swag:
image: lscr.io/linuxserver/swag:latest
container_name: swag
networks:
macvlan_net:
ipv4_address: 192.168.0.201
cap_add:
- NET_ADMIN
# labels:
# - com.centurylinklabs.watchtower.enable=true
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
- URL=NDD.fr
- SUBDOMAINS=wildcard
- VALIDATION=dns
- DNSPLUGIN=ovh
- EMAIL=XX.XX@hotmail.com
- DOCKER_MODS=linuxserver/mods:swag-dashboard|linuxserver/mods:swag-crowdsec
- CROWDSEC_API_KEY=60311693b780b78af46ea053384cff13
- CROWDSEC_LAPI_URL=http://crowdsec:8080
volumes:
- /home/docker/swag/config:/config
ports:
- 443:443
# - 80:80
restart: unless-stopped

crowdsec:
container_name: crowdsec
image: crowdsecurity/crowdsec
restart: unless-stopped
environment:
- COLLECTIONS=crowdsecurity/nginx
- GID=1000
depends_on:
- swag
volumes:
- /home/docker/swag/config/log/nginx:/var/log/nginx
- /home/docker/swag/crowdsec/acquis.yaml:/etc/crowdsec/acquis.yaml
- /home/docker/swag/crowdsec/crowdsec-db:/var/lib/crowdsec/data/
- /home/docker/swag/crowdsec/crowdsec-config:/etc/crowdsec/
security_opt:
- no-new-privileges=true

dashboard:
container_name: crowdsec-dashboard
image: crowdsec/dashboard
restart: unless-stopped
depends_on:
- crowdsec
ports:
- 3002:3000
environment:
- MB_DB_FILE=/data/metabase.db
- MGID=1000
- MUID=1000
volumes:
- /home/docker/swag/crowdsec/crowdsec-db:/metabase-data/

networks:
macvlan_net:
external: true
 
@Jfamiens Pour que le code soit compréhensible (à cause des indentations super importantes en YAML), pourrais-tu utiliser la balise code suivante avec laquelle tu peux choisir le langage de programmation :
1671641979123.png

Pour le souci, je pense que quand je vais refaire la stack sur l'Asustor, je pense que ce conteneur de dashboard crowdsec, je vais le créer depuis la ligne de commande... en espérant que ça fonctionne...
 
  • J'aime
Réactions: Jfamiens
Bonjour,

Tout d'abord merci à EVOTk pour ce tutoriel, j'ai mis en place Swag chez moi depuis quelques jours et ayant crowdsec déjà d'installé sur mon firewall et me demandais s'il valait le coup de l'installer aussi au niveau de Swag.

Merci

 
Bonjour,

J'essaie de suivre le tuto mais là je tombe sur un os, je tombe sur l'erreur suivant lors de l'update de mon stack et donc les conteneurs ne se lancent pas:


Error response from daemon: failed to create shim: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/data/compose/43/crowdsec/acquis.yaml" to rootfs at "/etc/crowdsec/acquis.yaml": mount /data/compose/43/crowdsec/acquis.yaml:/etc/crowdsec/acquis.yaml (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

Si je modifie j'arrive a lancer les conteneurs mais j'ai ceci dans les logs de crowdsec:

time="24-12-2022 14:12:34" level=warning msg="Loaded 35 scenarios"
time="24-12-2022 14:12:34" level=info msg="loading acquisition file : /etc/crowdsec/acquis.yaml"
time="24-12-2022 14:12:34" level=fatal msg="crowdsec init: Error while loading acquisition config : failed to yaml decode /etc/crowdsec/acquis.yaml: yaml: input error: read /etc/crowdsec/acquis.yaml: is a directory"
time="24-12-2022 14:12:34" level=fatal msg="crowdsec init: Error while loading acquisition config : failed to yaml decode /etc/crowdsec/acquis.yaml: yaml: input error: read /etc/crowdsec/acquis.yaml: is a directory"

j'ai pas encore essayé de créér un nouveau fichier acquis.yaml à l'intérieur du dossier du même nom, avez vous une idée de la source du problème? je comprends qu'il s'agit d'une historie de type (fichier ou repertoire) mais si je créé le fichier avant de relancer la stack, le conteneur ne se lance pas et si je mets rien, le conteneur se lance mais créé les répertoires lui même.
 
Salut,
Il faut que tu créer toi le fichier acquis.yaml, tu as du le faire via Portainer je pense, et ici il a créer un dossier "/acquis.yaml/" et non un fichier.
 
j'ai bien créé le fichier manuellement moi même avant de modifier mon stack dans portainer, c'est seulement après avoir fait cela que et avoir tenter de redéployer la stack que j'ai eu la 1ère erreur
 
voici ma stack:

---
version: "3.8"

secrets:
JWT_SECRET:
file: ./data/authelia/secrets/JWT_SECRET
STORAGE_ENCRYPTION_KEY:
file: ./data/authelia/secrets/STORAGE_ENCRYPTION_KEY
volumes:
swag:
authelia:

networks:
net:
driver: bridge

services:
swag:
container_name: swag
image: lscr.io/linuxserver/swag
restart: unless-stopped
networks:
net:
aliases: []
ports:
- 80:80
- 443:443
- 81:81
volumes:
- ./data/swag:/config
- ./data/authelia/config/authelia.log:/authelia/authelia.log:ro
environment:
PUID: 1000
PGID: 1000
TZ: Europe/Paris
URL: vortextech.fr
SUBDOMAINS: wildcard
VALIDATION: dns
CERTPROVIDER: cloudflare
DNSPLUGIN: cloudflare
DOCKER_MODS: linuxserver/mods:swag-dashboard|linuxserver/mods:swag-mod2|linuxserver/mods:swag-crowdsec
EMAIL: aldiallo@mac.com
CROWDSEC_API_KEY: 9ea02d60f21ef8d949273edbf9420e79
CROWDSEC_LAPI_URL: http://crowdsec:8080
cap_add:
- NET_ADMIN

authelia:
container_name: authelia
image: authelia/authelia
restart: unless-stopped
networks:
net:
aliases: []
expose:
- 9091
secrets: [JWT_SECRET, SESSION_SECRET, STORAGE_PASSWORD, STORAGE_ENCRYPTION_KEY]
volumes:
- ./data/authelia/config:/config
environment:
TZ: Europe/Paris
AUTHELIA_JWT_SECRET_FILE: /run/secrets/JWT_SECRET
AUTHELIA_STORAGE_ENCRYPTION_KEY_FILE: /run/secrets/STORAGE_ENCRYPTION_KEY
AUTHELIA_SESSION_NAME: authelia_session
AUTHELIA_SESSION_DOMAIN: vortextech.fr
AUTHELIA_SESSION_SAME_SITE: lax
AUTHELIA_SESSION_EXPIRATION: 1h
AUTHELIA_SESSION_INACTIVITY: 5m
AUTHELIA_STORAGE_LOCAL_PATH: /config/db.sqlite3
AUTHELIA_NOTIFIER_FILESYSTEM_FILENAME: /config/notification.txt
AUTHELIA_AUTHENTICATION_BACKEND_FILE_PATH: /config/users_database.yml
AUTHELIA_THEME: dark
AUTHELIA_ACCESS_CONTROL_DEFAULT_POLICY: deny
#AUTHELIA_ACCESS_CONTROL_NETWORKS: 10.0.1.0/24, 172.16.0.0/12

crowdsec:
container_name: crowdsec
image: crowdsecurity/crowdsec
restart: unless-stopped
environment:
- COLLECTIONS=crowdsecurity/nginx
- GID=1000
depends_on:
- swag
volumes:
- ./data/swag/log/nginx:/var/log/nginx
- ./crowdsec/acquis.yaml:/etc/crowdsec/acquis.yaml
- ./crowdsec/crowdsec-db:/var/lib/crowdsec/data/
- ./crowdsec/crowdsec-config:/etc/crowdsec/
security_opt:
- no-new-privileges=true

...
 
Il ne me semble pas que Portainer gere ce genre de lien :

- ./data/swag/log/nginx:/var/log/nginx
- ./crowdsec/acquis.yaml:/etc/crowdsec/acquis.yaml
- ./crowdsec/crowdsec-db:/var/lib/crowdsec/data/
- ./crowdsec/crowdsec-config:/etc/crowdsec/
Il te faut mettre les chemins complets