FHEM absichern – Clever mit Rev3rse Proxy

Von | Januar 28, 2024
FHEM absichern
FHEM absichern

FHEM absichern ist sehr wichtig egal ob Sie auf die FHEM Oberfläche intern (Heimnetzwerk) oder von außen (Internet) zugreifen. Die Weboberfläche müssen Sie mit Benutzername und Password absichern. So ist jeder Zugriff auf die FHEM Oberfläche mit Browser, Smartphone oder Tablett gesichert. Dazu muss der Benutzername und das Kennwort Base64 codiert werden. Unter Raspberry Pi OS muss folgendes im Terminal eingegeben werden:

FHEM Webzugriff absichern

echo -n benutzername:passwort | base64

Das Ergebnis ist in Form YmVudXR6ZXJuYW1lOnBhc3N3b3J0, dann müssen Sie diese Zeichenkette in die FHEM Befehlsleiste eingeben. Einfacher geht auch mit online Encoder unter base64encode.

attr WEB basicAuth YmVudXR6ZXJuYW1lOnBhc3N3b3J0
####################################################
attr WEBphone basicAuth YmVudXR6ZXJuYW1lOnBhc3N3b3J0
####################################################
attr WEBtablet basicAuth YmVudXR6ZXJuYW1lOnBhc3N3b3J0
####################################################
mit "Save" speichern und "shutdown restart" ausführen

[eapi keyword=“Smart Home mit FHEM“ picture_resolution=large picture_size=medium badge_1=“Empfehlung:“]

FHEM absichern mit Reverse Proxy

Der Reverse Proxy holt Ressourcen für einen externen Client (Zugriff z.B. von Außen) von einem oder mehreren internen Servern. Die wahre Adresse des internen Zielsystems bleibt dem externen Client verborgen. Das unterscheidet ihn vom typischen Proxy, der mehreren Clients eines internen (in sich abgeschlossenen) Netzes den Zugriff auf ein externes Netz gewährt (Auszug Wikipedia).

Was wollen wir damit genau tun:

  • Apache Server installieren.
  • Reverse Proxy einrichten.
  • DynDNS einrichten und Zugriff über Internet mit eindeutigen Namen sichern, unabhängig davon ob die IP Adresse von DSL Anschluss sich geändert hat (zum Beispiel https://myfhem.dyndns.info).
  • Letsencrypt Zertifikat installieren, so ist SSL Zugriff von Außen zertifiziert und keine Browser oder App macht uns Probleme.

Apache Server installieren

Bevor Sie anfangen, sollten Sie ihren Raspberry Pi auf den neusten stand bringen. Das erledigen Sie über das Terminal (Windows Benutzer mit Putty SSH Client) mit folgenden Befehlen:

sudo apt-get update
sudo apt-get upgrade

Jetzt installieren wir Apache 2 Webserver.

sudo apt install apache2
#########################
Als nächstes werden die benötigten Rechte angelegt.
#########################
sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 770 /var/www/html/

Jetzt ist schon möglich Apache Webserver zu testen, er meldet sich unter: http://Raspberry Pi IP Adresse.

Apache2 Webserver
FHEM absichern – Apache 2 Startseite

FHEM absichern mit Reverse Proxy

Unter Raspberry Pi OS wird das Proxy Modul direkt mit der Installation des Apache Webserver mit installiert. Verwendet man eine andere Distribution muss dieses entsprechend nachinstalliert werden. Jetzt aktivieren wir Proxy Modul mit:

sudo a2enmod proxy proxy_http
#######################################
Wenn nicht vorhanden installieren mit:
#######################################
sudo apt-get install libapache2-mod-proxy-html

Als nächstes legt man und aktiviert eine default Konfigurationen für das Proxy Modul an.

sudo nano /etc/apache2/conf-available/proxy_default.conf
#########################################
Tragen wir ein:
#########################################
<IfModule mod_proxy.c>
  ProxyRequests Off
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>
</IfModule>
##########################################
Diese Konfiguration wird jetzt aktiviert.
##########################################
sudo a2enconf proxy_default

Eine neue Konfigurationsdatei fhem.conf anlegen und aktivieren:

sudo nano /etc/apache2/conf-available/fhem.conf
##################################
Tragen wir ein:
##################################
<IfModule mod_proxy.c>
  <Location /fhem>
    ProxyPass http://localhost:8083/fhem
    ProxyPassReverse http://localhost:8083/fhem
  </Location>
</IfModule>
##################################
Aktivieren mit:
##################################
sudo a2enconf fhem
##################################
Apache Webserver neustarten
##################################
sudo service apache2 restart

FHEM absichern DynDNS einrichten

Bis jetzt haben wir die FHEM Oberfläche mit Benutzername und Passwort gesichert, Apache Webserver installiert und FHEM absichern mit Reverse Proxy durchgeführt. Bleibt uns DynDNS und Letsencrypt einrichten. Zuerst geht weiter mit DynDNS, hier ist eine Liste mit verschiedenen Anbieter. Einfach gewünschte Anbieter (unsere Empfehlung spdyn.de) auswählen und automatische DynDNS Aktualisierung gemäß Anbieter Anleitung durchführen.

Fritzbox DynDNS
Fritzbox DynDNS einrichten

Der beste Weg geht über die Fritzbox selbst, denn AVM bietet DynDNS unter dem Namen MyFritz an. Das ist zuverlässig, aber nicht jeder hat Fritzbox und andere möchte die AVM eigene Angebot für DynDNS nicht nutzen.

FHEM absichern mit Letsencrypt

Die Letsencrypt Zertifikate sind kostenlos. Der Anbieter hat die Beantragung automatisiert. Das Zertifikat ist nur 3 Monate gültig, was jedoch kein Problem ist, weil wir automatisch und rechtzeitig das Zertifikat verlängern. Es muss auf Raspberry Pi ein Certbot installiert werden, der diese Aufgabe übernimmt. Bevor wir starten, stoppen wir Apache Server und am Router öffnen wir Port 80 und 443.

Fritzbox Portfreigabe
Fritzbox Portfreigabe
sudo service apache2 stop
sudo apt-get update
sudo apt-get install git
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --verbose --apache -d <domainname>

Mit Cron automatisieren wir das Letsencrypt Zertifikat- Verlängerung.

sudo crontab -e
####################
Verlängerung immer am 01. jeder 2 Monat um 4:00
####################
* 4 1 1/2 *  /home/pi/letsencrypt/letsencrypt-auto renew

Starten wir Apache Server wieder mit sudo service apache2 start. FHEM ist jetzt unter: https://meine DynDNS/fhem erreichbar.

Wir haben dir mit “FHEM absichern – Clever mit Rev3rse Proxy” Artikel weitergeholfen? Dann zeig dich erkenntlich und gib uns Daumen hoch. Vielen Dank schon mal!

(Visited 1.024 times, 1 visits today)

2 Gedanken zu „FHEM absichern – Clever mit Rev3rse Proxy

  1. Holger Franzke

    Hallo bei mir hapert es nach dem Schritt: CD /letsencrypt
    pi@FhemServer:~ $ cd letsencrypt
    pi@FhemServer:~/letsencrypt $ ./letsencrypt-auto –verbose –apache -d
    -bash: Syntaxfehler beim unerwarteten Wort `newline‘
    pi@FhemServer:~/letsencrypt $ ./letsencrypt-auto –verbose –apache -d holger-xxxx.xxx.xxx
    -bash: ./letsencrypt-auto: Datei oder Verzeichnis nicht gefunden
    Das ist im Verzeichnis:
    pi@FhemServer:~/letsencrypt $ dir
    acme certbot-nginx
    AUTHORS.md CHANGELOG.md
    certbot CODE_OF_CONDUCT.md
    certbot-apache CONTRIBUTING.md
    certbot-ci docker-compose.yml
    certbot-compatibility-test Dockerfile-dev
    certbot-dns-cloudflare letsencrypt-auto-source
    certbot-dns-cloudxns letstest
    certbot-dns-digitalocean LICENSE.txt
    certbot-dns-dnsimple linter_plugin.py
    certbot-dns-dnsmadeeasy mypy.ini
    certbot-dns-gehirn pytest.ini
    certbot-dns-google README.rst
    certbot-dns-linode snap
    certbot-dns-luadns tests
    certbot-dns-nsone tools
    certbot-dns-ovh tox.cover.py
    certbot-dns-rfc2136 tox.ini
    certbot-dns-route53 windows-installer
    certbot-dns-sakuracloud

    Was kann ich tun wie geht’s weiter?

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert