Aller au contenu

Ricola62

Membres
  • Compteur de contenus

    6
  • Inscription

  • Dernière visite

Messages posté(e)s par Ricola62

  1. Bonjour (je reviens sur ce sujet),

    J'utilise docker et un reverse proxy (nginx), je peux donc accéder à celui ci mais uniquement en http. Peut on vraiment pas utilisé le certificat nn.synology.me dans mon reverse proxy?

    Car effectivement si j’écoute sur le port 443 ssl avec nginx reverse proxy celui ci me demande les certificats.

  2. Bonjour,

    pour les besoins de l'app vuejs que j'ai créé dans docker, il me faut  des URL :

    Soit 1.  d'un dossier (appelons le "images") situé sur le NAS de sorte que quand je change les images cela impacte directement mon container docker. il me semble que cela n'est pas possible 😑

    Soit 2.  créer un shell qui lorsque le container is running l'import du dossier images se fasse automatiquement.

    Soit 3. avoir un serveur ftp imbriqué dans le container app.

    Soit 4. j'utilise postgresql et je peux stocker des images au format blob dedans et les appelé via mon APi postgREST.

    Avez vous des pistes?

    merci

     

  3. Le 22/09/2021 à 08:51, .Shad. a dit :

    @Ricola62 Généralement, dans ce genre de cas, les créateurs d'image intègrent effectivement un conteneur nginx en frontend dans leur image. Ce conteneur fait office de proxy inversé au sein de l'application, ainsi la personne qui utilise un proxy inversé en amont de ton application redirigera toutes ses requêtes vers un seul et unique port, par exemple 80.

    Avoir un proxy inversé dans ton application évite à l'utilisateur qui souhaite utiliser son proxy inversé de rediriger vers des ports différents suivant les blocs location.

    Tu peux t'inspirer de ce que fait Bitwarden (officiel), c'est exactement ce qu'ils utilisent :

    • Au sein de leur application :
    server {
      listen 8080 default_server;
      listen [::]:8080 default_server;
      server_name bitwarden.xxx.ovh;
      include /etc/nginx/security-headers.conf;
    
      set_real_ip_from 10.0.0.0/8;
      set_real_ip_from 172.16.0.0/12;
      set_real_ip_from 192.168.0.0/16;
      set_real_ip_from fd00:abcd::/32;
      real_ip_header X-Forwarded-For;
      real_ip_recursive on;
    
      location / {
        proxy_pass http://web:5000/;
        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://www.gravatar.com; child-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-src 'self' https://*.duosecurity.com https://*.duofederal.com; connect-src 'self' wss://bitwarden.aelnas.ovh https://api.pwnedpasswords.com https://twofactorauth.org; object-src 'self' blob:;";
        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.conf;
        proxy_hide_header Content-Type;
        add_header Content-Type $fido_content_type;
      }
    
      location = /.well-known/assetlinks.json {
        proxy_pass http://web:5000/assetlinks.json;
        include /etc/nginx/security-headers.conf;
        proxy_hide_header Content-Type;
        add_header Content-Type application/json;
      }
    
      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.conf;
        add_header X-Frame-Options SAMEORIGIN;
      }
    
      location /identity {
        proxy_pass http://identity:5000;
        include /etc/nginx/security-headers.conf;
        add_header X-Frame-Options SAMEORIGIN;
      }
    
      location /admin {
        proxy_pass http://admin:5000;
        include /etc/nginx/security-headers.conf;
        add_header X-Frame-Options SAMEORIGIN;
      }
    
      location /portal {
        proxy_pass http://portal:5000;
        include /etc/nginx/security-headers.conf;
        add_header X-Frame-Options SAMEORIGIN;
      }
    }
    

    Nginx écoute sur le port 8080 et renvoie vers différents conteneurs composants l'application suivant le path demandé.

    • Dans mon proxy inversé sur l'hôte :
    server {
        listen 443 ssl;
        listen [::]:443 ssl;
    
        server_name bitwarden.*;
    
        include /config/nginx/ssl.conf;
    
        client_max_body_size 128M;
    
        # enable for ldap auth, fill in ldap details in ldap.conf
        #include /config/nginx/ldap.conf;
    
        # enable for Authelia
        include /config/nginx/authelia-server.conf;
    
        location / {
            # enable the next two lines for http auth
            #auth_basic "Restricted";
            #auth_basic_user_file /config/nginx/.htpasswd;
    
            # enable the next two lines for ldap auth
            #auth_request /auth;
            #error_page 401 =200 /ldaplogin;
    
            # enable for Authelia
            include /config/nginx/authelia-location.conf;
    
            include /config/nginx/proxy.conf;
            include /config/nginx/resolver.conf;
            set $upstream_app bitwarden-nginx;
            set $upstream_port 8080;
            set $upstream_proto http;
            proxy_pass $upstream_proto://$upstream_app:$upstream_port;
    
        }

    Toutes mes requêtes sont redirigées vers le conteneur nginx sur le port d'écoute.
    Pas de double chiffrement SSL.

    Je ne sais pas si ça t'aide...

    merci bcp c'est exactement ce que je cherché comme réponse

  4. Le 20/09/2021 à 14:47, .Shad. a dit :

    @Ricola62 Dis-moi si je me trompe mais tu ne demandes pas comment mettre en place un proxy inversé, mais plutôt comment sécuriser l'accès à ton application. Quitte à devoir utiliser un proxy interne dans ton application, c'est ça ?

    Salut,

    effectivement, mais du coup je suis parti sur un reverse proxy dans docker. Cependant c'est pas convaincant, je n'arrive pas à accéder à mon container api. j'ai posté mon pb ici 

     

  5. Bonjour,

     j'ai une application vuejs qui utilise mon api backend via des appels axios. appvuejs et api sont situé sur le même réseau docker.

    Je ne veux pas que l'adresse soit en clair sur le navigateur par souci de sécurité.

    pour cela est ce que je dois configurer le reverse proxu au niveau du NAS? de docker? ou bien dans le container appvuejs?

    j'aimerai pas avoir exposer le port de l'api en externe lors de la navigation sur la vueapp, mais est ce vraiment jouable?

    rev_prox.png

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.