Upgrade 5.0 --> 5.1 Webfront Probleme mit Reverse Proxy

Mit der neusten Beta funktioniert es.
Vielen Dank für den Fix.

Ich benutze den Reverse Proxy der Synology, da steckt squid dahinter, hat auch jemand die Anpassungen für den Squid parat?

Da häng ich mich jetzt auch mit dran, squid auf pfsense. Ich bin nicht komplett doof aber das geht nun etwas zu weit. Alle anderen Web Interfaces hinter dem reverse Proxy funktionieren und sogar IPS KONSOLE geht noch, nur das webfront nicht.
Versteh die Logik nicht dass man nach einem IPS Upgrade an zeuchs herumschrauben soll was bis dahin problemlos geklappt hat.
Neues tablet ist auch fällig, kommt jetzt eine Meldung braucht IOS 10 (intern). So n kaas.

Edit, war noch nie ein Fan vom Connect Dienst aber der zeigt das gleiche Fehlerbild. Will ein Passwort aber das was gesetzt ist geht nicht.

Gesendet von meinem SM-G975F mit Tapatalk

Die Welt und die Technik schreitet voran. :stuck_out_tongue:

Das WebFront nutzt jetzt Websocket zur Übertragung der Änderungen.
Dein Reverse Proxy muss WebSockets unterstützen, ansonsten bekommst Du das Webfront nicht über den Reverse Proxy.
Die erste Hürde ist die Passworteingabe, welche ohne Websocket Support nicht funktioniert.

Ich kenne mich mit pfSense nicht aus. Aber die Google Stichwortsuche wären „pfSense proxy with websocket support“.
Da musst Du Dich mal selber durchwühlen, falls Dir hier kein anderer pfSense User genau sagen kann, was wo wie konfiguriert werden muss.

Websocket Support wird von immer mehr Frontends benötigt. Daher bin ich guter Dinge, dass dies auch mit pfSense möglich sein sollte.

Schau mal hier: https://mlohr.com/websockets-for-synology-dsm/

Hallo Zusammen,

Ich habe das gleiche Problem mit dem Safari auf dem iPad und dem iPhone.
Mit dem Firefox unter Windows funktioniert die Anmeldung.

Ich nutze jetzt IP Symcon 5.1 vom 23.05.2019

Nutzt du denn einen Reverse Proxy? Denn in diesem Thema geht es genau darum.

paresy

Da ich nicht weiß was ein reverse Proxy ist … vermutlich eher nicht.

Hallo Uwe,

Soweit war ich dann auch schon aber das ist bei PfSense nicht so einfach wie beim Synology. Viele posts gehen auf den HAProxy ein und auf nginx. Was ich zu Squid gefunden habe ist alles auf ACLs bezogen und so weit bin ich mit Squid nicht vertraut, bin nur ein interessierter user und kein super nerd.
Hab jetzt auf https und NAT umgestellt. Brauch zum glück den port 443 nicht für anderes zeuchs…

Das ganze ist allerdings ein Problem beim vermarkten. So ein Schneider Nero (Fibaro) Home Hub da geb ich meine e-mail adresse an, mach einen account und das funktioniert. Halt überhaupt nicht mehr wenn das internet mal weg ist aber das kümmert ja erst mal keinen.

Gruß

Heinz

Hallo Heinz,

ich brauche auf jeden Fall einen Reverse Proxy, da ich mehrere Frontends von Extern bedienen möchte, natürlich als Heimanwender nur eine öffentliche IP habe, und von der Arbeit nur mit HTTP(S) über Port 80/443 raus komme.

Ich habe in den letzten Jahren schon mal öfters das Firewall Produkt gewechselt, da ich genau auf solche Probleme gestoßen bin.
Websockets war ein solches Thema. Eingebauter Letsencrypt Support z.B. ein anderes Thema…

Manchmal muss man zweigleisig fahren, bis eine benötigte Funktionalität in dem eingesetzten Firewall Produkt nachgepflegt wurde.
Der Reverse Proxy kann dann z.b. eine Sophos UTM mit HomeUse Lizenz machen, oder Du verwendest ein fertiges Docker Image von Squid, Apache,…

Wenn der Reverse Proxy in der pfSense keinen WebSocket Support hat, dann leite 443 auf einen anderen ReverseProxy z.B. auf einer virtuellen Maschine in Deinem internen Netzwerk weiter. Wenn pfSense dann soweit ist, kannst Du das wieder zurück bauen.

Schau Dir doch mal als Alternative die Sophos XG Firewall an. Da gibt es auch eine kostenlose HomeUse Lizenz und die hat WebSocket Support. Ich glaube das Bedienkonzept der Sophos XG ist ähnlich zu pfSense.

Sophos UTM ist ein anderes Firewallprodukt und kann auch Letsencrypt Zertifikate selbst verwalten.
Die kostenlose HomeLizenz hat aber leider eine etwas restriktive Begrenzung an internen IP Adressen.

Da kann es in einem gut gefüllten SmartHome eng werden, wenn die Sophos UTM als alleiniges Gateway LAN - Internet fungiert.

Hallo Uwe,

Ich schau mir Sophos mal an. Allerdings habe ich jetzt 4 sites + eine mobile SPS zusammen VPN’t, da will ich nicht unbedingt wechseln. Das sind wieder wochen arbeit bis der ganze scheiß funktioniert. Wenn wenigstens das Connect vernünftig gehen würde aber das ist auch nicht ganz ohne, da ging auch irgendwas nicht. Ich glaub die webcams.

Gruß

Heinz

Gibt es irgendwo einen step by step guide für den Reverse Proxy mit apache (am besten Ubuntu) oder nginx, unter Berücksichtigung der Websocket anpassen.

Ich habe in meine „sites-enabled“ config den Socket rewrite eingefügt:



<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        SSLProxyEngine on
        SSLEngine On
        # Set the path to SSL certificate
        # Usage: SSLCertificateFile /path/to/cert.pem
        ProxyPreserveHost On


        RewriteEngine On
        RewriteCond %{HTTP:Upgrade} =websocket [NC]
        RewriteRule /(.*)           ws://x.x.x.x:443/$1 [P,L]
        RewriteCond %{HTTP:Upgrade} !=websocket [NC]
        RewriteRule /(.*)           https://x.x.x.x:443/$1 [P,L]


        ProxyPass / https://x.x.x.x:443/
        ProxyPassReverse / https://x.x.x.x:443/
        ServerName myname.name.com
        Include /etc/letsencrypt/options-ssl-apache.conf
        ServerAlias myalias.name.com
        SSLCertificateFile <path to fullchain>/fullchain.pem
        SSLCertificateKeyFile <path to key>/privkey.pem
</VirtualHost>




(Namen, Pfade und IP Adressen sind natürlich hier „anonymisiert“, auf dem Server aber richtig.

Bekomme im apache access log aber immer den folgenden Fehler:

[27/Jul/2019:08:59:02 +0000] „GET /api/wfc/12579 HTTP/1.1“ 502 484 „-“ „Mozilla/5.0 (iPad; CPU OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/15E148 Safari/604.1“

und zwar bei der Passwortabfrage, also dem Moment, wo Websocket benutzt wird. Der Zugriff auf die Webfront login Seite geht ohne Probleme, ebenso lief es (aus bekannten Gründen) auch mit IPS 5.0. Irgendwas passt also mit Websocket nicht.

Ich hatte mit 5.1 und nginx als Reverse Proxy auch das Problem, was ich aber durch folgende Zeilen in der nginx Konfiguration lösen konnte:

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";

Jetzt nach Upgrade auf 5.2-4062 (egal ob Windows oder RPi) klappt aber leider weder Login in das Web Front noch in die Web Console. Auf der Web Console bekomme ich sogar kurz folgende kryptische Fehlermeldung. Was muss ich tun bzw. wie kann ich das Problem weiter eingrenzen?
27-08-_2019_15-48-46.png

Wie sieht denn der Rest deiner nginx Konfig aus?

Seit der 5.2 nutzt auch die Konsole WebSokets. Somit musst du den /api/ Entpunkt auch dafür freischalten. Und schau mal im Changelog… dort haben sich einige Pfade geändert.

paresy

…nginx Reverse Proxy ist eigentlich straight forward konfiguriert:

server {
        server_name symcon-xxxxxxxxx.org;

        listen 443 ssl;
        include snippets/certbot.conf;

        access_log /var/log/nginx/symcon-xxxxxxxxx.access.log;
        location / {
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_connect_timeout 10s;
                proxy_read_timeout 90;

                proxy_pass      http://xx.xx.xx.xx:3777;
                proxy_redirect  http://xx.xx.xx.xx:3777 https://symcon-xxxxxxxxx.org;
        }
}

Im nginx error.log auch nichts auffälliges sichtbar.

Kannst du in deinem Browser mal die Entwicklerkonsole auf machen und schauen, woher diese Fehlermeldung direkt kommt? Dort solltest du über den Netzwerk-Reiter an die Informationen kommen.

paresy

…wirklich sonderbar - nichts geändert und trotzdem geht es jetzt wieder mit dem Reverse Proxy. Fehler kann ich leider nicht mehr nachstellen und Loggen. Danke trotzdem!

Bei mir geht das nur im internen Netzwerk. Von extern kommt weiterhin die 401 Meldung

Hier meine nginx/letsencrypt Docker Konfiguration:


server {
        listen 443 ssl;

        root /config/www;
        index index.html index.htm index.php;

        server_name xxxxxxx;

        include /config/nginx/ssl.conf;

        client_max_body_size 0;

location / {
    proxy_pass http://xxxxxx:3777;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Origin "";
}
}

Hab ich noch etwas übersehen?

Keiner eine Idee, was ich noch falsch mache oder vergessen habe?

Aktuell nicht. Hast du mal geschaut, ob beim 401 irgendwie in den Browser Entwicklertools mehr Informationen kommen? Oder mal im Nginx Log geschaut?

paresy