HowTo: FHEM - Beveiligde toegang tot de configuratie-interface

Uiterlijk nadat u de eerste configuraties in uw FHEM-interface hebt uitgevoerd, moet u zich ook bezighouden met het veiligheidsprobleem. Het is echt vervelend als je de moeizaam samengestelde en netjes geprogrammeerde functies van je SmartHome-systeem kwijtraakt. Of het nu gaat om gegevensverlies of omdat andere mensen ongeautoriseerde toegang hebben gekregen tot uw systeem.

De potentiële toegang door onbevoegden mag niet worden verwaarloosd. In het ergste geval kun je met deze toegang meer kwaad doen dan alleen maar een lamp aan- en uitzetten.

Hoe u uw FHEM-instantie kunt beveiligen en beschermen tegen gegevensverlies, wordt uitgelegd in het volgende artikel.


Veiligheidsinstructies

Ik weet dat de volgende opmerkingen altijd een beetje vervelend zijn en onnodig lijken. Helaas hebben veel mensen die "beter" wisten door onvoorzichtigheid ogen, vingers of andere dingen verloren of zichzelf verwond. Gegevensverlies is in vergelijking bijna te verwaarlozen, maar zelfs dit kan erg vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Omdat zelfs het coolste project geen blessure of andere problemen waard is.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links / reclame links

De hier vermelde links naar online winkels zijn zogenaamde affiliate-links. Als u op zo'n affiliate-link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende onlineshop of aanbieder. De prijs verandert voor jou niet. Als u via deze links uw aankopen doet, steunt u Nerdiy.de om in de toekomst andere nuttige projecten aan te kunnen bieden. 🙂 


Eisen

Voordat je aan dit artikel begint, moet je de RaspberryPi zo hebben voorbereid dat deze via het netwerk bereikbaar en via SSH te bedienen is.

In de volgende drie artikelen wordt beschreven wat er moet gebeuren om de RaspberryPi voor te bereiden:
RaspberryPi – setup voor nerds!
RaspberryPi – De eerste configuratie!
RaspberryPi – Bedien de RaspberryPi via SSH
FHEM - Installatie op de RaspberryPi

Gereedschap nodig:
-Nee-

Benodigde materialen:

In de volgende lijst vindt u alle onderdelen die u nodig heeft om dit artikel te implementeren.


Het wijzigen van eventuele bestaande (standaard) toegangswachtwoorden

Die wichtigste – weil am meisten ausgenutzte – Sicherheitsvorkehrung ist es eventuell vorhandene Standardpasswörter zu ändern. Verwendet Ihr als Host-Hardware für den FHEM-Server zum Beispiel einen RaspberryPi ist es wichtig, dass Ihr dessen Standard-Login-Daten ändert. Die Standard-Login-Daten „pi“ und „raspberry“ sind nämlich jeder halbwegs technikinteressierten Person bekannt. Solltet Ihr also hier gerade Eure RaspberryPi-Login-Daten gelesen haben, ist es höchste Zeit diese zu ändern.

Hoe je dit verandert, staat in het artikel RaspberryPi – De eerste configuratie! beschreven.


Maak een HTACCESS-gebruikerslogin aan

De volgende veiligheidsmaatregel tegen ongeautoriseerde toegang tot uw FHEM-interface is toegangsbeveiliging via HTACCESS. Zodra dit is ingesteld, wordt u elke keer dat u probeert toegang te krijgen tot uw FHEM-instantie, gevraagd om de relevante inloggegevens in te voeren.

Om deze toegangsbeveiliging in te stellen, moet u eerst uw gebruikersnaam/wachtwoord-combinatie coderen met base64. Dit werkt op Linux met een ingebouwd commando. Om uw combinatie van gebruikersnaam en wachtwoord te coderen, hoeft u alleen maar de volgende opdracht in de console in te voeren. Natuurlijk moet je dat eerst doen geweldige gebruikersnaam met uw gebruikersnaam en geweldig wachtwoord vervang het door uw wachtwoord.

Om uw inloggegevens te coderen, voert u de volgende opdracht in de console van uw Raspberry Pi in.
echo -n greatusername:greatpassword | basis64
U ontvangt dan een reeks van uw inloggegevens gecodeerd in base64. U moet dit kopiëren, zodat u het later kunt gebruiken.

Zonder Linux, een online Base64-encoder zoals www.base64online.com . Voer eenvoudig uw combinatie van gebruikersnaam en wachtwoord in volgens het patroon Gebruikersnaam wachtwoord en klik op coderen (DECODE).

Om de login met de door u ingestelde inloggegevens te activeren, moet u het volgende doen.

Zunächst müsst Ihr das Modul „allowedWEB“ mit folgendem Befehl erstellen.
definieer toegestaanWEB toegestaan

Nu moet u uw gekopieerde inloggegevens aan deze module koppelen door een bijbehorend attribuut in te stellen. Dit kan gedaan worden met het volgende commando.

attr toegestaanWEB basicAuth dG9sbGVyQmVudXR6ZXJuYW1lOnRvbGxlc1Bhc3N3b3J0
Im letzten Schritt müsst Ihr noch konfigurieren auf welchen Login-Oberflächen der Login abgefragt werden soll. In diesem Fall aktivieren wir die Login-Abfrage für „WEB“, „WEBPhone“ und „WEBtablet“ mit folgendem Befehl. Habt Ihr für die Login-Oberflächen andere Namen vergeben, muss dieser natürlich entsprechend angepasst werden.
attr toegestaanWEB geldigVoor WEB,WEBphone,WEBtablet

Dat is het al. Herstart nu FHEM door de volgende opdracht in te voeren

afsluiten opnieuw opstarten
Nu kunt u de login testen. Om dit te doen, gaat u opnieuw naar de URL van uw FHEM-instantie. Deze keer zou er een inlogvenster moeten verschijnen waarin u wordt gevraagd de juiste inloggegevens in te voeren.
Voer nu de gebruikersnaam en het wachtwoord in die u eerder hebt opgegeven.
Als u de juiste inloggegevens heeft ingevoerd, wordt u doorgestuurd naar de startpagina van uw FHEM-instantie. Uw configuratie-interface is nu beveiligd tegen toegang via gebruikersnaam en wachtwoord.

Versleutel de verbinding met een SSL-certificaat

Nu u de toegang tot uw FHEM-interface hebt beveiligd, is de volgende veiligheidsmaatregel ervoor te zorgen dat uw communicatie ermee niet kan worden onderschept of gemanipuleerd. Voor dit doel is nu SSL-codering van de communicatiegegevens ingesteld. Hiervoor moet eerst een SSL-certificaat worden aangemaakt en vervolgens worden verbonden met FHEM.

Om het SSL-certificaat aan te maken, moet u eerst twee pakketten installeren. Om dit te doen, voert u de volgende opdracht uit.
sudo apt-get install libio-socket-ssl-perl && sudo apt-get install libwww-perl
Während der Installation der Pakete werdet Ihr eventuell gefragt ob Ihr damit einverstanden seid, dass durch die Installation zusätzlicher Arbeitsspeicher belegt wird. Bestätigt dies mit einem „J“ und „Enter“.
Gebruik na het installeren van de pakketten de volgende opdracht om over te schakelen naar de map van uw FHEM-installatie.
cd /opt/fhem
Dort wird mit folgendem Befehl der Ordner „certs“ erstellt, in welchem dann die Zertifikate erstellt/gespeichert werden.
sudo mkdir-certificaten
Wechselt nun in den soeben erstellten Ordner „certs“.
cd /opt/fhem/certs
Om het SSL-certificaat aan te maken, moet u de volgende opdracht uitvoeren.
sudo openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout server-key.pem
Terwijl het certificaat wordt aangemaakt, wordt u om details voor dit certificaat gevraagd. Eerst vult u hier bijvoorbeeld de landcode in. Deze vermeldingen hoeven niet waar te zijn. Zo kunt u de juiste informatie verstrekken of...
...gebruik drie koppeltekens of andere tekens als tijdelijke aanduidingen, zoals weergegeven.
Met behulp van de volgende opdracht worden het certificaat en...
sudo chmod 644 /opt/fhem/certs/*.pem
... de certificaatmap nog steeds de juiste bestandsrechten heeft.
sudo chmod 711 /opt/fhem/certs
In de laatste twee stappen moet je nu HTTPS activeren voor de WEB-module...
attr WEB HTTPS
...en start FHEM opnieuw op om de wijzigingen door te voeren.
afsluiten opnieuw opstarten

Nadat u uw FHEM-server opnieuw hebt opgestart, heeft u er bijna zoals gewoonlijk toegang toe. Het verschil is dat u nu het adres van uw FHEM-server moet laten voorafgaan door HTTPS.

Da Ihr dabei ein selbstsigniertes Zertifikat nutzt, werdet Ihr von fast allen Browser nun gewarnt und darauf hingewiesen. Im „normalen“ Internet könnte dies nämlich ein Hinweis auf ein Datenleck sein. In diesem Fall müsst Ihr euch darüber aber keine Sorgen machen. Die Warnung könnt Ihr also umgehen. Klickt dazu auf „Erweitert“…
…klickt dann auf „Weiter zu ….(unsicher)“ um die Warnung zu umgehen und auf Euren FHEM-Server zu zugreifen.
Als u de gebruikerslogin heeft geactiveerd, wordt u nu om de inloggegevens gevraagd.
Zonder gebruikerslogin of als u de inloggegevens correct hebt ingevoerd, komt u zoals gewoonlijk op uw FHEM-homepage terecht.

Stel automatische back-up in voor elke update

Je bent nu grotendeels goed beschermd tegen de gevaren van slechte mensen en machines. Een andere handige instelling zijn de automatische back-ups vóór elke update van de FHEM-omgeving. Hierdoor bent u ook bij een onjuiste update beschermd en hoeft u niet de gehele configuratie handmatig te herstellen.

Voer hiervoor de volgende opdrachten in de opdrachtregel van uw FHEM-instantie in.
attr globale updateInBackground 1
attr globale backup_before_update 1

Veilige Telnet-toegang

FHEM biedt onder meer de mogelijkheid om opdrachten uit te voeren via Telnet-verbinding. Dit is niet standaard geïnstalleerd/geactiveerd. Als u hiervan gebruik maakt, is het echter belangrijk dat u de toegang beveiligt met een wachtwoord. Dit kan gedaan worden met het volgende commando. Natuurlijk moet je dat deel nog doen geweldig wachtwoord durch das von Euch gewählte Passwort ersetzen. Ggf. müsst Ihr hier auch den Teil „telnetPort“ anpassen. Dies ist der Name Eures konfigurierten Telnet-Moduls und sollte mit dem von Euch genutzten Namen übereinstimmen.

attr telnetPort-wachtwoord geweldig wachtwoord


FHEM-zekering

Je bent nu grotendeels goed beschermd tegen de gevaren van slechte mensen en machines. Maar nu moet je je wapenen tegen de grootste vijand: je eigen saaiheid. Zeker als je dingen uitprobeert en uitprobeert, kan het snel gebeuren dat je het systeem dat voorheen goed werkte, verkeerd configureert. Als het systeem echter niet meer start, kan het in het ergste geval snel worden hersteld. Op voorwaarde dat u over een actuele back-up beschikt, idealiter op een extern opslagmedium. U kunt dus zonder problemen de laatst werkende versie herstellen.

definieer regularBackup op *03:00:00 back-up

Met deze instelling wordt er elke dag om 03.00 uur een back-up gemaakt en opgeslagen in de map /opt/fhem/backup. De hier opgeslagen bestanden moeten uiteraard ook met een andere schijf worden gesynchroniseerd. Dit is de enige manier om ze te beschermen in geval van een fout met de schijf of SD-kaart.


Meer informatie

https://de.wikipedia.org/wiki/Base64

https://wiki.fhem.de/wiki/Telnet


Veel plezier met het project

Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂

PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂

Koop Me a Coffee op ko-fi.com       

Een reactie

Kommentar hinterlassen

Het e-mailadres wordt niet gepubliceerd. Erforderliche Felder sind mit * markiert

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.