Aller au contenu

Crowdsec - discussion et questions : Mise en place, paramétrage, bouncer, etc...


MilesTEG1

Messages recommandés

Bonsoir,

@.Shad. voilà donc un nouveau sujet où l'on va pouvoir discuter de Crowdsec.

Citation
Il y a 9 heures, .Shad. a dit :

Malheureusement je n'utilise plus Fail2ban avec Swag, uniquement Crowdsec, je pourrais pas t'aider. 😞 

Tu as définitivement abandonné Fail2ban au profit de Crowdsec ?

Peut-on discuter de Crowdsec ici ? Ou mieux vaut-il créer un sujet dédié ? (et dans quelle section ?)

 

Pour débuter ce sujet, voilà comment je l'ai installé.
J'utilise SWAG comme reverse proxy sur mon 920+, installé avec le tuto de @.Shad., mais dans SWAG, je n'utilise pas le Fail2ban intégré. Précision importante : mon SWAG est en macvlan.
Et j'ai suivi ce tuto pour installer Crodwsec. Voici ci-dessous un petit résumé.

J'ai ajouté ce qui suit dans le docker-compose :

  crowdsec:
    container_name: crowdsec
    image: crowdsecurity/crowdsec   # https://hub.docker.com/r/crowdsecurity/crowdsec
                                    # https://github.com/crowdsecurity/crowdsec
    networks:
      crowdsec_network:
        ipv4_address: 172.19.0.2

    restart: unless-stopped
    environment:
      - TZ=Europe/Paris
      - COLLECTIONS=crowdsecurity/nginx
      - GID=100
      - CUSTOM_HOSTNAME=Crowdsec_sur_Syno-DS920+
    depends_on:
      - swag
    volumes:
      - /volume4/docker/swag_macvlan/config/log/nginx/access_adguardhome.log:/var/log/nginx/access_adguardhome.log
      - /volume4/docker/swag_macvlan/config/log/nginx/access_gitea.log:/var/log/nginx/access_gitea.log
      - /volume4/docker/swag_macvlan/config/log/nginx/access.log:/var/log/nginx/access.log
      # - /volume4/docker/swag_macvlan/config/log/nginx/access_nextcloud.log:/var/log/nginx/access_nextcloud.log
      - /volume4/docker/swag_macvlan/config/log/nginx/access_tautulli.log:/var/log/nginx/access_tautulli.log
      - /volume4/docker/swag_macvlan/config/log/nginx/access_vaultwarden.log:/var/log/nginx/access_vaultwarden.log
      - /volume4/docker/swag_macvlan/config/log/nginx/error_adguardhome.log:/var/log/nginx/error_adguardhome.log
      - /volume4/docker/swag_macvlan/config/log/nginx/error_gitea.log:/var/log/nginx/error_gitea.log
      - /volume4/docker/swag_macvlan/config/log/nginx/error.log:/var/log/nginx/error.log
      # - /volume4/docker/swag_macvlan/config/log/nginx/error_nextcloud.log:/var/log/nginx/error_nextcloud.log
      - /volume4/docker/swag_macvlan/config/log/nginx/error_tautulli.log:/var/log/nginx/error_tautulli.log
      - /volume4/docker/swag_macvlan/config/log/nginx/error_vaultwarden.log:/var/log/nginx/error_vaultwarden.log
      - /volume4/docker/swag_macvlan/config/log/nginx/unauthorized.log:/var/log/nginx/unauthorized.log

      - /volume4/docker/swag_macvlan/crowdsec/acquis.yaml:/etc/crowdsec/acquis.yaml
      - /volume4/docker/swag_macvlan/crowdsec/crowdsec-db:/var/lib/crowdsec/data/
      - /volume4/docker/swag_macvlan/crowdsec/crowdsec-config:/etc/crowdsec/
    security_opt:
      - no-new-privileges=true
    
    # ###############
    # Le label ci-dessous permet à Watchtower de faire les mises à jour automatiquement
    # Cela peut-être supprimé si Watchtower n'est pas utilisé.
    labels:
      - "com.centurylinklabs.watchtower.enable=true"
    # ###############

    ports:
      - 8080:8080

J'ai aussi ajouté ceci dans les variables environnements de SWAG :

      # MODs used : - https://github.com/linuxserver/docker-mods/tree/swag-auto-reload
      #             - https://github.com/linuxserver/docker-mods/tree/swag-dashboard
      #             - https://github.com/linuxserver/docker-mods/tree/swag-maxmind
      #             - https://docs.theme-park.dev/setup/#swag-docker-mod
      #             - https://github.com/linuxserver/docker-mods/tree/swag-crowdsec
      - DOCKER_MODS=linuxserver/mods:swag-auto-reload|linuxserver/mods:swag-dashboard|linuxserver/mods:swag-maxmind|ghcr.io/gilbn/theme.park:swag|linuxserver/mods:swag-crowdsec
      - TP_COMMUNITY_THEME="true"
      - CROWDSEC_API_KEY=xxxxxxxxxxxxxxxxx
      - CROWDSEC_LAPI_URL=http://192.168.2.230:8080
      - MAXMINDDB_LICENSE_KEY=xxxxxxxxxxxxxxxx

Note : Certains mods ne sont pas nécessaires pour Crowdsec 😉.

J'ai donc du installer le bouncer dans swag en ligne de commande, voir instructions ici : https://github.com/linuxserver/docker-mods/tree/swag-crowdsec#mod-usage-instructions

Citation

Generate an API key for the bouncer with cscli bouncers add bouncer-swag or docker exec -t crowdsec cscli bouncers add bouncer-swag, if you're running CrowdSec in a container.

Ça m'a généré la clé API qu'il a fallu mettre dans CROWDSEC_API_KEY.

Vous aurez remarqué que j'ai passé pas mal de fichiers .log dans le conteneur Crowdsec pour qu'il les surveille.
Pour cela, j'ai ajouté dans les fichiers .conf du reverse proxy :

    # Custom error files
    access_log /config/log/nginx/access_adguardhome_syno.log;
    error_log /config/log/nginx/error_adguardhome_syno.log;

Je me suis dit que ça pourrait aider à diagnostiquer un souci avec Crowdsec d'avoir des fichiers logs séparés pour mes applications web.

________________________________________

Mais voilà, Crowdsec est très bien, mais beaucoup trop sensible.

@.Shad. Comment as-tu configuré les bouncers ? (si tant est qu'on puisse les configurer...)

Car ça m'arrive très souvent de m'auto-bannir en oubliant de fermer le navigateur dédié aux services du NAS dont certains sont en accès restreint aux IP LAN et VPN... ça génères des erreurs 403 dans les logs, et paf, Crowdsec me ban !
J'ai dû sortir les logs concernant DSM et d'autres services Synology de l'analyse de Crowdsec.

J'ai même dû sortir de l'analyse de Crodwsec les logs de Nextcloud, car même si ce service est accessible depuis internet, ça engendrait quasi systématiquement des BANs.

 

Bref, voilà.
Comment utilisez-vous Crowdsec ? Comment l'avez-vous configuré ? ...

 

Merci d'avance, et bonne fin de WE.

PS : un autre sujet arrivera pour parler de Fail2ban qui bien que bannissant une IP, présente ensuite dans iptables, cette dernière peut toujours accéder aux services... 

Lien vers le commentaire
Partager sur d’autres sites

Salut @MilesTEG1, plusieurs remarques :

  • Comment tu as autant de logs d'applications différentes dans le dossier de Swag ? Tu as fait des liens symboliques ?
    Mais surtout, pourquoi monter chacun d'eux séparément ? Par je ne sais quel procédé tu les as tous mis dans le même dossier, donc tu montes juste le dossier dans le conteneur.
/volume4/docker/swag_macvlan/config/log/nginx:/var/log/nginx:ro

Et surtout tu ajoutes le ro à la fin du montage, tu n'es pas sensé pouvoir écrire dans ces logs, c'est une faille, surtout que tu te bases sur leur contenu pour accorder un accès ou l'interdire.

C'est dans le fichier acquis.yaml qu'ensuite tu définis les chemins pour chaque application surveillée, mon fichier acquis.yaml pour exemple :

##########
## LOGS ##
##########

# SWAG
filenames:
  - /remotelogs/swag/*.log
labels:
  type: nginx
---

# Authelia
filename: /remotelogs/authelia/authelia.log
labels:
  type: authelia
---

# Emby
filename: /remotelogs/embyserver/embyserver.txt
labels:
  type: emby
---

# SSHD
filenames:
  - /remotelogs/host/auth.log
  - /remotelogs/host/syslog
labels:
  type: syslog
---
  • Tu as un log parser que tu peux installer dans Crowdsec pour whitelister des sous-réseaux : https://hub.crowdsec.net/author/crowdsecurity/configurations/whitelists
    Et le fichier de fichier de config se trouve là : /etc/crowdsec/hub/parsers/s02-enrich/crowdsecurity/whitelists.yaml si tu veux ajouter des IP spécifiques seulement ou restreindre à certains sous-réseaux, par défaut toute la RFC1918.
    Après je ne suis pas sûr de comprendre, tu ajoutes Crowdsec sur des services qui sont déjà derrière de la 2FA ? C'est overkill selon moi...

Et je ne comprends pas comment tu peux t'auto-bannir à laisser une page ouverte, je n'ai jamais eu ce problème, mais je reconnais que je ne surveille pas DSM vu que DSM dispose de tous les outils nécessaires (Fail2ban + 2FA) pour assurer une sécurité suffisante.

  • Sauf à utiliser des bouncers sur d'autres machines, tu n'as pas à exposer le port 8080 du conteneur sur le NAS.
    Soit la résolution DNS interne de Docker (nom de conteneur) soit l'IP en 172 vu que tu la fixes.
    Ca donnerait :
    - CROWDSEC_LAPI_URL=http://crowdsec:8080

    si Swag partage un réseau bridge avec Crowdsec.

  • Pourquoi aussi peu de collections ? Les collections sont l'équivalent des filter dans Fail2ban, Crowdsec ne saura pas parser les logs correctement s'il ne connaît pas leurs structures, moi par exemple j'ai ajouté les collections LePresidente/emby et LePresidente/authelia. A toi de trouver ton bonheur sur https://hub.crowdsec.net/. Recherches rapides :
    https://hub.crowdsec.net/author/crowdsecurity/collections/nextcloud
    https://hub.crowdsec.net/author/crowdsecurity/collections/synology-dsm
    Je n'exclus pas que tes blocages intempestifs proviennent d'un parser non adapté, et voit des erreurs où il n'y en a pas.

Habituellement je trouve les tutos d'EVOTk suffisamment succints et complets, mais là ça mériterait un peu plus de détails je pense. 🙂 

Modifié par .Shad.
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.