Zugriff auf FHEM über das Interne!...

Begonnen von moonsorrox, 22 Oktober 2017, 12:19:47

Vorheriges Thema - Nächstes Thema

eisi

Leider geht das so nicht.
Hast PM.
Die Certs sind Hostname gebunden und weder pro IP noch pro Conf.
3 x Rasp mit fhem 5.8 | 1 Rasp mit Kodi |1x Cube | 15 x MaxLan Thermostate und 18 Fensterschalter | 30 WLAN Schalter Sonoff | Diverse Sensoren mit Arduino | Tablet mit FTUI 2.6

erdo_king

Ich antworte einmal öffentlich auf deine PM:

ZitatHallo mal eine Frage zu deiner Methode des Zugriffs, du hattest ja angeboten das ich dir eine PM schreiben könnte.

Kannst du mit einem Zertifikate mehrere IPs lokal in deinem Heimnetz erreichen, dann wäre das für mich interessant. Bei der anderen Variante von "eisi" ist es sehr aufwendig weil es mehrere Zertifikate benötigt und das mit der Provider IP funktioniert auch nicht da er die ja schon für meine erste DNS nutzt....

Ok wäre schon wenn du mir da weiter helfen könntest.

Hier mal mein Vorhaben:
- Ich benötige praktisch den Zugriff auf 2x SAT Receiver, weil ich des öfteren eben etwas zur Aufnahme programmiere (aber nicht ganz so wichtig)
- 2x IP Kamera
- Fhem - Port ist ja klar 8083, evtl. der Tablet Port, aber auch nicht ganz so wichtig
- Geofancy ist aber in Fhem integriert Port 8087 - hier ist eigentlich nicht notwendig eine Webseite zu haben sondern eben nur die Standort Mitteilung

Sollte das alles funktionieren..?

Vielen Dank für die Unterstützung



Erst einmal die Probleme aufdröseln:

  • Wie erreiche ich die Geräte im Backend. (Dein Hausnetz)
  • Wie konfiguriere ich den Apache das die Weiterleitungen funktionieren



Wie erreiche ich die Geräte im Backend.
Ich habe hier 2 Grafiken angefügt, "Lösung 1" zeigt hierbei die Lösung von eisi über die FritzBox, "Lösung 2" meinen Weg über ssh-Tunnel, wobei hierbei sämtliche Portfreigaben in der Fritzbox entfallen ;) Funktionieren tun beide Lösungen!




Wie konfiguriere ich den Apache das die Weiterleitungen funktionieren

Ich denke für dein Weiterleitungs-Problem gibt es mehrere Lösungsansätze:
- Eine Sub-Domain pro Weiterleitung (schönste Lösung, aber auch am aufwendigsten).
Beispiel:
# camera1.<meinedomain.de>
# camera2.<meinedomain.de>
# fhem.<meinedomain.de>

Hier benötigst du:

  • diverse DNS-Einträge (bzw. eine Catchall -> *.<meinedomain.de>).
  • eine vHost-Konfiguration pro Sub-Domain

- einen vHost, der alle Weiterleitungen per SubUrl handelt
Beispiel:
# fhem.<meinedomain.de>/camera1/
# fhem.<meinedomain.de>/camera2/
# fhem.<meinedomain.de>/fhem/ (oder du leitest fhem.<meinedomain.de>/ direkt auf fhem um)
# fhem.<meinedomain.de>/ (Vorschlag: hier eine billige HTML-Tabelle (auf dem Apache) anlegen, welche alle Links enthält, dann muss man nicht alle auswendig lernen.)

Hier benötigst du:

  • eine vHost-Konfiguration mit mehreren Weiterleitungen

Beispiel-Konfiguration: (Lösung 2)
Für Lösung 1 muss die IP/DNS der FritzBox eingetragen werden ...

## camera1
ProxyPass /camera1 http://127.0.0.1:9000/
ProxyPassReverse /camera1 http://127.0.0.1:9000/

## camera2
ProxyPass /camera2 http://127.0.0.1:9001/
ProxyPassReverse /camera2 http://127.0.0.1:9001/

## fhem (wichtig ist, das die URL / am Ende kommt!)
ProxyPass / http://127.0.0.1:8083/fhem/
ProxyPassReverse / http://127.0.0.1:8083/fhem/



erdo_king

Ich veröffentliche noch einmal die PM: (möglicherweise freuen sich noch andere ;) )

Zitat von: moonsorrox am 02 November 2017, 23:05:33
Jetzt wird's echt kompliziert.
Also Subdomains oder auch DNS Adressen kann ich jede Menge bei meinem Provider anlegen, dass ist nicht das Problem.

Um das alles mal zu testen muss ich mal schauen wie und was ich in welcher Reihenfolge wo machen muss...  :-\

Diese Variante würde ich evtl. umsetzen...
Eine Sub-Domain pro Weiterleitung (schönste Lösung, aber auch am aufwendigsten).

eine vHost-Konfiguration pro Sub-Domain - muss eine conf Datei sein die wohin muss.?




Bei Apache (Debian), liegen vHost-Konfigurationen unter /etc/apache/sites-available/ und werden in das Verzeichnis /etc/apache/sites-enabled/ verlinkt.
Hierfür gibt es das Tool a2ensite (welches ich komplett ignoriere! meine Konfig liegt direkt im sites-enabled Verzeichnis)

Hier ist ein Beispiel einer meiner sub-domains:
webproxy:/etc/apache2/sites-enabled# cat nextcloud.<meineDomain.de>.conf
<VirtualHost *:443>

  ServerName nextcloud.<meineDomain.de>
  DocumentRoot /var/www
  ServerAdmin admin@example.com

  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/live/nextcloud.<meineDomain.de>/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/nextcloud.<meineDomain.de>/privkey.pem

  ProxyRequests Off
  ProxyVia On

## Weiterleitung von / auf /nextcloud/
#  RewriteEngine on
#  RewriteCond %{REQUEST_URI} "^/$"
#  RewriteRule ^(.*) https://%{HTTP_HOST}/nextcloud/$


  ## nextCloud
   ProxyPass / http://172.16.1.1/nextcloud/
   ProxyPassReverse / http://172.16.1.1/nextcloud/


  ## Logging, always a good idea.
  LogLevel info
  ErrorLog /var/log/apache2/nextcloud.<meineDomain.de>-error_log
  CustomLog /var/log/apache2/nextcloud.<meineDomain.de>-request_log combined

</VirtualHost>




Tipp: alles auf 443/https umleiten:
Klappt am Besten wenn es nur einen vHost auf port 80 gibt:

webproxy:/etc/apache2/sites-enabled# cat 000-rewrite-ssl.conf
<VirtualHost *:80>
   ServerName HierIstEgalWasStehtSolangeNurEinVhostAufPort80.<meineDomain.de>

   ServerAdmin webmaster@localhost
   DocumentRoot /var/www-public

   <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
   </IfModule>

</VirtualHost>




Bitte die IP's, Subdomains und <meineDomain.de> ersetzen