FHEM-Backend sperren - nur Zugriff per TabletUI ?

Begonnen von ToM_ToM, 02 März 2018, 15:33:22

Vorheriges Thema - Nächstes Thema

ToM_ToM

Hallo Zusammen,

ist es eig. möglich dass man irgendwie den Zugriff auf die FHEM-Backend-Seite sperrt und nur den Zugriff auf die FTUI-Oberfläche zulässt?
Meinetwegen auch so dass man das FHEM-Backend nur per einer Datei über WinSCP wieder aktivieren kann.

Hat da jemand eine Idee oder Lösung?

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

Amenophis86

Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

ToM_ToM

Guten Morgen.

Zitatallowed Device
Das ist nicht ganz das was ich suche.

Ich möchte viel mehr dass wenn jemand http://192.168.152.250:8083/fhem in den Browser eingibt, er gar nichts zurück bekommt.
Wenn man aber http://192.168.152.250:8083/fhem/ftui/index_tablet.html eingibt, soll die FTUI-Seite angezeigt werden.

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ToM_ToM

ZitatReverse Proxy aufsetzen.
Dazu hatte ich gestern auch was gelesen. Hatte jedoch die Hoffnung, es gäbe einen einfacheren Weg.
Aber da werde ich mich wohl mal damit auseinandersetzten müssen.

Vielen Dank! :)
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

Amenophis86

Ist eigentlich nicht schwer. Schau dir zum Beispiel mal das Video von haus-automatisierung an. Da ist zwar immer die Frage, wie aktuell es ist, aber finde das ist für den Einstieg um es sich mal anzuschauen ganz gut.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

ToM_ToM

ZitatIst eigentlich nicht schwer. Schau dir zum Beispiel mal das Video von haus-automatisierung an. Da ist zwar immer die Frage, wie aktuell es ist, aber finde das ist für den Einstieg um es sich mal anzuschauen ganz gut.

Der Vorschlag mit dem Video war gut. Habe mir das heute 3 mal reingezogen und versucht, nachzubauen. Aber irgendwie will das bei mir noch nicht so wie es soll. Da muss ich wohl nochmal deutlich mehr Gehirnschmalz hineinstecken.
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

ToM_ToM

#7
Hallo Zusammen,

ich habe mich nun mal intensiv durch das Thema ReverseProxy gekämpft, aber irgendwie will meine Seite nicht angezeigt werden.
Könnte mal bitte jemand drüber schauen?


Not Found

The requested URL /fhem was not found on this server.


Das ist meine Config:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined

ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On

<Location /fhem>
  # ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
  ProxyPass http://localhost:8085/fhem
  ProxyPassReverse http://localhost:8085/fhem
</Location>

<Directory />
RedirectPermanent / /fhem
</Directory>

<Proxy *>
AuthType Basic
AuthName "Password for FHEM Required"
AuthUserFile /etc/fhem-htpasswd
Require valid-user
Order deny,allow
Allow from all
</Proxy>

</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet


EDIT: Habe den Fehler gefunden. Ich muss natürlich den default symlink unter "/etc/apache2/sites-enabled" entfernen damit meins genommen wird.

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

CoolTux

Zitat von: ToM_ToM am 23 Juni 2018, 15:07:11
Hallo Zusammen,

ich habe mich nun mal intensiv durch das Thema ReverseProxy gekämpft, aber irgendwie will meine Seite nicht angezeigt werden.
Könnte mal bitte jemand drüber schauen?


Not Found

The requested URL /fhem was not found on this server.


Das ist meine Config:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined

ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On

<Location /fhem>
  # ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
  ProxyPass http://localhost:8085/fhem
  ProxyPassReverse http://localhost:8085/fhem
</Location>

<Directory />
RedirectPermanent / /fhem
</Directory>

<Proxy *>
AuthType Basic
AuthName "Password for FHEM Required"
AuthUserFile /etc/fhem-htpasswd
Require valid-user
Order deny,allow
Allow from all
</Proxy>

</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet


VG, Thomas

Läuft der Proxy auf dem selben Server wie FHEM?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ToM_ToM

ZitatLäuft der Proxy auf dem selben Server wie FHEM?
Hi Leon, da hast du wohl in der gleichen Zeit geantwortet wie ich meinen letzten Beitrag editiert habe. :)

Habe den Fehler gefunden. Ich muss natürlich den default symlink unter "/etc/apache2/sites-enabled" entfernen damit meins genommen wird.

VG und danke, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

CoolTux

Aber auch nur weil Du keinen Server angegeben hast.
Bei einem vhost gibt man immer noch den Hostname mit an.

Beispiel.
fhem01.local.lan


Aufruf wäre dann
http://fhem01.local.lan
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ToM_ToM

ZitatAber auch nur weil Du keinen Server angegeben hast.

Wie gebe ich den denn an?
Ich hatte oben noch ServerName $host stehen. Das hatte aber auch nicht funktioniert.
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

ToM_ToM

#12
Irgendwie bekomme ich zwar die Umleitung direkt auf FHEM hin, aber die Verweise auf die JS und CSS-Dateien innerhalb meiner FUTI funktionieren nicht.
Habe jetzt den ganzen Tag sämtliche Konstellationen per Try&Error durchgespielt.

Kann mal jemand drüber schauen der da Ahnung von hat?

Das ist meine Apache Config:


<VirtualHost *:80>
ServerName $host
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined

ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On

<Location /ftui>

          #Für Logpoll = Websocket die Aufrufe umleiten
          RewriteEngine On
          RewriteCond %{HTTP:Upgrade} =websocket [NC]
          RewriteRule /fhem(.*)           ws://localhost:8085/fhem$1 [P,L]
          RewriteCond %{HTTP:Upgrade} !=websocket [NC]
          RewriteRule /fhem(.*)           http://localhost:8085/fhem$1 [P,L]

  # ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
  ProxyPass http://localhost:8085/fhem/ftui/tablet_pagebutton_modern
  ProxyPassReverse http://localhost:8085/fhem/ftui/tablet_pagebutton_modern
  #ProxyHTMLEnable On

          # ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
          ProxyHTMLURLMap /        /fhem/
          ProxyHTMLURLMap /ftui/     /fhem/
</Location>

<Directory />
          RedirectPermanent / /ftui
    </Directory>

    <Proxy *>
        #AuthType Basic
        #AuthName "Password for FHEM Required"
        #AuthUserFile /etc/fhem-htpasswd
        #Require valid-user
        #Order deny,allow
        #Allow from all
    </Proxy>


</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet


Meine FTUI-Dateien liegen unter
/opt/fhem/www/tablet
und meine index sowie page files unter
/opt/fhem/www/tablet/tablet_pagebutton_modern

In meinem Index-File versuche ich die Scripte so zu laden:


<script type="text/javascript" src="/fhem/tablet/js/fhem-tablet-ui.js" defer></script>

<!-- Widget analogclock von http://ueberueck.com/index.php/fhem-hausautomatisierung/fhem-tablet-ui/ftui-widget-analogclock -->
<script type="text/javascript" src="/fhem/tablet/lib/analogclock.js"></script>

<!-- define your personal style here, it wont be overwritten  -->
<link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui-user2.css" />

<!-- WDTimer Widget Styles -->
<link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui-wdtimer.css" />

<!-- GMaps Widget Styles -->
<link rel="stylesheet" href="/fhem/tablet/css/ftui_gmaps.css" />


Es wird mir die Seite angezeigt, jedoch ohne korrekten Inhalt.
Wenn ich mir dann im Browser den Quelltext anzeigen lasse und auf den Link /fhem/tablet/js/fhem-tablet-ui.js klicke, lande ich auf folgender URL:
http://192.168.152.250/ftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuifhem/tablet/js/fhem-tablet-ui.js

Warum schreibt der dort so oft ftui hintereinander?

Der Opera meldet folgendes dazu:


This webpage has a redirect loop

The webpage at http://192.168.152.250/ftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuiftuifhem/tablet/js/fhem-tablet-ui.js has resulted in too many redirects. Clearing your cookies for this site or allowing third-party cookies may fix the problem. If not, it is possibly a server configuration issue and not a problem with your computer.


Jedoch habe ich langsam keine Ideen mehr was ich noch versuchen könnte.

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

ToM_ToM

So, ich habe es nach einer Anpassung der Apache-Config hinbekommen dass ich jetzt per Click im Quelltext zumindest mal auf die korrekten CSS/JS Dateien komme.
Somit scheinen diese korrekt geladen zu werden.

Neue Apache-Config


<VirtualHost *:80>
ServerName $host
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/fhem-ftui-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-ftui-access.log combined

ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On

<Location /ftui>

          #Für Logpoll = Websocket die Aufrufe umleiten
          #RewriteEngine On
          #RewriteCond %{HTTP:Upgrade} =websocket [NC]
          #RewriteRule /fhem(.*)           ws://localhost:8085/fhem$1 [P,L]
          #RewriteCond %{HTTP:Upgrade} !=websocket [NC]
          #RewriteRule /fhem(.*)           http://localhost:8085/fhem$1 [P,L]

  # ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
  ProxyPass http://localhost:8085/fhem/ftui/tablet_pagebutton_modern
  ProxyPassReverse http://localhost:8085/fhem/ftui/tablet_pagebutton_modern
  #ProxyHTMLEnable On

          # ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
          ProxyHTMLURLMap /        fhem/
          ProxyHTMLURLMap /ftui/     fhem/
</Location>

<Directory />
          RedirectPermanent / http://192.168.152.250:8085/
    </Directory>

    <Proxy *>
        #AuthType Basic
        #AuthName "Password for FHEM Required"
        #AuthUserFile /etc/fhem-htpasswd
        #Require valid-user
        #Order deny,allow
        #Allow from all
    </Proxy>


</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet



Der Inhalt wird nur nicht angezeigt. Also das was mit Pagebutton geladen werden müsste. Muss ich hier auch noch etwas anpassen?


<div data-type="pagebutton"
data-url="#content_home.html"
data-load="#content_home"
data-active-pattern=".*#content_home.html"
data-icon="fa-home"
data-background-icon="fa-square"
data-fade-duration="fast"
data-return-time="600"
data-on-background-color="lightblue"
data-off-background-color="grey"
data-off-color="black"
class="default big top-space">
</div>
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

ToM_ToM

Habe jetzt in der Webconsole vom Firefox folgende Meldung entdeckt wenn ich meine Seite per ReverseProxy aufrufe:

Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf http://192.168.152.250:8085/fhem/tablet/css/fhem-tablet-ui.css. (Grund: fehlendes Token 'x-requested-with' in CORS-Kopfzeile 'Access-Control-Allow-Headers' aus dem CORS-Preflight-Kanal).

das CORS Attribut ist aber bei mir gesetzt und das Token steht auf 'none'.  :o


defmod WEBtablet FHEMWEB 8085 global
attr WEBtablet CORS 1
attr WEBtablet csrfToken none
attr WEBtablet iconPath fhemSVG:Wohnungsplan:openautomation:default
attr WEBtablet longpoll websocket
attr WEBtablet plotfork 1
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8