Was sollten bei einem lokal gehosteten Traefik-Proxy meine „trustedIPs“ für Authelia sein?

Was sollten bei einem lokal gehosteten Traefik-Proxy meine „trustedIPs“ für Authelia sein?

Ich hatte einen funktionierenden Docker-Stack mit meinem Home-Media-Server, der eine einzelne Docker-Compose-Datei verwendete:

version: "3"
secrets:
  authelia_jwt_secret:
    file: $SECRETS_PATH/authelia/jwt_secret
  authelia_session_secret:
    file: $SECRETS_PATH/authelia/session_secret
services:
  calibre-web:
    image: linuxserver/calibre-web:nightly
    container_name: calibre-web
    environment:
      - PUID=$PUID
      - PGID=$PGID
    labels:
      - traefik.enable=true
      - traefik.http.routers.calibre-https.rule=Host(`books.pointerstop.ca`)
      - traefik.http.routers.calibre-https.middlewares=authelia@file
      - traefik.http.routers.calibre-https.tls=true
      - traefik.http.routers.calibre-https.tls.certresolver=letsencrypt
    volumes:
      - /srv/calibre/config/calibre-web:/config
      - /srv/calibre/CalibreLibrary:/Calibre_Library up
    restart: unless-stopped
    depends_on:
      - calibre
    expose:
      - 8083
  traefik:
    image: traefik:latest
    container_name: traefik
    restart: unless-stopped
    command:
    - --api.insecure=true
    - --providers.docker
    - --entrypoints.web.address=:80
    - --entrypoints.websecure.address=:443
    - --certificatesresolvers.letsencrypt.acme.email=${LE_EMAIL}
    - --certificatesresolvers.letsencrypt.acme.storage=/config/acme.json
    - --certificatesresolvers.letsencrypt.acme.tlschallenge=true
    # - --certificatesresolvers.letsencrypt.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
    - --log.filePath=/var/log/traefik.log
    - --log.level=DEBUG
    - --providers.file.directory=/dynamic_config/
    - --providers.file.watch=true

    ports:
      - 8080:8080
      - 80:80
      - 443:443
    labels:
      - traefik.enable=true
      - traefik.http.routers.traefik.rule=Host(`traefik.local`)
      ## Services - API
      - traefik.http.routers.traefik.service=api@internal
      ## Global redirect of EXTERNAL domains to HTTPS
      - traefik.http.routers.redirs.rule=hostregexp(`{host:.*pointerstop.ca}`)
      - traefik.http.routers.redirs.entrypoints=web
      - traefik.http.routers.redirs.middlewares=redirect-to-https@file
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/log/media-server:/var/log
      - ${CONFIG_PATH}/traefik:/config
      - ./dynamic_config:/dynamic_config

  # Authelia (Lite) - Self-Hosted Single Sign-On and Two-Factor Authentication
  authelia:
    container_name: authelia
    image: authelia/authelia:latest
    # image: authelia/authelia:4.21.0
    restart: always
    expose:
      - 9091
    volumes:
      - $CONFIG_PATH/authelia:/config
    environment:
      - TZ=${TIME_ZONE}
      - AUTHELIA_JWT_SECRET_FILE=/run/secrets/authelia_jwt_secret
      - AUTHELIA_SESSION_SECRET_FILE=/run/secrets/authelia_session_secret
    secrets:
      - authelia_jwt_secret
      - authelia_session_secret
    labels:
      - traefik.enable=true
      ## HTTP Routers
      - traefik.http.routers.authelia-rtr.entrypoints=websecure
      - traefik.http.routers.authelia-rtr.rule=Host(`auth.pointerstop.ca`)
      - traefik.http.routers.authelia-rtr.tls=true
      - traefik.http.routers.authelia-rtr.tls.certresolver=letsencrypt
      ## Middlewares
      - traefik.http.routers.authelia-rtr.middlewares=chain-authelia@file
      ## HTTP Services
      - traefik.http.services.authelia-media-server.loadbalancer.server.port=9091

Jetzt wollte ich den Proxy in einen separaten Stapel aufteilen, damit ich meine Geschäftsdomänen in einem dritten Stapel hinzufügen und alles durch Authelia schützen lassen konnte.

Ich habe also ein Docker-Netzwerk erstellt proxyund alles verwendet dieses Netzwerk, mit vollem Erfolg, außer dass nach der Authentifizierung mit Autheliahttps://books.pointerstop.ca/(Calibre-Web) möchte sich erneut authentifizieren.

Ich bin mir bewusst, dass ich in Traefik etwas einstellen muss entrypoints.websecure.forwardedHeaders.trustedIPs, ohne das Traefik alle wichtigen Header entfernt, aber ich kann nicht herausfinden, was sie sein sollten. Da sich alles im selben Docker-Stack befindet, brauchte ich keine vertrauenswürdigen IPs. Jetzt, da sie sich in verschiedenen Stacks befinden,aber im selben Netzwerk, ich verstehe nicht, was sich geändert hat. Ich habe versucht, eine Einstellung vorzunehmen trustedIPs=172.0.0.0/8, die alle Docker-Netzwerke abdeckt. *.pointerstop.casind CNAMEs zu pointerstop.ddns.net, und die einzige gemeldete IP beihttps://books.pointerstop.ca/loginist meine externe IP – aber es scheint falsch, das anzufordern (und es wird dynamisch zugewiesen, also umständlich zu verwenden), wenn es in der Single-Stack-Konfiguration nicht benötigt wurde.

verwandte Informationen