Ankündigung

Einklappen
Keine Ankündigung bisher.

EDOMI über nginx-reverse proxy - mit Nginx Proxy Manager?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Hoi Philipp

    Zitat von philipp900 Beitrag anzeigen
    Ich verwende zwar nicht den Proxy Manger aber nginx.
    Um alles über https Port 443 laufen lassen zu können ohne dafür Edomi anzupassen, ändere ich mittels sub_filter den Connection-String des javascript files der Visu bei Auslieferung über den Proxy.
    Das ist interessant! Ich muss mal wieder meine Experimente aufnehmen, nginx direkt in die Container zu integrieren. Würde das Leben doch start vereinfachen vermutlich...
    Kind regards,
    Yves

    Kommentar


      #17
      Zitat von philipp900 Beitrag anzeigen
      Um alles über https Port 443 laufen lassen zu können ohne dafür Edomi anzupassen, ändere ich mittels sub_filter den Connection-String des javascript files der Visu bei Auslieferung über den Proxy.
      Sehr coole Sache philipp900 !!!

      Das musste ich doch direkt auch mal ausprobieren und es funktioniert einwandfrei.
      Abgesichert mit Client-Zertifikat-Authentifizierung.

      Für die nicht so Linux-affinen, kann ich XCA zur Erstellung einer CA und Verwaltung von eigenen TLS-Zertifikaten empfehlen.


      Die nginx-Konfiguration sieht nun so aus, gibt es hier evtl. noch Verbesserungen?

      Code:
      server {
      listen 443 ssl http2;
      
      server_name edomi.example.net;
      
      access_log /var/log/nginx/edomi.example.net.access.log;
      error_log /var/log/nginx/edomi.example.net.error.log;
      
      
      if ($ssl_client_verify != SUCCESS) {
      return 403;
      }
      
      location / {
      proxy_pass http://x.x.x.x/;
      }
      
      location /visu/ {
      sub_filter "WebSocket(serverProtocol+'://'+serverIp+':'+serverPort)" "WebSocket(serverProtocol+'://'+serverIp+':443/wss')";
      sub_filter_types application/javascript;
      sub_filter_once off;
      proxy_pass http://x.x.x.x/visu/;
      }
      
      location /wss {
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_pass http://x.x.x.x:8080;
      }
      
      location /admin/ {
      proxy_pass http://x.x.x.x/admin/;
      }
      
      if ($scheme != "https") {
      return 301 https://$host$request_uri;
      }
      
      ssl_certificate /etc/letsencrypt/live/edomi.example.net/fullchain.pem; # managed by Certbot
      ssl_certificate_key /etc/letsencrypt/live/edomi.example.net/privkey.pem; # managed by Certbot
      
      ssl_client_certificate /etc/ca-certificates/Home_CA.pem;
      ssl_crl /etc/ca-certificates/Home_CA_crl.pem;
      ssl_verify_client optional;
      }
      Zuletzt geändert von Glotzkowski; 24.01.2022, 17:39.

      Kommentar


        #18
        Ich bin dabei, das in die Docker-Version einzubauen. Via http:// funktioniert das schon wunderbar, es braucht nur den Port für den http-Zugriff und sowohl Admin-Backend als auch Visu funktionieren damit hervorragend. Muss nun schauen, ob/wie ich das am schlauesten auch für https:// mache...
        Kind regards,
        Yves

        Kommentar


          #19
          Hallo zusammen,
          ich bin schon lange am Versuch einen NGINX Reverse Proxy für Edomi einzurichten.
          Leider bin ich hier ein absoluter Anfänger :-(
          Ich habe es nun geschafft eine funktionierende NGINX Installation incl. HTTPS über Letsencrypt zu erstellen.
          Hier meine Configuration:
          Code:
          server {
          
          root /var/www/cloud.domain.net/html;
          index index.html index.htm index.nginx-debian.html;
          listen [::]:443 ssl ipv6only=on; # managed by Certbot
          listen 443 ssl http2; # managed by Certbot
          
          server_name cloud.domain.net;
          
          access_log /var/log/nginx/cloud.domain.net.access.log;
          error_log /var/log/nginx/cloud.domain.net.error.log;
          
          #if ($ssl_client_verify != SUCCESS) {
          #return 403;
          #}
          
          location / {
          proxy_pass http://10.1.1.57/;
          }
          
          location /visu/ {
          sub_filter "WebSocket(serverProtocol+'://'+serverIp+':'+serverPort)" "WebSocket(serverProtocol+'://'+serverIp+':443/wss')";
          sub_filter_types application/javascript;
          sub_filter_once off;
          proxy_pass http://10.1.1.57/visu/;
          }
          
          location /wss {
          proxy_http_version 1.0;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
          proxy_pass http://10.1.1.57:8080;
          }
          
          location /admin/ {
          proxy_pass http://10.1.1.57/admin/;
          }
          
          if ($scheme != "https") {
          return 301 https://$host$request_uri;
          }
          
          ssl_certificate /etc/letsencrypt/live/cloud.domain.net/fullchain.pem; # managed by Certbot
          ssl_certificate_key /etc/letsencrypt/live/cloud.domain.net/privkey.pem; # managed by Certbot
          include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
          ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
          
          }
          Ich habe nun probiert die Inhalte von Glotzkowski in meine Konfiguration einzufügen.
          Die Admin Oberfläche kann ich nun erreichen.
          Bei der Visu kommt nur der rote Edomi Kreis :-(


          Hier noch den NGINX Error Log:
          Code:
          2022/01/25 10:53:30 [error] 2175#2175: *21 upstream timed out (110: Connection timed out) while reading upstream, client: 136.228.208.126, server: cloud.domain.net, request: "GET /wss HTTP/1.1", upstream: "http://10.1.1.57:8080/wss", host: "cloud.kuttruff.net"
          Vielen Dank und viele Grüsse
          Eric
          Zuletzt geändert von eric4980; 25.01.2022, 13:54.

          Kommentar


            #20
            Hast Du ne Firewall zwischen nginx und edomi?
            Port 8080 dort freigegeben?

            Es ist übrigens nicht ungefährlich edomi ohne Authentifizierung so aus dem Internet erreichbar zu machen!
            Ich komme auf Deine Admin-Schnittstelle, kann mich zwar nicht anmelden und komme nicht rein aber die Tür wäre schonmal da.
            Zuletzt geändert von Glotzkowski; 25.01.2022, 12:55.

            Kommentar


              #21
              Zitat von Glotzkowski Beitrag anzeigen
              Hast Du ne Firewall zwischen nginx und edomi?
              Port 8080 dort freigegeben?
              Nein, habe ich nicht, beides läuft in Proxmox in je einer VM
              Zitat von Glotzkowski Beitrag anzeigen
              Es ist übrigens nicht ungefährlich edomi ohne Authentifizierung so aus dem Internet erreichbar zu machen!
              Ich komme auf Deine Admin-Schnittstelle, kann mich zwar nicht anmelden und komme nicht rein aber die Tür wäre schonmal da.
              Da stimme ich dir absolut zu, daher möchte ich den Zugriff ja auch über https realisieren :-)

              Was wären denn noch weitere Massnahmen um abzusichern?

              Viele Grüsse
              Eric

              Kommentar


                #22
                Zitat von eric4980 Beitrag anzeigen
                Da stimme ich dir absolut zu, daher möchte ich den Zugriff ja auch über https realisieren :-)
                Das würde "nur" die Kommunikation verschlüsseln, einbrechen könnte man trotzdem.

                Zitat von eric4980 Beitrag anzeigen
                Was wären denn noch weitere Massnahmen um abzusichern?
                Ist in der o.g. Konfiguration bereits enthalten.
                Die letzten drei Zeilen im nginx erlauben die Anmeldung an/den Aufruf der Seite nur, wenn man in Besitz eines korrekten Zertifikates ist, welches von der CA ausgestellt wurde und nicht auf der CRL gelistet ist.

                Kommentar


                  #23
                  Zitat von Glotzkowski Beitrag anzeigen
                  Das würde "nur" die Kommunikation verschlüsseln, einbrechen könnte man trotzdem.


                  Ist in der o.g. Konfiguration bereits enthalten.
                  Die letzten drei Zeilen im nginx erlauben die Anmeldung an/den Aufruf der Seite nur, wenn man in Besitz eines korrekten Zertifikates ist, welches von der CA ausgestellt wurde und nicht auf der CRL gelistet ist.
                  Danke für den Tipp, das werde ich mal testen, den Server habe ich natürlich nur für die Tests freigegeben :-) Ist jetzt nicht mehr erreichbar.

                  Konntest du dir meine Konfiguration anschauen? Passt die ansonsten?

                  Viele Grüsse
                  Eric

                  Kommentar


                    #24
                    Zitat von Glotzkowski Beitrag anzeigen
                    Hast Du ne Firewall zwischen nginx und edomi?
                    Port 8080 dort freigegeben?
                    Ich habe nun nochmals per nmap geprüft ob der port 8080 von meinem Server wo der Reverse Proxy(Nginx) läuft(10.1.1.58) auf dem Edomi-Server(10.1.1.57) erreichbar ist.
                    2022-01-26_13-53-50.jpg
                    Daran schein es nicht zu liegen...
                    Wie gesagt ist die Admin Oberfläche erreichbar, bei der Visu-Seite kommt nur der Rote Kreis...

                    Hat jemand vielleicht noch einen Tipp?

                    VG Eric

                    Kommentar


                      #25
                      Zitat von eric4980 Beitrag anzeigen
                      Wie gesagt ist die Admin Oberfläche erreichbar
                      Die Admin-Seite arbeitet nicht mit WS, daher klappt das.

                      Du kannst mal die Entwickler-Console vom Browser öffnen, wenn Du die Visu aufrufst, mit den Ausgaben kann man evtl. etwas herausfinden.

                      Kommentar


                        #26
                        Unter Konsole kommt dieser Eintrag:
                        2022-01-26_16-19-01.png
                        Hilft das weiter?

                        Kommentar


                          #27
                          Probiers mal mit einem = hier: location =/wss

                          Kommentar


                            #28
                            Ach ich dachte, dass das ein Schreibfehler war?!
                            Bei mir klappt es mit und ohne dem Gleichheitszeichen...

                            Kanns Du denn im nginx-Log sehen, ob die wss-Verbindung angesprochen wird?
                            Zuletzt geändert von Glotzkowski; 26.01.2022, 19:46.

                            Kommentar


                              #29
                              Hi

                              Zitat von Glotzkowski Beitrag anzeigen
                              Ach ich dachte, dass das ein Schreibfehler war?!
                              Bei mir klappt es mit und ohne dem Gleichheitszeichen...
                              Das kann ich mir nicht vorstellen, dann hast Du ein anderes Setup...
                              Kind regards,
                              Yves

                              Kommentar


                                #30
                                Inwiefern meinst Du anderes Setup?
                                Die nginx-Konfiguration ist hier gepostet, gerade nochmal mit beiden Versionen getestet, nginx wurde auch neu gestartet und nicht nur die Konfiguration neu geladen.

                                Kommentar

                                Lädt...
                                X