Bonjour à tous, je commence avec docker à me faire quelque services sur mon dédié j'ai aussi ngingx proxy manager pour mon nom de domaine (chez OVH) et cloudflare pour la gestion dns mais aujourd'hui met venu un question. Si la sécurité du nom des domaines ainsi que l'accès se gère très bien part cloudflare qu'en est t'il de l'adresse IP+port ? J'ai cherché mais rien de très concluant je voudrais en faite être le seul à y avoir accès par l'adresse IP de mon serveur avec les différents port et ce possible ? J'ai vu aussi différents outils fail2ban, crowdsec, portsentry mais niveau configuration je suis un peux perdu avec les outils que j'ai déjà en place. Si quelqu'un aurait des conseils voir même tuto se serait génial.
Cordialement

Salut,

idéalement, tu ne diffuses pas les ports du docker. Tu mets un reverse proxy (traefix, npm...) qui va filtrer pour toi et rediriger vers le bon container. Seuls les ports 80 et 443 sont ouverts. Sur le reverse proxy, tu peux aussi protéger avec login/password, ou bien passer par un middleware qui va protéger tes accès (oauth, authelia...)

Bonjour et merci à tout les deux pour vos réponses. Je ne m'y prenais pas comme il faut pour npm mais voilà chose faite grâce au tuto (merci Spider). De base oui je voulais mettre en place crowdsec avec le container docker et npm mais je me suis perdu dans la configuration car je n'ai pas tout compris au niveaux des collections (npm je crois) et des bouncers ( la je n'ai rien compris du tout) donc j'ai abandonné.
Cordialement
PS: j'ai aussi cloudflare qui complique crowdsec 😝

Bonsoir et merci pour la réponse. Du coup si je comprends bien les liens sont une version modifiée de npm avec le bouncers intégrées de crowdsec ? Actuellement pas de problème avec cloudflare mais il me semblait avoir vu un tuto crowdsec ou cloudflare rentré en compte et je m'y suis perdu. Du coup une fois npm modifié installé comment se passe la configuration du reste pour crowdsec ? Un tuto relativement simple et t'il disponible ? J'utilise docker composé de préférence ^^. Oui sur se coup si je suis complètement perdu 😅.
Merci encore.
Cordialement .

Il faut installer l'agent principal avec qui le bouncer va communiquer

https://github.com/crowdsecurity/crowdsec
https://github.com/crowdsecurity/example-docker-compose/blob/main/docker-compose.yml

Voilà une ébauche rapide (note : je n'utilise pas NPM)

docker-compose.yml

version: '3'

services:
  crowdsec:
    image: crowdsecurity/crowdsec
    container_name: crowdsec
    restart: always
    environment:
      #this is the list of collections we want to install
      #https://hub.crowdsec.net/browse/#collections
      COLLECTIONS: "crowdsecurity/nginx-proxy-manager crowdsecurity/linux crowdsecurity/whitelist-good-actors"
      GID: "${PGID}"
    depends_on:
      - 'nginx-proxy-manager'
    volumes:
      - ${DOCKERCONFDIR}/crowdsec/data:/var/lib/crowdsec/data/
      - ${DOCKERCONFDIR}/crowdsec/config:/etc/crowdsec/
      - /var/log:/var/log/host
      - ${DOCKERCONFDIR}/nginx-proxy-manager/data/logs:/var/log/nginx
  nginx-proxy-manager:
    image: 'baudneo/nginx-proxy-manager:latest'
    restart: always
    container_name: nginx-proxy-manager
    ports:
      # Public HTTP Port:
      - '80:80'
      # Public HTTPS Port:
      - '443:443'
      # Admin Web Port: à retirer une fois npm configuré
      - '81:81'
    environment:
      TZ: ${TZ}
      ADMIN_PANEL_LOG: "1"
      CROWDSEC_BOUNCER: "1"
      OPENRESTY_DEBUG: "0"
      CROWDSEC_LAPI: "http://crowdsec:8080"
      CROWDSEC_KEY: "xxxxxxxxxxxxxxxxxxxxxxxx"
      DB_SQLITE_FILE: "/data/database.sqlite"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ${DOCKERCONFDIR}/nginx-proxy-manager/data:/data
      - ${DOCKERCONFDIR}/nginx-proxy-manager/letsencrypt:/etc/letsencrypt

.env

DOCKERCONFDIR=/home/user/.config/appdata

PGID=1000
#Cette valeur peut être obtenue en utilisant id -g $USER

PUID=1000
#Cette valeur peut être obtenue en utilisant id -u $USER

TZ=Europe/Paris
#Fuseau horaire du système, voir la liste des fuseaux horaires de la base de données TZ
#https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Parfait merci beaucoup pour le travail effectué 😁

    leouf69 je pense comprendre ta problématique : tu as mis un adguard-home pas at home 😅.
    Donc dans ton cas il faudra laisser les ports liés au protocole de DNS ( 53, 853, etc) exposé sur ta machine et ajouté une couche de firewall qui n'autorisera seulement les requêtes depuis l'ip de ton domicile.
    Pour la partie adguard installation et conf avec NPM regarde ici tu devrais trouver quelques infos.

    Matt

    9 mois plus tard

    Bonjour
    en complement j'ai trouvé un bouncer crowdsec qui applique aussi des decisions avec cloudfare

    https://github.com/crowdsecurity/cs-cloudflare-bouncer

    documentation : https://docs.crowdsec.net/u/bouncers/cloudflare/

    par contre pour npm l'image baudneo/nginx-proxy-manager:latest n'est plus d'actualité
    il faut privilegié l'image https://github.com/LePresidente/docker-nginx-proxy-manager

    qui as lui intégré crowdsec dans son image ainsi que l'intégration de cs-openresty-bouncer pour NPM
    je ne l'ai pas encore tester

    une vidéo explique son installation:

    Répondre…