Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon Alexa Plugin

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

    Hi Max,

    sorry an der Stelle muss ich passen (no pun intended). Da bin ich leider selbst nicht weitergekommen. Sicherlich wird dir aber in dem von dir verlinkten Thread eher geholfen, als hier.

    Grüße,
    Patrick

    Kommentar


      Alles klar, ich versuchs mal im Smartvisu Forum.
      Gruß, Max

      Kommentar


        Bei mir sieht das etwas anders aus.. Da vielleicht eine Muster-Config mit einigen Absicherungsmaßnahmen wie Clientzertifikaten, ausgeschlossenen SSL Ciphers, Ländererkennung etc. auch ganz spannend ist, anbei:

        Code:
        server {
            server_tokens off;
        
            if ($allowed_country = no) {
                return 403;
            }    
            if ($http_user_agent ~* LWP::Simple|BBBike) {
                return 403;
            }
            if ( $http_referer ~* (babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex) ) {
                 return 403;
            }
        
            listen 443 ssl default_server;
            server_name xxx.dyndns.de;
        
            ##
            # SSL
            ##
        
            ssl on;
            ssl_certificate /etc/letsencrypt/live/xxx.dyndns.de/fullchain.pem;
            ssl_certificate_key /etc/letsencrypt/live/xxx.dyndns.de/privkey.pem;
            ssl_session_cache builtin:1000 shared:SSL:10m;
            ssl_ciphers    HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!RC4;
        
            ssl_client_certificate /etc/ssl/ca/certs/ca.crt;
            ssl_crl /etc/ssl/ca/private/ca.crl;
            ssl_verify_client optional;
            # client certifcate creation: https://arcweb.co/securing-websites-nginx-and-client-side-certificate-authentication-linux/
            ssl_session_timeout 5m;
        
        
            ##
            # HSTS
            ##
        
            add_header Strict-Transport-Security "max-age 31536000; includeSubDomains";
        
            ##
            # global
            ##
        
            root /var/www/xxx.dyndns.de;
            index index.php index.htm index.html;
        
            location / {    
                if ($ssl_client_verify != SUCCESS) {
                        return 403;
                        break;
                }
        
                if ($http_upgrade = websocket) {
                    proxy_pass http://192.168.178.100:2424;
                }
                if ($http_upgrade != websocket) {
                     return 403;
                }
            }
        
            location = /privacy.htm { }    
        
            location /smartVISU {
                if ($ssl_client_verify != SUCCESS) {
                    return 403;
                    break;
                }
                #auth_basic "Restricted Area: smartVISU";
                #auth_basic_user_file /etc/nginx/.htpasswd;
        
                if ($allowed_country = no)  {
                        return 403;
                }
                proxy_pass https://192.168.178.100/smartVISU;
                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;
            }
        
            location /video {
                if ($ssl_client_verify != SUCCESS) {
                    return 403;
                    break;
                }
                #auth_basic "Restricted Area: FlurCam";
                #auth_basic_user_file /etc/nginx/.flurcam;
        
                if ($allowed_country = no)  {
                        return 403;
                }
                proxy_pass http://192.168.178.40/video;
                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_set_header Authorization "Basic xxxxxxxxxxxxxxxxxxxxxxx";
            }
        
            location /alexa {
                auth_basic "Restricted Area: Alexa";
                auth_basic_user_file /etc/nginx/.alexa;
        
                if ($allowed_country = no) {
                    return 403;
                }
                proxy_pass http://192.168.178.100:9000/;
                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;
            }    
        
            location /shng {
                auth_basic "Restricted Area: SmartHomeNG";
                auth_basic_user_file /etc/nginx/.shng;
        
                if ($allowed_country = no) {
                    return 403;
                }
                proxy_pass http://192.168.178.100:8888/;
                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;
            }
        }
        allowed country wird außerhalb ermittelt..

        wie man sieht leite ich neben alexa und den websocket verbindungen auch noch den videostream meiner kamera durch.. auch habe ich das network plugin über basic auth zugreifbar gemacht, um egigeozone zu nutzen.

        anstatt localhost würde ich lieber IMMER die IP im Netzwerk nehmen..
        Zuletzt geändert von psilo; 25.09.2017, 16:18.

        Kommentar


          achja: wenn mir noch jemand nen tipp geben könnte, wie ich das letsencrypt zertifikat ohne eine HTTP (ohne S) Connection auf den ReverseProxy automatisch renewen kann, immer her damit.. etwas nervig alle 3 Monate die Firewall auf den Raspi für HTTP zu öffnen und am Router ein Forwarding reinzuhängen.

          HTTPS hat letsencrypt irgendwie nicht gemocht

          Kommentar


            deine config inkl. dem obigen websocket support aber php-handling nicht veraendert
            Code:
            upstream php {    
              server localhost:9090;
            }    
            
            server {    
              listen 80 default_server;    
              server_name xyz.spdns.eu;    
              satisfy any;    
              allow 192.168.1.0/24;    
              deny all;    
              auth_basic "SmartVisu Anmeldung";    
              auth_basic_user_file /etc/nginx/htpasswd.smartvisu;    
              root /var/www/html;    
              index index.php index.html index.htm;    
            
              location / {      
              root /var/www/html;
              index index.html index.php;
              autoindex on;
              if ($http_upgrade = websocket) {
                proxy_pass http://localhost:2424;
                } 
              }  
            
              location ~ \.php$ {      
                include /etc/nginx/fastcgi_params;          
                fastcgi_pass 127.0.0.1:9090;          
                fastcgi_read_timeout 300;        
                fastcgi_index index.php;      
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
              }
            
             location /.well-known {              
                allow all;    
              }
            
            }  
             # Alexa  
            
            server {    
              listen 443 ssl default_server;    
              server_name xyz.spdns.eu;    
              access_log /var/log/nginx/alexa.log combined;    
              auth_basic "Alexa";    
              auth_basic_user_file /etc/nginx/htpasswd.alexa;    
              include /etc/nginx/include.d/common;      
            
              location / {        
                proxy_pass http://192.168.1.13:9000/;    
                proxy_set_header Host $host;        
                proxy_set_header X-Real-IP $remote_addr;        
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    
              }  
            }

            Kommentar


              hotzen wieso sollte er denn überhaupt Port 80 nutzen? sicherheitstechnisch eher weniger ideal..

              und wie soll das mit den websockets gehen, wenn du pauschal ne basic auth reinhaengst? die müsste ja auch auf die websocket "location" ziehen? bei mir wollte das nicht, deshalb habe ich jetzt (sinnvollerweise) die clientzertifikate am laufen.

              Kommentar


                ich wollte seine konfiguration nicht gross aendern.
                generell ist port 80 nur für lets-encrypt challenge-response notwendig und convenience zum weiterleiten auf https (wobei ggf. angreifbar durch ssl-strip o.ä.).

                websockets und http-auth funktionieren nach meiner (begrenzten) erfahrungen ganz gut zusammen. der browser verwendet hier in der regel einfach die gecachten basic-auth daten, man kriegt eigentlich nichts davon mit. aber gute FYI warum du die client-zertifikate einsetzt.

                bist du denn weitergekommen, Max2612 ?

                Kommentar


                  was meinst du mit "aber gute FYI warum du die client-zertifikate einsetzt."? "for your information" passt in den satz nicht wirklich?!

                  Kommentar


                    Zum Thema weiterkommen: https://knx-user-forum.de/forum/supp...se-proxy/page7

                    Er hatte ganz seltsame Effekte mit seiner DynDNS domain..

                    Und ich hatte meine Erfahrungen mit einer Installation auf Raspbian Stretch mal zusammengeschrieben: https://github.com/smarthomeNG/smart...s-ReverseProxy

                    Kommentar


                      Zitat von psilo Beitrag anzeigen
                      was meinst du mit "aber gute FYI warum du die client-zertifikate einsetzt."? "for your information" passt in den satz nicht wirklich?!
                      dein client Zertifikat Satz habe ich als FYI aufgefasst

                      Kommentar


                        Schönes Plugin aber wirklich von der Konfiguration extrem aufwändig. Habe es auch mit dem ReversProxy NGINX realisiert.
                        Habe einige Items gesteste "Markise ein/aus", "Licht an/aus", Szene an und wechseln funktioniert.
                        Eine Lösung für Szene aus habe ich nicht hinbekommen.

                        Den certbot musst du doch eh regelmäßig aufrufen um das Zertifikat zu erneuen
                        Habe ich mit nem Crontab gelöst

                        Wie sieht es mit den Kosten bei Amazon aus? Bin da nicht ganz schlau geworden ob der Service nach einem Jahr kostenpflichtig wird.

                        Meine Installation: VM Debian Buster SH NG 1.8.1, SmartVISU 3.0, KNX, DMX, 1-wire, Fortigate 30E IPS, VMware vSphere 6.7

                        Kommentar


                          Zitat von psilo Beitrag anzeigen
                          Zum Thema weiterkommen: https://knx-user-forum.de/forum/supp...se-proxy/page7

                          Er hatte ganz seltsame Effekte mit seiner DynDNS domain..
                          Hallo!

                          SELTSAM trifft es auf den Punkt...

                          Mein Router kann kein "DNS Loopback". Deshalb kann ich auch vom internen LAN meine Domain nicht erreichen.
                          So hat´s mir ein Bekannter erklärt, der Erfahrung mit Netzwerktechnik hat.

                          Da bei uns in einigen Wochen der Provider gewechselt wird und auf Glasfaser umgestellt wird, werde ich wahrscheinlich noch warten
                          mit dem Kauf eines neuen Router.

                          Gruß, Max


                          Kommentar


                            konfigurier dir halt in der windows hosts datei die domain auf deine internet ip, ähnlich dem was smai schon vorgeschlagen hat

                            https://www.windowspro.de/wolfgang-s...-10-bearbeiten

                            Die IP wird ja zugreifbar sein?! musst du dann zwar täglich ändern aber zum weiterentwickeln reichts ja

                            Kommentar


                              Hallo zusammen,

                              erstmal ein großes Danke und nen dicken Daumen hoch für das Plugin. Mit ein wenig Anlauf (US statt DE war der Trick) habe ich es heute zum Laufen bekommen.
                              Ein Frage an alle die schon länger damit "Spielen":
                              Wie geht Ihr mit der Steuerung von Rolläden um? Mir geht es primär um Zentralobjekte z.B. das ganze EG - an/aus is da irgendwie blöd.
                              Zweites Beispiel wäre das Garagentor.

                              Danke
                              Gunnar

                              Kommentar


                                Hallo,

                                ich habe gerade zufällig dies gelesen:
                                https://developer.amazon.com/blogs/p...it-Development
                                und
                                https://github.com/ewenchou/alexa-client

                                Vielleicht ist das für jemanden nützlich. Jedenfalls scheint die Einrichtung eines Skills einfacher zu sein, als das was zur Zeit nötig ist.

                                Gruß,
                                Hendrik

                                Kommentar

                                Lädt...
                                X