Bonjou
J'ai besoin de l'aide de cadors en conf NGINX (pas forcément lié à une marque de NAS, d'où l'endroit de mon message).
J'ai une instance docker Vaultwarden qui fonctionne parfaitement bien, avec son nom de domaine, en HTTP.
J'accède via : https://vault.mon-ndd.tld/
La console d'admin est dispo via : https://vault.mon-ndd.tld/admin
Sauf que j'aimerais cette dernière accessible uniquement aux IP LAN et VPN de mon réseau.
Précisions :
- le docker est sur mon NAS Synology
- j'utilise le reverse proxy de DSM (basé sur NGINX) pour faire mes redirections, ainsi que le contrôle d'accès via des profiles (c'est ce qui restreint l'accès à DSM aux seules IP LAN et VPN, ça ça fonctionne bien
)
- J'ai un script qui va insérer une ligne include pour insérer du code permettant l'utilisation des notifications websockets (ça ça fonctionne aussi très bien) :
- le contenu de ce fichier est généré par le script, et ça donne ceci :
- le port 882 est le port de Vaultwarden, le port 3012 est celui des Websocket Notifications
J'essaye de faire une location pour la page d'admin, et j'ai essayé ceci sans succès :
La page d'admin est toujours accessible depuis mon smartphone en connexion 4G...
Bref, voilà où j'en suis, j'aimerais un peu d'aide ^^
Ha, le bloc
Merci d'avance
J'ai besoin de l'aide de cadors en conf NGINX (pas forcément lié à une marque de NAS, d'où l'endroit de mon message).
J'ai une instance docker Vaultwarden qui fonctionne parfaitement bien, avec son nom de domaine, en HTTP.
J'accède via : https://vault.mon-ndd.tld/
La console d'admin est dispo via : https://vault.mon-ndd.tld/admin
Sauf que j'aimerais cette dernière accessible uniquement aux IP LAN et VPN de mon réseau.
Précisions :
- le docker est sur mon NAS Synology
- j'utilise le reverse proxy de DSM (basé sur NGINX) pour faire mes redirections, ainsi que le contrôle d'accès via des profiles (c'est ce qui restreint l'accès à DSM aux seules IP LAN et VPN, ça ça fonctionne bien

- J'ai un script qui va insérer une ligne include pour insérer du code permettant l'utilisation des notifications websockets (ça ça fonctionne aussi très bien) :
include /etc/nginx/websocket.locations.vaultwarden;
- le contenu de ce fichier est généré par le script, et ça donne ceci :
NGINX:
location /notifications/hub/negotiate {
proxy_http_version 1.1;
proxy_set_header "Connection" "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://192.168.2.200:882;
}
location /notifications/hub {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Forwarded $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://192.168.2.200:3012;
}
- le port 882 est le port de Vaultwarden, le port 3012 est celui des Websocket Notifications
J'essaye de faire une location pour la page d'admin, et j'ai essayé ceci sans succès :
NGINX:
location /admin {
# See: https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/
# auth_basic Private;
# auth_basic_user_file /path/to/htpasswd_file;
# For my Synology DSM, I created an Access Control Profiles to restrict access only to LAN and VPN IP adresses
# This Access Control Profile is a file in the /etc/nginx/conf.d folder
allow 192.168.2.0/24;
allow 192.168.10.0/24;
allow 192.168.11.0/24;
deny all;
proxy_http_version 1.1;
proxy_set_header "Connection" "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://192.168.2.200:882/admin;
}
La page d'admin est toujours accessible depuis mon smartphone en connexion 4G...

Bref, voilà où j'en suis, j'aimerais un peu d'aide ^^
Ha, le bloc
server {}
dans le server.ReverseProxy.conf
de NGINX :
NGINX:
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name vault.mon-ndd.tld ;
include /etc/nginx/websocket.locations.vaultwarden;
if ( $host !~ "(^vault.mon-ndd.tld$)" ) { return 404; }
include /usr/syno/etc/www/certificate/ReverseProxy_580f72c4-47a8-4d40-9d13-3712ab5fd22d/cert.conf*;
include /usr/syno/etc/security-profile/tls-profile/config/ReverseProxy_580f72c4-47a8-4d40-9d13-3712ab5fd22d.conf*;
add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload" always;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
location / {
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
proxy_intercept_errors off;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://192.168.2.200:882;
}
error_page 403 404 500 502 503 504 /dsm_error_page;
location /dsm_error_page {
internal;
root /usr/syno/share/nginx;
rewrite (.*) /error.html break;
allow all;
}
}
Merci d'avance
