Nginx bitwarden

Fermé
UnLabrador Messages postés 66 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 26 janvier 2022 - Modifié le 25 oct. 2021 à 11:22
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 3 nov. 2021 à 15:58
Bonjour,
J'ai un petit soucis concernant nginx et plus précisément mon gestionnaire de mot de passe bitwarden.
Le problème est que je peux accéder à mon gestionnaire de mot de passe par mon sous domaine mais aussi par mon adresse ip.
Je voudrais ne pouvoir y accéder que depuis mon sous domaine spécifique.
Merci beaucoup !

2 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
25 oct. 2021 à 12:07
Bonjour,

Il faut laisser le "virtualhost" par défaut même s'il pointe vers un site/dossier vide, et créer un second virtualhost pour Bitwarden qui correspond au domaine/sous-domaine.
1
UnLabrador Messages postés 66 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 26 janvier 2022 2
Modifié le 28 oct. 2021 à 15:30
Bonjour,

Où puis je trouver ce paramètre ? Je ne le trouve pas dans le fichier
config.yml
.
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499 > UnLabrador Messages postés 66 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 26 janvier 2022
25 oct. 2021 à 13:44
C'est dans la configuration de Nginx, ce n'est pas un fichier yml.
Il faudrait en dire un peu plus sur comment tu as installé Nginx et Bitwarden...
0
UnLabrador Messages postés 66 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 26 janvier 2022 2 > avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024
Modifié le 28 oct. 2021 à 15:31
J'ai ceci :

server {
  listen 8080 default_server;
  listen [::]:8080 default_server;
  server_name {adresse-serveur-bitwarden};

  return 301 {adresse-serveur-bitwarden}$request_uri;
}


Que dois-je modifier ?
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
Modifié le 25 oct. 2021 à 14:16
Es-tu sûr de ne pas avoir introduit des erreurs en masquant les adresses réelles ?

Parce que là, ça veut dire que quelqu'un accédant à http://{adresse-serveur-bitwarden}:8080/ sera redirigé vers http://{adresse-serveur-bitwarden}:8080/ donc une boucle de redirections.

Mais tu devrais supprimer la ligne "server_name" afin que cette redirection s'applique par défaut, lorsque quelqu'un accède au serveur avec l'IP.

Et la redirection devrait inclure le numéro de port, à moins que tu exécutes un deuxième serveur sur le port 80
1
UnLabrador Messages postés 66 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 26 janvier 2022 2
Modifié le 28 oct. 2021 à 15:31
Bonjour,

Désolé pour le temps de réponse. J'ai vérifié le fichier, je ne me suis pas trompé. En supprimant
server_name
, je peux toujours y accéder via l'adresse IP.

Je vous communique le fichier en entier :

#######################################################################
# WARNING: This file is generated. Do not make changes to this file.  #
# They will be overwritten on update. You can manage various settings #
# used in this file from the ./bwdata/config.yml file for your        #
# installation.                                                       #
#######################################################################

server {
  listen 8080 default_server;
  listen [::]:8080 default_server;
  server_name {adresse-serveur-bitwarden};

  return 301 https://{adresse-serveur-bitwarden}$request_uri;
}

server {
  listen 8443 ssl http2;
  listen [::]:8443 ssl http2;
  server_name {adresse-serveur-bitwarden};

  ssl_certificate /etc/letsencrypt/live/{adresse-serveur-bitwarden}/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/{adresse-serveur-bitwarden}/privkey.pem;
  ssl_session_timeout 30m;
  ssl_session_cache shared:SSL:20m;
  ssl_session_tickets off;

  # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
  ssl_dhparam /etc/letsencrypt/live/{adresse-serveur-bitwarden}/dhparam.pem;

  ssl_protocols TLSv1.2;
  ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AE>  # Enables server-side protection from BEAST attacks
  ssl_prefer_server_ciphers on;

  # OCSP Stapling ---
  # Fetch OCSP records from URL in ssl_certificate and cache them
  ssl_stapling on;
  ssl_stapling_verify on;

  # Verify chain of trust of OCSP response using Root CA and Intermediate certs
  ssl_trusted_certificate /etc/letsencrypt/live/{adresse-serveur-bitwarden}/fullchain.pem;
  resolver 1.1.1.1 1.0.0.1 9.9.9.9 149.112.112.112 valid=300s;

  include /etc/nginx/security-headers-ssl.conf;
  include /etc/nginx/security-headers.conf;

  location / {
    proxy_pass http://web:5000/;
    include /etc/nginx/security-headers-ssl.conf;
    include /etc/nginx/security-headers.conf;
    add_header Content-Security-Policy "default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: [https://haveibeenpwned.com] [https://en.gravatar.com/]; child>    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Robots-Tag "noindex, nofollow";
  }

  location /alive {
    return 200 'alive';
    add_header Content-Type text/plain;
  }

  location = /app-id.json {
    proxy_pass http://web:5000/app-id.json;
    include /etc/nginx/security-headers-ssl.conf;
    include /etc/nginx/security-headers.conf;
    proxy_hide_header Content-Type;
    add_header Content-Type $fido_content_type;
  }

  location = /duo-connector.html {
    proxy_pass http://web:5000/duo-connector.html;
  }

  location = /u2f-connector.html {
    proxy_pass http://web:5000/u2f-connector.html;
  }

  location = /webauthn-connector.html {
    proxy_pass http://web:5000/webauthn-connector.html;
  }

  location = /webauthn-fallback-connector.html {
    proxy_pass http://web:5000/webauthn-fallback-connector.html;
  }

  location = /sso-connector.html {
    proxy_pass http://web:5000/sso-connector.html;
  }


  location /attachments/ {
    proxy_pass http://attachments:5000/;
  }

  location /api/ {
    proxy_pass http://api:5000/;
  }

  location /icons/ {
    proxy_pass http://icons:5000/;
  }

  location /notifications/ {
    proxy_pass http://notifications:5000/;
  }

  location /notifications/hub {
    proxy_pass http://notifications:5000/hub;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
  }

  location /events/ {
    proxy_pass http://events:5000/;
  }

  location /sso {
    proxy_pass http://sso:5000;
    include /etc/nginx/security-headers-ssl.conf;
    include /etc/nginx/security-headers.conf;
    add_header X-Frame-Options SAMEORIGIN;
  }

  location /identity {
    proxy_pass http://identity:5000;
    include /etc/nginx/security-headers-ssl.conf;
    include /etc/nginx/security-headers.conf;
    add_header X-Frame-Options SAMEORIGIN;
  }

  location /admin {
    proxy_pass http://admin:5000;
    include /etc/nginx/security-headers-ssl.conf;
    include /etc/nginx/security-headers.conf;
    add_header X-Frame-Options SAMEORIGIN;
  }

  location /portal {
    proxy_pass http://portal:5000;
    include /etc/nginx/security-headers-ssl.conf;
    include /etc/nginx/security-headers.conf;
    add_header X-Frame-Options SAMEORIGIN;
  }
}
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499 > UnLabrador Messages postés 66 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 26 janvier 2022
Modifié le 28 oct. 2021 à 15:32
Bonjour,

Comme déjà dit précédemment, les substitutions du noms de domaine ne sont pas cohérentes.

server {
    listen 8080 default_server;
    listen [::]:8080 default_server;
    server_name {adresse-serveur-bitwarden};
    return 301 https://{adresse-serveur-bitwarden}$request_uri;
} 


Puisque tu utilises {adresse-serveur-bitwarden} comme valeur pour
server_name
,
{adresse-serveur-bitwarden}
est le domaine / sous-domaine seul (sans port).

Donc
return 301 https://{adresse-serveur-bitwarden}$request_uri;
redirige vers le domaine/sous-domaine en HTTPS mais sans préciser le numéro de port, or que le port 8443 devrait apparaître.

Lorsque tu caches ton domaine (ce qui est OK) remplace "tondomaine.com" ou "sousdomaine.tondomaine.com" par "example.com" mais laisse les ports là où ils apparaissent.

---

Concernant le bloc :

server {
    listen 8443 ssl http2;
    listen [::]:8443 ssl http2;
    server_name {adresse-serveur-bitwarden};
    #...
}


Il s'agit de ton serveur bloc pour le port 8443, il est donc utilisé par défaut.
Il est donc normal que https://1.2.3.4:8443/ affiche Bitwarden (avec une erreur sur le certificat).

Pour éviter que cela se produise, tu dois définir un nouveau serveur sur le port 8443 qui sera mis en default_server et qui, selon ta préférence, affichera autre-chose ou fera une redirection https://1.2.3.4:8443/ -> https://example.com:8443/
0
UnLabrador Messages postés 66 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 26 janvier 2022 2 > avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024
Modifié le 1 nov. 2021 à 11:24
Bonjour,
Je pense que je me suis mal exprimé ...
{adresse-serveur-bitwarden} correspond toujours dans ce cas là à "password.domaine.fr"
J'accède à bitwarden par le port 80, le port 8443 ne me renvoie rien.
J'ai pris soin de ne remplacer que le sous domaine et je n'ai pas modifié les ports ni autre chose
Quand je tape mon adresse ip dans mon navigateur, j'accède à bitwarden par l'effet d'une redirection
Si je supprime ceci,
server {
listen 8080 default_server;
listen [::]:8080 default_server;
server_name password.domaine.fr;
return 301 https://password.domaine.fr$request_uri;
}

le serveur est toujours accessible via l'adresse ip mais sans redirection vers le sous domaine (donc avec une erreur sur le certificat).
Je souhaiterai pouvoir accéder à bitwarden seulement depuis le sous domaine.
Je précise que ce fichier a été généré automatiquement par bitwarden par le biais du fichier config.yml.

Merci d'avance et encore désolé de m'être mal exprimé
Cordialement,
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499 > UnLabrador Messages postés 66 Date d'inscription vendredi 1 mai 2020 Statut Membre Dernière intervention 26 janvier 2022
3 nov. 2021 à 15:58
Bonjour,

Il faut définir un "default_server" pour chaque port en écoute et ce default_server ne doit pas correspondre à Bitwarden, il doit s'agir d'un autre contenu ou une redirection.

Dans tes configurations, on voit les ports 8080 et 8443, et tu dis y accéder via les ports 80 et 443... Ou alors tu as un NAT et les ports publics/locaux ne correspondent pas ? On ne peut pas le deviner...

De plus, tu parles d'une redirection avec une erreur certificat, donc en HTTPS, mais le morceau de configuration que tu donnes avec cette redirection correspond à du HTTP (pas du HTTPS)...


Pour parvenir à tes fins, commence tout d'abord pas supprimer les "servers" correspondant à Bitwarden.
Configure le serveur de façon à ce que l'accès via l'adresse IP, que ce soit en HTTP ou en HTTPS, affiche quelque-chose (un message, une page vide, ...) mais sans redirection. Ces serveurs devraient être les "default_server" pour leurs ports respectifs.

Ensuite, il faut créer d'autres serveurs sur les mêmes ports, mais sans le "default_server", pour lesquels tu pourras préciser le server_name password.domaine.fr et afficher Bitwarden.
0