[Tuto] Installer SWAG en Docker ( Reverse Proxy )

Slt

Apparemment il manque les ports dans le YAML de vaultwarden
Salut, j'ai testé avec un 8086:80 mais cela ne change rien - comme c'est le même souci avec les autres containers sur la même machine virtuelle, je pense que le souci est ailleurs mais je ne trouve pas

YAML:
version: '3.3'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    environment:
      WEBSOCKET_ENABLED: true  # Enable WebSocket notifications.
    restart: unless-stopped
    ports:
    - 8086:80
    volumes:
    - /home/docker/vaultwarden/data:/data/
Edit : SOLVE - en fait les containers étaient bien sur le réseau "swag_default" mais sur le container SWAG ce réseau par défaut avait été supprimé au seul profit du macvlan
 
Créer le fichier config/fail2ban/filter.d/vaultwarden.conf :
nano config/fail2ban/filter.d/vaultwarden.conf

Dans le fichier, indiquer ceci :
Code:
[Definition]
failregex = ^<HOST>.*"(GET|POST|HEAD).*" (400|429) .+ \"https://vault\..+\" .+$
ignoreregex =
datepattern = {^LN-BEG}%%ExY(?P<_sep>[-/.])%%m(?P=_sep)%%d[T ]%%H:%%M:%%S(?:[.,]%%f)?(?:\s*%%z)?
^[^\[]*\[({DATE})
{^LN-BEG}
Hello @EVOTk
En regardant tes deux tutos liées (SWAG et Crowdsec), je me rends compte que tu n'as pas ici les bons filtres pour Vaultwarden :
Pour Vaultwarden c'est :
Config Apache:
# path_f2b/filter.d/vaultwarden.local

[INCLUDES]
before = common.conf

[Definition]
failregex = ^.*Username or password is incorrect\. Try again\. IP: <ADDR>\. Username:.*$
ignoreregex =

et pour l'interface d'admin :
Config Apache:
# path_f2b/filter.d/vaultwarden-admin.local

[INCLUDES]
before = common.conf

[Definition]
failregex = ^.*Invalid admin token\. IP: <ADDR>.*$
ignoreregex =
 
Salut,
Je ne filtre pas les logs de Vaultwarden directement, mais uniquement ceux de SWAG. SWAG n'a pas acces aux logs de mon Vaultwarden.
 
Salut,
Je ne filtre pas les logs de Vaultwarden directement, mais uniquement ceux de SWAG. SWAG n'a pas acces aux logs de mon Vaultwarden.
Haaa !!
Mais swag peut quand même détecter un échec de connexion via mot de passe ou login erroné ? Il peut différencier l'erreur généré par ça d'une erreur de page introuvable ?
 
Cela renvoit une erreur 400 ou 429 dans les logs du reverse, avec en bout de ligne, l'url du reverse
C'est se que mon regex cherche
 
Cela renvoit une erreur 400 ou 429 dans les logs du reverse, avec en bout de ligne, l'url du reverse
C'est se que mon regex cherche
Hmmmm, ça m'intéresse ^^
Car si je bouge mon reverse proxy sur l'asustor, il n'aura plus accès aux logs de vaultwarden, ni de gitea ni de tous les autres conteneurs...
Hmmm, tu as fait comment pour savoir ce qui allait être écrit dans le log de nginx concernant le conteneur vaultwarden ?
Parce que j'ai d'autres conteneurs à protéger :D
 
Hmmm, tu as fait comment pour savoir ce qui allait être écrit dans le log de nginx concernant le conteneur vaultwarden ?
j'ai volontairement fait du bruteforce, et rechercher un "pattern"

Sinon tu peut aussi sync tes logs pour les remonter sur l'asustor
 
Dernière édition:
En regardant sur le net ce qu’est syslog je me rend compte que je n’ai aucune idée sur comme faire… sachant que jai besoin des fichiers .log pas d’une base de données 😅

Je me dis que syncthing serait plus facile à mettre en place et j’aurais les fichiers log directement accessible sur le nas.
Mais dans cette solution quid de la réactivité du système…

Ps : J’ai déjà un fail2ban sur le synology… il protège déjà Vaultwarden.
Je me dit que sur l’asustor je n’ai pas vraiment de conteneur à protéger… adguard peut être… tautulli aussi.
Car les autres sont Plex , watchtower. Et bien sûr Crowdsec et prochainement authellia.
 
Hello!
je reviens sur la méthode ovh. J'ai investi dans un nom de domaine ovh, j'ai tout mis en place et celà fonctionne mais je n'utilise pas la méthode wildcard.
A savoir, dans les variables d'environnement, voici ma config:
Code:
environment:
  - PUID=1002
  - PGID=100
  - TZ=Europe/Paris
  - EMAIL=toto@monmail.com
  - VALIDATION=http
  - URL=monnomdomaine.fr
  - ONLY_SUBDOMAINS=true
  - SUBDOMAINS=nextcloud,heimdall,openmediavault,jellyfin
  - DOCKER_MODS=linuxserver/mods:swag-dashboard
  - DOCKER_MODS=linuxserver/mods:swag-dbip

Tout semble tourner sans problème, quel différence cela ferait-il de passer en mode wildcard (stipulé dans la section 2/b/ ) et en validation DNS. Plus fiable, plus sécurisé ? Cela me permettrait-il de fermer le port 80 du nas ?
 
@Nincha jz crois qu’il ne faut rien mettre dans subdomains. Ou alors juste un *
Faut que je vérifie ce que j’ai de mon côté.
 
L'inconvénient de pas faire un wildcard c'est qu'il est facile
quel différence cela ferait-il de passer en mode wildcard (stipulé dans la section 2/b/ )
Cela permet de ne pas exposer tes différents sous-domaines directement dans le certificat, ils sont donc plus difficiles a deviner pour une personne qui souhaiterai les connaitre.
 
  • J'aime
Réactions: Nincha
Hello!
je reviens sur la méthode ovh. J'ai investi dans un nom de domaine ovh, j'ai tout mis en place et celà fonctionne mais je n'utilise pas la méthode wildcard.
A savoir, dans les variables d'environnement, voici ma config:
Code:
environment:
  - PUID=1002
  - PGID=100
  - TZ=Europe/Paris
  - EMAIL=toto@monmail.com
  - VALIDATION=http
  - URL=monnomdomaine.fr
  - ONLY_SUBDOMAINS=true
  - SUBDOMAINS=nextcloud,heimdall,openmediavault,jellyfin
  - DOCKER_MODS=linuxserver/mods:swag-dashboard
  - DOCKER_MODS=linuxserver/mods:swag-dbip

Tout semble tourner sans problème, quel différence cela ferait-il de passer en mode wildcard (stipulé dans la section 2/b/ ) et en validation DNS. Plus fiable, plus sécurisé ? Cela me permettrait-il de fermer le port 80 du nas ?
Hello,
Je viens de vérifier, et dans mon YML, j'ai mis ça :
Code:
- ONLY_SUBDOMAINS=false   # If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to true
Et donc je n'ai pas de variable SUBDOMAINS=.
Et le wildcard fonctionne très bien.
 
Merci c'est sympa d'avoir pris le temps de checker 😉
Donc, quand tu veux ajouter un nouveau site au proxy, disons calibre. Tu modifies juste le calibre.subdomain conf, redémarres le swag et finito?
 
Merci c'est sympa d'avoir pris le temps de checker 😉
Donc, quand tu veux ajouter un nouveau site au proxy, disons calibre. Tu modifies juste le calibre.subdomain conf, redémarres le swag et finito?
Exactement. Tu ajoutes cependant plutôt un .conf avec la bonne config dedans.
Et si tu as installé le MOD auto-reload, ça recharge tout seul nginx.

Code:
      # 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